
/* WARNING: Type propagation algorithm not settling */
/* WARNING: Unknown calling convention -- yet parameter storage is locked */

void lang_process(void)

{
  long *plVar1;
  byte bVar2;
  uint uVar3;
  bfd_sym_chain *pbVar4;
  asneeded_minfo *paVar5;
  lang_phdr *plVar6;
  byte *pbVar7;
  bfd_link_hash_entry *pbVar8;
  lang_output_section_statement_struct *plVar9;
  lang_output_section_statement_struct *plVar10;
  long lVar11;
  bfd_hash_entry **ppbVar12;
  lang_statement_union **pplVar13;
  lang_statement_union **pplVar14;
  bfd_vma bVar15;
  undefined8 uVar16;
  require_defined_symbol *prVar17;
  lang_output_section_phdr_list *plVar18;
  lang_statement_list_type *plVar19;
  lang_statement_union **pplVar20;
  lang_statement_union **pplVar21;
  lang_input_statement_type *plVar22;
  undefined1 uVar23;
  char cVar24;
  int iVar25;
  bfd_boolean bVar26;
  char *pcVar27;
  size_t sVar28;
  long lVar29;
  bfd_elf_version_expr *pbVar30;
  bfd_elf_version_tree *version;
  bfd_elf_version_expr *orig;
  bfd_target *pbVar31;
  char *fmt;
  lang_output_section_statement_struct *after;
  lang_statement_union_type **pplVar32;
  lang_output_section_statement_type *plVar33;
  void *__ptr;
  bfd_vma bVar34;
  bfd_link_hash_entry **ppbVar35;
  char *pcVar36;
  undefined8 uVar37;
  byte *pbVar38;
  long *__ptr_00;
  bfd_section *pbVar39;
  undefined8 *puVar40;
  undefined8 *puVar41;
  ulong uVar42;
  lang_statement_union *plVar43;
  etree_type *peVar44;
  ulong uVar45;
  lang_statement_union *plVar46;
  bfd_vma *pbVar47;
  bfd_target *pbVar48;
  bfd_boolean *extraout_RDX;
  bfd_boolean *extraout_RDX_00;
  bfd_boolean *has_relro_section;
  asection *paVar49;
  ulong uVar50;
  lang_statement_union *plVar51;
  memory_region_struct *pmVar52;
  ulong uVar53;
  lang_output_section_phdr_list *plVar54;
  bfd_link_hash_entry **ppbVar55;
  long *plVar56;
  long *plVar57;
  lang_output_section_phdr_list *plVar58;
  asection *paVar59;
  undefined8 *puVar60;
  lang_statement_union *plVar61;
  bfd_vma *pbVar62;
  byte *pbVar63;
  asection *paVar64;
  bfd *pbVar65;
  bfd_section *pbVar66;
  ulong uVar67;
  byte bVar68;
  bfd *pbVar69;
  lang_statement_union *plVar70;
  ulong uVar71;
  bool bVar72;
  bool bVar73;
  byte bVar74;
  uint power;
  undefined4 uStack_3c;
  
  bVar74 = 0;
  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) {
    pcVar27 = (char *)dcgettext(0,"%F%P: can not create hash table: %E\n",5);
    einfo(pcVar27);
  }
  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;
  plVar43 = input_file_chain.head;
  pplVar20 = file_chain.tail;
  plVar51 = file_chain.head;
  if ((link_info._1_1_ & 2) != 0) {
    plVar61 = stat_ptr->head;
    pplVar13 = stat_ptr->tail;
    iVar25 = plugin_call_all_symbols_read();
    if (iVar25 != 0) {
      plugin_error_plugin();
      pcVar27 = (char *)dcgettext(0,"%F%P: %s: plugin reported error after all symbols read\n",5);
      einfo(pcVar27);
    }
    open_input_bfds(*pplVar13,OPEN_BFD_NORMAL);
    plVar19 = stat_ptr;
    if (stat_ptr->head != plVar61) {
      info_assert("../../ld/ldlang.c",0x1baf);
    }
    pplVar14 = plVar19->tail;
    plVar61 = *pplVar13;
    plVar19->tail = pplVar13;
    *pplVar13 = (lang_statement_union *)0x0;
    if (file_chain.head != plVar51) {
      info_assert("../../ld/ldlang.c",0x1baf);
    }
    pplVar13 = file_chain.tail;
    plVar51 = *pplVar20;
    file_chain.tail = pplVar20;
    *pplVar20 = (lang_statement_union *)0x0;
    if (input_file_chain.head != plVar43) {
      info_assert("../../ld/ldlang.c",0x1baf);
    }
    pplVar20 = input_file_chain.tail;
    plVar43 = *pplVar21;
    input_file_chain.tail = pplVar21;
    *pplVar21 = (lang_statement_union *)0x0;
    plVar46 = file_chain.head;
    plVar70 = input_file_chain.head;
    if (plVar61 != (lang_statement_union *)0x0) {
      for (; plugin_insert = (lang_input_statement_type *)plVar70,
          plVar46 != (lang_statement_union *)0x0; plVar46 = (plVar46->wild_statement).children.head)
      {
        if (((ulong)(plVar46->wild_statement).walk_wild_section_handler & 0x2000) != 0) {
          if (((ulong)(plVar46->wild_statement).walk_wild_section_handler & 0x4000) == 0)
          goto LAB_0011d6c0;
          break;
        }
        if (((plVar46->reloc_statement).section != (asection *)0x0) &&
           (((plVar46->reloc_statement).section)->moving_line_filepos == 0)) {
          plugin_insert = (lang_input_statement_type *)plVar46;
        }
        plVar70 = (lang_statement_union *)plugin_insert;
      }
      plVar46 = (lang_statement_union *)plugin_insert;
      if ((lang_statement_union *)plugin_insert == (lang_statement_union *)0x0) {
        info_assert("../../ld/ldlang.c",0x1c32);
        plVar46 = (lang_statement_union *)plugin_insert;
      }
LAB_0011d6c0:
      plugin_insert = &plVar46->input_statement;
      plVar22 = plugin_insert;
      plVar19 = stat_ptr;
      *pplVar14 = (plugin_insert->header).next;
      (plVar22->header).next = plVar61;
      if (plVar22 == (lang_input_statement_type *)plVar19->tail) {
        plVar19->tail = pplVar14;
      }
      *pplVar20 = plVar22->next_real_file;
      bVar72 = input_file_chain.tail == &plVar22->next_real_file;
      plVar22->next_real_file = plVar43;
      pplVar21 = file_chain.tail;
      if (bVar72) {
        input_file_chain.tail = pplVar20;
      }
      if (plVar22->filename == (char *)0x0) {
        *pplVar13 = file_chain.head;
        file_chain.head = plVar51;
        if ((lang_statement_list_type *)pplVar21 != &file_chain) {
          pplVar13 = file_chain.tail;
        }
      }
      else {
        *pplVar13 = plVar22->next;
        plVar22->next = plVar51;
        if (pplVar21 != &plVar22->next) {
          pplVar13 = file_chain.tail;
        }
      }
      file_chain.tail = pplVar13;
      pplVar20 = file_chain.tail;
      plVar51 = file_chain.head;
      lang_statement_iteration = lang_statement_iteration + 1;
      open_input_bfds(statement_list.head,OPEN_BFD_RESCAN);
      if (file_chain.head != plVar51) {
        info_assert("../../ld/ldlang.c",0x1baf);
      }
      plVar51 = *pplVar20;
      file_chain.tail = pplVar20;
      *pplVar20 = (lang_statement_union *)0x0;
      while (plVar51 != (lang_statement_union *)0x0) {
        pbVar69 = ((plVar51->input_statement).the_bfd)->my_archive;
        pbVar65 = (plVar51->input_statement).the_bfd;
        if (pbVar69 != (bfd *)0x0) {
          pbVar65 = pbVar69;
        }
        if (input_file_chain.head == (lang_statement_union *)0x0) {
LAB_0011dad0:
          plVar61 = file_chain.head;
        }
        else {
          plVar46 = (lang_statement_union *)0x0;
          plVar43 = input_file_chain.head;
          plVar61 = (lang_statement_union *)0x0;
          do {
            while ((bfd *)(plVar43->wild_statement).section_list != pbVar65) {
              if (((bfd *)(plVar43->wild_statement).section_list != (bfd *)0x0) &&
                 ((plVar43->wild_statement).children.head != (lang_statement_union *)0x0)) {
                plVar46 = plVar43;
              }
              plVar43 = (lang_statement_union *)(plVar43->wild_statement).children.tail;
              if (plVar43 == (lang_statement_union *)0x0) goto LAB_0011d7f1;
            }
            bVar34 = (plVar43->data_statement).output_offset;
            if (bVar34 != 0) {
              pbVar47 = (bfd_vma *)(bVar34 + 0x30);
              bVar34 = *(bfd_vma *)(bVar34 + 0x30);
              goto LAB_0011d835;
            }
            plVar43 = (lang_statement_union *)(plVar43->wild_statement).children.tail;
            plVar61 = plVar46;
          } while (plVar43 != (lang_statement_union *)0x0);
LAB_0011d7f1:
          if (plVar61 == (lang_statement_union *)0x0) goto LAB_0011dad0;
        }
        pbVar47 = &(plVar61->data_statement).output_offset;
        for (bVar34 = *pbVar47; bVar34 != 0; bVar34 = *(bfd_vma *)(bVar34 + 0x30)) {
          if (((*(byte *)(bVar34 + 0x49) & 0x40) == 0) &&
             (*(long *)(*(long *)(bVar34 + 0x20) + 0xd0) == 0)) {
            bVar34 = *pbVar47;
            break;
          }
          pbVar47 = (bfd_vma *)(bVar34 + 0x30);
        }
LAB_0011d835:
        pbVar62 = &(plVar51->data_statement).output_offset;
        if (pbVar69 == (bfd *)0x0) {
          *pbVar47 = (bfd_vma)plVar51;
          plVar43 = (plVar51->wild_statement).children.head;
          (plVar51->data_statement).output_offset = bVar34;
          plVar51 = plVar43;
        }
        else {
          bVar15 = (plVar51->data_statement).output_offset;
          if (bVar15 != 0) {
            pbVar65 = *(bfd **)(*(long *)(bVar15 + 0x20) + 0xd0);
            while (pbVar69 == pbVar65) {
              pbVar62 = (bfd_vma *)(bVar15 + 0x30);
              bVar15 = *(bfd_vma *)(bVar15 + 0x30);
              if (bVar15 == 0) break;
              pbVar65 = *(bfd **)(*(long *)(bVar15 + 0x20) + 0xd0);
            }
          }
          *pbVar47 = (bfd_vma)plVar51;
          plVar51 = (lang_statement_union *)*pbVar62;
          *pbVar62 = bVar34;
          if (pbVar69->usrdata != (void *)0x0) {
            *(lang_data_statement_type **)((long)pbVar69->usrdata + 0x30) =
                 (lang_data_statement_type *)(pbVar62 + -6);
          }
        }
      }
    }
  }
  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)) {
    pcVar27 = (char *)dcgettext(0,
                                "\nAs-needed library included to satisfy reference by file (symbol)\n\n"
                                ,5);
    minfo(pcVar27);
    for (paVar5 = asneeded_list_head; paVar5 != (asneeded_minfo *)0x0; paVar5 = paVar5->next) {
      minfo("%s",paVar5->soname);
      sVar28 = strlen(paVar5->soname);
      if (0x1c < sVar28) {
        print_nl();
        sVar28 = 0;
      }
      do {
        print_space();
        sVar28 = sVar28 + 1;
      } while (sVar28 != 0x1e);
      if (paVar5->ref != (bfd *)0x0) {
        minfo("%pB ");
      }
      minfo("(%pT)\n",paVar5->name);
    }
  }
  bfd_section_already_linked_table_free();
  plVar51 = file_chain.head;
joined_r0x0011be7f:
  if (plVar51 != (lang_statement_union *)0x0) {
    do {
      if (((ulong)(plVar51->wild_statement).walk_wild_section_handler & 0x2000) == 0) {
        pbVar69 = (plVar51->input_statement).the_bfd;
        lVar29 = bfd_arch_get_compatible
                           (pbVar69,link_info.output_bfd,command_line.accept_unknown_input_arch);
        pbVar65 = link_info.output_bfd;
        if (((link_info._0_1_ & 3) == 2) || ((link_info._3_1_ & 8) != 0)) {
          if (lVar29 != 0) {
            pbVar31 = pbVar69->xvec;
            pbVar48 = (link_info.output_bfd)->xvec;
            if ((pbVar31->flavour != pbVar48->flavour) && ((pbVar69->field_0x44 & 0x20) != 0))
            goto LAB_0011c12e;
            goto LAB_0011bed4;
          }
          if ((pbVar69->field_0x44 & 0x20) != 0) {
            pbVar31 = pbVar69->xvec;
            pbVar48 = (link_info.output_bfd)->xvec;
LAB_0011c12e:
            pcVar27 = pbVar48->name;
            pcVar36 = pbVar31->name;
            fmt = (char *)dcgettext(0,
                                    "%F%P: relocatable linking with relocations from format %s (%pB) to format %s (%pB) is not supported\n"
                                    ,5);
            einfo(fmt,pcVar36,pbVar69,pcVar27,pbVar65);
            goto joined_r0x0011c167;
          }
        }
        else {
joined_r0x0011c167:
          if (lVar29 != 0) {
LAB_0011bed4:
            if (pbVar69->section_count == 0) goto LAB_0011bf30;
            if (command_line.warn_mismatch == 0) {
              bfd_set_error_handler(ignore_bfd_errors);
            }
            bVar26 = (*(link_info.output_bfd)->xvec->_bfd_merge_private_bfd_data)
                               (pbVar69,&link_info);
            if (bVar26 == 0) {
              if (command_line.warn_mismatch != 0) {
                pcVar27 = (char *)dcgettext(0,
                                            "%X%P: failed to merge target specific data of file %pB\n"
                                            ,5);
                einfo(pcVar27,pbVar69);
                goto LAB_0011c5b0;
              }
            }
            else {
LAB_0011c5b0:
              if (command_line.warn_mismatch != 0) goto code_r0x0011c5be;
            }
            bfd_set_error_handler();
            goto LAB_0011bf30;
          }
        }
        if (command_line.warn_mismatch == 0) goto LAB_0011bf30;
        bfd_printable_name(link_info.output_bfd);
        uVar37 = bfd_printable_name(pbVar69);
        pcVar27 = (char *)dcgettext(0,
                                    "%X%P: %s architecture of input file `%pB\' is incompatible with %s output\n"
                                    ,5);
        einfo(pcVar27,uVar37,pbVar69);
        plVar51 = (plVar51->wild_statement).children.head;
      }
      else {
LAB_0011bf30:
        plVar51 = (plVar51->wild_statement).children.head;
      }
      if (plVar51 == (lang_statement_union *)0x0) break;
    } while( true );
  }
  if (command_line.version_exports_section != (char *)0x0) {
    orig = (bfd_elf_version_expr *)0x0;
    for (plVar51 = file_chain.head; plVar51 != (lang_statement_union *)0x0;
        plVar51 = (plVar51->wild_statement).children.head) {
      lVar29 = bfd_get_section_by_name((plVar51->wild_statement).section_list,".exports");
      if (lVar29 != 0) {
        lVar11 = *(long *)(lVar29 + 0x38);
        pcVar27 = (char *)xmalloc(lVar11);
        iVar25 = bfd_get_section_contents
                           ((plVar51->wild_statement).section_list,lVar29,pcVar27,0,lVar11);
        if (iVar25 == 0) {
          pcVar36 = (char *)dcgettext(0,"%X%P: unable to read .exports section contents\n",5);
          einfo(pcVar36,lVar29);
        }
        pcVar36 = pcVar27 + lVar11;
        for (; pcVar27 < pcVar36; pcVar27 = pcVar27 + sVar28 + 1) {
          orig = lang_new_vers_pattern(orig,pcVar27,(char *)0x0,0);
          sVar28 = strlen(pcVar27);
        }
        *(uint *)(lVar29 + 0x20) = *(uint *)(lVar29 + 0x20) | 0x208000;
      }
    }
    pbVar30 = lang_new_vers_pattern((bfd_elf_version_expr *)0x0,"*",(char *)0x0,0);
    version = (bfd_elf_version_tree *)xcalloc(1,0x70);
    pcVar27 = command_line.version_exports_section;
    (version->globals).list = orig;
    (version->locals).list = pbVar30;
    version->match = lang_vers_match;
    version->name_indx = 0xffffffff;
    lang_register_vers_node(pcVar27,version,(bfd_elf_version_deps *)0x0);
  }
  ldctor_build_sets();
  if ((config.build_constructors != 0) &&
     (cVar24 = (link_info.output_bfd)->xvec->symbol_leading_char, link_info.input_bfds != (bfd *)0x0
     )) {
    pbVar69 = link_info.input_bfds;
    do {
      for (pbVar39 = pbVar69->sections; pbVar39 != (bfd_section *)0x0; pbVar39 = pbVar39->next) {
        while( true ) {
          pbVar7 = (byte *)pbVar39->name;
          bVar68 = *pbVar7;
          if (bVar68 == 0) break;
          bVar2 = _sch_istable[(ulong)bVar68 * 2];
          pbVar38 = pbVar7;
          while (((bVar2 & 0x8c) != 0 || (bVar68 == 0x5f))) {
            pbVar38 = pbVar38 + 1;
            bVar68 = *pbVar38;
            if (bVar68 == 0) goto LAB_0011d178;
            bVar2 = _sch_istable[(ulong)bVar68 * 2];
          }
          pbVar39 = pbVar39->next;
          if (pbVar39 == (bfd_section *)0x0) goto LAB_0011d163;
        }
LAB_0011d178:
        sVar28 = strlen((char *)pbVar7);
        pcVar27 = (char *)xmalloc(sVar28 + 10);
        *pcVar27 = cVar24;
        sprintf(pcVar27 + (cVar24 != '\0'),"__start_%s",pbVar7);
        lang_define_start_stop(pcVar27,pbVar39);
        pcVar27[1] = cVar24;
        builtin_strncpy(pcVar27 + (2 - (ulong)(cVar24 == '\0')),"__stop",6);
        lang_define_start_stop(pcVar27 + 1,pbVar39);
        free(pcVar27);
      }
LAB_0011d163:
      pbVar69 = (pbVar69->link).next;
    } while (pbVar69 != (bfd *)0x0);
  }
  lang_do_assignments(lang_mark_phase_enum);
  pmVar52 = lang_memory_region_list;
joined_r0x0011bfdf:
  if (pmVar52 != (lang_memory_region_type *)0x0) {
    do {
      if (pmVar52->origin_exp != (etree_type *)0x0) {
        exp_fold_tree_no_dot(pmVar52->origin_exp);
        bVar34 = expld.result.value;
        if (expld.result.valid_p == 0) {
          pcVar27 = (pmVar52->name_list).name;
          pcVar36 = (char *)dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);
          einfo(pcVar36,pcVar27);
        }
        else {
          pmVar52->origin = expld.result.value;
          pmVar52->current = bVar34;
        }
      }
      if (pmVar52->length_exp != (etree_type *)0x0) {
        exp_fold_tree_no_dot(pmVar52->length_exp);
        if (expld.result.valid_p == 0) goto LAB_0011c1d0;
        pmVar52->length = expld.result.value;
      }
      pmVar52 = pmVar52->next;
      if (pmVar52 == (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_;
  plVar51 = file_chain.head;
  if ((link_info._0_1_ & 3) == 2) {
    for (; plVar51 != (lang_statement_union *)0x0; plVar51 = (plVar51->wild_statement).children.head
        ) {
      if (((ulong)(plVar51->wild_statement).walk_wild_section_handler & 0x2000) == 0) {
        for (pbVar39 = ((plVar51->input_statement).the_bfd)->sections; pbVar39 != (bfd_section *)0x0
            ; pbVar39 = pbVar39->next) {
          if ((pbVar39->flags & 0x2000) == 0) {
            pbVar39->flags = pbVar39->flags & 0xffff7fff;
          }
        }
      }
    }
  }
  if ((uVar23 & 0x40) != 0) {
    (*(link_info.output_bfd)->xvec->_bfd_gc_sections)(link_info.output_bfd,&link_info);
  }
  pbVar69 = link_info.input_bfds;
  if ((link_info._6_1_ & 0x20) != 0) {
    for (; pbVar69 != (bfd *)0x0; pbVar69 = (pbVar69->link).next) {
      iVar25 = bfd_link_check_relocs(pbVar69);
      if (iVar25 == 0) {
        config.make_executable = 0;
      }
    }
  }
  ldemul_after_check_relocs();
  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);
  plVar43 = (lang_statement_union *)0x0;
  plVar61 = (lang_statement_union *)0x0;
  plVar51 = lang_output_section_statement.head;
  while (plVar70 = plVar51, plVar46 = (plVar70->header).next, plVar46 != (lang_statement_union *)0x0
        ) {
    plVar51 = plVar46;
    if ((plVar46->header).type == lang_output_section_statement_enum) {
      if ((plVar61 != (lang_statement_union *)0x0) &&
         (plVar46 != (lang_statement_union *)(plVar61->wild_statement).section_list)) {
        info_assert("../../ld/ldlang.c",0xea0);
        plVar51 = (plVar70->header).next;
      }
      (plVar46->output_section_statement).constraint =
           -2 - (plVar46->output_section_statement).constraint;
      plVar61 = plVar46;
      if (plVar43 == (lang_statement_union *)0x0) {
        plVar43 = plVar46;
      }
    }
    else if ((plVar46->header).type == lang_insert_statement_enum) {
      after = lang_output_section_statement_lookup((plVar46->wild_statement).filename,0,0);
      if (after == (lang_output_section_statement_type *)0x0) {
LAB_0011c415:
        pcVar27 = (char *)dcgettext(0,"%F%P: %s not found for insert\n",5);
        einfo(pcVar27);
        plVar51 = file_chain.head;
        goto joined_r0x0011c458;
      }
      if ((plVar46->wild_statement).filenames_sorted != 0) {
        do {
          after = after->prev;
          if (after == (lang_output_section_statement_struct *)0x0) goto LAB_0011c415;
        } while (after->constraint < 0);
      }
      if (plVar61 != (lang_statement_union *)0x0) {
        plVar9 = (plVar43->output_section_statement).prev;
        plVar10 = (plVar61->output_section_statement).next;
        plVar9->next = plVar10;
        if (plVar10 == (lang_output_section_statement_struct *)0x0) {
          lang_output_section_statement.tail = (lang_statement_union **)&plVar9->next;
        }
        else {
          plVar10->prev = plVar9;
        }
        (plVar61->wild_statement).section_list = (wildcard_list *)after->next;
        if (after->next == (lang_output_section_statement_struct *)0x0) {
          lang_output_section_statement.tail =
               (lang_statement_union **)&(plVar61->output_section_statement).next;
        }
        else {
          after->next->prev = (lang_output_section_statement_struct *)plVar61;
        }
        (plVar43->output_section_statement).prev = after;
        paVar64 = (asection *)0x0;
        paVar59 = (asection *)0x0;
        after->next = (lang_output_section_statement_struct *)plVar43;
        do {
          (plVar43->output_section_statement).constraint =
               -2 - (plVar43->output_section_statement).constraint;
          paVar49 = (plVar43->output_section_statement).bfd_section;
          if (((paVar49 != (asection *)0x0) && (paVar49->owner != (bfd *)0x0)) &&
             (paVar64 = paVar49, paVar59 == (asection *)0x0)) {
            paVar59 = paVar49;
          }
        } while ((plVar61 != plVar43) &&
                (plVar43 = (lang_statement_union *)(plVar43->wild_statement).section_list,
                plVar43 != (lang_statement_union *)0x0));
        plVar43 = (lang_statement_union *)0x0;
        if (paVar64 != (asection *)0x0) {
          paVar49 = after->bfd_section;
          if (paVar49 == (asection *)0x0) {
            plVar43 = (lang_statement_union *)after->prev;
            if (plVar43 != (lang_statement_union *)0x0) {
              do {
                if (((-1 < (plVar43->output_section_statement).constraint) &&
                    (paVar49 = (plVar43->output_section_statement).bfd_section,
                    paVar49 != (asection *)0x0)) && (paVar49->owner != (bfd *)0x0))
                goto LAB_0011cd61;
                plVar43 = (lang_statement_union *)(plVar43->data_statement).output_section;
              } while (plVar43 != (lang_statement_union *)0x0);
              plVar43 = (lang_statement_union *)0x0;
            }
          }
          else {
LAB_0011cd61:
            plVar43 = (lang_statement_union *)0x0;
            if (paVar49 != paVar64) {
              pbVar39 = paVar59->prev;
              pbVar66 = paVar64->next;
              if (pbVar39 == (bfd_section *)0x0) {
                (link_info.output_bfd)->sections = pbVar66;
              }
              else {
                pbVar39->next = pbVar66;
                pbVar66 = paVar64->next;
              }
              if (pbVar66 == (bfd_section *)0x0) {
                (link_info.output_bfd)->section_last = pbVar39;
              }
              else {
                pbVar66->prev = pbVar39;
              }
              pbVar39 = paVar49->next;
              paVar64->next = pbVar39;
              if (pbVar39 == (bfd_section *)0x0) {
                (link_info.output_bfd)->section_last = paVar64;
              }
              else {
                pbVar39->prev = paVar64;
              }
              paVar59->prev = paVar49;
              plVar43 = (lang_statement_union *)0x0;
              paVar49->next = paVar59;
            }
          }
        }
      }
      pplVar32 = insert_os_after(after);
      plVar51 = ((lang_output_section_statement.head)->header).next;
      ((lang_output_section_statement.head)->header).next = (((plVar70->header).next)->header).next;
      plVar61 = *pplVar32;
      (plVar70->header).next = plVar61;
      if (plVar61 == (lang_statement_union *)0x0) {
        statement_list.tail = (lang_statement_union **)plVar70;
      }
      *pplVar32 = plVar51;
      plVar61 = (lang_statement_union *)0x0;
      plVar51 = lang_output_section_statement.head;
    }
  }
  for (; (plVar51 = file_chain.head, plVar43 != (lang_statement_union *)0x0 &&
         ((plVar43->output_section_statement).constraint =
               -2 - (plVar43->output_section_statement).constraint, plVar51 = file_chain.head,
         plVar61 != plVar43));
      plVar43 = (lang_statement_union *)(plVar43->wild_statement).section_list) {
  }
joined_r0x0011c458:
  for (; plVar51 != (lang_statement_union *)0x0; plVar51 = (plVar51->wild_statement).children.head)
  {
    pbVar39 = ((plVar51->input_statement).the_bfd)->sections;
joined_r0x0011c46e:
    if (pbVar39 != (bfd_section *)0x0) {
      do {
        if (pbVar39->output_section == (bfd_section *)0x0) {
          if (((ulong)(plVar51->wild_statement).walk_wild_section_handler & 0x10) != 0)
          goto code_r0x0011c493;
          bVar26 = lang_discard_section_p((asection *)(ulong)pbVar39->flags);
          bVar72 = false;
          bVar73 = bVar26 == 0;
          if (bVar73) {
            pbVar7 = (byte *)pbVar39->name;
            lVar29 = 7;
            pbVar38 = pbVar7;
            pbVar63 = (byte *)"COMMON";
            do {
              if (lVar29 == 0) break;
              lVar29 = lVar29 + -1;
              bVar72 = *pbVar38 < *pbVar63;
              bVar73 = *pbVar38 == *pbVar63;
              pbVar38 = pbVar38 + (ulong)bVar74 * -2 + 1;
              pbVar63 = pbVar63 + (ulong)bVar74 * -2 + 1;
            } while (bVar73);
            if ((!bVar72 && !bVar73) == bVar72) {
              if (((link_info._0_1_ & 3) != 2) || (command_line.force_common_definition != 0)) {
                plVar33 = default_common_section;
                if (default_common_section == (lang_output_section_statement_type *)0x0) {
                  plVar33 = lang_output_section_statement_lookup(".bss",0,1);
                  default_common_section = plVar33;
                }
LAB_0011c659:
                lang_add_section(&plVar33->children,pbVar39,(flag_info *)0x0,plVar33);
              }
            }
            else {
              if (config.orphan_handling == orphan_handling_discard) {
                plVar33 = lang_output_section_statement_lookup("/DISCARD/",0,1);
                if ((plVar33->addr_tree == (etree_union *)0x0) &&
                   (((link_info._0_1_ & 3) == 2 || ((pbVar39->flags & 3) == 0)))) {
                  peVar44 = exp_intop(0);
                  plVar33->addr_tree = peVar44;
                }
                goto LAB_0011c659;
              }
              if (config.orphan_handling == orphan_handling_error) {
                pbVar69 = pbVar39->owner;
                pcVar27 = (char *)dcgettext(0,
                                            "%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n"
                                            ,5);
                einfo(pcVar27,pbVar39,pbVar69);
              }
              if ((config.unique_orphan_sections == 0) &&
                 (bVar26 = unique_section_p(pbVar39,(lang_output_section_statement_type *)0x0),
                 bVar26 == 0)) {
                iVar25 = 0;
              }
              else {
                iVar25 = 0x17e;
              }
              plVar33 = ldemul_place_orphan(pbVar39,(char *)pbVar7,iVar25);
              if (plVar33 == (lang_output_section_statement_type *)0x0) {
                plVar33 = lang_output_section_statement_lookup((char *)pbVar7,iVar25,1);
                if ((plVar33->addr_tree == (etree_union *)0x0) &&
                   (((link_info._0_1_ & 3) == 2 || ((pbVar39->flags & 3) == 0)))) {
                  peVar44 = exp_intop(0);
                  plVar33->addr_tree = peVar44;
                }
                lang_add_section(&plVar33->children,pbVar39,(flag_info *)0x0,plVar33);
              }
              if (config.orphan_handling == orphan_handling_warn) {
                pbVar69 = pbVar39->owner;
                pcVar27 = (char *)dcgettext(0,
                                            "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"
                                            ,5);
                einfo(pcVar27,pbVar39,pbVar69);
              }
            }
          }
          else {
            pbVar39->output_section = (bfd_section *)(_bfd_std_section + 0x230);
          }
        }
        pbVar39 = pbVar39->next;
        if (pbVar39 == (bfd_section *)0x0) break;
      } while( true );
    }
  }
  bVar68 = link_info._0_1_ & 3;
  ppbVar55 = start_stop_syms;
  plVar51 = lang_output_section_statement.head;
  pbVar69 = link_info.output_bfd;
  if (bVar68 != 2) {
    (*(link_info.output_bfd)->xvec->_bfd_merge_sections)(link_info.output_bfd,&link_info);
    lVar29 = bfd_get_section_by_name(link_info.output_bfd);
    if (lVar29 == 0) {
      bVar68 = link_info._0_1_ & 3;
      ppbVar55 = start_stop_syms;
      plVar51 = lang_output_section_statement.head;
      pbVar69 = link_info.output_bfd;
    }
    else {
      bVar68 = link_info._0_1_ & 3;
      if (config.text_read_only == 0) {
        *(uint *)(lVar29 + 0x20) = *(uint *)(lVar29 + 0x20) & 0xfffffff7;
        ppbVar55 = start_stop_syms;
        plVar51 = lang_output_section_statement.head;
        pbVar69 = link_info.output_bfd;
      }
      else {
        *(uint *)(lVar29 + 0x20) = *(uint *)(lVar29 + 0x20) | 8;
        ppbVar55 = start_stop_syms;
        plVar51 = lang_output_section_statement.head;
        pbVar69 = link_info.output_bfd;
      }
    }
  }
  for (; start_stop_syms = ppbVar55, link_info.output_bfd = pbVar69,
      plVar51 != (lang_statement_union *)0x0;
      plVar51 = (lang_statement_union *)(plVar51->wild_statement).section_list) {
    paVar59 = (plVar51->data_statement).output_section;
    if ((((paVar59 != (asection *)0x0) &&
         ((plVar51->wild_statement).walk_wild_section_handler == (walk_wild_section_handler_t)0x0))
        && ((plVar51->wild_statement).handler_data[2] == (wildcard_list *)0x0)) &&
       (((plVar51->wild_statement).handler_data[1] == (wildcard_list *)0x0 &&
        ((plVar51->wild_statement).exclude_name_list == (name_list *)paVar59->rawsize)))) {
      (plVar51->wild_statement).walk_wild_section_handler =
           (walk_wild_section_handler_t)paVar59->compressed_size;
    }
    ppbVar55 = start_stop_syms;
    pbVar69 = link_info.output_bfd;
  }
  if ((config.build_constructors != 0) && (start_stop_count != 0)) {
    ppbVar35 = ppbVar55 + start_stop_count;
    do {
      pbVar8 = *ppbVar55;
      if ((pbVar8->field_0x19 & 8) == 0) {
        pbVar65 = (pbVar8->u).undef.abfd;
        ppbVar12 = (pbVar65->section_htab).table;
        if (((ppbVar12 == (bfd_hash_entry **)0x0) || ((bfd *)ppbVar12[0x1e] != pbVar69)) ||
           (iVar25 = strcmp(pbVar65->filename,(char *)*ppbVar12), iVar25 != 0)) {
          pbVar8->field_0x18 = 1;
          (pbVar8->u).undef.abfd = (bfd *)0x0;
        }
      }
      ppbVar55 = ppbVar55 + 1;
    } while (ppbVar35 != ppbVar55);
  }
  if (bVar68 != 2) {
    for (paVar59 = (link_info.output_bfd)->sections; paVar59 != (asection *)0x0;
        paVar59 = paVar59->next) {
      pcVar27 = paVar59->name;
      sVar28 = strlen(pcVar27);
      pcVar36 = (char *)xmalloc(sVar28 + 10);
      sprintf(pcVar36,".startof.%s",pcVar27);
      lang_define_start_stop(pcVar36,paVar59);
      builtin_strncpy(pcVar36 + 1,".size",5);
      lang_define_start_stop(pcVar36 + 1,paVar59);
      free(pcVar36);
    }
  }
  ldemul_before_allocation();
  plVar54 = (lang_output_section_phdr_list *)0x0;
  __ptr = (void *)xmalloc(0x50);
  uVar3 = 10;
  for (plVar6 = lang_phdr_list; plVar6 != (lang_phdr *)0x0; plVar6 = plVar6->next) {
    uVar53 = 0;
    for (plVar51 = lang_output_section_statement.head; plVar51 != (lang_statement_union *)0x0;
        plVar51 = (lang_statement_union *)(plVar51->wild_statement).section_list) {
      if (-1 < (plVar51->output_section_statement).constraint) {
        plVar58 = (plVar51->output_section_statement).phdrs;
        if (plVar58 == (lang_output_section_phdr_list *)0x0) {
          if ((((plVar51->output_section_statement).sectype != noload_section) &&
              ((plVar51->output_section_statement).bfd_section != (asection *)0x0)) &&
             (((((plVar51->output_section_statement).bfd_section)->flags & 1) != 0 &&
              (plVar58 = plVar54, plVar43 = plVar51, plVar6->type != 3)))) {
            while( true ) {
              plVar54 = plVar58;
              if (plVar58 != (lang_output_section_phdr_list *)0x0) goto LAB_0011c7fd;
              plVar43 = (lang_statement_union *)(plVar43->output_section_statement).next;
              if (plVar43 == (lang_statement_union *)0x0) break;
              plVar58 = (plVar43->output_section_statement).phdrs;
            }
            plVar54 = (lang_output_section_phdr_list *)0x0;
            pcVar27 = (char *)dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);
            einfo(pcVar27);
          }
        }
        else {
          plVar54 = plVar58;
          plVar18 = (lang_output_section_phdr_list *)(plVar51->wild_statement).children.tail;
          while (plVar18 != (lang_output_section_phdr_list *)0x0) {
LAB_0011c7fd:
            iVar25 = strcmp(plVar58->name,plVar6->name);
            uVar50 = uVar53;
            if (iVar25 == 0) {
              if (uVar3 <= (uint)uVar53) {
                uVar3 = uVar3 << 1;
                __ptr = (void *)xrealloc(__ptr,(ulong)uVar3 << 3);
              }
              uVar50 = (ulong)((uint)uVar53 + 1);
              *(lang_statement_union ***)((long)__ptr + uVar53 * 8) =
                   (plVar51->wild_statement).children.tail;
              plVar58->used = 1;
            }
            plVar58 = plVar58->next;
            uVar53 = uVar50;
            plVar18 = plVar58;
          }
        }
      }
    }
    uVar50 = 0;
    if (plVar6->flags != (etree_type *)0x0) {
      bVar34 = exp_get_vma(plVar6->flags,0,"phdr flags");
      uVar50 = bVar34 & 0xffffffff;
    }
    peVar44 = plVar6->at;
    bVar34 = 0;
    if (peVar44 != (etree_type *)0x0) {
      bVar34 = exp_get_vma(peVar44,0,"phdr load address");
      peVar44 = plVar6->at;
    }
    iVar25 = bfd_record_phdr(link_info.output_bfd,plVar6->type,plVar6->flags != (etree_type *)0x0,
                             uVar50,peVar44 != (etree_type *)0x0,bVar34,plVar6->filehdr,
                             plVar6->phdrs,uVar53,__ptr);
    if (iVar25 == 0) {
      pcVar27 = (char *)dcgettext(0,"%F%P: bfd_record_phdr failed: %E\n",5);
      einfo(pcVar27);
    }
  }
  free(__ptr);
  has_relro_section = extraout_RDX;
  for (plVar51 = lang_output_section_statement.head; plVar51 != (lang_statement_union *)0x0;
      plVar51 = (lang_statement_union *)(plVar51->wild_statement).section_list) {
    if ((-1 < (plVar51->output_section_statement).constraint) &&
       ((plVar51->wild_statement).children.tail != (lang_statement_union **)0x0)) {
      plVar54 = (plVar51->output_section_statement).phdrs;
joined_r0x0011c90a:
      if (plVar54 != (lang_output_section_phdr_list *)0x0) {
        do {
          bVar72 = false;
          bVar73 = plVar54->used == 0;
          if (bVar73) {
            pbVar7 = (byte *)plVar54->name;
            lVar29 = 5;
            pbVar38 = pbVar7;
            pbVar63 = (byte *)0x130359;
            do {
              if (lVar29 == 0) break;
              lVar29 = lVar29 + -1;
              bVar72 = *pbVar38 < *pbVar63;
              bVar73 = *pbVar38 == *pbVar63;
              pbVar38 = pbVar38 + (ulong)bVar74 * -2 + 1;
              pbVar63 = pbVar63 + (ulong)bVar74 * -2 + 1;
            } while (bVar73);
            if ((!bVar72 && !bVar73) != bVar72) goto code_r0x0011c93b;
          }
          plVar54 = plVar54->next;
          if (plVar54 == (lang_output_section_phdr_list *)0x0) break;
        } while( true );
      }
    }
  }
  if (((link_info._3_1_ & 0x10) != 0) && ((link_info._0_1_ & 3) != 2)) {
    power = 0;
    lang_find_relro_sections_1
              (expld.dataseg.relro_start_stat,(seg_align_type *)&power,has_relro_section);
    if (power == 0) {
      link_info._3_1_ = link_info._3_1_ & 0xef;
    }
  }
  lang_size_sections((bfd_boolean *)0x0,
                     (uint)(1 < (uint)link_info.disable_target_specific_optimizations));
  ldemul_after_allocation();
  pbVar69 = link_info.output_bfd;
  uVar3 = opb_shift;
  if (start_stop_count != 0) {
    ppbVar55 = start_stop_syms + start_stop_count;
    ppbVar35 = start_stop_syms;
    do {
      while (pbVar8 = *ppbVar35, (*(ushort *)&pbVar8->field_0x18 & 0x8ff) == 3) {
        pcVar27 = (pbVar8->root).string;
        if (*pcVar27 != '.') {
          cVar24 = pbVar69->xvec->symbol_leading_char;
          pbVar39 = ((pbVar8->u).def.section)->output_section;
          (pbVar8->u).def.section = pbVar39;
          if (pcVar27[(int)((cVar24 != '\0') + 4)] == 'o') {
            (pbVar8->u).def.value = pbVar39->size >> ((byte)uVar3 & 0x3f);
          }
          break;
        }
        if (pcVar27[2] != 'i') break;
        ppbVar35 = ppbVar35 + 1;
        uVar53 = ((pbVar8->u).def.section)->size;
        (pbVar8->u).undef.abfd = (bfd *)0x17ed50;
        (pbVar8->u).def.value = uVar53 >> ((byte)uVar3 & 0x3f);
        if (ppbVar35 == ppbVar55) goto LAB_0011ca60;
      }
      ppbVar35 = ppbVar35 + 1;
    } while (ppbVar35 != ppbVar55);
  }
LAB_0011ca60:
  lang_do_assignments(lang_final_phase_enum);
  ldemul_finish();
  ldexp_finalize_syms();
  prVar17 = require_defined_symbol_list;
  if (command_line.check_section_addresses != '\0') {
    cVar24 = bfd_arch_bits_per_address(link_info.output_bfd);
    pbVar39 = (link_info.output_bfd)->sections;
    uVar53 = (1L << (cVar24 - 1U & 0x3f)) * 2 - 1;
    if (pbVar39 != (bfd_section *)0x0) {
      do {
        if ((pbVar39->flags & 1) != 0) {
          uVar50 = pbVar39->vma + pbVar39->size & uVar53;
          if ((uVar50 == 0) || ((pbVar39->vma & uVar53) <= uVar50)) {
            uVar50 = pbVar39->size + pbVar39->lma & uVar53;
            if ((uVar50 == 0) || ((pbVar39->lma & uVar53) <= uVar50)) goto LAB_0011d2f0;
            pcVar27 = pbVar39->name;
            pcVar36 = "%X%P: section %s LMA wraps around address space\n";
          }
          else {
            pcVar27 = pbVar39->name;
            pcVar36 = "%X%P: section %s VMA wraps around address space\n";
          }
          pcVar36 = (char *)dcgettext(0,pcVar36,5);
          einfo(pcVar36,pcVar27);
        }
LAB_0011d2f0:
        pbVar39 = pbVar39->next;
      } while (pbVar39 != (bfd_section *)0x0);
    }
    prVar17 = require_defined_symbol_list;
    if (1 < (link_info.output_bfd)->section_count) {
      uVar53 = 0;
      __ptr_00 = (long *)xmalloc((ulong)(link_info.output_bfd)->section_count << 4);
      pbVar39 = (link_info.output_bfd)->sections;
      if (pbVar39 != (bfd_section *)0x0) {
        do {
          uVar50 = uVar53;
          if ((((pbVar39->flags & 1) != 0) && ((pbVar39->flags & 0x402) != 0x400)) &&
             (pbVar39->size != 0)) {
            uVar50 = uVar53 + 1;
            __ptr_00[uVar53 * 2] = (long)pbVar39;
            *(undefined4 *)(__ptr_00 + uVar53 * 2 + 1) = 0;
          }
          pbVar39 = pbVar39->next;
          uVar53 = uVar50;
        } while (pbVar39 != (bfd_section *)0x0);
        if (1 < uVar50) {
          qsort(__ptr_00,uVar50,0x10,sort_sections_by_lma);
          puVar40 = (undefined8 *)0x0;
          plVar56 = __ptr_00;
          uVar53 = 0;
          uVar45 = 0;
          do {
            puVar60 = (undefined8 *)*plVar56;
            puVar41 = puVar40;
            uVar67 = uVar53;
            uVar42 = uVar45;
            if ((*(byte *)(puVar60 + 4) & 2) != 0) {
              uVar67 = puVar60[6];
              uVar42 = (uVar67 - 1) + ((ulong)puVar60[7] >> ((byte)opb_shift & 0x3f));
              puVar41 = puVar60;
              if ((puVar40 != (undefined8 *)0x0) && ((uVar67 <= uVar45 || (uVar45 < uVar53)))) {
                uVar37 = *puVar40;
                uVar16 = *puVar60;
                pcVar27 = (char *)dcgettext(0,
                                            "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n"
                                            ,5);
                einfo(pcVar27,uVar16,uVar67,uVar42,uVar37,uVar53,uVar45);
                *(undefined4 *)(plVar56 + 1) = 1;
              }
            }
            plVar56 = plVar56 + 2;
            puVar40 = puVar41;
            uVar53 = uVar67;
            uVar45 = uVar42;
          } while (plVar56 != __ptr_00 + uVar50 * 2);
          qsort(__ptr_00,uVar50,0x10,sort_sections_by_vma);
          puVar40 = (undefined8 *)*__ptr_00;
          uVar42 = 1;
          uVar53 = puVar40[5];
          uVar45 = uVar53;
          do {
            lVar29 = uVar42 * 2;
            if (*(ulong *)(__ptr_00[lVar29] + 0x28) == uVar45) goto LAB_0011d4c4;
            uVar42 = uVar42 + 1;
            uVar45 = *(ulong *)(__ptr_00[lVar29] + 0x28);
          } while (uVar42 != uVar50);
          uVar42 = 0;
          uVar45 = (uVar53 - 1) + ((ulong)puVar40[7] >> ((byte)opb_shift & 0x3f));
          plVar56 = __ptr_00;
          while( true ) {
            uVar71 = uVar45;
            uVar67 = uVar53;
            puVar60 = puVar40;
            plVar57 = plVar56 + 2;
            uVar42 = uVar42 + 1;
            if (uVar42 == uVar50) break;
            puVar40 = (undefined8 *)*plVar57;
            plVar1 = plVar56 + 3;
            uVar53 = puVar40[5];
            uVar45 = (uVar53 - 1) + ((ulong)puVar40[7] >> ((byte)opb_shift & 0x3f));
            plVar56 = plVar57;
            if (((int)*plVar1 == 0) && ((uVar53 <= uVar71 || (uVar71 < uVar67)))) {
              uVar37 = *puVar60;
              uVar16 = *puVar40;
              pcVar27 = (char *)dcgettext(0,
                                          "%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n"
                                          ,5);
              einfo(pcVar27,uVar16,uVar53,uVar45,uVar37,uVar67,uVar71);
            }
          }
LAB_0011d4c4:
          free(__ptr_00);
          for (pmVar52 = lang_memory_region_list; prVar17 = require_defined_symbol_list,
              pmVar52 != (lang_memory_region_type *)0x0; pmVar52 = pmVar52->next) {
            if (pmVar52->had_full_message != 0) {
              pcVar27 = (pmVar52->name_list).name;
              lVar29 = pmVar52->current - (pmVar52->length + pmVar52->origin);
              pcVar36 = (char *)dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",
                                           "%X%P: region `%s\' overflowed by %lu bytes\n",lVar29,5);
              einfo(pcVar36,pcVar27,lVar29);
            }
          }
          goto joined_r0x0011ca92;
        }
      }
      free(__ptr_00);
      prVar17 = require_defined_symbol_list;
    }
  }
joined_r0x0011ca92:
  for (; prVar17 != (require_defined_symbol *)0x0; prVar17 = prVar17->next) {
    lVar29 = bfd_link_hash_lookup(link_info.hash,prVar17->name,0,0,1);
    if ((lVar29 == 0) || (1 < (byte)(*(char *)(lVar29 + 0x18) - 3U))) {
      pcVar27 = prVar17->name;
      pcVar36 = (char *)dcgettext(0,"%X%P: required symbol `%s\' not defined\n",5);
      einfo(pcVar36,pcVar27);
    }
  }
  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)) {
    pcVar27 = (char *)dcgettext(0,
                                "%F%P: gc-sections requires either an entry or an undefined symbol\n"
                                ,5);
    einfo(pcVar27);
  }
  if (entry_symbol.name == (char *)0x0) {
    entry_symbol.name = entry_symbol_default;
    iVar25 = 0;
  }
  lVar29 = bfd_link_hash_lookup(link_info.hash,entry_symbol.name,0,0,1);
  if ((lVar29 != 0) && ((byte)(*(char *)(lVar29 + 0x18) - 3U) < 2)) {
    lVar11 = *(long *)(*(long *)(lVar29 + 0x28) + 0x68);
    if (lVar11 != 0) {
      iVar25 = bfd_set_start_address
                         (link_info.output_bfd,
                          *(long *)(lVar11 + 0x28) +
                          *(long *)(*(long *)(lVar29 + 0x28) + 0x60) + *(long *)(lVar29 + 0x30));
      if (iVar25 != 0) {
        return;
      }
      pcVar27 = "%F%P: %s: can\'t set start address\n";
      goto LAB_0011cf37;
    }
  }
  uVar37 = bfd_scan_vma(entry_symbol.name,&power,0);
  if (*(char *)CONCAT44(uStack_3c,power) == '\0') {
    iVar25 = bfd_set_start_address(link_info.output_bfd,uVar37);
  }
  else {
    lVar29 = bfd_get_section_by_name(link_info.output_bfd,entry_section);
    pcVar27 = entry_symbol.name;
    if (lVar29 == 0) {
      if (iVar25 == 0) {
        return;
      }
      pcVar27 = "%P: warning: cannot find entry symbol %s; not setting start address\n";
LAB_0011cf37:
      pcVar36 = entry_symbol.name;
      pcVar27 = (char *)dcgettext(0,pcVar27,5);
      einfo(pcVar27,pcVar36);
      return;
    }
    uVar37 = *(undefined8 *)(lVar29 + 0x28);
    if (iVar25 != 0) {
      pcVar36 = (char *)dcgettext(0,"%P: warning: cannot find entry symbol %s; defaulting to %V\n",5
                                 );
      einfo(pcVar36,pcVar27,uVar37);
      uVar37 = *(undefined8 *)(lVar29 + 0x28);
    }
    iVar25 = bfd_set_start_address(link_info.output_bfd,uVar37);
  }
  if (iVar25 != 0) {
    return;
  }
  pcVar27 = (char *)dcgettext(0,"%F%P: can\'t set start address\n",5);
  einfo(pcVar27);
  return;
code_r0x0011c5be:
  plVar51 = (plVar51->wild_statement).children.head;
  goto joined_r0x0011be7f;
LAB_0011c1d0:
  pcVar27 = (pmVar52->name_list).name;
  pcVar36 = (char *)dcgettext(0,"%F%P: invalid length for memory region %s\n",5);
  einfo(pcVar36,pcVar27);
  pmVar52 = pmVar52->next;
  goto joined_r0x0011bfdf;
code_r0x0011c493:
  (*((plVar51->input_statement).the_bfd)->xvec->_bfd_link_just_syms)(pbVar39,&link_info);
  pbVar39 = pbVar39->next;
  goto joined_r0x0011c46e;
code_r0x0011c93b:
  plVar43 = (plVar51->wild_statement).children.head;
  pcVar27 = (char *)dcgettext(0,"%X%P: section `%s\' assigned to non-existent phdr `%s\'\n",5);
  einfo(pcVar27,plVar43,pbVar7);
  plVar54 = plVar54->next;
  has_relro_section = extraout_RDX_00;
  goto joined_r0x0011c90a;
}



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

void FUN_0011bca0(void)

{
  byte bVar1;
  uint uVar2;
  long *plVar3;
  byte *pbVar4;
  long lVar5;
  long *plVar6;
  undefined *puVar7;
  char cVar8;
  int iVar9;
  undefined4 uVar10;
  undefined8 uVar11;
  size_t sVar12;
  long lVar13;
  undefined8 uVar14;
  long lVar15;
  long lVar16;
  long *plVar17;
  void *__ptr;
  long *plVar18;
  char *pcVar19;
  byte *pbVar20;
  undefined8 *puVar21;
  undefined8 *puVar22;
  ulong uVar23;
  undefined8 uVar24;
  ulong uVar25;
  long *plVar26;
  undefined8 *puVar27;
  long lVar28;
  ulong uVar29;
  ulong uVar30;
  char *pcVar31;
  byte *pbVar32;
  long lVar33;
  ulong uVar34;
  byte bVar35;
  long *plVar36;
  ulong uVar37;
  bool bVar38;
  bool bVar39;
  byte bVar40;
  uint local_40;
  undefined4 uStack_3c;
  
  bVar40 = 0;
  if (DAT_0017fb98 != 0) {
    FUN_00112d70();
  }
  DAT_0017f440 = DAT_0017fcc8;
  FUN_00115a50(FUN_001182b0,DAT_0017f430);
  FUN_00113540();
  FUN_00123c10();
  for (puVar21 = DAT_0017f2e0; puVar21 != (undefined8 *)0x0; puVar21 = (undefined8 *)*puVar21) {
    FUN_00112b40(puVar21[1]);
  }
  iVar9 = bfd_section_already_linked_table_init();
  if (iVar9 == 0) {
    uVar11 = dcgettext(0,"%F%P: can not create hash table: %E\n",5);
    FUN_001251f0(uVar11);
  }
  _DAT_0017f2c0 = _DAT_0017f2c0 + 1;
  DAT_0017f440 = DAT_0017fcc8;
  FUN_00119910(DAT_0017f430,0);
  plVar3 = DAT_0017fa28;
  plVar26 = DAT_0017fa20;
  plVar18 = DAT_0017f2f8;
  plVar17 = DAT_0017f2f0;
  if ((DAT_0017fac1 & 2) != 0) {
    lVar16 = *(long *)PTR_DAT_0017e650;
    plVar36 = *(long **)(PTR_DAT_0017e650 + 8);
    iVar9 = FUN_00128bb0();
    if (iVar9 != 0) {
      uVar11 = FUN_00128550();
      uVar14 = dcgettext(0,"%F%P: %s: plugin reported error after all symbols read\n",5);
      FUN_001251f0(uVar14,uVar11);
    }
    FUN_00119910(*plVar36,0);
    puVar7 = PTR_DAT_0017e650;
    if (*(long *)PTR_DAT_0017e650 != lVar16) {
      FUN_001252b0("../../ld/ldlang.c",0x1baf);
    }
    plVar6 = *(long **)(puVar7 + 8);
    lVar16 = *plVar36;
    *(long **)(puVar7 + 8) = plVar36;
    *plVar36 = 0;
    if (DAT_0017f2f0 != plVar17) {
      FUN_001252b0("../../ld/ldlang.c",0x1baf);
    }
    plVar36 = DAT_0017f2f8;
    plVar17 = (long *)*plVar18;
    DAT_0017f2f8 = plVar18;
    *plVar18 = 0;
    if (DAT_0017fa20 != plVar26) {
      FUN_001252b0("../../ld/ldlang.c",0x1baf);
    }
    plVar26 = DAT_0017fa28;
    lVar15 = *plVar3;
    DAT_0017fa28 = plVar3;
    *plVar3 = 0;
    plVar18 = DAT_0017f2f0;
    plVar3 = DAT_0017fa20;
    if (lVar16 != 0) {
      for (; DAT_0017f380 = plVar3, plVar18 != (long *)0x0; plVar18 = (long *)plVar18[6]) {
        if ((*(byte *)((long)plVar18 + 0x49) & 0x20) != 0) {
          if ((*(byte *)((long)plVar18 + 0x49) & 0x40) == 0) goto LAB_0011d6c0;
          break;
        }
        if ((plVar18[4] != 0) && (*(long *)(plVar18[4] + 0xd0) == 0)) {
          DAT_0017f380 = plVar18;
        }
        plVar3 = DAT_0017f380;
      }
      plVar18 = DAT_0017f380;
      if (DAT_0017f380 == (long *)0x0) {
        FUN_001252b0("../../ld/ldlang.c",0x1c32);
        plVar18 = DAT_0017f380;
      }
LAB_0011d6c0:
      DAT_0017f380 = plVar18;
      plVar18 = DAT_0017f380;
      puVar7 = PTR_DAT_0017e650;
      *plVar6 = *DAT_0017f380;
      *plVar18 = lVar16;
      if (plVar18 == *(long **)(puVar7 + 8)) {
        *(long **)(puVar7 + 8) = plVar6;
      }
      *plVar26 = plVar18[7];
      bVar38 = DAT_0017fa28 == plVar18 + 7;
      plVar18[7] = lVar15;
      plVar3 = DAT_0017f2f8;
      if (bVar38) {
        DAT_0017fa28 = plVar26;
      }
      if (plVar18[2] == 0) {
        *plVar36 = (long)DAT_0017f2f0;
        DAT_0017f2f0 = plVar17;
        if ((long **)plVar3 != &DAT_0017f2f0) {
          plVar36 = DAT_0017f2f8;
        }
      }
      else {
        *plVar36 = plVar18[6];
        plVar18[6] = (long)plVar17;
        if (plVar3 != plVar18 + 6) {
          plVar36 = DAT_0017f2f8;
        }
      }
      DAT_0017f2f8 = plVar36;
      plVar18 = DAT_0017f2f8;
      plVar17 = DAT_0017f2f0;
      _DAT_0017f2c0 = _DAT_0017f2c0 + 1;
      FUN_00119910(DAT_0017f430);
      if (DAT_0017f2f0 != plVar17) {
        FUN_001252b0("../../ld/ldlang.c");
      }
      lVar16 = *plVar18;
      DAT_0017f2f8 = plVar18;
      *plVar18 = 0;
      while (lVar16 != 0) {
        lVar15 = *(long *)(*(long *)(lVar16 + 0x20) + 0xd0);
        lVar13 = *(long *)(lVar16 + 0x20);
        if (lVar15 != 0) {
          lVar13 = lVar15;
        }
        if (DAT_0017fa20 == (long *)0x0) {
LAB_0011dad0:
          plVar17 = DAT_0017f2f0;
        }
        else {
          plVar26 = (long *)0x0;
          plVar18 = DAT_0017fa20;
          plVar17 = (long *)0x0;
          do {
            while (plVar18[4] != lVar13) {
              if ((plVar18[4] != 0) && (plVar18[6] != 0)) {
                plVar26 = plVar18;
              }
              plVar18 = (long *)plVar18[7];
              if (plVar18 == (long *)0x0) goto LAB_0011d7f1;
            }
            lVar28 = plVar18[6];
            if (lVar28 != 0) {
              plVar17 = (long *)(lVar28 + 0x30);
              lVar13 = *(long *)(lVar28 + 0x30);
              goto LAB_0011d835;
            }
            plVar18 = (long *)plVar18[7];
            plVar17 = plVar26;
          } while (plVar18 != (long *)0x0);
LAB_0011d7f1:
          if (plVar17 == (long *)0x0) goto LAB_0011dad0;
        }
        plVar17 = plVar17 + 6;
        for (lVar13 = *plVar17; lVar13 != 0; lVar13 = *(long *)(lVar13 + 0x30)) {
          if (((*(byte *)(lVar13 + 0x49) & 0x40) == 0) &&
             (*(long *)(*(long *)(lVar13 + 0x20) + 0xd0) == 0)) {
            lVar13 = *plVar17;
            break;
          }
          plVar17 = (long *)(lVar13 + 0x30);
        }
LAB_0011d835:
        plVar18 = (long *)(lVar16 + 0x30);
        if (lVar15 == 0) {
          *plVar17 = lVar16;
          lVar15 = *(long *)(lVar16 + 0x30);
          *(long *)(lVar16 + 0x30) = lVar13;
          lVar16 = lVar15;
        }
        else {
          lVar28 = *(long *)(lVar16 + 0x30);
          if (lVar28 != 0) {
            lVar5 = *(long *)(*(long *)(lVar28 + 0x20) + 0xd0);
            while (lVar15 == lVar5) {
              plVar18 = (long *)(lVar28 + 0x30);
              lVar28 = *(long *)(lVar28 + 0x30);
              if (lVar28 == 0) break;
              lVar5 = *(long *)(*(long *)(lVar28 + 0x20) + 0xd0);
            }
          }
          *plVar17 = lVar16;
          lVar16 = *plVar18;
          *plVar18 = lVar13;
          if (*(long *)(lVar15 + 0x100) != 0) {
            *(long **)(*(long *)(lVar15 + 0x100) + 0x30) = plVar18 + -6;
          }
        }
      }
    }
  }
  if (DAT_0017fb38 != (undefined8 *)0x0) {
    FUN_001252b0("../../ld/ldlang.c",0x1c67);
  }
  DAT_0017fb38 = &DAT_0017f2e0;
  if (DAT_0017f2e8 == (undefined *)0x0) {
    DAT_0017fb38 = DAT_0017f2e0;
    if (PTR_s_start_0017e660 != (undefined *)0x0) {
      FUN_00115880();
    }
  }
  if (DAT_0017fb48 != 0) {
    FUN_00115880();
  }
  if (DAT_0017fb50 != 0) {
    FUN_00115880();
  }
  FUN_00123b90();
  if ((DAT_0017fc98 != 0) && (DAT_0017f3d0 != (undefined8 *)0x0)) {
    uVar11 = dcgettext(0,"\nAs-needed library included to satisfy reference by file (symbol)\n\n",5)
    ;
    FUN_001252f0(uVar11);
    for (puVar21 = DAT_0017f3d0; puVar21 != (undefined8 *)0x0; puVar21 = (undefined8 *)*puVar21) {
      FUN_001252f0(&DAT_0013efee,puVar21[1]);
      sVar12 = strlen((char *)puVar21[1]);
      if (0x1c < sVar12) {
        FUN_00124290();
        sVar12 = 0;
      }
      do {
        FUN_00124270();
        sVar12 = sVar12 + 1;
      } while (sVar12 != 0x1e);
      if (puVar21[2] != 0) {
        FUN_001252f0(&DAT_0013f279);
      }
      FUN_001252f0("(%pT)\n",puVar21[3]);
    }
  }
  bfd_section_already_linked_table_free();
  plVar17 = DAT_0017f2f0;
joined_r0x0011be7f:
  if (plVar17 != (long *)0x0) {
    do {
      if ((*(byte *)((long)plVar17 + 0x49) & 0x20) == 0) {
        lVar16 = plVar17[4];
        lVar13 = bfd_arch_get_compatible(lVar16,DAT_0017fb10,DAT_0017fbdc);
        lVar15 = DAT_0017fb10;
        if (((DAT_0017fac0 & 3) == 2) || ((DAT_0017fac3 & 8) != 0)) {
          if (lVar13 != 0) {
            puVar21 = *(undefined8 **)(lVar16 + 8);
            puVar27 = *(undefined8 **)(DAT_0017fb10 + 8);
            if ((*(int *)(puVar21 + 1) != *(int *)(puVar27 + 1)) &&
               ((*(byte *)(lVar16 + 0x44) & 0x20) != 0)) goto LAB_0011c12e;
            goto LAB_0011bed4;
          }
          if ((*(byte *)(lVar16 + 0x44) & 0x20) != 0) {
            puVar21 = *(undefined8 **)(lVar16 + 8);
            puVar27 = *(undefined8 **)(DAT_0017fb10 + 8);
LAB_0011c12e:
            uVar11 = *puVar27;
            uVar14 = *puVar21;
            uVar24 = dcgettext(0,
                               "%F%P: relocatable linking with relocations from format %s (%pB) to format %s (%pB) is not supported\n"
                               ,5);
            FUN_001251f0(uVar24,uVar14,lVar16,uVar11,lVar15);
            goto joined_r0x0011c167;
          }
        }
        else {
joined_r0x0011c167:
          if (lVar13 != 0) {
LAB_0011bed4:
            if (*(int *)(lVar16 + 0xa0) == 0) goto LAB_0011bf30;
            uVar11 = 0;
            if (DAT_0017fbd0 == 0) {
              uVar11 = bfd_set_error_handler(FUN_00112380);
            }
            iVar9 = (**(code **)(*(long *)(DAT_0017fb10 + 8) + 0x140))(lVar16,&DAT_0017fac0);
            if (iVar9 == 0) {
              if (DAT_0017fbd0 != 0) {
                uVar14 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);
                FUN_001251f0(uVar14,lVar16);
                goto LAB_0011c5b0;
              }
            }
            else {
LAB_0011c5b0:
              if (DAT_0017fbd0 != 0) goto code_r0x0011c5be;
            }
            bfd_set_error_handler(uVar11);
            goto LAB_0011bf30;
          }
        }
        if (DAT_0017fbd0 == 0) goto LAB_0011bf30;
        uVar11 = bfd_printable_name(DAT_0017fb10);
        uVar14 = bfd_printable_name(lVar16);
        uVar24 = dcgettext(0,
                           "%X%P: %s architecture of input file `%pB\' is incompatible with %s output\n"
                           ,5);
        FUN_001251f0(uVar24,uVar14,lVar16,uVar11);
        plVar17 = (long *)plVar17[6];
      }
      else {
LAB_0011bf30:
        plVar17 = (long *)plVar17[6];
      }
      if (plVar17 == (long *)0x0) break;
    } while( true );
  }
  if (DAT_0017fc30 != 0) {
    uVar11 = 0;
    for (plVar17 = DAT_0017f2f0; plVar17 != (long *)0x0; plVar17 = (long *)plVar17[6]) {
      lVar16 = bfd_get_section_by_name(plVar17[4],".exports");
      if (lVar16 != 0) {
        lVar15 = *(long *)(lVar16 + 0x38);
        pcVar31 = (char *)xmalloc(lVar15);
        iVar9 = bfd_get_section_contents(plVar17[4],lVar16,pcVar31,0,lVar15);
        if (iVar9 == 0) {
          uVar14 = dcgettext(0,"%X%P: unable to read .exports section contents\n",5);
          FUN_001251f0(uVar14,lVar16);
        }
        pcVar19 = pcVar31 + lVar15;
        for (; pcVar31 < pcVar19; pcVar31 = pcVar31 + sVar12 + 1) {
          uVar11 = FUN_0011b640(uVar11,pcVar31,0);
          sVar12 = strlen(pcVar31);
        }
        *(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) | 0x208000;
      }
    }
    uVar14 = FUN_0011b640(0,&DAT_0013f157,0,0);
    lVar15 = xcalloc(1,0x70);
    lVar16 = DAT_0017fc30;
    *(undefined8 *)(lVar15 + 0x18) = uVar11;
    *(undefined8 *)(lVar15 + 0x38) = uVar14;
    *(code **)(lVar15 + 0x68) = FUN_00112f60;
    *(undefined4 *)(lVar15 + 0x60) = 0xffffffff;
    FUN_0011b860(lVar16,lVar15,0);
  }
  FUN_0011eaa0();
  if ((DAT_0017fc4c != 0) &&
     (cVar8 = *(char *)(*(long *)(DAT_0017fb10 + 8) + 0x1c), DAT_0017fb20 != 0)) {
    lVar16 = DAT_0017fb20;
    do {
      for (puVar21 = *(undefined8 **)(lVar16 + 0x90); puVar21 != (undefined8 *)0x0;
          puVar21 = (undefined8 *)puVar21[2]) {
        while( true ) {
          pbVar4 = (byte *)*puVar21;
          bVar35 = *pbVar4;
          if (bVar35 == 0) break;
          bVar1 = _sch_istable[(ulong)bVar35 * 2];
          pbVar20 = pbVar4;
          while (((bVar1 & 0x8c) != 0 || (bVar35 == 0x5f))) {
            pbVar20 = pbVar20 + 1;
            bVar35 = *pbVar20;
            if (bVar35 == 0) goto LAB_0011d178;
            bVar1 = _sch_istable[(ulong)bVar35 * 2];
          }
          puVar21 = (undefined8 *)puVar21[2];
          if (puVar21 == (undefined8 *)0x0) goto LAB_0011d163;
        }
LAB_0011d178:
        sVar12 = strlen((char *)pbVar4);
        pcVar31 = (char *)xmalloc(sVar12 + 10);
        *pcVar31 = cVar8;
        sprintf(pcVar31 + (cVar8 != '\0'),"__start_%s",pbVar4);
        FUN_00112ee0(pcVar31,puVar21);
        pcVar31[1] = cVar8;
        builtin_strncpy(pcVar31 + (2 - (ulong)(cVar8 == '\0')),"__stop",6);
        FUN_00112ee0(pcVar31 + 1,puVar21);
        free(pcVar31);
      }
LAB_0011d163:
      lVar16 = *(long *)(lVar16 + 0xf0);
    } while (lVar16 != 0);
  }
  FUN_001188a0(1);
  puVar21 = DAT_0017f398;
joined_r0x0011bfdf:
  if (puVar21 != (undefined8 *)0x0) {
    do {
      if (puVar21[3] != 0) {
        FUN_00123150();
        uVar11 = DAT_0017fd20;
        if (DAT_0017fd38 == 0) {
          uVar11 = *puVar21;
          uVar14 = dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);
          FUN_001251f0(uVar14,uVar11);
        }
        else {
          puVar21[4] = DAT_0017fd20;
          puVar21[7] = uVar11;
        }
      }
      if (puVar21[6] != 0) {
        FUN_00123150();
        if (DAT_0017fd38 == 0) goto LAB_0011c1d0;
        puVar21[5] = DAT_0017fd20;
      }
      puVar21 = (undefined8 *)puVar21[2];
      if (puVar21 == (undefined8 *)0x0) break;
    } while( true );
  }
  DAT_0017fd00 = 0;
  if (((DAT_0017fac7 & 0x20) == 0) && (((DAT_0017fac0 & 3) != 2 || (DAT_0017fbc0 != 0)))) {
    if (DAT_0017fc6c == 0) {
      bfd_link_hash_traverse(DAT_0017fae8,FUN_001145f0,0);
    }
    else {
      if (DAT_0017fc6c == 2) {
        local_40 = 4;
        do {
          bfd_link_hash_traverse(DAT_0017fae8,FUN_001145f0,&local_40);
          local_40 = local_40 - 1;
        } while (local_40 != 0);
        local_40 = 0;
      }
      else {
        local_40 = 0;
        do {
          bfd_link_hash_traverse(DAT_0017fae8,FUN_001145f0,&local_40);
          local_40 = local_40 + 1;
        } while (local_40 < 5);
        local_40 = 0xffffffff;
      }
      bfd_link_hash_traverse(DAT_0017fae8,FUN_001145f0,&local_40);
    }
  }
  FUN_00119400(DAT_0017f430);
  bVar35 = DAT_0017fac0;
  plVar17 = DAT_0017f2f0;
  if ((DAT_0017fac0 & 3) == 2) {
    for (; plVar17 != (long *)0x0; plVar17 = (long *)plVar17[6]) {
      if ((*(byte *)((long)plVar17 + 0x49) & 0x20) == 0) {
        for (lVar16 = *(long *)(plVar17[4] + 0x90); lVar16 != 0; lVar16 = *(long *)(lVar16 + 0x10))
        {
          if ((*(uint *)(lVar16 + 0x20) & 0x2000) == 0) {
            *(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) & 0xffff7fff;
          }
        }
      }
    }
  }
  if ((bVar35 & 0x40) != 0) {
    (**(code **)(*(long *)(DAT_0017fb10 + 8) + 0x2f0))(DAT_0017fb10,&DAT_0017fac0);
  }
  lVar16 = DAT_0017fb20;
  if ((DAT_0017fac6 & 0x20) != 0) {
    for (; lVar16 != 0; lVar16 = *(long *)(lVar16 + 0xf0)) {
      iVar9 = bfd_link_check_relocs(lVar16,&DAT_0017fac0);
      if (iVar9 == 0) {
        DAT_0017fc44 = 0;
      }
    }
  }
  FUN_00123ba0();
  FUN_001124e0(DAT_0017f430);
  _DAT_0017f2c0 = _DAT_0017f2c0 + 1;
  FUN_00119520(DAT_0017f430,0,0);
  plVar18 = (long *)0x0;
  plVar26 = (long *)0x0;
  plVar17 = DAT_0017fa60;
  while (plVar36 = plVar17, plVar3 = (long *)*plVar36, plVar3 != (long *)0x0) {
    plVar17 = plVar3;
    if ((int)plVar3[1] == 0) {
      if ((plVar26 != (long *)0x0) && (plVar3 != (long *)plVar26[4])) {
        FUN_001252b0("../../ld/ldlang.c",0xea0);
        plVar17 = (long *)*plVar36;
      }
      *(int *)((long)plVar3 + 0x84) = -2 - *(int *)((long)plVar3 + 0x84);
      plVar26 = plVar3;
      if (plVar18 == (long *)0x0) {
        plVar18 = plVar3;
      }
    }
    else if ((int)plVar3[1] == 0xe) {
      lVar16 = FUN_00116e20(plVar3[2],0,0);
      if (lVar16 == 0) {
LAB_0011c415:
        lVar16 = plVar3[2];
        uVar11 = dcgettext(0,"%F%P: %s not found for insert\n",5);
        FUN_001251f0(uVar11,lVar16);
        plVar17 = DAT_0017f2f0;
        goto joined_r0x0011c458;
      }
      if ((int)plVar3[3] != 0) {
        do {
          lVar16 = *(long *)(lVar16 + 0x28);
          if (lVar16 == 0) goto LAB_0011c415;
        } while (*(int *)(lVar16 + 0x84) < 0);
      }
      if (plVar26 != (long *)0x0) {
        lVar15 = plVar18[5];
        lVar13 = plVar26[4];
        *(long *)(lVar15 + 0x20) = lVar13;
        if (lVar13 == 0) {
          DAT_0017fa68 = (long *)(lVar15 + 0x20);
        }
        else {
          *(long *)(lVar13 + 0x28) = lVar15;
        }
        plVar26[4] = *(long *)(lVar16 + 0x20);
        if (*(long *)(lVar16 + 0x20) == 0) {
          DAT_0017fa68 = plVar26 + 4;
        }
        else {
          *(long **)(*(long *)(lVar16 + 0x20) + 0x28) = plVar26;
        }
        plVar18[5] = lVar16;
        lVar13 = 0;
        lVar15 = 0;
        *(long **)(lVar16 + 0x20) = plVar18;
        do {
          *(int *)((long)plVar18 + 0x84) = -2 - *(int *)((long)plVar18 + 0x84);
          lVar28 = plVar18[7];
          if (((lVar28 != 0) && (*(long *)(lVar28 + 0xf0) != 0)) && (lVar13 = lVar28, lVar15 == 0))
          {
            lVar15 = lVar28;
          }
        } while ((plVar26 != plVar18) && (plVar18 = (long *)plVar18[4], plVar18 != (long *)0x0));
        plVar18 = (long *)0x0;
        if (lVar13 != 0) {
          lVar28 = *(long *)(lVar16 + 0x38);
          if (lVar28 == 0) {
            plVar18 = *(long **)(lVar16 + 0x28);
            if (plVar18 != (long *)0x0) {
              do {
                if (((-1 < *(int *)((long)plVar18 + 0x84)) && (lVar28 = plVar18[7], lVar28 != 0)) &&
                   (*(long *)(lVar28 + 0xf0) != 0)) goto LAB_0011cd61;
                plVar18 = (long *)plVar18[5];
              } while (plVar18 != (long *)0x0);
              plVar18 = (long *)0x0;
            }
          }
          else {
LAB_0011cd61:
            plVar18 = (long *)0x0;
            if (lVar28 != lVar13) {
              lVar5 = *(long *)(lVar15 + 0x18);
              lVar33 = *(long *)(lVar13 + 0x10);
              if (lVar5 == 0) {
                *(long *)(DAT_0017fb10 + 0x90) = lVar33;
              }
              else {
                *(long *)(lVar5 + 0x10) = lVar33;
                lVar33 = *(long *)(lVar13 + 0x10);
              }
              if (lVar33 == 0) {
                *(long *)(DAT_0017fb10 + 0x98) = lVar5;
              }
              else {
                *(long *)(lVar33 + 0x18) = lVar5;
              }
              lVar5 = *(long *)(lVar28 + 0x10);
              *(long *)(lVar13 + 0x10) = lVar5;
              if (lVar5 == 0) {
                *(long *)(DAT_0017fb10 + 0x98) = lVar13;
              }
              else {
                *(long *)(lVar5 + 0x18) = lVar13;
              }
              *(long *)(lVar15 + 0x18) = lVar28;
              plVar18 = (long *)0x0;
              *(long *)(lVar28 + 0x10) = lVar15;
            }
          }
        }
      }
      plVar17 = (long *)FUN_00112240(lVar16);
      lVar16 = *DAT_0017fa60;
      *DAT_0017fa60 = *(long *)*plVar36;
      lVar15 = *plVar17;
      *plVar36 = lVar15;
      if (lVar15 == 0) {
        DAT_0017f438 = plVar36;
      }
      *plVar17 = lVar16;
      plVar26 = (long *)0x0;
      plVar17 = DAT_0017fa60;
    }
  }
  for (; (plVar17 = DAT_0017f2f0, plVar18 != (long *)0x0 &&
         (*(int *)((long)plVar18 + 0x84) = -2 - *(int *)((long)plVar18 + 0x84),
         plVar17 = DAT_0017f2f0, plVar26 != plVar18)); plVar18 = (long *)plVar18[4]) {
  }
joined_r0x0011c458:
  for (; plVar17 != (long *)0x0; plVar17 = (long *)plVar17[6]) {
    puVar21 = *(undefined8 **)(plVar17[4] + 0x90);
joined_r0x0011c46e:
    if (puVar21 != (undefined8 *)0x0) {
      do {
        if (puVar21[0xd] == 0) {
          if ((*(byte *)(plVar17 + 9) & 0x10) != 0) goto code_r0x0011c493;
          iVar9 = FUN_00113350(*(undefined4 *)(puVar21 + 4));
          bVar38 = false;
          bVar39 = iVar9 == 0;
          if (bVar39) {
            pbVar4 = (byte *)*puVar21;
            lVar16 = 7;
            pbVar20 = pbVar4;
            pbVar32 = (byte *)"COMMON";
            do {
              if (lVar16 == 0) break;
              lVar16 = lVar16 + -1;
              bVar38 = *pbVar20 < *pbVar32;
              bVar39 = *pbVar20 == *pbVar32;
              pbVar20 = pbVar20 + (ulong)bVar40 * -2 + 1;
              pbVar32 = pbVar32 + (ulong)bVar40 * -2 + 1;
            } while (bVar39);
            if ((!bVar38 && !bVar39) == bVar38) {
              if (((DAT_0017fac0 & 3) != 2) || (DAT_0017fbc0 != 0)) {
                lVar16 = DAT_0017f458;
                if (DAT_0017f458 == 0) {
                  lVar16 = FUN_00116e20(".bss",0,1);
                  DAT_0017f458 = lVar16;
                }
LAB_0011c659:
                FUN_00117b90(lVar16 + 0x10,puVar21,0);
              }
            }
            else {
              if (DAT_0017fc5c == 1) {
                lVar16 = FUN_00116e20("/DISCARD/",0,1);
                if ((*(long *)(lVar16 + 0x58) == 0) &&
                   (((DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0)))) {
                  uVar11 = FUN_00123030(0);
                  *(undefined8 *)(lVar16 + 0x58) = uVar11;
                }
                goto LAB_0011c659;
              }
              if (DAT_0017fc5c == 3) {
                uVar11 = puVar21[0x1e];
                uVar14 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);
                FUN_001251f0(uVar14,puVar21,uVar11);
              }
              if ((DAT_0017fc78 == 0) && (iVar9 = FUN_001150a0(puVar21,0), iVar9 == 0)) {
                uVar10 = 0;
              }
              else {
                uVar10 = 0x17e;
              }
              lVar16 = FUN_00123c60(puVar21,pbVar4,uVar10);
              if (lVar16 == 0) {
                lVar16 = FUN_00116e20(pbVar4,uVar10,1);
                if ((*(long *)(lVar16 + 0x58) == 0) &&
                   (((DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0)))) {
                  uVar11 = FUN_00123030(0);
                  *(undefined8 *)(lVar16 + 0x58) = uVar11;
                }
                FUN_00117b90(lVar16 + 0x10,puVar21,0);
              }
              if (DAT_0017fc5c == 2) {
                uVar11 = puVar21[0x1e];
                uVar14 = dcgettext(0,
                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"
                                   ,5);
                FUN_001251f0(uVar14,puVar21,uVar11);
              }
            }
          }
          else {
            puVar21[0xd] = 0x17ed50;
          }
        }
        puVar21 = (undefined8 *)puVar21[2];
        if (puVar21 == (undefined8 *)0x0) break;
      } while( true );
    }
  }
  bVar35 = DAT_0017fac0 & 3;
  plVar17 = DAT_0017f358;
  plVar18 = DAT_0017fa60;
  lVar16 = DAT_0017fb10;
  if (bVar35 != 2) {
    (**(code **)(*(long *)(DAT_0017fb10 + 8) + 0x300))(DAT_0017fb10,&DAT_0017fac0);
    lVar16 = bfd_get_section_by_name(DAT_0017fb10,".text");
    if (lVar16 == 0) {
      bVar35 = DAT_0017fac0 & 3;
      plVar17 = DAT_0017f358;
      plVar18 = DAT_0017fa60;
      lVar16 = DAT_0017fb10;
    }
    else {
      bVar35 = DAT_0017fac0 & 3;
      if (DAT_0017fc70 == 0) {
        *(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) & 0xfffffff7;
        plVar17 = DAT_0017f358;
        plVar18 = DAT_0017fa60;
        lVar16 = DAT_0017fb10;
      }
      else {
        *(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) | 8;
        plVar17 = DAT_0017f358;
        plVar18 = DAT_0017fa60;
        lVar16 = DAT_0017fb10;
      }
    }
  }
  for (; DAT_0017f358 = plVar17, DAT_0017fb10 = lVar16, plVar18 != (long *)0x0;
      plVar18 = (long *)plVar18[4]) {
    lVar16 = plVar18[5];
    if ((((lVar16 != 0) && (plVar18[9] == 0)) && (plVar18[0xc] == 0)) &&
       ((plVar18[0xb] == 0 && (plVar18[8] == *(long *)(lVar16 + 0x40))))) {
      plVar18[9] = *(long *)(lVar16 + 0x48);
    }
    plVar17 = DAT_0017f358;
    lVar16 = DAT_0017fb10;
  }
  if ((DAT_0017fc4c != 0) && (DAT_0017f350 != 0)) {
    plVar18 = plVar17 + DAT_0017f350;
    do {
      lVar15 = *plVar17;
      if ((*(byte *)(lVar15 + 0x19) & 8) == 0) {
        puVar21 = (undefined8 *)(*(undefined8 **)(lVar15 + 0x28))[0xd];
        if (((puVar21 == (undefined8 *)0x0) || (puVar21[0x1e] != lVar16)) ||
           (iVar9 = strcmp((char *)**(undefined8 **)(lVar15 + 0x28),(char *)*puVar21), iVar9 != 0))
        {
          *(undefined1 *)(lVar15 + 0x18) = 1;
          *(undefined8 *)(lVar15 + 0x28) = 0;
        }
      }
      plVar17 = plVar17 + 1;
    } while (plVar18 != plVar17);
  }
  if (bVar35 != 2) {
    for (puVar21 = *(undefined8 **)(DAT_0017fb10 + 0x90); puVar21 != (undefined8 *)0x0;
        puVar21 = (undefined8 *)puVar21[2]) {
      pcVar31 = (char *)*puVar21;
      sVar12 = strlen(pcVar31);
      pcVar19 = (char *)xmalloc(sVar12 + 10);
      sprintf(pcVar19,".startof.%s",pcVar31);
      FUN_00112ee0(pcVar19,puVar21);
      builtin_strncpy(pcVar19 + 1,".size",5);
      FUN_00112ee0(pcVar19 + 1,puVar21);
      free(pcVar19);
    }
  }
  FUN_00123bc0();
  plVar17 = (long *)0x0;
  __ptr = (void *)xmalloc(0x50);
  uVar2 = 10;
  for (puVar21 = DAT_0017fa50; puVar21 != (undefined8 *)0x0; puVar21 = (undefined8 *)*puVar21) {
    uVar30 = 0;
    for (plVar18 = DAT_0017fa60; plVar18 != (long *)0x0; plVar18 = (long *)plVar18[4]) {
      if (-1 < *(int *)((long)plVar18 + 0x84)) {
        plVar26 = (long *)plVar18[0xe];
        if (plVar26 == (long *)0x0) {
          if (((*(int *)((long)plVar18 + 0x8c) != 2) && (plVar18[7] != 0)) &&
             (((*(byte *)(plVar18[7] + 0x20) & 1) != 0 &&
              (plVar26 = plVar17, plVar3 = plVar18, puVar21[2] != 3)))) {
            while( true ) {
              plVar17 = plVar26;
              if (plVar26 != (long *)0x0) goto LAB_0011c7fd;
              plVar3 = (long *)plVar3[4];
              if (plVar3 == (long *)0x0) break;
              plVar26 = (long *)plVar3[0xe];
            }
            plVar17 = (long *)0x0;
            dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);
            FUN_001251f0();
          }
        }
        else {
          plVar17 = plVar26;
          plVar3 = (long *)plVar18[7];
          while (plVar3 != (long *)0x0) {
LAB_0011c7fd:
            iVar9 = strcmp((char *)plVar26[1],(char *)puVar21[1]);
            uVar29 = uVar30;
            if (iVar9 == 0) {
              if (uVar2 <= (uint)uVar30) {
                uVar2 = uVar2 << 1;
                __ptr = (void *)xrealloc(__ptr,(ulong)uVar2 << 3);
              }
              uVar29 = (ulong)((uint)uVar30 + 1);
              *(long *)((long)__ptr + uVar30 * 8) = plVar18[7];
              *(undefined4 *)(plVar26 + 2) = 1;
            }
            plVar26 = (long *)*plVar26;
            uVar30 = uVar29;
            plVar3 = plVar26;
          }
        }
      }
    }
    uVar10 = 0;
    if (puVar21[5] != 0) {
      uVar10 = FUN_00123800(puVar21[5],0,"phdr flags");
    }
    lVar16 = puVar21[4];
    uVar11 = 0;
    if (lVar16 != 0) {
      uVar11 = FUN_00123800(lVar16,0,"phdr load address");
      lVar16 = puVar21[4];
    }
    iVar9 = bfd_record_phdr(DAT_0017fb10,puVar21[2],puVar21[5] != 0,uVar10,lVar16 != 0,uVar11,
                            *(undefined4 *)(puVar21 + 3),*(undefined4 *)((long)puVar21 + 0x1c),
                            uVar30,__ptr);
    if (iVar9 == 0) {
      dcgettext(0,"%F%P: bfd_record_phdr failed: %E\n",5);
      FUN_001251f0();
    }
  }
  free(__ptr);
  for (plVar17 = DAT_0017fa60; plVar17 != (long *)0x0; plVar17 = (long *)plVar17[4]) {
    if ((-1 < *(int *)((long)plVar17 + 0x84)) && (plVar17[7] != 0)) {
      plVar18 = (long *)plVar17[0xe];
joined_r0x0011c90a:
      if (plVar18 != (long *)0x0) {
        do {
          bVar38 = false;
          bVar39 = (int)plVar18[2] == 0;
          if (bVar39) {
            pbVar4 = (byte *)plVar18[1];
            lVar16 = 5;
            pbVar20 = pbVar4;
            pbVar32 = (byte *)0x130359;
            do {
              if (lVar16 == 0) break;
              lVar16 = lVar16 + -1;
              bVar38 = *pbVar20 < *pbVar32;
              bVar39 = *pbVar20 == *pbVar32;
              pbVar20 = pbVar20 + (ulong)bVar40 * -2 + 1;
              pbVar32 = pbVar32 + (ulong)bVar40 * -2 + 1;
            } while (bVar39);
            if ((!bVar38 && !bVar39) != bVar38) goto code_r0x0011c93b;
          }
          plVar18 = (long *)*plVar18;
          if (plVar18 == (long *)0x0) break;
        } while( true );
      }
    }
  }
  if (((DAT_0017fac3 & 0x10) != 0) && ((DAT_0017fac0 & 3) != 2)) {
    local_40 = 0;
    FUN_00119860(DAT_0017fd98,&local_40);
    if (local_40 == 0) {
      DAT_0017fac3 = DAT_0017fac3 & 0xef;
    }
  }
  FUN_0011a050(0,1 < DAT_0017fad8);
  FUN_00123bb0();
  lVar16 = DAT_0017fb10;
  uVar10 = DAT_0017f3c8;
  if (DAT_0017f350 != 0) {
    plVar17 = DAT_0017f358 + DAT_0017f350;
    plVar18 = DAT_0017f358;
    do {
      while (lVar15 = *plVar18, (*(ushort *)(lVar15 + 0x18) & 0x8ff) == 3) {
        pcVar31 = *(char **)(lVar15 + 8);
        if (*pcVar31 != '.') {
          cVar8 = *(char *)(*(long *)(lVar16 + 8) + 0x1c);
          lVar13 = *(long *)(*(long *)(lVar15 + 0x28) + 0x68);
          *(long *)(lVar15 + 0x28) = lVar13;
          if (pcVar31[(int)((cVar8 != '\0') + 4)] == 'o') {
            *(ulong *)(lVar15 + 0x30) = *(ulong *)(lVar13 + 0x38) >> ((byte)uVar10 & 0x3f);
          }
          break;
        }
        if (pcVar31[2] != 'i') break;
        plVar18 = plVar18 + 1;
        uVar30 = *(ulong *)(*(long *)(lVar15 + 0x28) + 0x38);
        *(undefined8 *)(lVar15 + 0x28) = 0x17ed50;
        *(ulong *)(lVar15 + 0x30) = uVar30 >> ((byte)uVar10 & 0x3f);
        if (plVar18 == plVar17) goto LAB_0011ca60;
      }
      plVar18 = plVar18 + 1;
    } while (plVar18 != plVar17);
  }
LAB_0011ca60:
  FUN_001188a0(4);
  FUN_00123be0();
  FUN_00123b20();
  puVar21 = DAT_0017f378;
  if (DAT_0017fbd8 != '\0') {
    cVar8 = bfd_arch_bits_per_address(DAT_0017fb10);
    puVar21 = *(undefined8 **)(DAT_0017fb10 + 0x90);
    uVar30 = (1L << (cVar8 - 1U & 0x3f)) * 2 - 1;
    if (puVar21 != (undefined8 *)0x0) {
      do {
        if ((*(byte *)(puVar21 + 4) & 1) != 0) {
          uVar29 = puVar21[5] + puVar21[7] & uVar30;
          if ((uVar29 == 0) || ((puVar21[5] & uVar30) <= uVar29)) {
            uVar29 = puVar21[7] + puVar21[6] & uVar30;
            if ((uVar29 == 0) || ((puVar21[6] & uVar30) <= uVar29)) goto LAB_0011d2f0;
            uVar11 = *puVar21;
            pcVar31 = "%X%P: section %s LMA wraps around address space\n";
          }
          else {
            uVar11 = *puVar21;
            pcVar31 = "%X%P: section %s VMA wraps around address space\n";
          }
          uVar14 = dcgettext(0,pcVar31,5);
          FUN_001251f0(uVar14,uVar11);
        }
LAB_0011d2f0:
        puVar21 = (undefined8 *)puVar21[2];
      } while (puVar21 != (undefined8 *)0x0);
    }
    puVar21 = DAT_0017f378;
    if (1 < *(uint *)(DAT_0017fb10 + 0xa0)) {
      uVar30 = 0;
      plVar17 = (long *)xmalloc((ulong)*(uint *)(DAT_0017fb10 + 0xa0) << 4);
      lVar16 = *(long *)(DAT_0017fb10 + 0x90);
      if (lVar16 != 0) {
        do {
          uVar29 = uVar30;
          if ((((*(uint *)(lVar16 + 0x20) & 1) != 0) &&
              ((*(uint *)(lVar16 + 0x20) & 0x402) != 0x400)) && (*(long *)(lVar16 + 0x38) != 0)) {
            uVar29 = uVar30 + 1;
            plVar17[uVar30 * 2] = lVar16;
            *(undefined4 *)(plVar17 + uVar30 * 2 + 1) = 0;
          }
          lVar16 = *(long *)(lVar16 + 0x10);
          uVar30 = uVar29;
        } while (lVar16 != 0);
        if (1 < uVar29) {
          qsort(plVar17,uVar29,0x10,FUN_00112320);
          puVar21 = (undefined8 *)0x0;
          plVar18 = plVar17;
          uVar30 = 0;
          uVar25 = 0;
          do {
            puVar27 = (undefined8 *)*plVar18;
            puVar22 = puVar21;
            uVar34 = uVar30;
            uVar23 = uVar25;
            if ((*(byte *)(puVar27 + 4) & 2) != 0) {
              uVar34 = puVar27[6];
              uVar23 = (uVar34 - 1) + ((ulong)puVar27[7] >> ((byte)DAT_0017f3c8 & 0x3f));
              puVar22 = puVar27;
              if ((puVar21 != (undefined8 *)0x0) && ((uVar34 <= uVar25 || (uVar25 < uVar30)))) {
                uVar11 = *puVar21;
                uVar14 = *puVar27;
                uVar24 = dcgettext(0,
                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",
                                   5);
                FUN_001251f0(uVar24,uVar14,uVar34,uVar23,uVar11,uVar30,uVar25);
                *(undefined4 *)(plVar18 + 1) = 1;
              }
            }
            plVar18 = plVar18 + 2;
            puVar21 = puVar22;
            uVar30 = uVar34;
            uVar25 = uVar23;
          } while (plVar18 != plVar17 + uVar29 * 2);
          qsort(plVar17,uVar29,0x10,FUN_00112350);
          puVar21 = (undefined8 *)*plVar17;
          uVar23 = 1;
          uVar30 = puVar21[5];
          uVar25 = uVar30;
          do {
            lVar16 = uVar23 * 2;
            if (*(ulong *)(plVar17[lVar16] + 0x28) == uVar25) goto LAB_0011d4c4;
            uVar23 = uVar23 + 1;
            uVar25 = *(ulong *)(plVar17[lVar16] + 0x28);
          } while (uVar23 != uVar29);
          uVar23 = 0;
          uVar25 = (uVar30 - 1) + ((ulong)puVar21[7] >> ((byte)DAT_0017f3c8 & 0x3f));
          plVar18 = plVar17;
          while( true ) {
            uVar37 = uVar25;
            uVar34 = uVar30;
            puVar27 = puVar21;
            plVar26 = plVar18 + 2;
            uVar23 = uVar23 + 1;
            if (uVar23 == uVar29) break;
            puVar21 = (undefined8 *)*plVar26;
            plVar3 = plVar18 + 3;
            uVar30 = puVar21[5];
            uVar25 = (uVar30 - 1) + ((ulong)puVar21[7] >> ((byte)DAT_0017f3c8 & 0x3f));
            plVar18 = plVar26;
            if (((int)*plVar3 == 0) && ((uVar30 <= uVar37 || (uVar37 < uVar34)))) {
              uVar11 = *puVar27;
              uVar14 = *puVar21;
              uVar24 = dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",
                                 5);
              FUN_001251f0(uVar24,uVar14,uVar30,uVar25,uVar11,uVar34,uVar37);
            }
          }
LAB_0011d4c4:
          free(plVar17);
          for (puVar27 = DAT_0017f398; puVar21 = DAT_0017f378, puVar27 != (undefined8 *)0x0;
              puVar27 = (undefined8 *)puVar27[2]) {
            if (*(int *)(puVar27 + 10) != 0) {
              uVar11 = *puVar27;
              lVar16 = puVar27[7] - (puVar27[5] + puVar27[4]);
              uVar14 = dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",
                                  "%X%P: region `%s\' overflowed by %lu bytes\n",lVar16,5);
              FUN_001251f0(uVar14,uVar11,lVar16);
            }
          }
          goto joined_r0x0011ca92;
        }
      }
      free(plVar17);
      puVar21 = DAT_0017f378;
    }
  }
joined_r0x0011ca92:
  for (; puVar21 != (undefined8 *)0x0; puVar21 = (undefined8 *)puVar21[1]) {
    lVar16 = bfd_link_hash_lookup(DAT_0017fae8,*puVar21,0,0,1);
    if ((lVar16 == 0) || (1 < (byte)(*(char *)(lVar16 + 0x18) - 3U))) {
      uVar11 = *puVar21;
      uVar14 = dcgettext(0,"%X%P: required symbol `%s\' not defined\n",5);
      FUN_001251f0(uVar14,uVar11);
    }
  }
  iVar9 = DAT_0017fa0c;
  if (((DAT_0017fac0 & 0x43) != 2) && ((DAT_0017fac0 & 3) != 3)) {
    iVar9 = 1;
  }
  if (((DAT_0017fac0 & 0x43) == 0x42) && (DAT_0017fa0c == 0 && _DAT_0017fa08 == 0)) {
    uVar11 = dcgettext(0,"%F%P: gc-sections requires either an entry or an undefined symbol\n",5);
    FUN_001251f0(uVar11);
  }
  if (DAT_0017f2e8 == (undefined *)0x0) {
    DAT_0017f2e8 = PTR_s_start_0017e660;
    iVar9 = 0;
  }
  lVar16 = bfd_link_hash_lookup(DAT_0017fae8,DAT_0017f2e8,0,0,1);
  if ((lVar16 != 0) && ((byte)(*(char *)(lVar16 + 0x18) - 3U) < 2)) {
    lVar15 = *(long *)(*(long *)(lVar16 + 0x28) + 0x68);
    if (lVar15 != 0) {
      iVar9 = bfd_set_start_address
                        (DAT_0017fb10,
                         *(long *)(lVar15 + 0x28) +
                         *(long *)(*(long *)(lVar16 + 0x28) + 0x60) + *(long *)(lVar16 + 0x30));
      if (iVar9 != 0) {
        return;
      }
      pcVar31 = "%F%P: %s: can\'t set start address\n";
      goto LAB_0011cf37;
    }
  }
  uVar11 = bfd_scan_vma(DAT_0017f2e8,&local_40,0);
  if (*(char *)CONCAT44(uStack_3c,local_40) == '\0') {
    iVar9 = bfd_set_start_address(DAT_0017fb10,uVar11);
  }
  else {
    lVar16 = bfd_get_section_by_name(DAT_0017fb10,PTR_s__text_0017e648);
    puVar7 = DAT_0017f2e8;
    if (lVar16 == 0) {
      if (iVar9 == 0) {
        return;
      }
      pcVar31 = "%P: warning: cannot find entry symbol %s; not setting start address\n";
LAB_0011cf37:
      puVar7 = DAT_0017f2e8;
      uVar11 = dcgettext(0,pcVar31,5);
      FUN_001251f0(uVar11,puVar7);
      return;
    }
    uVar11 = *(undefined8 *)(lVar16 + 0x28);
    if (iVar9 != 0) {
      uVar14 = dcgettext(0,"%P: warning: cannot find entry symbol %s; defaulting to %V\n",5);
      FUN_001251f0(uVar14,puVar7,uVar11);
      uVar11 = *(undefined8 *)(lVar16 + 0x28);
    }
    iVar9 = bfd_set_start_address(DAT_0017fb10,uVar11);
  }
  if (iVar9 != 0) {
    return;
  }
  uVar11 = dcgettext(0,"%F%P: can\'t set start address\n",5);
  FUN_001251f0(uVar11);
  return;
code_r0x0011c5be:
  plVar17 = (long *)plVar17[6];
  goto joined_r0x0011be7f;
LAB_0011c1d0:
  uVar11 = *puVar21;
  uVar14 = dcgettext(0,"%F%P: invalid length for memory region %s\n",5);
  FUN_001251f0(uVar14,uVar11);
  puVar21 = (undefined8 *)puVar21[2];
  goto joined_r0x0011bfdf;
code_r0x0011c493:
  (**(code **)(*(long *)(plVar17[4] + 8) + 0x2c8))(puVar21,&DAT_0017fac0);
  puVar21 = (undefined8 *)puVar21[2];
  goto joined_r0x0011c46e;
code_r0x0011c93b:
  lVar16 = plVar17[6];
  uVar11 = dcgettext(0,"%X%P: section `%s\' assigned to non-existent phdr `%s\'\n",5);
  FUN_001251f0(uVar11,lVar16,pbVar4);
  plVar18 = (long *)*plVar18;
  goto joined_r0x0011c90a;
}


PUSH R15
PUSH R14
PUSH R13
PUSH R12
PUSH RBP
PUSH RBX
SUB RSP,0x48
MOV RDI,qword ptr [0x0017fb98]
TEST RDI,RDI
JZ 0x0011bcbf
CALL 0x00112d70
MOV RAX,qword ptr [0x0017fcc8]
MOV RSI,qword ptr [0x0017f430]
LEA RDI,[0x1182b0]
MOV qword ptr [0x0017f440],RAX
CALL 0x00115a50
CALL 0x00113540
CALL 0x00123c10
MOV RBX,qword ptr [0x0017f2e0]
TEST RBX,RBX
JZ 0x0011bd11
NOP word ptr CS:[RAX + RAX*0x1]
MOV RDI,qword ptr [RBX + 0x8]
CALL 0x00112b40
MOV RBX,qword ptr [RBX]
TEST RBX,RBX
JNZ 0x0011bd00
CALL 0x00109b60
TEST EAX,EAX
JZ 0x0011d540
MOV RAX,qword ptr [0x0017fcc8]
MOV RDI,qword ptr [0x0017f430]
XOR ESI,ESI
ADD dword ptr [0x0017f2c0],0x1
MOV qword ptr [0x0017f440],RAX
CALL 0x00119910
TEST byte ptr [0x0017fac1],0x2
JNZ 0x0011d568
CMP qword ptr [0x0017fb38],0x0
JZ 0x0011bd69
MOV ESI,0x1c67
LEA RDI,[0x13ee66]
CALL 0x001252b0
LEA RAX,[0x17f2e0]
CMP qword ptr [0x0017f2e8],0x0
MOV qword ptr [0x0017fb38],RAX
JZ 0x0011d8b8
MOV RDI,qword ptr [0x0017fb48]
TEST RDI,RDI
JZ 0x0011bd96
CALL 0x00115880
MOV RDI,qword ptr [0x0017fb50]
TEST RDI,RDI
JZ 0x0011bda7
CALL 0x00115880
CALL 0x00123b90
CMP qword ptr [0x0017fc98],0x0
JZ 0x0011be69
CMP qword ptr [0x0017f3d0],0x0
JZ 0x0011be69
MOV EDX,0x5
LEA RSI,[0x13fc70]
XOR EDI,EDI
CALL 0x001092e0
MOV RDI,RAX
XOR EAX,EAX
CALL 0x001252f0
MOV RBP,qword ptr [0x0017f3d0]
TEST RBP,RBP
JZ 0x0011be69
LEA R12,[0x13efee]
NOP dword ptr [RAX + RAX*0x1]
MOV RSI,qword ptr [RBP + 0x8]
MOV RDI,R12
XOR EAX,EAX
CALL 0x001252f0
MOV RDI,qword ptr [RBP + 0x8]
CALL 0x00109310
MOV RBX,RAX
CMP RAX,0x1c
JA 0x0011cf90
NOP dword ptr [RAX]
CALL 0x00124270
ADD RBX,0x1
CMP RBX,0x1e
JNZ 0x0011be28
MOV RSI,qword ptr [RBP + 0x10]
TEST RSI,RSI
JZ 0x0011be4e
LEA RDI,[0x13f279]
XOR EAX,EAX
CALL 0x001252f0
MOV RSI,qword ptr [RBP + 0x18]
LEA RDI,[0x13f27e]
XOR EAX,EAX
CALL 0x001252f0
MOV RBP,qword ptr [RBP]
TEST RBP,RBP
JNZ 0x0011be00
CALL 0x00109ba0
MOV RBX,qword ptr [0x0017f2f0]
LEA R12,[0x17fac0]
TEST RBX,RBX
JZ 0x0011bf3d
NOP dword ptr [RAX]
TEST byte ptr [RBX + 0x49],0x20
JNZ 0x0011bf30
MOV RBP,qword ptr [RBX + 0x20]
MOV EDX,dword ptr [0x0017fbdc]
MOV RSI,qword ptr [0x0017fb10]
MOV RDI,RBP
CALL 0x00109480
MOV R13,RAX
MOVZX EAX,byte ptr [R12]
AND EAX,0x3
CMP AL,0x2
JZ 0x0011c100
TEST byte ptr [0x0017fac3],0x8
JNZ 0x0011c100
TEST R13,R13
JZ 0x0011c170
MOV EAX,dword ptr [RBP + 0xa0]
TEST EAX,EAX
JZ 0x0011bf30
MOV EAX,dword ptr [0x0017fbd0]
XOR R13D,R13D
TEST EAX,EAX
JZ 0x0011d020
MOV RAX,qword ptr [0x0017fb10]
LEA RSI,[0x17fac0]
MOV RDI,RBP
MOV RAX,qword ptr [RAX + 0x8]
CALL qword ptr [RAX + 0x140]
TEST EAX,EAX
JNZ 0x0011c5b0
MOV EAX,dword ptr [0x0017fbd0]
TEST EAX,EAX
JNZ 0x0011c590
MOV RDI,R13
CALL 0x001095f0
NOP dword ptr [RAX + RAX*0x1]
MOV RBX,qword ptr [RBX + 0x30]
TEST RBX,RBX
JNZ 0x0011be88
CMP qword ptr [0x0017fc30],0x0
JZ 0x0011bfaf
MOV RBP,qword ptr [0x0017f2f0]
XOR R13D,R13D
TEST RBP,RBP
JNZ 0x0011c0e1
NOP word ptr [RAX + RAX*0x1]
XOR ECX,ECX
XOR EDX,EDX
LEA RSI,[0x13f157]
XOR EDI,EDI
CALL 0x0011b640
MOV ESI,0x70
MOV EDI,0x1
MOV RBX,RAX
CALL 0x00109bb0
LEA RCX,[0x112f60]
MOV RDI,qword ptr [0x0017fc30]
XOR EDX,EDX
MOV qword ptr [RAX + 0x18],R13
MOV RSI,RAX
MOV qword ptr [RAX + 0x38],RBX
MOV qword ptr [RAX + 0x68],RCX
MOV dword ptr [RAX + 0x60],0xffffffff
CALL 0x0011b860
CALL 0x0011eaa0
MOV R15D,dword ptr [0x0017fc4c]
TEST R15D,R15D
JNZ 0x0011d0d0
MOV EDI,0x1
LEA RBP,[0x13fdd8]
CALL 0x001188a0
MOV RBX,qword ptr [0x0017f398]
TEST RBX,RBX
JNZ 0x0011c035
JMP 0x0011c200
MOV RAX,qword ptr [0x0017fd20]
MOV qword ptr [RBX + 0x20],RAX
MOV qword ptr [RBX + 0x38],RAX
MOV RDI,qword ptr [RBX + 0x30]
TEST RDI,RDI
JZ 0x0011c028
CALL 0x00123150
MOV R13D,dword ptr [0x0017fd38]
TEST R13D,R13D
JZ 0x0011c1d0
MOV RAX,qword ptr [0x0017fd20]
MOV qword ptr [RBX + 0x28],RAX
MOV RBX,qword ptr [RBX + 0x10]
TEST RBX,RBX
JZ 0x0011c200
MOV RDI,qword ptr [RBX + 0x18]
TEST RDI,RDI
JZ 0x0011bfff
CALL 0x00123150
MOV R14D,dword ptr [0x0017fd38]
TEST R14D,R14D
JNZ 0x0011bff0
MOV R13,qword ptr [RBX]
MOV RSI,RBP
XOR EDI,EDI
MOV EDX,0x5
CALL 0x001092e0
MOV RDI,RAX
MOV RSI,R13
XOR EAX,EAX
CALL 0x001251f0
JMP 0x0011bfff
MOV RBX,qword ptr [RAX + 0x38]
MOV RDI,RBX
CALL 0x00109c50
MOV RDI,qword ptr [RBP + 0x20]
XOR ECX,ECX
MOV R8,RBX
MOV RDX,RAX
MOV RSI,R14
MOV R15,RAX
CALL 0x00109300
TEST EAX,EAX
JZ 0x0011cdc0
ADD RBX,R15
CMP R15,RBX
JNC 0x0011c0cc
NOP dword ptr [RAX + RAX*0x1]
MOV RSI,R15
MOV RDI,R13
XOR ECX,ECX
XOR EDX,EDX
CALL 0x0011b640
MOV RDI,R15
MOV R13,RAX
CALL 0x00109310
LEA R15,[R15 + RAX*0x1 + 0x1]
CMP R15,RBX
JC 0x0011c0a8
OR dword ptr [R14 + 0x20],0x208000
MOV RBP,qword ptr [RBP + 0x30]
TEST RBP,RBP
JZ 0x0011bf60
MOV RDI,qword ptr [RBP + 0x20]
LEA RSI,[0x13f285]
CALL 0x00109500
MOV R14,RAX
TEST RAX,RAX
JZ 0x0011c0d4
JMP 0x0011c070
TEST R13,R13
JZ 0x0011cc58
MOV R14,qword ptr [0x0017fb10]
MOV RAX,qword ptr [RBP + 0x8]
MOV RDX,qword ptr [R14 + 0x8]
MOV ECX,dword ptr [RDX + 0x8]
CMP dword ptr [RAX + 0x8],ECX
JZ 0x0011bed4
TEST byte ptr [RBP + 0x44],0x20
JZ 0x0011bed4
MOV RCX,qword ptr [RDX]
XOR EDI,EDI
MOV R15,qword ptr [RAX]
MOV EDX,0x5
LEA RSI,[0x13fcb8]
MOV qword ptr [RSP + 0x8],RCX
CALL 0x001092e0
MOV RCX,qword ptr [RSP + 0x8]
MOV R8,R14
MOV RDX,RBP
MOV RDI,RAX
MOV RSI,R15
XOR EAX,EAX
CALL 0x001251f0
TEST R13,R13
JNZ 0x0011bed4
NOP dword ptr [RAX]
MOV EAX,dword ptr [0x0017fbd0]
TEST EAX,EAX
JZ 0x0011bf30
MOV RDI,qword ptr [0x0017fb10]
CALL 0x001095d0
MOV RDI,RBP
MOV R14,RAX
CALL 0x001095d0
MOV EDX,0x5
LEA RSI,[0x13fd20]
XOR EDI,EDI
MOV R13,RAX
CALL 0x001092e0
MOV RCX,R14
MOV RDX,RBP
MOV RSI,R13
MOV RDI,RAX
XOR EAX,EAX
CALL 0x001251f0
MOV RBX,qword ptr [RBX + 0x30]
TEST RBX,RBX
JNZ 0x0011be88
JMP 0x0011bf3d
MOV R13,qword ptr [RBX]
MOV EDX,0x5
LEA RSI,[0x13fe08]
XOR EDI,EDI
CALL 0x001092e0
MOV RDI,RAX
MOV RSI,R13
XOR EAX,EAX
CALL 0x001251f0
MOV RBX,qword ptr [RBX + 0x10]
TEST RBX,RBX
JNZ 0x0011c035
MOV dword ptr [0x0017fd00],0x0
TEST byte ptr [0x0017fac7],0x20
JNZ 0x0011c2a0
MOVZX EAX,byte ptr [0x0017fac0]
AND EAX,0x3
CMP AL,0x2
JZ 0x0011cf60
MOV EAX,dword ptr [0x0017fc6c]
MOV RDI,qword ptr [0x0017fae8]
TEST EAX,EAX
JZ 0x0011d9d8
CMP EAX,0x2
JZ 0x0011db00
MOV dword ptr [RSP + 0x38],0x0
LEA RBX,[RSP + 0x38]
LEA RBP,[0x1145f0]
JMP 0x0011c267
MOV RDI,qword ptr [0x0017fae8]
MOV RDX,RBX
MOV RSI,RBP
CALL 0x00109850
MOV EAX,dword ptr [RSP + 0x38]
ADD EAX,0x1
MOV dword ptr [RSP + 0x38],EAX
CMP EAX,0x4
JBE 0x0011c260
MOV dword ptr [RSP + 0x38],0xffffffff
MOV RDI,qword ptr [0x0017fae8]
MOV RDX,RBX
LEA RSI,[0x1145f0]
CALL 0x00109850
MOV RDI,qword ptr [0x0017f430]
CALL 0x00119400
MOVZX ESI,byte ptr [0x0017fac0]
MOV EAX,ESI
AND EAX,0x3
CMP AL,0x2
JZ 0x0011d070
AND ESI,0x40
JZ 0x0011c2dd
MOV RDI,qword ptr [0x0017fb10]
LEA RSI,[0x17fac0]
MOV RAX,qword ptr [RDI + 0x8]
CALL qword ptr [RAX + 0x2f0]
TEST byte ptr [0x0017fac6],0x20
JNZ 0x0011ce30
CALL 0x00123ba0
MOV RDI,qword ptr [0x0017f430]
XOR R13D,R13D
XOR EBX,EBX
CALL 0x001124e0
MOV RDI,qword ptr [0x0017f430]
XOR EDX,EDX
XOR ESI,ESI
ADD dword ptr [0x0017f2c0],0x1
CALL 0x00119520
MOV R15,qword ptr [0x0017fa60]
MOV ECX,0xfffffffe
JMP 0x0011c37b
MOV RAX,RBP
TEST R13,R13
JZ 0x0011c359
CMP RBP,qword ptr [R13 + 0x20]
JZ 0x0011c359
MOV ESI,0xea0
LEA RDI,[0x13ee66]
MOV qword ptr [RSP + 0x8],RBP
CALL 0x001252b0
MOV RBP,qword ptr [R15]
MOV RAX,qword ptr [RSP + 0x8]
MOV ECX,0xfffffffe
MOV EDX,ECX
SUB EDX,dword ptr [R14 + 0x84]
MOV R13,RAX
MOV dword ptr [R14 + 0x84],EDX
MOV R14,RBP
TEST RBX,RBX
JZ 0x0011c580
MOV R15,R14
MOV RBP,qword ptr [R15]
MOV R14,RBP
TEST RBP,RBP
JZ 0x0011c5d0
MOV EAX,dword ptr [RBP + 0x8]
TEST EAX,EAX
JZ 0x0011c328
CMP EAX,0xe
JNZ 0x0011c378
MOV RDI,qword ptr [RBP + 0x10]
XOR EDX,EDX
XOR ESI,ESI
CALL 0x00116e20
TEST RAX,RAX
JZ 0x0011c415
MOV R10D,dword ptr [RBP + 0x18]
MOV ECX,0xfffffffe
TEST R10D,R10D
JNZ 0x0011c40c
TEST R13,R13
JNZ 0x0011ccc8
MOV RDI,RAX
CALL 0x00112240
MOV RDI,qword ptr [R15]
MOV ECX,0xfffffffe
MOV RDX,qword ptr [0x0017fa60]
MOV RDI,qword ptr [RDI]
MOV RSI,qword ptr [RDX]
MOV qword ptr [RDX],RDI
MOV RDX,qword ptr [RAX]
TEST RDX,RDX
MOV qword ptr [R15],RDX
JZ 0x0011d038
MOV qword ptr [RAX],RSI
XOR R13D,R13D
MOV R14,qword ptr [0x0017fa60]
JMP 0x0011c378
MOV R9D,dword ptr [RAX + 0x84]
TEST R9D,R9D
JNS 0x0011c3b6
MOV RAX,qword ptr [RAX + 0x28]
TEST RAX,RAX
JNZ 0x0011c400
MOV RBX,qword ptr [RBP + 0x10]
LEA RSI,[0x1401d8]
XOR EDI,EDI
MOV EDX,0x5
CALL 0x001092e0
MOV RDI,RAX
MOV RSI,RBX
XOR EAX,EAX
CALL 0x001251f0
NOP dword ptr [RAX]
MOV R14,qword ptr [0x0017f2f0]
LEA R13,[0x13f1fc]
LEA RBP,[0x17ed50]
TEST R14,R14
JZ 0x0011c4c1
NOP word ptr [RAX + RAX*0x1]
MOV RAX,qword ptr [R14 + 0x20]
MOV RBX,qword ptr [RAX + 0x90]
TEST RBX,RBX
JNZ 0x0011c481
JMP 0x0011c4b8
MOV RBX,qword ptr [RBX + 0x10]
TEST RBX,RBX
JZ 0x0011c4b8
CMP qword ptr [RBX + 0x68],0x0
JNZ 0x0011c478
TEST byte ptr [R14 + 0x48],0x10
JZ 0x0011c608
MOV RAX,qword ptr [R14 + 0x20]
MOV RDI,RBX
LEA RSI,[0x17fac0]
MOV RAX,qword ptr [RAX + 0x8]
CALL qword ptr [RAX + 0x2c8]
MOV RBX,qword ptr [RBX + 0x10]
TEST RBX,RBX
JNZ 0x0011c481
NOP dword ptr [RAX]
MOV R14,qword ptr [R14 + 0x30]
TEST R14,R14
JNZ 0x0011c460
MOVZX R12D,byte ptr [0x0017fac0]
AND R12D,0x3
CMP R12B,0x2
JZ 0x0011c52a
MOV RDI,qword ptr [0x0017fb10]
LEA RSI,[0x17fac0]
MOV RAX,qword ptr [RDI + 0x8]
CALL qword ptr [RAX + 0x300]
MOV RDI,qword ptr [0x0017fb10]
LEA RSI,[0x172738]
CALL 0x00109500
TEST RAX,RAX
JZ 0x0011d9c0
MOVZX R12D,byte ptr [0x0017fac0]
MOV ECX,dword ptr [0x0017fc70]
MOV EDX,dword ptr [RAX + 0x20]
AND R12D,0x3
TEST ECX,ECX
JZ 0x0011d938
OR EDX,0x8
MOV dword ptr [RAX + 0x20],EDX
MOV RAX,qword ptr [0x0017fa60]
TEST RAX,RAX
JNZ 0x0011c54d
JMP 0x0011c750
MOV RAX,qword ptr [RAX + 0x20]
TEST RAX,RAX
JZ 0x0011c750
MOV RDX,qword ptr [RAX + 0x28]
TEST RDX,RDX
JZ 0x0011c540
CMP qword ptr [RAX + 0x48],0x0
JNZ 0x0011c540
CMP qword ptr [RAX + 0x60],0x0
JNZ 0x0011c540
CMP qword ptr [RAX + 0x58],0x0
JNZ 0x0011c540
MOV RCX,qword ptr [RDX + 0x40]
CMP qword ptr [RAX + 0x40],RCX
JNZ 0x0011c540
MOV RDX,qword ptr [RDX + 0x48]
MOV qword ptr [RAX + 0x48],RDX
JMP 0x0011c540
MOV RBX,RAX
JMP 0x0011c378
LEA RSI,[0x13fd70]
XOR EDI,EDI
MOV EDX,0x5
CALL 0x001092e0
MOV RSI,RBP
MOV RDI,RAX
XOR EAX,EAX
CALL 0x001251f0
MOV EAX,dword ptr [0x0017fbd0]
TEST EAX,EAX
JZ 0x0011bf20
MOV RBX,qword ptr [RBX + 0x30]
TEST RBX,RBX
JNZ 0x0011be88
JMP 0x0011bf3d
TEST RBX,RBX
JZ 0x0011c440
MOV EDX,0xfffffffe
JMP 0x0011c5ed
MOV RBX,qword ptr [RBX + 0x20]
TEST RBX,RBX
JZ 0x0011c440
MOV EAX,EDX
SUB EAX,dword ptr [RBX + 0x84]
MOV dword ptr [RBX + 0x84],EAX
CMP R13,RBX
JNZ 0x0011c5e0
JMP 0x0011c440
MOV EDI,dword ptr [RBX + 0x20]
CALL 0x00113350
TEST EAX,EAX
JZ 0x0011c620
MOV qword ptr [RBX + 0x68],RBP
JMP 0x0011c478
MOV R9,qword ptr [RBX]
MOV ECX,0x7
MOV RDI,R13
MOV RSI,R9
CMPSB.REPE RDI,RSI
SETA AL
SBB AL,0x0
TEST AL,AL
JNZ 0x0011c670
MOVZX EAX,byte ptr [R12]
AND EAX,0x3
CMP AL,0x2
JZ 0x0011c710
MOV RCX,qword ptr [0x0017f458]
TEST RCX,RCX
JZ 0x0011c72e
LEA RDI,[RCX + 0x10]
XOR EDX,EDX
MOV RSI,RBX
CALL 0x00117b90
JMP 0x0011c478
MOV EAX,dword ptr [0x0017fc5c]
CMP EAX,0x1
JZ 0x0011d860
CMP EAX,0x3
JZ 0x0011d8f8
MOV ESI,dword ptr [0x0017fc78]
TEST ESI,ESI
JZ 0x0011d048
MOV ECX,0x17e
MOV EDX,ECX
MOV RSI,R9
MOV RDI,RBX
MOV dword ptr [RSP + 0x10],ECX
MOV qword ptr [RSP + 0x8],R9
CALL 0x00123c60
MOV R9,qword ptr [RSP + 0x8]
MOV ECX,dword ptr [RSP + 0x10]
TEST RAX,RAX
MOV R15,RAX
JZ 0x0011d948
CMP dword ptr [0x0017fc5c],0x2
JNZ 0x0011c478
MOV RCX,qword ptr [R15 + 0x30]
XOR EDI,EDI
MOV R15,qword ptr [RBX + 0xf0]
MOV EDX,0x5
LEA RSI,[0x13fe70]
MOV qword ptr [RSP + 0x8],RCX
CALL 0x001092e0
MOV RCX,qword ptr [RSP + 0x8]
MOV RDX,R15
MOV RSI,RBX
MOV RDI,RAX
XOR EAX,EAX
CALL 0x001251f0
JMP 0x0011c478
MOV EDI,dword ptr [0x0017fbc0]
TEST EDI,EDI
JZ 0x0011c478
MOV RCX,qword ptr [0x0017f458]
TEST RCX,RCX
JNZ 0x0011c659
MOV EDX,0x1
XOR ESI,ESI
LEA RDI,[0x17271f]
CALL 0x00116e20
MOV RCX,RAX
MOV qword ptr [0x0017f458],RAX
JMP 0x0011c659
MOV EAX,dword ptr [0x0017fc4c]
TEST EAX,EAX
JNZ 0x0011d200
CMP R12B,0x2
JNZ 0x0011cfa0
CALL 0x00123bc0
MOV EDI,0x50
XOR EBP,EBP
CALL 0x00109c50
MOV R15,qword ptr [0x0017fa50]
MOV dword ptr [RSP + 0x8],0xa
MOV R12,RAX
TEST R15,R15
JZ 0x0011c8cd
NOP dword ptr [RAX]
LEA RAX,[0x17fa60]
XOR EBX,EBX
MOV R14,qword ptr [RAX]
TEST R14,R14
JZ 0x0011c840
NOP dword ptr [RAX]
MOV EAX,dword ptr [R14 + 0x84]
TEST EAX,EAX
JS 0x0011c833
MOV R13,qword ptr [R14 + 0x70]
TEST R13,R13
JZ 0x0011cba0
CMP qword ptr [R14 + 0x38],0x0
MOV RBP,R13
JZ 0x0011c833
MOV RBP,R13
JMP 0x0011c7fd
MOV RSI,qword ptr [R14 + 0x38]
MOV EAX,EBX
ADD EBX,0x1
MOV qword ptr [R12 + RAX*0x8],RSI
MOV dword ptr [RBP + 0x10],0x1
MOV RBP,qword ptr [RBP]
TEST RBP,RBP
JZ 0x0011c830
MOV RSI,qword ptr [R15 + 0x8]
MOV RDI,qword ptr [RBP + 0x8]
CALL 0x00109640
TEST EAX,EAX
JNZ 0x0011c7f4
CMP EBX,dword ptr [RSP + 0x8]
JC 0x0011c7e0
SHL dword ptr [RSP + 0x8],0x1
MOV ESI,dword ptr [RSP + 0x8]
MOV RDI,R12
SHL RSI,0x3
CALL 0x001093e0
MOV R12,RAX
JMP 0x0011c7e0
MOV RBP,R13
MOV R14,qword ptr [R14 + 0x20]
TEST R14,R14
JNZ 0x0011c7b0
MOV RDI,qword ptr [R15 + 0x28]
XOR ECX,ECX
TEST RDI,RDI
JZ 0x0011c85b
LEA RDX,[0x13f29a]
XOR ESI,ESI
CALL 0x00123800
MOV ECX,EAX
MOV RDI,qword ptr [R15 + 0x20]
XOR R9D,R9D
TEST RDI,RDI
JZ 0x0011c884
LEA RDX,[0x13f2a5]
XOR ESI,ESI
MOV dword ptr [RSP + 0x10],ECX
CALL 0x00123800
MOV RDI,qword ptr [R15 + 0x20]
MOV ECX,dword ptr [RSP + 0x10]
MOV R9,RAX
XOR R8D,R8D
TEST RDI,RDI
MOV RSI,qword ptr [R15 + 0x10]
MOV RDI,qword ptr [0x0017fb10]
SETNZ R8B
XOR EDX,EDX
CMP qword ptr [R15 + 0x28],0x0
PUSH R12
PUSH RBX
MOV EAX,dword ptr [R15 + 0x1c]
SETNZ DL
PUSH RAX
MOV EAX,dword ptr [R15 + 0x18]
PUSH RAX
CALL 0x00109700
ADD RSP,0x20
TEST EAX,EAX
JZ 0x0011cbe8
MOV R15,qword ptr [R15]
TEST R15,R15
JNZ 0x0011c798
MOV RDI,R12
LEA R12,[0x130359]
CALL 0x00109c40
MOV RBP,qword ptr [0x0017fa60]
TEST RBP,RBP
JZ 0x0011c97d
NOP dword ptr [RAX]
MOV R14D,dword ptr [RBP + 0x84]
TEST R14D,R14D
JS 0x0011c970
CMP qword ptr [RBP + 0x38],0x0
JZ 0x0011c970
MOV RBX,qword ptr [RBP + 0x70]
TEST RBX,RBX
JNZ 0x0011c918
JMP 0x0011c970
MOV RBX,qword ptr [RBX]
TEST RBX,RBX
JZ 0x0011c970
MOV R13D,dword ptr [RBX + 0x10]
TEST R13D,R13D
JNZ 0x0011c910
MOV R13,qword ptr [RBX + 0x8]
MOV ECX,0x5
MOV RDI,R12
MOV RSI,R13
CMPSB.REPE RDI,RSI
SETA AL
SBB AL,0x0
TEST AL,AL
JZ 0x0011c910
MOV R14,qword ptr [RBP + 0x30]
MOV EDX,0x5
LEA RSI,[0x13fee8]
XOR EDI,EDI
CALL 0x001092e0
MOV RDX,R13
MOV RDI,RAX
MOV RSI,R14
XOR EAX,EAX
CALL 0x001251f0
MOV RBX,qword ptr [RBX]
TEST RBX,RBX
JNZ 0x0011c918
NOP word ptr [RAX + RAX*0x1]
MOV RBP,qword ptr [RBP + 0x20]
TEST RBP,RBP
JNZ 0x0011c8f0
TEST byte ptr [0x0017fac3],0x10
JNZ 0x0011cde8
XOR ESI,ESI
CMP dword ptr [0x0017fad8],0x1
SETA SIL
XOR EDI,EDI
CALL 0x0011a050
CALL 0x00123bb0
MOV RDX,qword ptr [0x0017f350]
TEST RDX,RDX
JZ 0x0011ca60
MOV RAX,qword ptr [0x0017f358]
MOV R10,qword ptr [0x0017fb10]
LEA R11,[0x17ed50]
MOV ECX,dword ptr [0x0017f3c8]
LEA R8,[RAX + RDX*0x8]
JMP 0x0011ca19
MOV RDX,qword ptr [R10 + 0x8]
MOV R9,qword ptr [RSI + 0x28]
CMP byte ptr [RDX + 0x1c],0x0
MOV R9,qword ptr [R9 + 0x68]
SETNZ DL
MOVZX EDX,DL
MOV qword ptr [RSI + 0x28],R9
ADD EDX,0x4
MOVSXD RDX,EDX
CMP byte ptr [RDI + RDX*0x1],0x6f
JNZ 0x0011ca10
MOV RDX,qword ptr [R9 + 0x38]
SHR RDX,CL
MOV qword ptr [RSI + 0x30],RDX
NOP dword ptr [RAX]
ADD RAX,0x8
CMP RAX,R8
JZ 0x0011ca60
MOV RSI,qword ptr [RAX]
MOVZX EDX,word ptr [RSI + 0x18]
AND DX,0x8ff
CMP DX,0x3
JNZ 0x0011ca10
MOV RDI,qword ptr [RSI + 0x8]
CMP byte ptr [RDI],0x2e
JNZ 0x0011c9d8
CMP byte ptr [RDI + 0x2],0x69
JNZ 0x0011ca10
MOV RDX,qword ptr [RSI + 0x28]
ADD RAX,0x8
MOV RDX,qword ptr [RDX + 0x38]
MOV qword ptr [RSI + 0x28],R11
SHR RDX,CL
MOV qword ptr [RSI + 0x30],RDX
CMP RAX,R8
JNZ 0x0011ca19
NOP word ptr CS:[RAX + RAX*0x1]
MOV EDI,0x4
CALL 0x001188a0
CALL 0x00123be0
CALL 0x00123b20
CMP byte ptr [0x0017fbd8],0x0
JNZ 0x0011d278
MOV RBX,qword ptr [0x0017f378]
LEA RBP,[0x140070]
TEST RBX,RBX
JZ 0x0011cae9
NOP dword ptr [RAX]
MOV RSI,qword ptr [RBX]
MOV RDI,qword ptr [0x0017fae8]
XOR ECX,ECX
XOR EDX,EDX
MOV R8D,0x1
CALL 0x00109590
TEST RAX,RAX
JZ 0x0011cac1
MOVZX EAX,byte ptr [RAX + 0x18]
SUB EAX,0x3
CMP AL,0x1
JBE 0x0011cae0
MOV R12,qword ptr [RBX]
MOV RSI,RBP
XOR EDI,EDI
MOV EDX,0x5
CALL 0x001092e0
MOV RDI,RAX
MOV RSI,R12
XOR EAX,EAX
CALL 0x001251f0
MOV RBX,qword ptr [RBX + 0x8]
TEST RBX,RBX
JNZ 0x0011ca98
MOVZX EAX,byte ptr [0x0017fac0]
MOV EDX,EAX
AND EDX,0x43
CMP DL,0x2
JZ 0x0011cc10
AND EAX,0x3
MOV EBX,0x1
CMP AL,0x3
JZ 0x0011cc10
CMP DL,0x42
JZ 0x0011cc1f
MOV RSI,qword ptr [0x0017f2e8]
TEST RSI,RSI
JZ 0x0011d8e0
MOV RDI,qword ptr [0x0017fae8]
XOR ECX,ECX
XOR EDX,EDX
MOV R8D,0x1
CALL 0x00109590
TEST RAX,RAX
JZ 0x0011cb52
MOVZX ECX,byte ptr [RAX + 0x18]
LEA EDX,[RCX + -0x3]
CMP DL,0x1
JBE 0x0011cef0
MOV RDI,qword ptr [0x0017f2e8]
XOR EDX,EDX
LEA RSI,[RSP + 0x38]
CALL 0x001090a0
MOV RDX,qword ptr [RSP + 0x38]
CMP byte ptr [RDX],0x0
JNZ 0x0011ce80
MOV RDI,qword ptr [0x0017fb10]
MOV RSI,RAX
CALL 0x00109b40
TEST EAX,EAX
JZ 0x0011cec2
ADD RSP,0x48
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
RET
CMP dword ptr [R14 + 0x8c],0x2
JZ 0x0011c833
MOV RAX,qword ptr [R14 + 0x38]
TEST RAX,RAX
JZ 0x0011c833
TEST byte ptr [RAX + 0x20],0x1
JZ 0x0011c833
CMP qword ptr [R15 + 0x10],0x3
JZ 0x0011c833
TEST RBP,RBP
JZ 0x0011cc80
MOV R13,RBP
JMP 0x0011c7d2
XOR EDI,EDI
MOV EDX,0x5
LEA RSI,[0x13fec0]
CALL 0x001092e0
MOV RDI,RAX
XOR EAX,EAX
CALL 0x001251f0
JMP 0x0011c8c1
MOV EBX,dword ptr [0x0017fa0c]
CMP DL,0x42
JNZ 0x0011cb17
MOV EAX,dword ptr [0x0017fa0c]
OR EAX,dword ptr [0x0017fa08]
JNZ 0x0011cb17
XOR EDI,EDI
MOV EDX,0x5
LEA RSI,[0x140098]
CALL 0x001092e0
MOV RDI,RAX
XOR EAX,EAX
CALL 0x001251f0
JMP 0x0011cb17
TEST byte ptr [RBP + 0x44],0x20
JZ 0x0011c170
MOV R14,qword ptr [0x0017fb10]
MOV RAX,qword ptr [RBP + 0x8]
MOV RDX,qword ptr [R14 + 0x8]
JMP 0x0011c12e
MOV RAX,R14
JMP 0x0011cc95
MOV RBP,qword ptr [RAX + 0x70]
TEST RBP,RBP
JNZ 0x0011cbd9
MOV RAX,qword ptr [RAX + 0x20]
TEST RAX,RAX
JNZ 0x0011cc88
MOV EDX,0x5
LEA RSI,[0x1401b0]
XOR EDI,EDI
XOR EBP,EBP
CALL 0x001092e0
MOV RDI,RAX
XOR EAX,EAX
CALL 0x001251f0
JMP 0x0011c833
MOV RSI,qword ptr [RBX + 0x28]
MOV RDX,qword ptr [R13 + 0x20]
MOV qword ptr [RSI + 0x20],RDX
TEST RDX,RDX
JZ 0x0011cf78
MOV qword ptr [RDX + 0x28],RSI
MOV RDX,qword ptr [RAX + 0x20]
MOV qword ptr [R13 + 0x20],RDX
MOV RDX,qword ptr [RAX + 0x20]
TEST RDX,RDX
JZ 0x0011d9b0
MOV qword ptr [RDX + 0x28],R13
MOV qword ptr [RBX + 0x28],RAX
XOR EDI,EDI
XOR ESI,ESI
MOV qword ptr [RAX + 0x20],RBX
NOP word ptr CS:[RAX + RAX*0x1]
MOV EDX,ECX
SUB EDX,dword ptr [RBX + 0x84]
MOV dword ptr [RBX + 0x84],EDX
MOV RDX,qword ptr [RBX + 0x38]
TEST RDX,RDX
JZ 0x0011cd3b
CMP qword ptr [RDX + 0xf0],0x0
JZ 0x0011cd3b
TEST RSI,RSI
MOV RDI,RDX
CMOVZ RSI,RDX
CMP R13,RBX
JZ 0x0011cd49
MOV RBX,qword ptr [RBX + 0x20]
TEST RBX,RBX
JNZ 0x0011cd10
XOR EBX,EBX
TEST RDI,RDI
JZ 0x0011c3bf
MOV RDX,qword ptr [RAX + 0x38]
TEST RDX,RDX
JZ 0x0011dc43
XOR EBX,EBX
CMP RDX,RDI
JZ 0x0011c3bf
MOV R9,qword ptr [RSI + 0x18]
MOV R8,qword ptr [RDI + 0x10]
TEST R9,R9
JZ 0x0011da23
MOV qword ptr [R9 + 0x10],R8
MOV R8,qword ptr [RDI + 0x10]
TEST R8,R8
JZ 0x0011dc30
MOV qword ptr [R8 + 0x18],R9
MOV R8,qword ptr [RDX + 0x10]
MOV qword ptr [RDI + 0x10],R8
TEST R8,R8
JZ 0x0011dc1d
MOV qword ptr [R8 + 0x18],RDI
MOV qword ptr [RSI + 0x18],RDX
XOR EBX,EBX
MOV qword ptr [RDX + 0x10],RSI
JMP 0x0011c3bf
XOR EDI,EDI
MOV EDX,0x5
LEA RSI,[0x13fda8]
CALL 0x001092e0
MOV RSI,R14
MOV RDI,RAX
XOR EAX,EAX
CALL 0x001251f0
JMP 0x0011c09b
MOVZX EAX,byte ptr [0x0017fac0]
AND EAX,0x3
CMP AL,0x2
JZ 0x0011c98a
MOV RDI,qword ptr [0x0017fd98]
LEA RSI,[RSP + 0x38]
MOV dword ptr [RSP + 0x38],0x0
CALL 0x00119860
MOV R11D,dword ptr [RSP + 0x38]
TEST R11D,R11D
JNZ 0x0011c98a
AND byte ptr [0x0017fac3],0xef
JMP 0x0011c98a
MOV RBX,qword ptr [0x0017fb20]
TEST RBX,RBX
JZ 0x0011c2ea
LEA RBP,[0x17fac0]
NOP word ptr [RAX + RAX*0x1]
MOV RSI,RBP
MOV RDI,RBX
CALL 0x00109b80
TEST EAX,EAX
JNZ 0x0011ce69
MOV dword ptr [0x0017fc44],0x0
MOV RBX,qword ptr [RBX + 0xf0]
TEST RBX,RBX
JNZ 0x0011ce50
JMP 0x0011c2ea
MOV RSI,qword ptr [0x0017e648]
MOV RDI,qword ptr [0x0017fb10]
CALL 0x00109500
MOV RBP,RAX
TEST RAX,RAX
JZ 0x0011dbc8
MOV R12,qword ptr [RAX + 0x28]
TEST EBX,EBX
JNZ 0x0011d9f0
MOV RDI,qword ptr [0x0017fb10]
MOV RSI,R12
CALL 0x00109b40
TEST EAX,EAX
JNZ 0x0011cb8a
MOV EDX,0x5
LEA RSI,[0x140108]
XOR EDI,EDI
CALL 0x001092e0
MOV RDI,RAX
XOR EAX,EAX
CALL 0x001251f0
ADD RSP,0x48
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
RET
MOV RDX,qword ptr [RAX + 0x28]
MOV RCX,qword ptr [RDX + 0x68]
TEST RCX,RCX
JZ 0x0011cb52
MOV RSI,qword ptr [RCX + 0x28]
MOV RDX,qword ptr [RDX + 0x60]
MOV RDI,qword ptr [0x0017fb10]
ADD RDX,qword ptr [RAX + 0x30]
ADD RSI,RDX
CALL 0x00109b40
TEST EAX,EAX
JNZ 0x0011cb8a
MOV RBX,qword ptr [0x0017f2e8]
MOV EDX,0x5
LEA RSI,[0x1400e0]
XOR EDI,EDI
CALL 0x001092e0
MOV RSI,RBX
MOV RDI,RAX
XOR EAX,EAX
CALL 0x001251f0
ADD RSP,0x48
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
RET
MOV R11D,dword ptr [0x0017fbc0]
TEST R11D,R11D
JNZ 0x0011c229
JMP 0x0011c2a0
ADD RSI,0x20
MOV qword ptr [0x0017fa68],RSI
JMP 0x0011cce1
CALL 0x00124290
XOR EBX,EBX
JMP 0x0011be28
MOV RAX,qword ptr [0x0017fb10]
MOV RBX,qword ptr [RAX + 0x90]
TEST RBX,RBX
JZ 0x0011c768
LEA R12,[0x13f28e]
NOP
MOV R13,qword ptr [RBX]
MOV RDI,R13
CALL 0x00109310
LEA RDI,[RAX + 0xa]
CALL 0x00109c50
MOV RDX,R13
MOV RSI,R12
MOV RBP,RAX
MOV RDI,RAX
XOR EAX,EAX
CALL 0x00109aa0
MOV RSI,RBX
MOV RDI,RBP
CALL 0x00112ee0
LEA RDI,[RBP + 0x1]
MOV dword ptr [RBP + 0x1],0x7a69732e
MOV RSI,RBX
MOV byte ptr [RDI + 0x4],0x65
CALL 0x00112ee0
MOV RDI,RBP
CALL 0x00109c40
MOV RBX,qword ptr [RBX + 0x10]
TEST RBX,RBX
JNZ 0x0011cfc0
JMP 0x0011c768
LEA RDI,[0x112380]
CALL 0x001095f0
MOV R13,RAX
JMP 0x0011beef
MOV qword ptr [0x0017f438],R15
JMP 0x0011c3ee
XOR ESI,ESI
MOV RDI,RBX
MOV qword ptr [RSP + 0x8],R9
CALL 0x001150a0
MOV R9,qword ptr [RSP + 0x8]
TEST EAX,EAX
MOV ECX,EAX
JNZ 0x0011c696
JMP 0x0011c69b
MOV RCX,qword ptr [0x0017f2f0]
TEST RCX,RCX
JNZ 0x0011d095
JMP 0x0011c2c0
MOV RCX,qword ptr [RCX + 0x30]
TEST RCX,RCX
JZ 0x0011c2c0
TEST byte ptr [RCX + 0x49],0x20
JNZ 0x0011d088
MOV RAX,qword ptr [RCX + 0x20]
MOV RAX,qword ptr [RAX + 0x90]
TEST RAX,RAX
JZ 0x0011d088
NOP dword ptr [RAX + RAX*0x1]
MOV EDX,dword ptr [RAX + 0x20]
TEST DH,0x20
JNZ 0x0011d0be
AND DH,0x7f
MOV dword ptr [RAX + 0x20],EDX
MOV RAX,qword ptr [RAX + 0x10]
TEST RAX,RAX
JNZ 0x0011d0b0
JMP 0x0011d088
MOV RAX,qword ptr [0x0017fb10]
MOV R14,qword ptr [0x0017fb20]
MOV RAX,qword ptr [RAX + 0x8]
MOVZX R13D,byte ptr [RAX + 0x1c]
TEST R14,R14
JZ 0x0011bfc4
CMP R13B,0x1
LEA R15,[0x17da80]
SBB RAX,RAX
ADD RAX,0x2
MOV qword ptr [RSP + 0x10],RAX
NOP word ptr [RAX + RAX*0x1]
MOV RBP,qword ptr [R14 + 0x90]
TEST RBP,RBP
JZ 0x0011d163
NOP dword ptr [RAX]
MOV RDX,qword ptr [RBP]
MOVZX EAX,byte ptr [RDX]
TEST AL,AL
JZ 0x0011d178
MOVZX ECX,AL
TEST byte ptr [R15 + RCX*0x2],0x8c
JNZ 0x0011d139
CMP AL,0x5f
JNZ 0x0011d15a
MOV RAX,RDX
NOP dword ptr [RAX]
ADD RAX,0x1
MOVZX ECX,byte ptr [RAX]
TEST CL,CL
JZ 0x0011d178
MOVZX ESI,CL
TEST byte ptr [R15 + RSI*0x2],0x8c
JNZ 0x0011d140
CMP CL,0x5f
JZ 0x0011d140
MOV RBP,qword ptr [RBP + 0x10]
TEST RBP,RBP
JNZ 0x0011d120
MOV R14,qword ptr [R14 + 0xf0]
TEST R14,R14
JNZ 0x0011d110
JMP 0x0011bfc4
MOV RDI,RDX
MOV qword ptr [RSP + 0x8],RDX
CALL 0x00109310
LEA RDI,[RAX + 0xa]
CALL 0x00109c50
XOR EDI,EDI
TEST R13B,R13B
MOV RDX,qword ptr [RSP + 0x8]
MOV byte ptr [RAX],R13B
SETNZ DIL
MOV RBX,RAX
LEA RSI,[0x13f2b7]
ADD RDI,RAX
XOR EAX,EAX
CALL 0x00109aa0
MOV RSI,RBP
MOV RDI,RBX
CALL 0x00112ee0
MOV byte ptr [RBX + 0x1],R13B
MOV RSI,RBP
LEA RDI,[RBX + 0x1]
MOV RAX,qword ptr [RSP + 0x10]
MOV EDX,0x706f
ADD RAX,RBX
MOV dword ptr [RAX],0x74735f5f
MOV word ptr [RAX + 0x4],DX
CALL 0x00112ee0
MOV RDI,RBX
CALL 0x00109c40
MOV RBP,qword ptr [RBP + 0x10]
TEST RBP,RBP
JNZ 0x0011d120
JMP 0x0011d163
MOV RAX,qword ptr [0x0017f350]
TEST RAX,RAX
JZ 0x0011c75e
MOV RBX,qword ptr [0x0017f358]
MOV R14,qword ptr [0x0017fb10]
LEA R13,[RBX + RAX*0x8]
JMP 0x0011d241
MOV byte ptr [RBP + 0x18],0x1
MOV qword ptr [RBP + 0x28],0x0
ADD RBX,0x8
CMP R13,RBX
JZ 0x0011c75e
MOV RBP,qword ptr [RBX]
TEST byte ptr [RBP + 0x19],0x8
JNZ 0x0011d234
MOV RDX,qword ptr [RBP + 0x28]
MOV RAX,qword ptr [RDX + 0x68]
TEST RAX,RAX
JZ 0x0011d228
CMP qword ptr [RAX + 0xf0],R14
JNZ 0x0011d228
MOV RSI,qword ptr [RAX]
MOV RDI,qword ptr [RDX]
CALL 0x00109640
TEST EAX,EAX
JZ 0x0011d234
JMP 0x0011d228
MOV RDI,qword ptr [0x0017fb10]
CALL 0x00109be0
MOV EDX,0x1
LEA ECX,[RAX + -0x1]
MOV RAX,qword ptr [0x0017fb10]
SHL RDX,CL
MOV RBX,qword ptr [RAX + 0x90]
LEA RBP,[RDX + RDX*0x1 + -0x1]
TEST RBX,RBX
JZ 0x0011d300
LEA R12,[0x13ff58]
NOP
TEST byte ptr [RBX + 0x20],0x1
JZ 0x0011d2f0
MOV RCX,qword ptr [RBX + 0x28]
MOV RAX,qword ptr [RBX + 0x38]
LEA RDX,[RCX + RAX*0x1]
AND RDX,RBP
JZ 0x0011d2d3
AND RCX,RBP
CMP RDX,RCX
JC 0x0011d980
MOV RDX,qword ptr [RBX + 0x30]
ADD RAX,RDX
AND RAX,RBP
JZ 0x0011d2f0
AND RDX,RBP
CMP RAX,RDX
JC 0x0011daf0
NOP dword ptr [RAX + RAX*0x1]
MOV RBX,qword ptr [RBX + 0x10]
TEST RBX,RBX
JNZ 0x0011d2b0
MOV RAX,qword ptr [0x0017fb10]
MOV EAX,dword ptr [RAX + 0xa0]
CMP EAX,0x1
JBE 0x0011ca81
MOV EDI,EAX
XOR EBP,EBP
SHL RDI,0x4
CALL 0x00109c50
MOV R13,RAX
MOV RAX,qword ptr [0x0017fb10]
MOV RAX,qword ptr [RAX + 0x90]
TEST RAX,RAX
JZ 0x0011dd35
NOP word ptr CS:[RAX + RAX*0x1]
MOV EDX,dword ptr [RAX + 0x20]
TEST DL,0x1
JZ 0x0011d375
AND EDX,0x402
CMP EDX,0x400
JZ 0x0011d375
CMP qword ptr [RAX + 0x38],0x0
JZ 0x0011d375
MOV RDX,RBP
ADD RBP,0x1
SHL RDX,0x4
ADD RDX,R13
MOV qword ptr [RDX],RAX
MOV dword ptr [RDX + 0x8],0x0
MOV RAX,qword ptr [RAX + 0x10]
TEST RAX,RAX
JNZ 0x0011d340
MOV qword ptr [RSP + 0x8],RAX
CMP RBP,0x1
JBE 0x0011dd35
LEA RCX,[0x112320]
MOV RSI,RBP
MOV RDI,R13
MOV RBX,R13
MOV EDX,0x10
XOR R15D,R15D
CALL 0x001091d0
MOV R10,RBP
MOV RAX,qword ptr [RSP + 0x8]
XOR R9D,R9D
SHL R10,0x4
ADD R10,R13
NOP dword ptr [RAX]
MOV R12,qword ptr [RBX]
TEST byte ptr [R12 + 0x20],0x2
JZ 0x0011d403
MOV ECX,dword ptr [0x0017f3c8]
MOV RDX,qword ptr [R12 + 0x38]
MOV R14,qword ptr [R12 + 0x30]
SHR RDX,CL
LEA R11,[R14 + RDX*0x1 + -0x1]
TEST RAX,RAX
JZ 0x0011d3fa
CMP R14,R15
JBE 0x0011db40
CMP R15,R9
JC 0x0011db40
MOV R15,R11
MOV R9,R14
MOV RAX,R12
ADD RBX,0x10
CMP RBX,R10
JNZ 0x0011d3c0
LEA RCX,[0x112350]
MOV RSI,RBP
MOV EDX,0x10
MOV RDI,R13
CALL 0x001091d0
MOV RSI,qword ptr [R13]
MOV EAX,0x1
MOV R9,qword ptr [RSI + 0x28]
MOV RCX,R9
NOP dword ptr [RAX + RAX*0x1]
MOV RDX,RAX
SHL RDX,0x4
MOV RDX,qword ptr [R13 + RDX*0x1]
MOV RDX,qword ptr [RDX + 0x28]
CMP RDX,RCX
JZ 0x0011d4c4
ADD RAX,0x1
MOV RCX,RDX
CMP RAX,RBP
JNZ 0x0011d438
MOV ECX,dword ptr [0x0017f3c8]
MOV RAX,qword ptr [RSI + 0x38]
LEA RBX,[R13 + 0x10]
XOR R14D,R14D
SHR RAX,CL
LEA R15,[R9 + RAX*0x1 + -0x1]
JMP 0x0011d4bb
MOV R12,qword ptr [RBX]
MOV ECX,dword ptr [0x0017f3c8]
MOV R8D,dword ptr [RBX + 0x8]
MOV RAX,qword ptr [R12 + 0x38]
MOV R10,qword ptr [R12 + 0x28]
SHR RAX,CL
LEA R11,[R10 + RAX*0x1 + -0x1]
TEST R8D,R8D
JNZ 0x0011d4ae
CMP R15,R10
JNC 0x0011dc81
CMP R15,R9
JC 0x0011dc81
ADD RBX,0x10
MOV R15,R11
MOV R9,R10
MOV RSI,R12
ADD R14,0x1
CMP R14,RBP
JNZ 0x0011d478
MOV RDI,R13
LEA R12,[0x140010]
CALL 0x00109c40
MOV RBX,qword ptr [0x0017f398]
TEST RBX,RBX
JNZ 0x0011d4f5
JMP 0x0011ca81
MOV RBX,qword ptr [RBX + 0x10]
TEST RBX,RBX
JZ 0x0011ca81
MOV ECX,dword ptr [RBX + 0x50]
TEST ECX,ECX
JZ 0x0011d4e8
MOV RBP,qword ptr [RBX + 0x38]
MOV RAX,qword ptr [RBX + 0x28]
MOV RDX,R12
XOR EDI,EDI
ADD RAX,qword ptr [RBX + 0x20]
MOV R13,qword ptr [RBX]
MOV R8D,0x5
LEA RSI,[0x140040]
SUB RBP,RAX
MOV RCX,RBP
CALL 0x00109980
MOV RDX,RBP
MOV RSI,R13
MOV RDI,RAX
XOR EAX,EAX
CALL 0x001251f0
JMP 0x0011d4e8
XOR EDI,EDI
MOV EDX,0x5
LEA RSI,[0x13f818]
CALL 0x001092e0
MOV RDI,RAX
XOR EAX,EAX
CALL 0x001251f0
JMP 0x0011bd1e
MOV RAX,qword ptr [0x0017e650]
MOV R14,qword ptr [0x0017f2f0]
MOV R12,qword ptr [0x0017f2f8]
MOV RBP,qword ptr [0x0017fa28]
MOV R15,qword ptr [RAX]
MOV RBX,qword ptr [RAX + 0x8]
MOV RAX,qword ptr [0x0017fa20]
MOV qword ptr [RSP + 0x8],RAX
CALL 0x00128bb0
TEST EAX,EAX
JNZ 0x0011dbf0
MOV RDI,qword ptr [RBX]
XOR ESI,ESI
CALL 0x00119910
MOV RAX,qword ptr [0x0017e650]
CMP qword ptr [RAX],R15
JZ 0x0011d5d5
MOV ESI,0x1baf
LEA RDI,[0x13ee66]
MOV qword ptr [RSP + 0x10],RAX
CALL 0x001252b0
MOV RAX,qword ptr [RSP + 0x10]
MOV RCX,qword ptr [RAX + 0x8]
MOV R13,qword ptr [RBX]
MOV qword ptr [RAX + 0x8],RBX
MOV qword ptr [RBX],0x0
CMP qword ptr [0x0017f2f0],R14
MOV qword ptr [RSP + 0x10],RCX
JZ 0x0011d606
MOV ESI,0x1baf
LEA RDI,[0x13ee66]
CALL 0x001252b0
MOV R15,qword ptr [R12]
MOV R14,qword ptr [0x0017f2f8]
MOV qword ptr [0x0017f2f8],R12
MOV RAX,qword ptr [RSP + 0x8]
MOV qword ptr [R12],0x0
CMP qword ptr [0x0017fa20],RAX
JZ 0x0011d63f
MOV ESI,0x1baf
LEA RDI,[0x13ee66]
CALL 0x001252b0
MOV R12,qword ptr [RBP]
MOV RBX,qword ptr [0x0017fa28]
MOV qword ptr [0x0017fa28],RBP
MOV qword ptr [RBP],0x0
TEST R13,R13
JZ 0x0011bd4e
MOV RAX,qword ptr [0x0017f2f0]
MOV RDX,qword ptr [0x0017fa20]
TEST RAX,RAX
JNZ 0x0011d69e
JMP 0x0011d6b0
MOV RCX,qword ptr [RAX + 0x20]
TEST RCX,RCX
JZ 0x0011d695
CMP qword ptr [RCX + 0xd0],0x0
CMOVZ RDX,RAX
MOV RAX,qword ptr [RAX + 0x30]
TEST RAX,RAX
JZ 0x0011d6b0
MOVZX ECX,byte ptr [RAX + 0x49]
TEST CL,0x20
JZ 0x0011d680
AND ECX,0x40
JZ 0x0011dd42
MOV qword ptr [0x0017f380],RDX
TEST RDX,RDX
JZ 0x0011dd6d
MOV RAX,qword ptr [0x0017e650]
MOV RCX,qword ptr [RDX]
MOV RSI,qword ptr [RSP + 0x10]
MOV qword ptr [RSI],RCX
MOV qword ptr [RDX],R13
CMP RDX,qword ptr [RAX + 0x8]
JZ 0x0011dcfe
MOV RAX,qword ptr [RDX + 0x38]
MOV qword ptr [RBX],RAX
LEA RAX,[RDX + 0x38]
CMP qword ptr [0x0017fa28],RAX
MOV qword ptr [RDX + 0x38],R12
JZ 0x0011dd29
CMP qword ptr [RDX + 0x10],0x0
LEA RBX,[0x17f2f0]
MOV RAX,qword ptr [0x0017f2f8]
JZ 0x0011dd07
MOV RCX,qword ptr [RDX + 0x30]
ADD RDX,0x30
MOV qword ptr [R14],RCX
MOV qword ptr [RDX],R15
CMP RAX,RDX
JZ 0x0011dd5a
MOV R14,qword ptr [0x0017f2f8]
MOV R15,qword ptr [0x0017f2f0]
MOV RDI,qword ptr [0x0017f430]
MOV ESI,0x2
ADD dword ptr [0x0017f2c0],0x1
CALL 0x00119910
CMP qword ptr [0x0017f2f0],R15
JZ 0x0011d76b
MOV ESI,0x1baf
LEA RDI,[0x13ee66]
CALL 0x001252b0
MOV R9,qword ptr [R14]
MOV qword ptr [0x0017f2f8],R14
MOV qword ptr [R14],0x0
TEST R9,R9
JZ 0x0011bd4e
LEA R10,[0x17fa20]
NOP dword ptr [RAX]
MOV RDI,qword ptr [R9 + 0x20]
MOV RAX,qword ptr [R10]
MOV R8,qword ptr [RDI + 0xd0]
TEST R8,R8
CMOVNZ RDI,R8
TEST RAX,RAX
JZ 0x0011dad0
XOR ECX,ECX
XOR ESI,ESI
JMP 0x0011d7cf
TEST RDX,RDX
JZ 0x0011d7c6
CMP qword ptr [RAX + 0x30],0x0
CMOVNZ RCX,RAX
MOV RAX,qword ptr [RAX + 0x38]
TEST RAX,RAX
JZ 0x0011d7f1
MOV RDX,qword ptr [RAX + 0x20]
CMP RDX,RDI
JNZ 0x0011d7b8
MOV RDX,qword ptr [RAX + 0x30]
TEST RDX,RDX
JNZ 0x0011dae0
MOV RAX,qword ptr [RAX + 0x38]
MOV RSI,RCX
TEST RAX,RAX
JNZ 0x0011d7cf
LEA RCX,[RSI + 0x30]
TEST RSI,RSI
JZ 0x0011dad0
MOV RAX,qword ptr [RCX]
TEST RAX,RAX
JZ 0x0011d835
NOP word ptr CS:[RAX + RAX*0x1]
TEST byte ptr [RAX + 0x49],0x40
JNZ 0x0011d828
MOV RDX,qword ptr [RAX + 0x20]
CMP qword ptr [RDX + 0xd0],0x0
JZ 0x0011dac0
LEA RCX,[RAX + 0x30]
MOV RAX,qword ptr [RAX + 0x30]
TEST RAX,RAX
JNZ 0x0011d810
LEA RSI,[R9 + 0x30]
TEST R8,R8
JNZ 0x0011da60
MOV qword ptr [RCX],R9
MOV RDX,qword ptr [R9 + 0x30]
MOV qword ptr [R9 + 0x30],RAX
MOV R9,RDX
TEST R9,R9
JNZ 0x0011d790
JMP 0x0011bd4e
XOR ESI,ESI
MOV EDX,0x1
LEA RDI,[0x13f0e5]
CALL 0x00116e20
CMP qword ptr [RAX + 0x58],0x0
MOV RCX,RAX
JNZ 0x0011c659
MOVZX EAX,byte ptr [R12]
AND EAX,0x3
CMP AL,0x2
JZ 0x0011d897
TEST byte ptr [RBX + 0x20],0x3
JNZ 0x0011c659
XOR EDI,EDI
MOV qword ptr [RSP + 0x8],RCX
CALL 0x00123030
MOV RCX,qword ptr [RSP + 0x8]
MOV qword ptr [RCX + 0x58],RAX
JMP 0x0011c659
MOV RAX,qword ptr [0x0017f2e0]
MOV RDI,qword ptr [0x0017e660]
MOV qword ptr [0x0017fb38],RAX
TEST RDI,RDI
JZ 0x0011bd85
CALL 0x00115880
JMP 0x0011bd85
MOV RSI,qword ptr [0x0017e660]
XOR EBX,EBX
MOV qword ptr [0x0017f2e8],RSI
JMP 0x0011cb27
MOV R15,qword ptr [RBX + 0xf0]
MOV EDX,0x5
LEA RSI,[0x13fe38]
XOR EDI,EDI
MOV qword ptr [RSP + 0x8],R9
CALL 0x001092e0
MOV RDX,R15
MOV RSI,RBX
MOV RDI,RAX
XOR EAX,EAX
CALL 0x001251f0
MOV R9,qword ptr [RSP + 0x8]
JMP 0x0011c688
AND EDX,0xfffffff7
MOV dword ptr [RAX + 0x20],EDX
JMP 0x0011c52a
MOV EDX,0x1
MOV ESI,ECX
MOV RDI,R9
CALL 0x00116e20
CMP qword ptr [RAX + 0x58],0x0
MOV R15,RAX
JZ 0x0011da36
LEA RDI,[R15 + 0x10]
MOV RCX,R15
XOR EDX,EDX
MOV RSI,RBX
CALL 0x00117b90
JMP 0x0011c6c6
MOV R13,qword ptr [RBX]
MOV EDX,0x5
LEA RSI,[0x13ff20]
XOR EDI,EDI
CALL 0x001092e0
MOV RSI,R13
MOV RDI,RAX
XOR EAX,EAX
CALL 0x001251f0
JMP 0x0011d2f0
LEA RDX,[R13 + 0x20]
MOV qword ptr [0x0017fa68],RDX
JMP 0x0011ccfa
MOVZX R12D,byte ptr [0x0017fac0]
AND R12D,0x3
JMP 0x0011c52a
XOR EDX,EDX
LEA RSI,[0x1145f0]
CALL 0x00109850
JMP 0x0011c2a0
MOV RBX,qword ptr [0x0017f2e8]
MOV EDX,0x5
LEA RSI,[0x140128]
XOR EDI,EDI
CALL 0x001092e0
MOV RDX,R12
MOV RDI,RAX
MOV RSI,RBX
XOR EAX,EAX
CALL 0x001251f0
MOV R12,qword ptr [RBP + 0x28]
JMP 0x0011ceab
MOV R10,qword ptr [0x0017fb10]
MOV qword ptr [R10 + 0x90],R8
JMP 0x0011cd85
MOVZX EAX,byte ptr [R12]
AND EAX,0x3
CMP AL,0x2
JZ 0x0011da4c
TEST byte ptr [RBX + 0x20],0x3
JNZ 0x0011d965
XOR EDI,EDI
CALL 0x00123030
MOV qword ptr [R15 + 0x58],RAX
JMP 0x0011d965
MOV RDX,qword ptr [R9 + 0x30]
TEST RDX,RDX
JZ 0x0011da9a
MOV RDI,qword ptr [RDX + 0x20]
CMP R8,qword ptr [RDI + 0xd0]
JZ 0x0011da8d
JMP 0x0011da9a
MOV RDI,qword ptr [RDX + 0x20]
CMP qword ptr [RDI + 0xd0],R8
JNZ 0x0011da9a
LEA RSI,[RDX + 0x30]
MOV RDX,qword ptr [RDX + 0x30]
TEST RDX,RDX
JNZ 0x0011da80
MOV qword ptr [RCX],R9
MOV R9,qword ptr [RSI]
MOV qword ptr [RSI],RAX
MOV RAX,qword ptr [R8 + 0x100]
TEST RAX,RAX
JZ 0x0011d850
SUB RSI,0x30
MOV qword ptr [RAX + 0x30],RSI
JMP 0x0011d850
MOV RAX,qword ptr [RCX]
JMP 0x0011d835
MOV RAX,qword ptr [RBX]
LEA RCX,[RAX + 0x30]
JMP 0x0011d7fe
LEA RCX,[RDX + 0x30]
MOV RAX,qword ptr [RDX + 0x30]
JMP 0x0011d835
MOV R13,qword ptr [RBX]
MOV EDX,0x5
MOV RSI,R12
JMP 0x0011d98f
MOV dword ptr [RSP + 0x38],0x4
LEA RBX,[RSP + 0x38]
LEA RBP,[0x1145f0]
JMP 0x0011db27
MOV RDI,qword ptr [0x0017fae8]
MOV RDX,RBX
MOV RSI,RBP
CALL 0x00109850
SUB dword ptr [RSP + 0x38],0x1
JNZ 0x0011db20
JMP 0x0011c28a
MOV R8,qword ptr [RAX]
MOV RAX,qword ptr [R12]
MOV EDX,0x5
XOR EDI,EDI
LEA RSI,[0x13ff90]
MOV qword ptr [RSP + 0x28],R10
MOV qword ptr [RSP + 0x20],R9
MOV qword ptr [RSP + 0x18],R11
MOV qword ptr [RSP + 0x10],R8
MOV qword ptr [RSP + 0x8],RAX
CALL 0x001092e0
SUB RSP,0x8
MOV RDX,R14
PUSH R15
MOV R11,qword ptr [RSP + 0x28]
MOV RDI,RAX
XOR EAX,EAX
MOV R8,qword ptr [RSP + 0x20]
MOV R9,qword ptr [RSP + 0x30]
MOV RSI,qword ptr [RSP + 0x18]
MOV RCX,R11
MOV qword ptr [RSP + 0x20],R11
CALL 0x001251f0
MOV dword ptr [RBX + 0x8],0x1
POP R9
MOV RAX,R12
POP R10
MOV R11,qword ptr [RSP + 0x10]
MOV R9,R14
MOV R10,qword ptr [RSP + 0x28]
MOV R15,R11
JMP 0x0011d403
TEST EBX,EBX
JZ 0x0011cb8a
MOV RBX,qword ptr [0x0017f2e8]
MOV EDX,0x5
LEA RSI,[0x140168]
JMP 0x0011cf37
CALL 0x00128550
XOR EDI,EDI
MOV EDX,0x5
LEA RSI,[0x13fc38]
MOV R13,RAX
CALL 0x001092e0
MOV RSI,R13
MOV RDI,RAX
XOR EAX,EAX
CALL 0x001251f0
JMP 0x0011d5a4
MOV R8,qword ptr [0x0017fb10]
MOV qword ptr [R8 + 0x98],RDI
JMP 0x0011cda7
MOV R8,qword ptr [0x0017fb10]
MOV qword ptr [R8 + 0x98],R9
JMP 0x0011cd92
MOV RBX,qword ptr [RAX + 0x28]
TEST RBX,RBX
JZ 0x0011c3bf
MOV R8D,dword ptr [RBX + 0x84]
TEST R8D,R8D
JS 0x0011dc73
MOV RDX,qword ptr [RBX + 0x38]
TEST RDX,RDX
JZ 0x0011dc73
CMP qword ptr [RDX + 0xf0],0x0
JNZ 0x0011cd61
MOV RBX,qword ptr [RBX + 0x28]
TEST RBX,RBX
JNZ 0x0011dc50
JMP 0x0011c3bf
MOV R8,qword ptr [RSI]
MOV RAX,qword ptr [R12]
MOV EDX,0x5
XOR EDI,EDI
LEA RSI,[0x13ffd0]
MOV qword ptr [RSP + 0x28],R11
MOV qword ptr [RSP + 0x20],R10
MOV qword ptr [RSP + 0x18],R9
MOV qword ptr [RSP + 0x10],R8
MOV qword ptr [RSP + 0x8],RAX
CALL 0x001092e0
SUB RSP,0x8
PUSH R15
MOV R11,qword ptr [RSP + 0x38]
MOV RDI,RAX
XOR EAX,EAX
MOV R10,qword ptr [RSP + 0x30]
MOV R9,qword ptr [RSP + 0x28]
MOV R8,qword ptr [RSP + 0x20]
MOV RSI,qword ptr [RSP + 0x18]
MOV RCX,R11
MOV RDX,R10
MOV qword ptr [RSP + 0x28],R11
MOV qword ptr [RSP + 0x20],R10
CALL 0x001251f0
POP RSI
POP RDI
MOV R11,qword ptr [RSP + 0x18]
MOV R10,qword ptr [RSP + 0x10]
JMP 0x0011d4ae
MOV qword ptr [RAX + 0x8],RSI
JMP 0x0011d6df
MOV RDX,qword ptr [0x0017f2f0]
MOV qword ptr [R14],RDX
MOV qword ptr [0x0017f2f0],R15
CMP RAX,RBX
JZ 0x0011dd51
MOV R14,qword ptr [0x0017f2f8]
JMP 0x0011d739
MOV qword ptr [0x0017fa28],RBX
JMP 0x0011d6fb
MOV RDI,R13
CALL 0x00109c40
JMP 0x0011ca81
MOV qword ptr [0x0017f380],RAX
MOV RDX,RAX
JMP 0x0011d6c0
MOV qword ptr [RBX + 0x8],R14
JMP 0x0011d739
MOV qword ptr [0x0017f2f8],R14
MOV R15,qword ptr [0x0017f2f0]
JMP 0x0011d739
MOV ESI,0x1c32
LEA RDI,[0x13ee66]
CALL 0x001252b0
MOV RDX,qword ptr [0x0017f380]
JMP 0x0011d6c0
(translation_unit "/* WARNING: Type propagation algorithm not settling */\n/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */\n\nvoid FUN_0011bca0(void)\n\n{\n  byte bVar1;\n  uint uVar2;\n  long *plVar3;\n  byte *pbVar4;\n  long lVar5;\n  long *plVar6;\n  undefined *puVar7;\n  char cVar8;\n  int iVar9;\n  undefined4 uVar10;\n  undefined8 uVar11;\n  size_t sVar12;\n  long lVar13;\n  undefined8 uVar14;\n  long lVar15;\n  long lVar16;\n  long *plVar17;\n  void *__ptr;\n  long *plVar18;\n  char *pcVar19;\n  byte *pbVar20;\n  undefined8 *puVar21;\n  undefined8 *puVar22;\n  ulong uVar23;\n  undefined8 uVar24;\n  ulong uVar25;\n  long *plVar26;\n  undefined8 *puVar27;\n  long lVar28;\n  ulong uVar29;\n  ulong uVar30;\n  char *pcVar31;\n  byte *pbVar32;\n  long lVar33;\n  ulong uVar34;\n  byte bVar35;\n  long *plVar36;\n  ulong uVar37;\n  bool bVar38;\n  bool bVar39;\n  byte bVar40;\n  uint local_40;\n  undefined4 uStack_3c;\n  \n  bVar40 = 0;\n  if (DAT_0017fb98 != 0) {\n    FUN_00112d70();\n  }\n  DAT_0017f440 = DAT_0017fcc8;\n  FUN_00115a50(FUN_001182b0,DAT_0017f430);\n  FUN_00113540();\n  FUN_00123c10();\n  for (puVar21 = DAT_0017f2e0; puVar21 != (undefined8 *)0x0; puVar21 = (undefined8 *)*puVar21) {\n    FUN_00112b40(puVar21[1]);\n  }\n  iVar9 = bfd_section_already_linked_table_init();\n  if (iVar9 == 0) {\n    uVar11 = dcgettext(0,"%F%P: can not create hash table: %E\n",5);\n    FUN_001251f0(uVar11);\n  }\n  _DAT_0017f2c0 = _DAT_0017f2c0 + 1;\n  DAT_0017f440 = DAT_0017fcc8;\n  FUN_00119910(DAT_0017f430,0);\n  plVar3 = DAT_0017fa28;\n  plVar26 = DAT_0017fa20;\n  plVar18 = DAT_0017f2f8;\n  plVar17 = DAT_0017f2f0;\n  if ((DAT_0017fac1 & 2) != 0) {\n    lVar16 = *(long *)PTR_DAT_0017e650;\n    plVar36 = *(long **)(PTR_DAT_0017e650 + 8);\n    iVar9 = FUN_00128bb0();\n    if (iVar9 != 0) {\n      uVar11 = FUN_00128550();\n      uVar14 = dcgettext(0,"%F%P: %s: plugin reported error after all symbols read\n",5);\n      FUN_001251f0(uVar14,uVar11);\n    }\n    FUN_00119910(*plVar36,0);\n    puVar7 = PTR_DAT_0017e650;\n    if (*(long *)PTR_DAT_0017e650 != lVar16) {\n      FUN_001252b0("../../ld/ldlang.c",0x1baf);\n    }\n    plVar6 = *(long **)(puVar7 + 8);\n    lVar16 = *plVar36;\n    *(long **)(puVar7 + 8) = plVar36;\n    *plVar36 = 0;\n    if (DAT_0017f2f0 != plVar17) {\n      FUN_001252b0("../../ld/ldlang.c",0x1baf);\n    }\n    plVar36 = DAT_0017f2f8;\n    plVar17 = (long *)*plVar18;\n    DAT_0017f2f8 = plVar18;\n    *plVar18 = 0;\n    if (DAT_0017fa20 != plVar26) {\n      FUN_001252b0("../../ld/ldlang.c",0x1baf);\n    }\n    plVar26 = DAT_0017fa28;\n    lVar15 = *plVar3;\n    DAT_0017fa28 = plVar3;\n    *plVar3 = 0;\n    plVar18 = DAT_0017f2f0;\n    plVar3 = DAT_0017fa20;\n    if (lVar16 != 0) {\n      for (; DAT_0017f380 = plVar3, plVar18 != (long *)0x0; plVar18 = (long *)plVar18[6]) {\n        if ((*(byte *)((long)plVar18 + 0x49) & 0x20) != 0) {\n          if ((*(byte *)((long)plVar18 + 0x49) & 0x40) == 0) goto LAB_0011d6c0;\n          break;\n        }\n        if ((plVar18[4] != 0) && (*(long *)(plVar18[4] + 0xd0) == 0)) {\n          DAT_0017f380 = plVar18;\n        }\n        plVar3 = DAT_0017f380;\n      }\n      plVar18 = DAT_0017f380;\n      if (DAT_0017f380 == (long *)0x0) {\n        FUN_001252b0("../../ld/ldlang.c",0x1c32);\n        plVar18 = DAT_0017f380;\n      }\nLAB_0011d6c0:\n      DAT_0017f380 = plVar18;\n      plVar18 = DAT_0017f380;\n      puVar7 = PTR_DAT_0017e650;\n      *plVar6 = *DAT_0017f380;\n      *plVar18 = lVar16;\n      if (plVar18 == *(long **)(puVar7 + 8)) {\n        *(long **)(puVar7 + 8) = plVar6;\n      }\n      *plVar26 = plVar18[7];\n      bVar38 = DAT_0017fa28 == plVar18 + 7;\n      plVar18[7] = lVar15;\n      plVar3 = DAT_0017f2f8;\n      if (bVar38) {\n        DAT_0017fa28 = plVar26;\n      }\n      if (plVar18[2] == 0) {\n        *plVar36 = (long)DAT_0017f2f0;\n        DAT_0017f2f0 = plVar17;\n        if ((long **)plVar3 != &DAT_0017f2f0) {\n          plVar36 = DAT_0017f2f8;\n        }\n      }\n      else {\n        *plVar36 = plVar18[6];\n        plVar18[6] = (long)plVar17;\n        if (plVar3 != plVar18 + 6) {\n          plVar36 = DAT_0017f2f8;\n        }\n      }\n      DAT_0017f2f8 = plVar36;\n      plVar18 = DAT_0017f2f8;\n      plVar17 = DAT_0017f2f0;\n      _DAT_0017f2c0 = _DAT_0017f2c0 + 1;\n      FUN_00119910(DAT_0017f430);\n      if (DAT_0017f2f0 != plVar17) {\n        FUN_001252b0("../../ld/ldlang.c");\n      }\n      lVar16 = *plVar18;\n      DAT_0017f2f8 = plVar18;\n      *plVar18 = 0;\n      while (lVar16 != 0) {\n        lVar15 = *(long *)(*(long *)(lVar16 + 0x20) + 0xd0);\n        lVar13 = *(long *)(lVar16 + 0x20);\n        if (lVar15 != 0) {\n          lVar13 = lVar15;\n        }\n        if (DAT_0017fa20 == (long *)0x0) {\nLAB_0011dad0:\n          plVar17 = DAT_0017f2f0;\n        }\n        else {\n          plVar26 = (long *)0x0;\n          plVar18 = DAT_0017fa20;\n          plVar17 = (long *)0x0;\n          do {\n            while (plVar18[4] != lVar13) {\n              if ((plVar18[4] != 0) && (plVar18[6] != 0)) {\n                plVar26 = plVar18;\n              }\n              plVar18 = (long *)plVar18[7];\n              if (plVar18 == (long *)0x0) goto LAB_0011d7f1;\n            }\n            lVar28 = plVar18[6];\n            if (lVar28 != 0) {\n              plVar17 = (long *)(lVar28 + 0x30);\n              lVar13 = *(long *)(lVar28 + 0x30);\n              goto LAB_0011d835;\n            }\n            plVar18 = (long *)plVar18[7];\n            plVar17 = plVar26;\n          } while (plVar18 != (long *)0x0);\nLAB_0011d7f1:\n          if (plVar17 == (long *)0x0) goto LAB_0011dad0;\n        }\n        plVar17 = plVar17 + 6;\n        for (lVar13 = *plVar17; lVar13 != 0; lVar13 = *(long *)(lVar13 + 0x30)) {\n          if (((*(byte *)(lVar13 + 0x49) & 0x40) == 0) &&\n             (*(long *)(*(long *)(lVar13 + 0x20) + 0xd0) == 0)) {\n            lVar13 = *plVar17;\n            break;\n          }\n          plVar17 = (long *)(lVar13 + 0x30);\n        }\nLAB_0011d835:\n        plVar18 = (long *)(lVar16 + 0x30);\n        if (lVar15 == 0) {\n          *plVar17 = lVar16;\n          lVar15 = *(long *)(lVar16 + 0x30);\n          *(long *)(lVar16 + 0x30) = lVar13;\n          lVar16 = lVar15;\n        }\n        else {\n          lVar28 = *(long *)(lVar16 + 0x30);\n          if (lVar28 != 0) {\n            lVar5 = *(long *)(*(long *)(lVar28 + 0x20) + 0xd0);\n            while (lVar15 == lVar5) {\n              plVar18 = (long *)(lVar28 + 0x30);\n              lVar28 = *(long *)(lVar28 + 0x30);\n              if (lVar28 == 0) break;\n              lVar5 = *(long *)(*(long *)(lVar28 + 0x20) + 0xd0);\n            }\n          }\n          *plVar17 = lVar16;\n          lVar16 = *plVar18;\n          *plVar18 = lVar13;\n          if (*(long *)(lVar15 + 0x100) != 0) {\n            *(long **)(*(long *)(lVar15 + 0x100) + 0x30) = plVar18 + -6;\n          }\n        }\n      }\n    }\n  }\n  if (DAT_0017fb38 != (undefined8 *)0x0) {\n    FUN_001252b0("../../ld/ldlang.c",0x1c67);\n  }\n  DAT_0017fb38 = &DAT_0017f2e0;\n  if (DAT_0017f2e8 == (undefined *)0x0) {\n    DAT_0017fb38 = DAT_0017f2e0;\n    if (PTR_s_start_0017e660 != (undefined *)0x0) {\n      FUN_00115880();\n    }\n  }\n  if (DAT_0017fb48 != 0) {\n    FUN_00115880();\n  }\n  if (DAT_0017fb50 != 0) {\n    FUN_00115880();\n  }\n  FUN_00123b90();\n  if ((DAT_0017fc98 != 0) && (DAT_0017f3d0 != (undefined8 *)0x0)) {\n    uVar11 = dcgettext(0,"\nAs-needed library included to satisfy reference by file (symbol)\n\n",5)\n    ;\n    FUN_001252f0(uVar11);\n    for (puVar21 = DAT_0017f3d0; puVar21 != (undefined8 *)0x0; puVar21 = (undefined8 *)*puVar21) {\n      FUN_001252f0(&DAT_0013efee,puVar21[1]);\n      sVar12 = strlen((char *)puVar21[1]);\n      if (0x1c < sVar12) {\n        FUN_00124290();\n        sVar12 = 0;\n      }\n      do {\n        FUN_00124270();\n        sVar12 = sVar12 + 1;\n      } while (sVar12 != 0x1e);\n      if (puVar21[2] != 0) {\n        FUN_001252f0(&DAT_0013f279);\n      }\n      FUN_001252f0("(%pT)\n",puVar21[3]);\n    }\n  }\n  bfd_section_already_linked_table_free();\n  plVar17 = DAT_0017f2f0;\njoined_r0x0011be7f:\n  if (plVar17 != (long *)0x0) {\n    do {\n      if ((*(byte *)((long)plVar17 + 0x49) & 0x20) == 0) {\n        lVar16 = plVar17[4];\n        lVar13 = bfd_arch_get_compatible(lVar16,DAT_0017fb10,DAT_0017fbdc);\n        lVar15 = DAT_0017fb10;\n        if (((DAT_0017fac0 & 3) == 2) || ((DAT_0017fac3 & 8) != 0)) {\n          if (lVar13 != 0) {\n            puVar21 = *(undefined8 **)(lVar16 + 8);\n            puVar27 = *(undefined8 **)(DAT_0017fb10 + 8);\n            if ((*(int *)(puVar21 + 1) != *(int *)(puVar27 + 1)) &&\n               ((*(byte *)(lVar16 + 0x44) & 0x20) != 0)) goto LAB_0011c12e;\n            goto LAB_0011bed4;\n          }\n          if ((*(byte *)(lVar16 + 0x44) & 0x20) != 0) {\n            puVar21 = *(undefined8 **)(lVar16 + 8);\n            puVar27 = *(undefined8 **)(DAT_0017fb10 + 8);\nLAB_0011c12e:\n            uVar11 = *puVar27;\n            uVar14 = *puVar21;\n            uVar24 = 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_001251f0(uVar24,uVar14,lVar16,uVar11,lVar15);\n            goto joined_r0x0011c167;\n          }\n        }\n        else {\njoined_r0x0011c167:\n          if (lVar13 != 0) {\nLAB_0011bed4:\n            if (*(int *)(lVar16 + 0xa0) == 0) goto LAB_0011bf30;\n            uVar11 = 0;\n            if (DAT_0017fbd0 == 0) {\n              uVar11 = bfd_set_error_handler(FUN_00112380);\n            }\n            iVar9 = (**(code **)(*(long *)(DAT_0017fb10 + 8) + 0x140))(lVar16,&DAT_0017fac0);\n            if (iVar9 == 0) {\n              if (DAT_0017fbd0 != 0) {\n                uVar14 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);\n                FUN_001251f0(uVar14,lVar16);\n                goto LAB_0011c5b0;\n              }\n            }\n            else {\nLAB_0011c5b0:\n              if (DAT_0017fbd0 != 0) goto code_r0x0011c5be;\n            }\n            bfd_set_error_handler(uVar11);\n            goto LAB_0011bf30;\n          }\n        }\n        if (DAT_0017fbd0 == 0) goto LAB_0011bf30;\n        uVar11 = bfd_printable_name(DAT_0017fb10);\n        uVar14 = bfd_printable_name(lVar16);\n        uVar24 = dcgettext(0,\n                           "%X%P: %s architecture of input file `%pB\' is incompatible with %s output\n"\n                           ,5);\n        FUN_001251f0(uVar24,uVar14,lVar16,uVar11);\n        plVar17 = (long *)plVar17[6];\n      }\n      else {\nLAB_0011bf30:\n        plVar17 = (long *)plVar17[6];\n      }\n      if (plVar17 == (long *)0x0) break;\n    } while( true );\n  }\n  if (DAT_0017fc30 != 0) {\n    uVar11 = 0;\n    for (plVar17 = DAT_0017f2f0; plVar17 != (long *)0x0; plVar17 = (long *)plVar17[6]) {\n      lVar16 = bfd_get_section_by_name(plVar17[4],".exports");\n      if (lVar16 != 0) {\n        lVar15 = *(long *)(lVar16 + 0x38);\n        pcVar31 = (char *)xmalloc(lVar15);\n        iVar9 = bfd_get_section_contents(plVar17[4],lVar16,pcVar31,0,lVar15);\n        if (iVar9 == 0) {\n          uVar14 = dcgettext(0,"%X%P: unable to read .exports section contents\n",5);\n          FUN_001251f0(uVar14,lVar16);\n        }\n        pcVar19 = pcVar31 + lVar15;\n        for (; pcVar31 < pcVar19; pcVar31 = pcVar31 + sVar12 + 1) {\n          uVar11 = FUN_0011b640(uVar11,pcVar31,0);\n          sVar12 = strlen(pcVar31);\n        }\n        *(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) | 0x208000;\n      }\n    }\n    uVar14 = FUN_0011b640(0,&DAT_0013f157,0,0);\n    lVar15 = xcalloc(1,0x70);\n    lVar16 = DAT_0017fc30;\n    *(undefined8 *)(lVar15 + 0x18) = uVar11;\n    *(undefined8 *)(lVar15 + 0x38) = uVar14;\n    *(code **)(lVar15 + 0x68) = FUN_00112f60;\n    *(undefined4 *)(lVar15 + 0x60) = 0xffffffff;\n    FUN_0011b860(lVar16,lVar15,0);\n  }\n  FUN_0011eaa0();\n  if ((DAT_0017fc4c != 0) &&\n     (cVar8 = *(char *)(*(long *)(DAT_0017fb10 + 8) + 0x1c), DAT_0017fb20 != 0)) {\n    lVar16 = DAT_0017fb20;\n    do {\n      for (puVar21 = *(undefined8 **)(lVar16 + 0x90); puVar21 != (undefined8 *)0x0;\n          puVar21 = (undefined8 *)puVar21[2]) {\n        while( true ) {\n          pbVar4 = (byte *)*puVar21;\n          bVar35 = *pbVar4;\n          if (bVar35 == 0) break;\n          bVar1 = _sch_istable[(ulong)bVar35 * 2];\n          pbVar20 = pbVar4;\n          while (((bVar1 & 0x8c) != 0 || (bVar35 == 0x5f))) {\n            pbVar20 = pbVar20 + 1;\n            bVar35 = *pbVar20;\n            if (bVar35 == 0) goto LAB_0011d178;\n            bVar1 = _sch_istable[(ulong)bVar35 * 2];\n          }\n          puVar21 = (undefined8 *)puVar21[2];\n          if (puVar21 == (undefined8 *)0x0) goto LAB_0011d163;\n        }\nLAB_0011d178:\n        sVar12 = strlen((char *)pbVar4);\n        pcVar31 = (char *)xmalloc(sVar12 + 10);\n        *pcVar31 = cVar8;\n        sprintf(pcVar31 + (cVar8 != '\0'),"__start_%s",pbVar4);\n        FUN_00112ee0(pcVar31,puVar21);\n        pcVar31[1] = cVar8;\n        builtin_strncpy(pcVar31 + (2 - (ulong)(cVar8 == '\0')),"__stop",6);\n        FUN_00112ee0(pcVar31 + 1,puVar21);\n        free(pcVar31);\n      }\nLAB_0011d163:\n      lVar16 = *(long *)(lVar16 + 0xf0);\n    } while (lVar16 != 0);\n  }\n  FUN_001188a0(1);\n  puVar21 = DAT_0017f398;\njoined_r0x0011bfdf:\n  if (puVar21 != (undefined8 *)0x0) {\n    do {\n      if (puVar21[3] != 0) {\n        FUN_00123150();\n        uVar11 = DAT_0017fd20;\n        if (DAT_0017fd38 == 0) {\n          uVar11 = *puVar21;\n          uVar14 = dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);\n          FUN_001251f0(uVar14,uVar11);\n        }\n        else {\n          puVar21[4] = DAT_0017fd20;\n          puVar21[7] = uVar11;\n        }\n      }\n      if (puVar21[6] != 0) {\n        FUN_00123150();\n        if (DAT_0017fd38 == 0) goto LAB_0011c1d0;\n        puVar21[5] = DAT_0017fd20;\n      }\n      puVar21 = (undefined8 *)puVar21[2];\n      if (puVar21 == (undefined8 *)0x0) break;\n    } while( true );\n  }\n  DAT_0017fd00 = 0;\n  if (((DAT_0017fac7 & 0x20) == 0) && (((DAT_0017fac0 & 3) != 2 || (DAT_0017fbc0 != 0)))) {\n    if (DAT_0017fc6c == 0) {\n      bfd_link_hash_traverse(DAT_0017fae8,FUN_001145f0,0);\n    }\n    else {\n      if (DAT_0017fc6c == 2) {\n        local_40 = 4;\n        do {\n          bfd_link_hash_traverse(DAT_0017fae8,FUN_001145f0,&local_40);\n          local_40 = local_40 - 1;\n        } while (local_40 != 0);\n        local_40 = 0;\n      }\n      else {\n        local_40 = 0;\n        do {\n          bfd_link_hash_traverse(DAT_0017fae8,FUN_001145f0,&local_40);\n          local_40 = local_40 + 1;\n        } while (local_40 < 5);\n        local_40 = 0xffffffff;\n      }\n      bfd_link_hash_traverse(DAT_0017fae8,FUN_001145f0,&local_40);\n    }\n  }\n  FUN_00119400(DAT_0017f430);\n  bVar35 = DAT_0017fac0;\n  plVar17 = DAT_0017f2f0;\n  if ((DAT_0017fac0 & 3) == 2) {\n    for (; plVar17 != (long *)0x0; plVar17 = (long *)plVar17[6]) {\n      if ((*(byte *)((long)plVar17 + 0x49) & 0x20) == 0) {\n        for (lVar16 = *(long *)(plVar17[4] + 0x90); lVar16 != 0; lVar16 = *(long *)(lVar16 + 0x10))\n        {\n          if ((*(uint *)(lVar16 + 0x20) & 0x2000) == 0) {\n            *(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) & 0xffff7fff;\n          }\n        }\n      }\n    }\n  }\n  if ((bVar35 & 0x40) != 0) {\n    (**(code **)(*(long *)(DAT_0017fb10 + 8) + 0x2f0))(DAT_0017fb10,&DAT_0017fac0);\n  }\n  lVar16 = DAT_0017fb20;\n  if ((DAT_0017fac6 & 0x20) != 0) {\n    for (; lVar16 != 0; lVar16 = *(long *)(lVar16 + 0xf0)) {\n      iVar9 = bfd_link_check_relocs(lVar16,&DAT_0017fac0);\n      if (iVar9 == 0) {\n        DAT_0017fc44 = 0;\n      }\n    }\n  }\n  FUN_00123ba0();\n  FUN_001124e0(DAT_0017f430);\n  _DAT_0017f2c0 = _DAT_0017f2c0 + 1;\n  FUN_00119520(DAT_0017f430,0,0);\n  plVar18 = (long *)0x0;\n  plVar26 = (long *)0x0;\n  plVar17 = DAT_0017fa60;\n  while (plVar36 = plVar17, plVar3 = (long *)*plVar36, plVar3 != (long *)0x0) {\n    plVar17 = plVar3;\n    if ((int)plVar3[1] == 0) {\n      if ((plVar26 != (long *)0x0) && (plVar3 != (long *)plVar26[4])) {\n        FUN_001252b0("../../ld/ldlang.c",0xea0);\n        plVar17 = (long *)*plVar36;\n      }\n      *(int *)((long)plVar3 + 0x84) = -2 - *(int *)((long)plVar3 + 0x84);\n      plVar26 = plVar3;\n      if (plVar18 == (long *)0x0) {\n        plVar18 = plVar3;\n      }\n    }\n    else if ((int)plVar3[1] == 0xe) {\n      lVar16 = FUN_00116e20(plVar3[2],0,0);\n      if (lVar16 == 0) {\nLAB_0011c415:\n        lVar16 = plVar3[2];\n        uVar11 = dcgettext(0,"%F%P: %s not found for insert\n",5);\n        FUN_001251f0(uVar11,lVar16);\n        plVar17 = DAT_0017f2f0;\n        goto joined_r0x0011c458;\n      }\n      if ((int)plVar3[3] != 0) {\n        do {\n          lVar16 = *(long *)(lVar16 + 0x28);\n          if (lVar16 == 0) goto LAB_0011c415;\n        } while (*(int *)(lVar16 + 0x84) < 0);\n      }\n      if (plVar26 != (long *)0x0) {\n        lVar15 = plVar18[5];\n        lVar13 = plVar26[4];\n        *(long *)(lVar15 + 0x20) = lVar13;\n        if (lVar13 == 0) {\n          DAT_0017fa68 = (long *)(lVar15 + 0x20);\n        }\n        else {\n          *(long *)(lVar13 + 0x28) = lVar15;\n        }\n        plVar26[4] = *(long *)(lVar16 + 0x20);\n        if (*(long *)(lVar16 + 0x20) == 0) {\n          DAT_0017fa68 = plVar26 + 4;\n        }\n        else {\n          *(long **)(*(long *)(lVar16 + 0x20) + 0x28) = plVar26;\n        }\n        plVar18[5] = lVar16;\n        lVar13 = 0;\n        lVar15 = 0;\n        *(long **)(lVar16 + 0x20) = plVar18;\n        do {\n          *(int *)((long)plVar18 + 0x84) = -2 - *(int *)((long)plVar18 + 0x84);\n          lVar28 = plVar18[7];\n          if (((lVar28 != 0) && (*(long *)(lVar28 + 0xf0) != 0)) && (lVar13 = lVar28, lVar15 == 0))\n          {\n            lVar15 = lVar28;\n          }\n        } while ((plVar26 != plVar18) && (plVar18 = (long *)plVar18[4], plVar18 != (long *)0x0));\n        plVar18 = (long *)0x0;\n        if (lVar13 != 0) {\n          lVar28 = *(long *)(lVar16 + 0x38);\n          if (lVar28 == 0) {\n            plVar18 = *(long **)(lVar16 + 0x28);\n            if (plVar18 != (long *)0x0) {\n              do {\n                if (((-1 < *(int *)((long)plVar18 + 0x84)) && (lVar28 = plVar18[7], lVar28 != 0)) &&\n                   (*(long *)(lVar28 + 0xf0) != 0)) goto LAB_0011cd61;\n                plVar18 = (long *)plVar18[5];\n              } while (plVar18 != (long *)0x0);\n              plVar18 = (long *)0x0;\n            }\n          }\n          else {\nLAB_0011cd61:\n            plVar18 = (long *)0x0;\n            if (lVar28 != lVar13) {\n              lVar5 = *(long *)(lVar15 + 0x18);\n              lVar33 = *(long *)(lVar13 + 0x10);\n              if (lVar5 == 0) {\n                *(long *)(DAT_0017fb10 + 0x90) = lVar33;\n              }\n              else {\n                *(long *)(lVar5 + 0x10) = lVar33;\n                lVar33 = *(long *)(lVar13 + 0x10);\n              }\n              if (lVar33 == 0) {\n                *(long *)(DAT_0017fb10 + 0x98) = lVar5;\n              }\n              else {\n                *(long *)(lVar33 + 0x18) = lVar5;\n              }\n              lVar5 = *(long *)(lVar28 + 0x10);\n              *(long *)(lVar13 + 0x10) = lVar5;\n              if (lVar5 == 0) {\n                *(long *)(DAT_0017fb10 + 0x98) = lVar13;\n              }\n              else {\n                *(long *)(lVar5 + 0x18) = lVar13;\n              }\n              *(long *)(lVar15 + 0x18) = lVar28;\n              plVar18 = (long *)0x0;\n              *(long *)(lVar28 + 0x10) = lVar15;\n            }\n          }\n        }\n      }\n      plVar17 = (long *)FUN_00112240(lVar16);\n      lVar16 = *DAT_0017fa60;\n      *DAT_0017fa60 = *(long *)*plVar36;\n      lVar15 = *plVar17;\n      *plVar36 = lVar15;\n      if (lVar15 == 0) {\n        DAT_0017f438 = plVar36;\n      }\n      *plVar17 = lVar16;\n      plVar26 = (long *)0x0;\n      plVar17 = DAT_0017fa60;\n    }\n  }\n  for (; (plVar17 = DAT_0017f2f0, plVar18 != (long *)0x0 &&\n         (*(int *)((long)plVar18 + 0x84) = -2 - *(int *)((long)plVar18 + 0x84),\n         plVar17 = DAT_0017f2f0, plVar26 != plVar18)); plVar18 = (long *)plVar18[4]) {\n  }\njoined_r0x0011c458:\n  for (; plVar17 != (long *)0x0; plVar17 = (long *)plVar17[6]) {\n    puVar21 = *(undefined8 **)(plVar17[4] + 0x90);\njoined_r0x0011c46e:\n    if (puVar21 != (undefined8 *)0x0) {\n      do {\n        if (puVar21[0xd] == 0) {\n          if ((*(byte *)(plVar17 + 9) & 0x10) != 0) goto code_r0x0011c493;\n          iVar9 = FUN_00113350(*(undefined4 *)(puVar21 + 4));\n          bVar38 = false;\n          bVar39 = iVar9 == 0;\n          if (bVar39) {\n            pbVar4 = (byte *)*puVar21;\n            lVar16 = 7;\n            pbVar20 = pbVar4;\n            pbVar32 = (byte *)"COMMON";\n            do {\n              if (lVar16 == 0) break;\n              lVar16 = lVar16 + -1;\n              bVar38 = *pbVar20 < *pbVar32;\n              bVar39 = *pbVar20 == *pbVar32;\n              pbVar20 = pbVar20 + (ulong)bVar40 * -2 + 1;\n              pbVar32 = pbVar32 + (ulong)bVar40 * -2 + 1;\n            } while (bVar39);\n            if ((!bVar38 && !bVar39) == bVar38) {\n              if (((DAT_0017fac0 & 3) != 2) || (DAT_0017fbc0 != 0)) {\n                lVar16 = DAT_0017f458;\n                if (DAT_0017f458 == 0) {\n                  lVar16 = FUN_00116e20(".bss",0,1);\n                  DAT_0017f458 = lVar16;\n                }\nLAB_0011c659:\n                FUN_00117b90(lVar16 + 0x10,puVar21,0);\n              }\n            }\n            else {\n              if (DAT_0017fc5c == 1) {\n                lVar16 = FUN_00116e20("/DISCARD/",0,1);\n                if ((*(long *)(lVar16 + 0x58) == 0) &&\n                   (((DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0)))) {\n                  uVar11 = FUN_00123030(0);\n                  *(undefined8 *)(lVar16 + 0x58) = uVar11;\n                }\n                goto LAB_0011c659;\n              }\n              if (DAT_0017fc5c == 3) {\n                uVar11 = puVar21[0x1e];\n                uVar14 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_001251f0(uVar14,puVar21,uVar11);\n              }\n              if ((DAT_0017fc78 == 0) && (iVar9 = FUN_001150a0(puVar21,0), iVar9 == 0)) {\n                uVar10 = 0;\n              }\n              else {\n                uVar10 = 0x17e;\n              }\n              lVar16 = FUN_00123c60(puVar21,pbVar4,uVar10);\n              if (lVar16 == 0) {\n                lVar16 = FUN_00116e20(pbVar4,uVar10,1);\n                if ((*(long *)(lVar16 + 0x58) == 0) &&\n                   (((DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0)))) {\n                  uVar11 = FUN_00123030(0);\n                  *(undefined8 *)(lVar16 + 0x58) = uVar11;\n                }\n                FUN_00117b90(lVar16 + 0x10,puVar21,0);\n              }\n              if (DAT_0017fc5c == 2) {\n                uVar11 = puVar21[0x1e];\n                uVar14 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_001251f0(uVar14,puVar21,uVar11);\n              }\n            }\n          }\n          else {\n            puVar21[0xd] = 0x17ed50;\n          }\n        }\n        puVar21 = (undefined8 *)puVar21[2];\n        if (puVar21 == (undefined8 *)0x0) break;\n      } while( true );\n    }\n  }\n  bVar35 = DAT_0017fac0 & 3;\n  plVar17 = DAT_0017f358;\n  plVar18 = DAT_0017fa60;\n  lVar16 = DAT_0017fb10;\n  if (bVar35 != 2) {\n    (**(code **)(*(long *)(DAT_0017fb10 + 8) + 0x300))(DAT_0017fb10,&DAT_0017fac0);\n    lVar16 = bfd_get_section_by_name(DAT_0017fb10,".text");\n    if (lVar16 == 0) {\n      bVar35 = DAT_0017fac0 & 3;\n      plVar17 = DAT_0017f358;\n      plVar18 = DAT_0017fa60;\n      lVar16 = DAT_0017fb10;\n    }\n    else {\n      bVar35 = DAT_0017fac0 & 3;\n      if (DAT_0017fc70 == 0) {\n        *(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) & 0xfffffff7;\n        plVar17 = DAT_0017f358;\n        plVar18 = DAT_0017fa60;\n        lVar16 = DAT_0017fb10;\n      }\n      else {\n        *(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) | 8;\n        plVar17 = DAT_0017f358;\n        plVar18 = DAT_0017fa60;\n        lVar16 = DAT_0017fb10;\n      }\n    }\n  }\n  for (; DAT_0017f358 = plVar17, DAT_0017fb10 = lVar16, plVar18 != (long *)0x0;\n      plVar18 = (long *)plVar18[4]) {\n    lVar16 = plVar18[5];\n    if ((((lVar16 != 0) && (plVar18[9] == 0)) && (plVar18[0xc] == 0)) &&\n       ((plVar18[0xb] == 0 && (plVar18[8] == *(long *)(lVar16 + 0x40))))) {\n      plVar18[9] = *(long *)(lVar16 + 0x48);\n    }\n    plVar17 = DAT_0017f358;\n    lVar16 = DAT_0017fb10;\n  }\n  if ((DAT_0017fc4c != 0) && (DAT_0017f350 != 0)) {\n    plVar18 = plVar17 + DAT_0017f350;\n    do {\n      lVar15 = *plVar17;\n      if ((*(byte *)(lVar15 + 0x19) & 8) == 0) {\n        puVar21 = (undefined8 *)(*(undefined8 **)(lVar15 + 0x28))[0xd];\n        if (((puVar21 == (undefined8 *)0x0) || (puVar21[0x1e] != lVar16)) ||\n           (iVar9 = strcmp((char *)**(undefined8 **)(lVar15 + 0x28),(char *)*puVar21), iVar9 != 0))\n        {\n          *(undefined1 *)(lVar15 + 0x18) = 1;\n          *(undefined8 *)(lVar15 + 0x28) = 0;\n        }\n      }\n      plVar17 = plVar17 + 1;\n    } while (plVar18 != plVar17);\n  }\n  if (bVar35 != 2) {\n    for (puVar21 = *(undefined8 **)(DAT_0017fb10 + 0x90); puVar21 != (undefined8 *)0x0;\n        puVar21 = (undefined8 *)puVar21[2]) {\n      pcVar31 = (char *)*puVar21;\n      sVar12 = strlen(pcVar31);\n      pcVar19 = (char *)xmalloc(sVar12 + 10);\n      sprintf(pcVar19,".startof.%s",pcVar31);\n      FUN_00112ee0(pcVar19,puVar21);\n      builtin_strncpy(pcVar19 + 1,".size",5);\n      FUN_00112ee0(pcVar19 + 1,puVar21);\n      free(pcVar19);\n    }\n  }\n  FUN_00123bc0();\n  plVar17 = (long *)0x0;\n  __ptr = (void *)xmalloc(0x50);\n  uVar2 = 10;\n  for (puVar21 = DAT_0017fa50; puVar21 != (undefined8 *)0x0; puVar21 = (undefined8 *)*puVar21) {\n    uVar30 = 0;\n    for (plVar18 = DAT_0017fa60; plVar18 != (long *)0x0; plVar18 = (long *)plVar18[4]) {\n      if (-1 < *(int *)((long)plVar18 + 0x84)) {\n        plVar26 = (long *)plVar18[0xe];\n        if (plVar26 == (long *)0x0) {\n          if (((*(int *)((long)plVar18 + 0x8c) != 2) && (plVar18[7] != 0)) &&\n             (((*(byte *)(plVar18[7] + 0x20) & 1) != 0 &&\n              (plVar26 = plVar17, plVar3 = plVar18, puVar21[2] != 3)))) {\n            while( true ) {\n              plVar17 = plVar26;\n              if (plVar26 != (long *)0x0) goto LAB_0011c7fd;\n              plVar3 = (long *)plVar3[4];\n              if (plVar3 == (long *)0x0) break;\n              plVar26 = (long *)plVar3[0xe];\n            }\n            plVar17 = (long *)0x0;\n            dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            FUN_001251f0();\n          }\n        }\n        else {\n          plVar17 = plVar26;\n          plVar3 = (long *)plVar18[7];\n          while (plVar3 != (long *)0x0) {\nLAB_0011c7fd:\n            iVar9 = strcmp((char *)plVar26[1],(char *)puVar21[1]);\n            uVar29 = uVar30;\n            if (iVar9 == 0) {\n              if (uVar2 <= (uint)uVar30) {\n                uVar2 = uVar2 << 1;\n                __ptr = (void *)xrealloc(__ptr,(ulong)uVar2 << 3);\n              }\n              uVar29 = (ulong)((uint)uVar30 + 1);\n              *(long *)((long)__ptr + uVar30 * 8) = plVar18[7];\n              *(undefined4 *)(plVar26 + 2) = 1;\n            }\n            plVar26 = (long *)*plVar26;\n            uVar30 = uVar29;\n            plVar3 = plVar26;\n          }\n        }\n      }\n    }\n    uVar10 = 0;\n    if (puVar21[5] != 0) {\n      uVar10 = FUN_00123800(puVar21[5],0,"phdr flags");\n    }\n    lVar16 = puVar21[4];\n    uVar11 = 0;\n    if (lVar16 != 0) {\n      uVar11 = FUN_00123800(lVar16,0,"phdr load address");\n      lVar16 = puVar21[4];\n    }\n    iVar9 = bfd_record_phdr(DAT_0017fb10,puVar21[2],puVar21[5] != 0,uVar10,lVar16 != 0,uVar11,\n                            *(undefined4 *)(puVar21 + 3),*(undefined4 *)((long)puVar21 + 0x1c),\n                            uVar30,__ptr);\n    if (iVar9 == 0) {\n      dcgettext(0,"%F%P: bfd_record_phdr failed: %E\n",5);\n      FUN_001251f0();\n    }\n  }\n  free(__ptr);\n  for (plVar17 = DAT_0017fa60; plVar17 != (long *)0x0; plVar17 = (long *)plVar17[4]) {\n    if ((-1 < *(int *)((long)plVar17 + 0x84)) && (plVar17[7] != 0)) {\n      plVar18 = (long *)plVar17[0xe];\njoined_r0x0011c90a:\n      if (plVar18 != (long *)0x0) {\n        do {\n          bVar38 = false;\n          bVar39 = (int)plVar18[2] == 0;\n          if (bVar39) {\n            pbVar4 = (byte *)plVar18[1];\n            lVar16 = 5;\n            pbVar20 = pbVar4;\n            pbVar32 = (byte *)0x130359;\n            do {\n              if (lVar16 == 0) break;\n              lVar16 = lVar16 + -1;\n              bVar38 = *pbVar20 < *pbVar32;\n              bVar39 = *pbVar20 == *pbVar32;\n              pbVar20 = pbVar20 + (ulong)bVar40 * -2 + 1;\n              pbVar32 = pbVar32 + (ulong)bVar40 * -2 + 1;\n            } while (bVar39);\n            if ((!bVar38 && !bVar39) != bVar38) goto code_r0x0011c93b;\n          }\n          plVar18 = (long *)*plVar18;\n          if (plVar18 == (long *)0x0) break;\n        } while( true );\n      }\n    }\n  }\n  if (((DAT_0017fac3 & 0x10) != 0) && ((DAT_0017fac0 & 3) != 2)) {\n    local_40 = 0;\n    FUN_00119860(DAT_0017fd98,&local_40);\n    if (local_40 == 0) {\n      DAT_0017fac3 = DAT_0017fac3 & 0xef;\n    }\n  }\n  FUN_0011a050(0,1 < DAT_0017fad8);\n  FUN_00123bb0();\n  lVar16 = DAT_0017fb10;\n  uVar10 = DAT_0017f3c8;\n  if (DAT_0017f350 != 0) {\n    plVar17 = DAT_0017f358 + DAT_0017f350;\n    plVar18 = DAT_0017f358;\n    do {\n      while (lVar15 = *plVar18, (*(ushort *)(lVar15 + 0x18) & 0x8ff) == 3) {\n        pcVar31 = *(char **)(lVar15 + 8);\n        if (*pcVar31 != '.') {\n          cVar8 = *(char *)(*(long *)(lVar16 + 8) + 0x1c);\n          lVar13 = *(long *)(*(long *)(lVar15 + 0x28) + 0x68);\n          *(long *)(lVar15 + 0x28) = lVar13;\n          if (pcVar31[(int)((cVar8 != '\0') + 4)] == 'o') {\n            *(ulong *)(lVar15 + 0x30) = *(ulong *)(lVar13 + 0x38) >> ((byte)uVar10 & 0x3f);\n          }\n          break;\n        }\n        if (pcVar31[2] != 'i') break;\n        plVar18 = plVar18 + 1;\n        uVar30 = *(ulong *)(*(long *)(lVar15 + 0x28) + 0x38);\n        *(undefined8 *)(lVar15 + 0x28) = 0x17ed50;\n        *(ulong *)(lVar15 + 0x30) = uVar30 >> ((byte)uVar10 & 0x3f);\n        if (plVar18 == plVar17) goto LAB_0011ca60;\n      }\n      plVar18 = plVar18 + 1;\n    } while (plVar18 != plVar17);\n  }\nLAB_0011ca60:\n  FUN_001188a0(4);\n  FUN_00123be0();\n  FUN_00123b20();\n  puVar21 = DAT_0017f378;\n  if (DAT_0017fbd8 != '\0') {\n    cVar8 = bfd_arch_bits_per_address(DAT_0017fb10);\n    puVar21 = *(undefined8 **)(DAT_0017fb10 + 0x90);\n    uVar30 = (1L << (cVar8 - 1U & 0x3f)) * 2 - 1;\n    if (puVar21 != (undefined8 *)0x0) {\n      do {\n        if ((*(byte *)(puVar21 + 4) & 1) != 0) {\n          uVar29 = puVar21[5] + puVar21[7] & uVar30;\n          if ((uVar29 == 0) || ((puVar21[5] & uVar30) <= uVar29)) {\n            uVar29 = puVar21[7] + puVar21[6] & uVar30;\n            if ((uVar29 == 0) || ((puVar21[6] & uVar30) <= uVar29)) goto LAB_0011d2f0;\n            uVar11 = *puVar21;\n            pcVar31 = "%X%P: section %s LMA wraps around address space\n";\n          }\n          else {\n            uVar11 = *puVar21;\n            pcVar31 = "%X%P: section %s VMA wraps around address space\n";\n          }\n          uVar14 = dcgettext(0,pcVar31,5);\n          FUN_001251f0(uVar14,uVar11);\n        }\nLAB_0011d2f0:\n        puVar21 = (undefined8 *)puVar21[2];\n      } while (puVar21 != (undefined8 *)0x0);\n    }\n    puVar21 = DAT_0017f378;\n    if (1 < *(uint *)(DAT_0017fb10 + 0xa0)) {\n      uVar30 = 0;\n      plVar17 = (long *)xmalloc((ulong)*(uint *)(DAT_0017fb10 + 0xa0) << 4);\n      lVar16 = *(long *)(DAT_0017fb10 + 0x90);\n      if (lVar16 != 0) {\n        do {\n          uVar29 = uVar30;\n          if ((((*(uint *)(lVar16 + 0x20) & 1) != 0) &&\n              ((*(uint *)(lVar16 + 0x20) & 0x402) != 0x400)) && (*(long *)(lVar16 + 0x38) != 0)) {\n            uVar29 = uVar30 + 1;\n            plVar17[uVar30 * 2] = lVar16;\n            *(undefined4 *)(plVar17 + uVar30 * 2 + 1) = 0;\n          }\n          lVar16 = *(long *)(lVar16 + 0x10);\n          uVar30 = uVar29;\n        } while (lVar16 != 0);\n        if (1 < uVar29) {\n          qsort(plVar17,uVar29,0x10,FUN_00112320);\n          puVar21 = (undefined8 *)0x0;\n          plVar18 = plVar17;\n          uVar30 = 0;\n          uVar25 = 0;\n          do {\n            puVar27 = (undefined8 *)*plVar18;\n            puVar22 = puVar21;\n            uVar34 = uVar30;\n            uVar23 = uVar25;\n            if ((*(byte *)(puVar27 + 4) & 2) != 0) {\n              uVar34 = puVar27[6];\n              uVar23 = (uVar34 - 1) + ((ulong)puVar27[7] >> ((byte)DAT_0017f3c8 & 0x3f));\n              puVar22 = puVar27;\n              if ((puVar21 != (undefined8 *)0x0) && ((uVar34 <= uVar25 || (uVar25 < uVar30)))) {\n                uVar11 = *puVar21;\n                uVar14 = *puVar27;\n                uVar24 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);\n                FUN_001251f0(uVar24,uVar14,uVar34,uVar23,uVar11,uVar30,uVar25);\n                *(undefined4 *)(plVar18 + 1) = 1;\n              }\n            }\n            plVar18 = plVar18 + 2;\n            puVar21 = puVar22;\n            uVar30 = uVar34;\n            uVar25 = uVar23;\n          } while (plVar18 != plVar17 + uVar29 * 2);\n          qsort(plVar17,uVar29,0x10,FUN_00112350);\n          puVar21 = (undefined8 *)*plVar17;\n          uVar23 = 1;\n          uVar30 = puVar21[5];\n          uVar25 = uVar30;\n          do {\n            lVar16 = uVar23 * 2;\n            if (*(ulong *)(plVar17[lVar16] + 0x28) == uVar25) goto LAB_0011d4c4;\n            uVar23 = uVar23 + 1;\n            uVar25 = *(ulong *)(plVar17[lVar16] + 0x28);\n          } while (uVar23 != uVar29);\n          uVar23 = 0;\n          uVar25 = (uVar30 - 1) + ((ulong)puVar21[7] >> ((byte)DAT_0017f3c8 & 0x3f));\n          plVar18 = plVar17;\n          while( true ) {\n            uVar37 = uVar25;\n            uVar34 = uVar30;\n            puVar27 = puVar21;\n            plVar26 = plVar18 + 2;\n            uVar23 = uVar23 + 1;\n            if (uVar23 == uVar29) break;\n            puVar21 = (undefined8 *)*plVar26;\n            plVar3 = plVar18 + 3;\n            uVar30 = puVar21[5];\n            uVar25 = (uVar30 - 1) + ((ulong)puVar21[7] >> ((byte)DAT_0017f3c8 & 0x3f));\n            plVar18 = plVar26;\n            if (((int)*plVar3 == 0) && ((uVar30 <= uVar37 || (uVar37 < uVar34)))) {\n              uVar11 = *puVar27;\n              uVar14 = *puVar21;\n              uVar24 = dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",\n                                 5);\n              FUN_001251f0(uVar24,uVar14,uVar30,uVar25,uVar11,uVar34,uVar37);\n            }\n          }\nLAB_0011d4c4:\n          free(plVar17);\n          for (puVar27 = DAT_0017f398; puVar21 = DAT_0017f378, puVar27 != (undefined8 *)0x0;\n              puVar27 = (undefined8 *)puVar27[2]) {\n            if (*(int *)(puVar27 + 10) != 0) {\n              uVar11 = *puVar27;\n              lVar16 = puVar27[7] - (puVar27[5] + puVar27[4]);\n              uVar14 = dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",lVar16,5);\n              FUN_001251f0(uVar14,uVar11,lVar16);\n            }\n          }\n          goto joined_r0x0011ca92;\n        }\n      }\n      free(plVar17);\n      puVar21 = DAT_0017f378;\n    }\n  }\njoined_r0x0011ca92:\n  for (; puVar21 != (undefined8 *)0x0; puVar21 = (undefined8 *)puVar21[1]) {\n    lVar16 = bfd_link_hash_lookup(DAT_0017fae8,*puVar21,0,0,1);\n    if ((lVar16 == 0) || (1 < (byte)(*(char *)(lVar16 + 0x18) - 3U))) {\n      uVar11 = *puVar21;\n      uVar14 = dcgettext(0,"%X%P: required symbol `%s\' not defined\n",5);\n      FUN_001251f0(uVar14,uVar11);\n    }\n  }\n  iVar9 = DAT_0017fa0c;\n  if (((DAT_0017fac0 & 0x43) != 2) && ((DAT_0017fac0 & 3) != 3)) {\n    iVar9 = 1;\n  }\n  if (((DAT_0017fac0 & 0x43) == 0x42) && (DAT_0017fa0c == 0 && _DAT_0017fa08 == 0)) {\n    uVar11 = dcgettext(0,"%F%P: gc-sections requires either an entry or an undefined symbol\n",5);\n    FUN_001251f0(uVar11);\n  }\n  if (DAT_0017f2e8 == (undefined *)0x0) {\n    DAT_0017f2e8 = PTR_s_start_0017e660;\n    iVar9 = 0;\n  }\n  lVar16 = bfd_link_hash_lookup(DAT_0017fae8,DAT_0017f2e8,0,0,1);\n  if ((lVar16 != 0) && ((byte)(*(char *)(lVar16 + 0x18) - 3U) < 2)) {\n    lVar15 = *(long *)(*(long *)(lVar16 + 0x28) + 0x68);\n    if (lVar15 != 0) {\n      iVar9 = bfd_set_start_address\n                        (DAT_0017fb10,\n                         *(long *)(lVar15 + 0x28) +\n                         *(long *)(*(long *)(lVar16 + 0x28) + 0x60) + *(long *)(lVar16 + 0x30));\n      if (iVar9 != 0) {\n        return;\n      }\n      pcVar31 = "%F%P: %s: can\'t set start address\n";\n      goto LAB_0011cf37;\n    }\n  }\n  uVar11 = bfd_scan_vma(DAT_0017f2e8,&local_40,0);\n  if (*(char *)CONCAT44(uStack_3c,local_40) == '\0') {\n    iVar9 = bfd_set_start_address(DAT_0017fb10,uVar11);\n  }\n  else {\n    lVar16 = bfd_get_section_by_name(DAT_0017fb10,PTR_s__text_0017e648);\n    puVar7 = DAT_0017f2e8;\n    if (lVar16 == 0) {\n      if (iVar9 == 0) {\n        return;\n      }\n      pcVar31 = "%P: warning: cannot find entry symbol %s; not setting start address\n";\nLAB_0011cf37:\n      puVar7 = DAT_0017f2e8;\n      uVar11 = dcgettext(0,pcVar31,5);\n      FUN_001251f0(uVar11,puVar7);\n      return;\n    }\n    uVar11 = *(undefined8 *)(lVar16 + 0x28);\n    if (iVar9 != 0) {\n      uVar14 = dcgettext(0,"%P: warning: cannot find entry symbol %s; defaulting to %V\n",5);\n      FUN_001251f0(uVar14,puVar7,uVar11);\n      uVar11 = *(undefined8 *)(lVar16 + 0x28);\n    }\n    iVar9 = bfd_set_start_address(DAT_0017fb10,uVar11);\n  }\n  if (iVar9 != 0) {\n    return;\n  }\n  uVar11 = dcgettext(0,"%F%P: can\'t set start address\n",5);\n  FUN_001251f0(uVar11);\n  return;\ncode_r0x0011c5be:\n  plVar17 = (long *)plVar17[6];\n  goto joined_r0x0011be7f;\nLAB_0011c1d0:\n  uVar11 = *puVar21;\n  uVar14 = dcgettext(0,"%F%P: invalid length for memory region %s\n",5);\n  FUN_001251f0(uVar14,uVar11);\n  puVar21 = (undefined8 *)puVar21[2];\n  goto joined_r0x0011bfdf;\ncode_r0x0011c493:\n  (**(code **)(*(long *)(plVar17[4] + 8) + 0x2c8))(puVar21,&DAT_0017fac0);\n  puVar21 = (undefined8 *)puVar21[2];\n  goto joined_r0x0011c46e;\ncode_r0x0011c93b:\n  lVar16 = plVar17[6];\n  uVar11 = dcgettext(0,"%X%P: section `%s\' assigned to non-existent phdr `%s\'\n",5);\n  FUN_001251f0(uVar11,lVar16,pbVar4);\n  plVar18 = (long *)*plVar18;\n  goto joined_r0x0011c90a;\n}\n\n" comment comment (function_definition "void FUN_0011bca0(void)\n\n{\n  byte bVar1;\n  uint uVar2;\n  long *plVar3;\n  byte *pbVar4;\n  long lVar5;\n  long *plVar6;\n  undefined *puVar7;\n  char cVar8;\n  int iVar9;\n  undefined4 uVar10;\n  undefined8 uVar11;\n  size_t sVar12;\n  long lVar13;\n  undefined8 uVar14;\n  long lVar15;\n  long lVar16;\n  long *plVar17;\n  void *__ptr;\n  long *plVar18;\n  char *pcVar19;\n  byte *pbVar20;\n  undefined8 *puVar21;\n  undefined8 *puVar22;\n  ulong uVar23;\n  undefined8 uVar24;\n  ulong uVar25;\n  long *plVar26;\n  undefined8 *puVar27;\n  long lVar28;\n  ulong uVar29;\n  ulong uVar30;\n  char *pcVar31;\n  byte *pbVar32;\n  long lVar33;\n  ulong uVar34;\n  byte bVar35;\n  long *plVar36;\n  ulong uVar37;\n  bool bVar38;\n  bool bVar39;\n  byte bVar40;\n  uint local_40;\n  undefined4 uStack_3c;\n  \n  bVar40 = 0;\n  if (DAT_0017fb98 != 0) {\n    FUN_00112d70();\n  }\n  DAT_0017f440 = DAT_0017fcc8;\n  FUN_00115a50(FUN_001182b0,DAT_0017f430);\n  FUN_00113540();\n  FUN_00123c10();\n  for (puVar21 = DAT_0017f2e0; puVar21 != (undefined8 *)0x0; puVar21 = (undefined8 *)*puVar21) {\n    FUN_00112b40(puVar21[1]);\n  }\n  iVar9 = bfd_section_already_linked_table_init();\n  if (iVar9 == 0) {\n    uVar11 = dcgettext(0,"%F%P: can not create hash table: %E\n",5);\n    FUN_001251f0(uVar11);\n  }\n  _DAT_0017f2c0 = _DAT_0017f2c0 + 1;\n  DAT_0017f440 = DAT_0017fcc8;\n  FUN_00119910(DAT_0017f430,0);\n  plVar3 = DAT_0017fa28;\n  plVar26 = DAT_0017fa20;\n  plVar18 = DAT_0017f2f8;\n  plVar17 = DAT_0017f2f0;\n  if ((DAT_0017fac1 & 2) != 0) {\n    lVar16 = *(long *)PTR_DAT_0017e650;\n    plVar36 = *(long **)(PTR_DAT_0017e650 + 8);\n    iVar9 = FUN_00128bb0();\n    if (iVar9 != 0) {\n      uVar11 = FUN_00128550();\n      uVar14 = dcgettext(0,"%F%P: %s: plugin reported error after all symbols read\n",5);\n      FUN_001251f0(uVar14,uVar11);\n    }\n    FUN_00119910(*plVar36,0);\n    puVar7 = PTR_DAT_0017e650;\n    if (*(long *)PTR_DAT_0017e650 != lVar16) {\n      FUN_001252b0("../../ld/ldlang.c",0x1baf);\n    }\n    plVar6 = *(long **)(puVar7 + 8);\n    lVar16 = *plVar36;\n    *(long **)(puVar7 + 8) = plVar36;\n    *plVar36 = 0;\n    if (DAT_0017f2f0 != plVar17) {\n      FUN_001252b0("../../ld/ldlang.c",0x1baf);\n    }\n    plVar36 = DAT_0017f2f8;\n    plVar17 = (long *)*plVar18;\n    DAT_0017f2f8 = plVar18;\n    *plVar18 = 0;\n    if (DAT_0017fa20 != plVar26) {\n      FUN_001252b0("../../ld/ldlang.c",0x1baf);\n    }\n    plVar26 = DAT_0017fa28;\n    lVar15 = *plVar3;\n    DAT_0017fa28 = plVar3;\n    *plVar3 = 0;\n    plVar18 = DAT_0017f2f0;\n    plVar3 = DAT_0017fa20;\n    if (lVar16 != 0) {\n      for (; DAT_0017f380 = plVar3, plVar18 != (long *)0x0; plVar18 = (long *)plVar18[6]) {\n        if ((*(byte *)((long)plVar18 + 0x49) & 0x20) != 0) {\n          if ((*(byte *)((long)plVar18 + 0x49) & 0x40) == 0) goto LAB_0011d6c0;\n          break;\n        }\n        if ((plVar18[4] != 0) && (*(long *)(plVar18[4] + 0xd0) == 0)) {\n          DAT_0017f380 = plVar18;\n        }\n        plVar3 = DAT_0017f380;\n      }\n      plVar18 = DAT_0017f380;\n      if (DAT_0017f380 == (long *)0x0) {\n        FUN_001252b0("../../ld/ldlang.c",0x1c32);\n        plVar18 = DAT_0017f380;\n      }\nLAB_0011d6c0:\n      DAT_0017f380 = plVar18;\n      plVar18 = DAT_0017f380;\n      puVar7 = PTR_DAT_0017e650;\n      *plVar6 = *DAT_0017f380;\n      *plVar18 = lVar16;\n      if (plVar18 == *(long **)(puVar7 + 8)) {\n        *(long **)(puVar7 + 8) = plVar6;\n      }\n      *plVar26 = plVar18[7];\n      bVar38 = DAT_0017fa28 == plVar18 + 7;\n      plVar18[7] = lVar15;\n      plVar3 = DAT_0017f2f8;\n      if (bVar38) {\n        DAT_0017fa28 = plVar26;\n      }\n      if (plVar18[2] == 0) {\n        *plVar36 = (long)DAT_0017f2f0;\n        DAT_0017f2f0 = plVar17;\n        if ((long **)plVar3 != &DAT_0017f2f0) {\n          plVar36 = DAT_0017f2f8;\n        }\n      }\n      else {\n        *plVar36 = plVar18[6];\n        plVar18[6] = (long)plVar17;\n        if (plVar3 != plVar18 + 6) {\n          plVar36 = DAT_0017f2f8;\n        }\n      }\n      DAT_0017f2f8 = plVar36;\n      plVar18 = DAT_0017f2f8;\n      plVar17 = DAT_0017f2f0;\n      _DAT_0017f2c0 = _DAT_0017f2c0 + 1;\n      FUN_00119910(DAT_0017f430);\n      if (DAT_0017f2f0 != plVar17) {\n        FUN_001252b0("../../ld/ldlang.c");\n      }\n      lVar16 = *plVar18;\n      DAT_0017f2f8 = plVar18;\n      *plVar18 = 0;\n      while (lVar16 != 0) {\n        lVar15 = *(long *)(*(long *)(lVar16 + 0x20) + 0xd0);\n        lVar13 = *(long *)(lVar16 + 0x20);\n        if (lVar15 != 0) {\n          lVar13 = lVar15;\n        }\n        if (DAT_0017fa20 == (long *)0x0) {\nLAB_0011dad0:\n          plVar17 = DAT_0017f2f0;\n        }\n        else {\n          plVar26 = (long *)0x0;\n          plVar18 = DAT_0017fa20;\n          plVar17 = (long *)0x0;\n          do {\n            while (plVar18[4] != lVar13) {\n              if ((plVar18[4] != 0) && (plVar18[6] != 0)) {\n                plVar26 = plVar18;\n              }\n              plVar18 = (long *)plVar18[7];\n              if (plVar18 == (long *)0x0) goto LAB_0011d7f1;\n            }\n            lVar28 = plVar18[6];\n            if (lVar28 != 0) {\n              plVar17 = (long *)(lVar28 + 0x30);\n              lVar13 = *(long *)(lVar28 + 0x30);\n              goto LAB_0011d835;\n            }\n            plVar18 = (long *)plVar18[7];\n            plVar17 = plVar26;\n          } while (plVar18 != (long *)0x0);\nLAB_0011d7f1:\n          if (plVar17 == (long *)0x0) goto LAB_0011dad0;\n        }\n        plVar17 = plVar17 + 6;\n        for (lVar13 = *plVar17; lVar13 != 0; lVar13 = *(long *)(lVar13 + 0x30)) {\n          if (((*(byte *)(lVar13 + 0x49) & 0x40) == 0) &&\n             (*(long *)(*(long *)(lVar13 + 0x20) + 0xd0) == 0)) {\n            lVar13 = *plVar17;\n            break;\n          }\n          plVar17 = (long *)(lVar13 + 0x30);\n        }\nLAB_0011d835:\n        plVar18 = (long *)(lVar16 + 0x30);\n        if (lVar15 == 0) {\n          *plVar17 = lVar16;\n          lVar15 = *(long *)(lVar16 + 0x30);\n          *(long *)(lVar16 + 0x30) = lVar13;\n          lVar16 = lVar15;\n        }\n        else {\n          lVar28 = *(long *)(lVar16 + 0x30);\n          if (lVar28 != 0) {\n            lVar5 = *(long *)(*(long *)(lVar28 + 0x20) + 0xd0);\n            while (lVar15 == lVar5) {\n              plVar18 = (long *)(lVar28 + 0x30);\n              lVar28 = *(long *)(lVar28 + 0x30);\n              if (lVar28 == 0) break;\n              lVar5 = *(long *)(*(long *)(lVar28 + 0x20) + 0xd0);\n            }\n          }\n          *plVar17 = lVar16;\n          lVar16 = *plVar18;\n          *plVar18 = lVar13;\n          if (*(long *)(lVar15 + 0x100) != 0) {\n            *(long **)(*(long *)(lVar15 + 0x100) + 0x30) = plVar18 + -6;\n          }\n        }\n      }\n    }\n  }\n  if (DAT_0017fb38 != (undefined8 *)0x0) {\n    FUN_001252b0("../../ld/ldlang.c",0x1c67);\n  }\n  DAT_0017fb38 = &DAT_0017f2e0;\n  if (DAT_0017f2e8 == (undefined *)0x0) {\n    DAT_0017fb38 = DAT_0017f2e0;\n    if (PTR_s_start_0017e660 != (undefined *)0x0) {\n      FUN_00115880();\n    }\n  }\n  if (DAT_0017fb48 != 0) {\n    FUN_00115880();\n  }\n  if (DAT_0017fb50 != 0) {\n    FUN_00115880();\n  }\n  FUN_00123b90();\n  if ((DAT_0017fc98 != 0) && (DAT_0017f3d0 != (undefined8 *)0x0)) {\n    uVar11 = dcgettext(0,"\nAs-needed library included to satisfy reference by file (symbol)\n\n",5)\n    ;\n    FUN_001252f0(uVar11);\n    for (puVar21 = DAT_0017f3d0; puVar21 != (undefined8 *)0x0; puVar21 = (undefined8 *)*puVar21) {\n      FUN_001252f0(&DAT_0013efee,puVar21[1]);\n      sVar12 = strlen((char *)puVar21[1]);\n      if (0x1c < sVar12) {\n        FUN_00124290();\n        sVar12 = 0;\n      }\n      do {\n        FUN_00124270();\n        sVar12 = sVar12 + 1;\n      } while (sVar12 != 0x1e);\n      if (puVar21[2] != 0) {\n        FUN_001252f0(&DAT_0013f279);\n      }\n      FUN_001252f0("(%pT)\n",puVar21[3]);\n    }\n  }\n  bfd_section_already_linked_table_free();\n  plVar17 = DAT_0017f2f0;\njoined_r0x0011be7f:\n  if (plVar17 != (long *)0x0) {\n    do {\n      if ((*(byte *)((long)plVar17 + 0x49) & 0x20) == 0) {\n        lVar16 = plVar17[4];\n        lVar13 = bfd_arch_get_compatible(lVar16,DAT_0017fb10,DAT_0017fbdc);\n        lVar15 = DAT_0017fb10;\n        if (((DAT_0017fac0 & 3) == 2) || ((DAT_0017fac3 & 8) != 0)) {\n          if (lVar13 != 0) {\n            puVar21 = *(undefined8 **)(lVar16 + 8);\n            puVar27 = *(undefined8 **)(DAT_0017fb10 + 8);\n            if ((*(int *)(puVar21 + 1) != *(int *)(puVar27 + 1)) &&\n               ((*(byte *)(lVar16 + 0x44) & 0x20) != 0)) goto LAB_0011c12e;\n            goto LAB_0011bed4;\n          }\n          if ((*(byte *)(lVar16 + 0x44) & 0x20) != 0) {\n            puVar21 = *(undefined8 **)(lVar16 + 8);\n            puVar27 = *(undefined8 **)(DAT_0017fb10 + 8);\nLAB_0011c12e:\n            uVar11 = *puVar27;\n            uVar14 = *puVar21;\n            uVar24 = 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_001251f0(uVar24,uVar14,lVar16,uVar11,lVar15);\n            goto joined_r0x0011c167;\n          }\n        }\n        else {\njoined_r0x0011c167:\n          if (lVar13 != 0) {\nLAB_0011bed4:\n            if (*(int *)(lVar16 + 0xa0) == 0) goto LAB_0011bf30;\n            uVar11 = 0;\n            if (DAT_0017fbd0 == 0) {\n              uVar11 = bfd_set_error_handler(FUN_00112380);\n            }\n            iVar9 = (**(code **)(*(long *)(DAT_0017fb10 + 8) + 0x140))(lVar16,&DAT_0017fac0);\n            if (iVar9 == 0) {\n              if (DAT_0017fbd0 != 0) {\n                uVar14 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);\n                FUN_001251f0(uVar14,lVar16);\n                goto LAB_0011c5b0;\n              }\n            }\n            else {\nLAB_0011c5b0:\n              if (DAT_0017fbd0 != 0) goto code_r0x0011c5be;\n            }\n            bfd_set_error_handler(uVar11);\n            goto LAB_0011bf30;\n          }\n        }\n        if (DAT_0017fbd0 == 0) goto LAB_0011bf30;\n        uVar11 = bfd_printable_name(DAT_0017fb10);\n        uVar14 = bfd_printable_name(lVar16);\n        uVar24 = dcgettext(0,\n                           "%X%P: %s architecture of input file `%pB\' is incompatible with %s output\n"\n                           ,5);\n        FUN_001251f0(uVar24,uVar14,lVar16,uVar11);\n        plVar17 = (long *)plVar17[6];\n      }\n      else {\nLAB_0011bf30:\n        plVar17 = (long *)plVar17[6];\n      }\n      if (plVar17 == (long *)0x0) break;\n    } while( true );\n  }\n  if (DAT_0017fc30 != 0) {\n    uVar11 = 0;\n    for (plVar17 = DAT_0017f2f0; plVar17 != (long *)0x0; plVar17 = (long *)plVar17[6]) {\n      lVar16 = bfd_get_section_by_name(plVar17[4],".exports");\n      if (lVar16 != 0) {\n        lVar15 = *(long *)(lVar16 + 0x38);\n        pcVar31 = (char *)xmalloc(lVar15);\n        iVar9 = bfd_get_section_contents(plVar17[4],lVar16,pcVar31,0,lVar15);\n        if (iVar9 == 0) {\n          uVar14 = dcgettext(0,"%X%P: unable to read .exports section contents\n",5);\n          FUN_001251f0(uVar14,lVar16);\n        }\n        pcVar19 = pcVar31 + lVar15;\n        for (; pcVar31 < pcVar19; pcVar31 = pcVar31 + sVar12 + 1) {\n          uVar11 = FUN_0011b640(uVar11,pcVar31,0);\n          sVar12 = strlen(pcVar31);\n        }\n        *(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) | 0x208000;\n      }\n    }\n    uVar14 = FUN_0011b640(0,&DAT_0013f157,0,0);\n    lVar15 = xcalloc(1,0x70);\n    lVar16 = DAT_0017fc30;\n    *(undefined8 *)(lVar15 + 0x18) = uVar11;\n    *(undefined8 *)(lVar15 + 0x38) = uVar14;\n    *(code **)(lVar15 + 0x68) = FUN_00112f60;\n    *(undefined4 *)(lVar15 + 0x60) = 0xffffffff;\n    FUN_0011b860(lVar16,lVar15,0);\n  }\n  FUN_0011eaa0();\n  if ((DAT_0017fc4c != 0) &&\n     (cVar8 = *(char *)(*(long *)(DAT_0017fb10 + 8) + 0x1c), DAT_0017fb20 != 0)) {\n    lVar16 = DAT_0017fb20;\n    do {\n      for (puVar21 = *(undefined8 **)(lVar16 + 0x90); puVar21 != (undefined8 *)0x0;\n          puVar21 = (undefined8 *)puVar21[2]) {\n        while( true ) {\n          pbVar4 = (byte *)*puVar21;\n          bVar35 = *pbVar4;\n          if (bVar35 == 0) break;\n          bVar1 = _sch_istable[(ulong)bVar35 * 2];\n          pbVar20 = pbVar4;\n          while (((bVar1 & 0x8c) != 0 || (bVar35 == 0x5f))) {\n            pbVar20 = pbVar20 + 1;\n            bVar35 = *pbVar20;\n            if (bVar35 == 0) goto LAB_0011d178;\n            bVar1 = _sch_istable[(ulong)bVar35 * 2];\n          }\n          puVar21 = (undefined8 *)puVar21[2];\n          if (puVar21 == (undefined8 *)0x0) goto LAB_0011d163;\n        }\nLAB_0011d178:\n        sVar12 = strlen((char *)pbVar4);\n        pcVar31 = (char *)xmalloc(sVar12 + 10);\n        *pcVar31 = cVar8;\n        sprintf(pcVar31 + (cVar8 != '\0'),"__start_%s",pbVar4);\n        FUN_00112ee0(pcVar31,puVar21);\n        pcVar31[1] = cVar8;\n        builtin_strncpy(pcVar31 + (2 - (ulong)(cVar8 == '\0')),"__stop",6);\n        FUN_00112ee0(pcVar31 + 1,puVar21);\n        free(pcVar31);\n      }\nLAB_0011d163:\n      lVar16 = *(long *)(lVar16 + 0xf0);\n    } while (lVar16 != 0);\n  }\n  FUN_001188a0(1);\n  puVar21 = DAT_0017f398;\njoined_r0x0011bfdf:\n  if (puVar21 != (undefined8 *)0x0) {\n    do {\n      if (puVar21[3] != 0) {\n        FUN_00123150();\n        uVar11 = DAT_0017fd20;\n        if (DAT_0017fd38 == 0) {\n          uVar11 = *puVar21;\n          uVar14 = dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);\n          FUN_001251f0(uVar14,uVar11);\n        }\n        else {\n          puVar21[4] = DAT_0017fd20;\n          puVar21[7] = uVar11;\n        }\n      }\n      if (puVar21[6] != 0) {\n        FUN_00123150();\n        if (DAT_0017fd38 == 0) goto LAB_0011c1d0;\n        puVar21[5] = DAT_0017fd20;\n      }\n      puVar21 = (undefined8 *)puVar21[2];\n      if (puVar21 == (undefined8 *)0x0) break;\n    } while( true );\n  }\n  DAT_0017fd00 = 0;\n  if (((DAT_0017fac7 & 0x20) == 0) && (((DAT_0017fac0 & 3) != 2 || (DAT_0017fbc0 != 0)))) {\n    if (DAT_0017fc6c == 0) {\n      bfd_link_hash_traverse(DAT_0017fae8,FUN_001145f0,0);\n    }\n    else {\n      if (DAT_0017fc6c == 2) {\n        local_40 = 4;\n        do {\n          bfd_link_hash_traverse(DAT_0017fae8,FUN_001145f0,&local_40);\n          local_40 = local_40 - 1;\n        } while (local_40 != 0);\n        local_40 = 0;\n      }\n      else {\n        local_40 = 0;\n        do {\n          bfd_link_hash_traverse(DAT_0017fae8,FUN_001145f0,&local_40);\n          local_40 = local_40 + 1;\n        } while (local_40 < 5);\n        local_40 = 0xffffffff;\n      }\n      bfd_link_hash_traverse(DAT_0017fae8,FUN_001145f0,&local_40);\n    }\n  }\n  FUN_00119400(DAT_0017f430);\n  bVar35 = DAT_0017fac0;\n  plVar17 = DAT_0017f2f0;\n  if ((DAT_0017fac0 & 3) == 2) {\n    for (; plVar17 != (long *)0x0; plVar17 = (long *)plVar17[6]) {\n      if ((*(byte *)((long)plVar17 + 0x49) & 0x20) == 0) {\n        for (lVar16 = *(long *)(plVar17[4] + 0x90); lVar16 != 0; lVar16 = *(long *)(lVar16 + 0x10))\n        {\n          if ((*(uint *)(lVar16 + 0x20) & 0x2000) == 0) {\n            *(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) & 0xffff7fff;\n          }\n        }\n      }\n    }\n  }\n  if ((bVar35 & 0x40) != 0) {\n    (**(code **)(*(long *)(DAT_0017fb10 + 8) + 0x2f0))(DAT_0017fb10,&DAT_0017fac0);\n  }\n  lVar16 = DAT_0017fb20;\n  if ((DAT_0017fac6 & 0x20) != 0) {\n    for (; lVar16 != 0; lVar16 = *(long *)(lVar16 + 0xf0)) {\n      iVar9 = bfd_link_check_relocs(lVar16,&DAT_0017fac0);\n      if (iVar9 == 0) {\n        DAT_0017fc44 = 0;\n      }\n    }\n  }\n  FUN_00123ba0();\n  FUN_001124e0(DAT_0017f430);\n  _DAT_0017f2c0 = _DAT_0017f2c0 + 1;\n  FUN_00119520(DAT_0017f430,0,0);\n  plVar18 = (long *)0x0;\n  plVar26 = (long *)0x0;\n  plVar17 = DAT_0017fa60;\n  while (plVar36 = plVar17, plVar3 = (long *)*plVar36, plVar3 != (long *)0x0) {\n    plVar17 = plVar3;\n    if ((int)plVar3[1] == 0) {\n      if ((plVar26 != (long *)0x0) && (plVar3 != (long *)plVar26[4])) {\n        FUN_001252b0("../../ld/ldlang.c",0xea0);\n        plVar17 = (long *)*plVar36;\n      }\n      *(int *)((long)plVar3 + 0x84) = -2 - *(int *)((long)plVar3 + 0x84);\n      plVar26 = plVar3;\n      if (plVar18 == (long *)0x0) {\n        plVar18 = plVar3;\n      }\n    }\n    else if ((int)plVar3[1] == 0xe) {\n      lVar16 = FUN_00116e20(plVar3[2],0,0);\n      if (lVar16 == 0) {\nLAB_0011c415:\n        lVar16 = plVar3[2];\n        uVar11 = dcgettext(0,"%F%P: %s not found for insert\n",5);\n        FUN_001251f0(uVar11,lVar16);\n        plVar17 = DAT_0017f2f0;\n        goto joined_r0x0011c458;\n      }\n      if ((int)plVar3[3] != 0) {\n        do {\n          lVar16 = *(long *)(lVar16 + 0x28);\n          if (lVar16 == 0) goto LAB_0011c415;\n        } while (*(int *)(lVar16 + 0x84) < 0);\n      }\n      if (plVar26 != (long *)0x0) {\n        lVar15 = plVar18[5];\n        lVar13 = plVar26[4];\n        *(long *)(lVar15 + 0x20) = lVar13;\n        if (lVar13 == 0) {\n          DAT_0017fa68 = (long *)(lVar15 + 0x20);\n        }\n        else {\n          *(long *)(lVar13 + 0x28) = lVar15;\n        }\n        plVar26[4] = *(long *)(lVar16 + 0x20);\n        if (*(long *)(lVar16 + 0x20) == 0) {\n          DAT_0017fa68 = plVar26 + 4;\n        }\n        else {\n          *(long **)(*(long *)(lVar16 + 0x20) + 0x28) = plVar26;\n        }\n        plVar18[5] = lVar16;\n        lVar13 = 0;\n        lVar15 = 0;\n        *(long **)(lVar16 + 0x20) = plVar18;\n        do {\n          *(int *)((long)plVar18 + 0x84) = -2 - *(int *)((long)plVar18 + 0x84);\n          lVar28 = plVar18[7];\n          if (((lVar28 != 0) && (*(long *)(lVar28 + 0xf0) != 0)) && (lVar13 = lVar28, lVar15 == 0))\n          {\n            lVar15 = lVar28;\n          }\n        } while ((plVar26 != plVar18) && (plVar18 = (long *)plVar18[4], plVar18 != (long *)0x0));\n        plVar18 = (long *)0x0;\n        if (lVar13 != 0) {\n          lVar28 = *(long *)(lVar16 + 0x38);\n          if (lVar28 == 0) {\n            plVar18 = *(long **)(lVar16 + 0x28);\n            if (plVar18 != (long *)0x0) {\n              do {\n                if (((-1 < *(int *)((long)plVar18 + 0x84)) && (lVar28 = plVar18[7], lVar28 != 0)) &&\n                   (*(long *)(lVar28 + 0xf0) != 0)) goto LAB_0011cd61;\n                plVar18 = (long *)plVar18[5];\n              } while (plVar18 != (long *)0x0);\n              plVar18 = (long *)0x0;\n            }\n          }\n          else {\nLAB_0011cd61:\n            plVar18 = (long *)0x0;\n            if (lVar28 != lVar13) {\n              lVar5 = *(long *)(lVar15 + 0x18);\n              lVar33 = *(long *)(lVar13 + 0x10);\n              if (lVar5 == 0) {\n                *(long *)(DAT_0017fb10 + 0x90) = lVar33;\n              }\n              else {\n                *(long *)(lVar5 + 0x10) = lVar33;\n                lVar33 = *(long *)(lVar13 + 0x10);\n              }\n              if (lVar33 == 0) {\n                *(long *)(DAT_0017fb10 + 0x98) = lVar5;\n              }\n              else {\n                *(long *)(lVar33 + 0x18) = lVar5;\n              }\n              lVar5 = *(long *)(lVar28 + 0x10);\n              *(long *)(lVar13 + 0x10) = lVar5;\n              if (lVar5 == 0) {\n                *(long *)(DAT_0017fb10 + 0x98) = lVar13;\n              }\n              else {\n                *(long *)(lVar5 + 0x18) = lVar13;\n              }\n              *(long *)(lVar15 + 0x18) = lVar28;\n              plVar18 = (long *)0x0;\n              *(long *)(lVar28 + 0x10) = lVar15;\n            }\n          }\n        }\n      }\n      plVar17 = (long *)FUN_00112240(lVar16);\n      lVar16 = *DAT_0017fa60;\n      *DAT_0017fa60 = *(long *)*plVar36;\n      lVar15 = *plVar17;\n      *plVar36 = lVar15;\n      if (lVar15 == 0) {\n        DAT_0017f438 = plVar36;\n      }\n      *plVar17 = lVar16;\n      plVar26 = (long *)0x0;\n      plVar17 = DAT_0017fa60;\n    }\n  }\n  for (; (plVar17 = DAT_0017f2f0, plVar18 != (long *)0x0 &&\n         (*(int *)((long)plVar18 + 0x84) = -2 - *(int *)((long)plVar18 + 0x84),\n         plVar17 = DAT_0017f2f0, plVar26 != plVar18)); plVar18 = (long *)plVar18[4]) {\n  }\njoined_r0x0011c458:\n  for (; plVar17 != (long *)0x0; plVar17 = (long *)plVar17[6]) {\n    puVar21 = *(undefined8 **)(plVar17[4] + 0x90);\njoined_r0x0011c46e:\n    if (puVar21 != (undefined8 *)0x0) {\n      do {\n        if (puVar21[0xd] == 0) {\n          if ((*(byte *)(plVar17 + 9) & 0x10) != 0) goto code_r0x0011c493;\n          iVar9 = FUN_00113350(*(undefined4 *)(puVar21 + 4));\n          bVar38 = false;\n          bVar39 = iVar9 == 0;\n          if (bVar39) {\n            pbVar4 = (byte *)*puVar21;\n            lVar16 = 7;\n            pbVar20 = pbVar4;\n            pbVar32 = (byte *)"COMMON";\n            do {\n              if (lVar16 == 0) break;\n              lVar16 = lVar16 + -1;\n              bVar38 = *pbVar20 < *pbVar32;\n              bVar39 = *pbVar20 == *pbVar32;\n              pbVar20 = pbVar20 + (ulong)bVar40 * -2 + 1;\n              pbVar32 = pbVar32 + (ulong)bVar40 * -2 + 1;\n            } while (bVar39);\n            if ((!bVar38 && !bVar39) == bVar38) {\n              if (((DAT_0017fac0 & 3) != 2) || (DAT_0017fbc0 != 0)) {\n                lVar16 = DAT_0017f458;\n                if (DAT_0017f458 == 0) {\n                  lVar16 = FUN_00116e20(".bss",0,1);\n                  DAT_0017f458 = lVar16;\n                }\nLAB_0011c659:\n                FUN_00117b90(lVar16 + 0x10,puVar21,0);\n              }\n            }\n            else {\n              if (DAT_0017fc5c == 1) {\n                lVar16 = FUN_00116e20("/DISCARD/",0,1);\n                if ((*(long *)(lVar16 + 0x58) == 0) &&\n                   (((DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0)))) {\n                  uVar11 = FUN_00123030(0);\n                  *(undefined8 *)(lVar16 + 0x58) = uVar11;\n                }\n                goto LAB_0011c659;\n              }\n              if (DAT_0017fc5c == 3) {\n                uVar11 = puVar21[0x1e];\n                uVar14 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_001251f0(uVar14,puVar21,uVar11);\n              }\n              if ((DAT_0017fc78 == 0) && (iVar9 = FUN_001150a0(puVar21,0), iVar9 == 0)) {\n                uVar10 = 0;\n              }\n              else {\n                uVar10 = 0x17e;\n              }\n              lVar16 = FUN_00123c60(puVar21,pbVar4,uVar10);\n              if (lVar16 == 0) {\n                lVar16 = FUN_00116e20(pbVar4,uVar10,1);\n                if ((*(long *)(lVar16 + 0x58) == 0) &&\n                   (((DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0)))) {\n                  uVar11 = FUN_00123030(0);\n                  *(undefined8 *)(lVar16 + 0x58) = uVar11;\n                }\n                FUN_00117b90(lVar16 + 0x10,puVar21,0);\n              }\n              if (DAT_0017fc5c == 2) {\n                uVar11 = puVar21[0x1e];\n                uVar14 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_001251f0(uVar14,puVar21,uVar11);\n              }\n            }\n          }\n          else {\n            puVar21[0xd] = 0x17ed50;\n          }\n        }\n        puVar21 = (undefined8 *)puVar21[2];\n        if (puVar21 == (undefined8 *)0x0) break;\n      } while( true );\n    }\n  }\n  bVar35 = DAT_0017fac0 & 3;\n  plVar17 = DAT_0017f358;\n  plVar18 = DAT_0017fa60;\n  lVar16 = DAT_0017fb10;\n  if (bVar35 != 2) {\n    (**(code **)(*(long *)(DAT_0017fb10 + 8) + 0x300))(DAT_0017fb10,&DAT_0017fac0);\n    lVar16 = bfd_get_section_by_name(DAT_0017fb10,".text");\n    if (lVar16 == 0) {\n      bVar35 = DAT_0017fac0 & 3;\n      plVar17 = DAT_0017f358;\n      plVar18 = DAT_0017fa60;\n      lVar16 = DAT_0017fb10;\n    }\n    else {\n      bVar35 = DAT_0017fac0 & 3;\n      if (DAT_0017fc70 == 0) {\n        *(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) & 0xfffffff7;\n        plVar17 = DAT_0017f358;\n        plVar18 = DAT_0017fa60;\n        lVar16 = DAT_0017fb10;\n      }\n      else {\n        *(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) | 8;\n        plVar17 = DAT_0017f358;\n        plVar18 = DAT_0017fa60;\n        lVar16 = DAT_0017fb10;\n      }\n    }\n  }\n  for (; DAT_0017f358 = plVar17, DAT_0017fb10 = lVar16, plVar18 != (long *)0x0;\n      plVar18 = (long *)plVar18[4]) {\n    lVar16 = plVar18[5];\n    if ((((lVar16 != 0) && (plVar18[9] == 0)) && (plVar18[0xc] == 0)) &&\n       ((plVar18[0xb] == 0 && (plVar18[8] == *(long *)(lVar16 + 0x40))))) {\n      plVar18[9] = *(long *)(lVar16 + 0x48);\n    }\n    plVar17 = DAT_0017f358;\n    lVar16 = DAT_0017fb10;\n  }\n  if ((DAT_0017fc4c != 0) && (DAT_0017f350 != 0)) {\n    plVar18 = plVar17 + DAT_0017f350;\n    do {\n      lVar15 = *plVar17;\n      if ((*(byte *)(lVar15 + 0x19) & 8) == 0) {\n        puVar21 = (undefined8 *)(*(undefined8 **)(lVar15 + 0x28))[0xd];\n        if (((puVar21 == (undefined8 *)0x0) || (puVar21[0x1e] != lVar16)) ||\n           (iVar9 = strcmp((char *)**(undefined8 **)(lVar15 + 0x28),(char *)*puVar21), iVar9 != 0))\n        {\n          *(undefined1 *)(lVar15 + 0x18) = 1;\n          *(undefined8 *)(lVar15 + 0x28) = 0;\n        }\n      }\n      plVar17 = plVar17 + 1;\n    } while (plVar18 != plVar17);\n  }\n  if (bVar35 != 2) {\n    for (puVar21 = *(undefined8 **)(DAT_0017fb10 + 0x90); puVar21 != (undefined8 *)0x0;\n        puVar21 = (undefined8 *)puVar21[2]) {\n      pcVar31 = (char *)*puVar21;\n      sVar12 = strlen(pcVar31);\n      pcVar19 = (char *)xmalloc(sVar12 + 10);\n      sprintf(pcVar19,".startof.%s",pcVar31);\n      FUN_00112ee0(pcVar19,puVar21);\n      builtin_strncpy(pcVar19 + 1,".size",5);\n      FUN_00112ee0(pcVar19 + 1,puVar21);\n      free(pcVar19);\n    }\n  }\n  FUN_00123bc0();\n  plVar17 = (long *)0x0;\n  __ptr = (void *)xmalloc(0x50);\n  uVar2 = 10;\n  for (puVar21 = DAT_0017fa50; puVar21 != (undefined8 *)0x0; puVar21 = (undefined8 *)*puVar21) {\n    uVar30 = 0;\n    for (plVar18 = DAT_0017fa60; plVar18 != (long *)0x0; plVar18 = (long *)plVar18[4]) {\n      if (-1 < *(int *)((long)plVar18 + 0x84)) {\n        plVar26 = (long *)plVar18[0xe];\n        if (plVar26 == (long *)0x0) {\n          if (((*(int *)((long)plVar18 + 0x8c) != 2) && (plVar18[7] != 0)) &&\n             (((*(byte *)(plVar18[7] + 0x20) & 1) != 0 &&\n              (plVar26 = plVar17, plVar3 = plVar18, puVar21[2] != 3)))) {\n            while( true ) {\n              plVar17 = plVar26;\n              if (plVar26 != (long *)0x0) goto LAB_0011c7fd;\n              plVar3 = (long *)plVar3[4];\n              if (plVar3 == (long *)0x0) break;\n              plVar26 = (long *)plVar3[0xe];\n            }\n            plVar17 = (long *)0x0;\n            dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            FUN_001251f0();\n          }\n        }\n        else {\n          plVar17 = plVar26;\n          plVar3 = (long *)plVar18[7];\n          while (plVar3 != (long *)0x0) {\nLAB_0011c7fd:\n            iVar9 = strcmp((char *)plVar26[1],(char *)puVar21[1]);\n            uVar29 = uVar30;\n            if (iVar9 == 0) {\n              if (uVar2 <= (uint)uVar30) {\n                uVar2 = uVar2 << 1;\n                __ptr = (void *)xrealloc(__ptr,(ulong)uVar2 << 3);\n              }\n              uVar29 = (ulong)((uint)uVar30 + 1);\n              *(long *)((long)__ptr + uVar30 * 8) = plVar18[7];\n              *(undefined4 *)(plVar26 + 2) = 1;\n            }\n            plVar26 = (long *)*plVar26;\n            uVar30 = uVar29;\n            plVar3 = plVar26;\n          }\n        }\n      }\n    }\n    uVar10 = 0;\n    if (puVar21[5] != 0) {\n      uVar10 = FUN_00123800(puVar21[5],0,"phdr flags");\n    }\n    lVar16 = puVar21[4];\n    uVar11 = 0;\n    if (lVar16 != 0) {\n      uVar11 = FUN_00123800(lVar16,0,"phdr load address");\n      lVar16 = puVar21[4];\n    }\n    iVar9 = bfd_record_phdr(DAT_0017fb10,puVar21[2],puVar21[5] != 0,uVar10,lVar16 != 0,uVar11,\n                            *(undefined4 *)(puVar21 + 3),*(undefined4 *)((long)puVar21 + 0x1c),\n                            uVar30,__ptr);\n    if (iVar9 == 0) {\n      dcgettext(0,"%F%P: bfd_record_phdr failed: %E\n",5);\n      FUN_001251f0();\n    }\n  }\n  free(__ptr);\n  for (plVar17 = DAT_0017fa60; plVar17 != (long *)0x0; plVar17 = (long *)plVar17[4]) {\n    if ((-1 < *(int *)((long)plVar17 + 0x84)) && (plVar17[7] != 0)) {\n      plVar18 = (long *)plVar17[0xe];\njoined_r0x0011c90a:\n      if (plVar18 != (long *)0x0) {\n        do {\n          bVar38 = false;\n          bVar39 = (int)plVar18[2] == 0;\n          if (bVar39) {\n            pbVar4 = (byte *)plVar18[1];\n            lVar16 = 5;\n            pbVar20 = pbVar4;\n            pbVar32 = (byte *)0x130359;\n            do {\n              if (lVar16 == 0) break;\n              lVar16 = lVar16 + -1;\n              bVar38 = *pbVar20 < *pbVar32;\n              bVar39 = *pbVar20 == *pbVar32;\n              pbVar20 = pbVar20 + (ulong)bVar40 * -2 + 1;\n              pbVar32 = pbVar32 + (ulong)bVar40 * -2 + 1;\n            } while (bVar39);\n            if ((!bVar38 && !bVar39) != bVar38) goto code_r0x0011c93b;\n          }\n          plVar18 = (long *)*plVar18;\n          if (plVar18 == (long *)0x0) break;\n        } while( true );\n      }\n    }\n  }\n  if (((DAT_0017fac3 & 0x10) != 0) && ((DAT_0017fac0 & 3) != 2)) {\n    local_40 = 0;\n    FUN_00119860(DAT_0017fd98,&local_40);\n    if (local_40 == 0) {\n      DAT_0017fac3 = DAT_0017fac3 & 0xef;\n    }\n  }\n  FUN_0011a050(0,1 < DAT_0017fad8);\n  FUN_00123bb0();\n  lVar16 = DAT_0017fb10;\n  uVar10 = DAT_0017f3c8;\n  if (DAT_0017f350 != 0) {\n    plVar17 = DAT_0017f358 + DAT_0017f350;\n    plVar18 = DAT_0017f358;\n    do {\n      while (lVar15 = *plVar18, (*(ushort *)(lVar15 + 0x18) & 0x8ff) == 3) {\n        pcVar31 = *(char **)(lVar15 + 8);\n        if (*pcVar31 != '.') {\n          cVar8 = *(char *)(*(long *)(lVar16 + 8) + 0x1c);\n          lVar13 = *(long *)(*(long *)(lVar15 + 0x28) + 0x68);\n          *(long *)(lVar15 + 0x28) = lVar13;\n          if (pcVar31[(int)((cVar8 != '\0') + 4)] == 'o') {\n            *(ulong *)(lVar15 + 0x30) = *(ulong *)(lVar13 + 0x38) >> ((byte)uVar10 & 0x3f);\n          }\n          break;\n        }\n        if (pcVar31[2] != 'i') break;\n        plVar18 = plVar18 + 1;\n        uVar30 = *(ulong *)(*(long *)(lVar15 + 0x28) + 0x38);\n        *(undefined8 *)(lVar15 + 0x28) = 0x17ed50;\n        *(ulong *)(lVar15 + 0x30) = uVar30 >> ((byte)uVar10 & 0x3f);\n        if (plVar18 == plVar17) goto LAB_0011ca60;\n      }\n      plVar18 = plVar18 + 1;\n    } while (plVar18 != plVar17);\n  }\nLAB_0011ca60:\n  FUN_001188a0(4);\n  FUN_00123be0();\n  FUN_00123b20();\n  puVar21 = DAT_0017f378;\n  if (DAT_0017fbd8 != '\0') {\n    cVar8 = bfd_arch_bits_per_address(DAT_0017fb10);\n    puVar21 = *(undefined8 **)(DAT_0017fb10 + 0x90);\n    uVar30 = (1L << (cVar8 - 1U & 0x3f)) * 2 - 1;\n    if (puVar21 != (undefined8 *)0x0) {\n      do {\n        if ((*(byte *)(puVar21 + 4) & 1) != 0) {\n          uVar29 = puVar21[5] + puVar21[7] & uVar30;\n          if ((uVar29 == 0) || ((puVar21[5] & uVar30) <= uVar29)) {\n            uVar29 = puVar21[7] + puVar21[6] & uVar30;\n            if ((uVar29 == 0) || ((puVar21[6] & uVar30) <= uVar29)) goto LAB_0011d2f0;\n            uVar11 = *puVar21;\n            pcVar31 = "%X%P: section %s LMA wraps around address space\n";\n          }\n          else {\n            uVar11 = *puVar21;\n            pcVar31 = "%X%P: section %s VMA wraps around address space\n";\n          }\n          uVar14 = dcgettext(0,pcVar31,5);\n          FUN_001251f0(uVar14,uVar11);\n        }\nLAB_0011d2f0:\n        puVar21 = (undefined8 *)puVar21[2];\n      } while (puVar21 != (undefined8 *)0x0);\n    }\n    puVar21 = DAT_0017f378;\n    if (1 < *(uint *)(DAT_0017fb10 + 0xa0)) {\n      uVar30 = 0;\n      plVar17 = (long *)xmalloc((ulong)*(uint *)(DAT_0017fb10 + 0xa0) << 4);\n      lVar16 = *(long *)(DAT_0017fb10 + 0x90);\n      if (lVar16 != 0) {\n        do {\n          uVar29 = uVar30;\n          if ((((*(uint *)(lVar16 + 0x20) & 1) != 0) &&\n              ((*(uint *)(lVar16 + 0x20) & 0x402) != 0x400)) && (*(long *)(lVar16 + 0x38) != 0)) {\n            uVar29 = uVar30 + 1;\n            plVar17[uVar30 * 2] = lVar16;\n            *(undefined4 *)(plVar17 + uVar30 * 2 + 1) = 0;\n          }\n          lVar16 = *(long *)(lVar16 + 0x10);\n          uVar30 = uVar29;\n        } while (lVar16 != 0);\n        if (1 < uVar29) {\n          qsort(plVar17,uVar29,0x10,FUN_00112320);\n          puVar21 = (undefined8 *)0x0;\n          plVar18 = plVar17;\n          uVar30 = 0;\n          uVar25 = 0;\n          do {\n            puVar27 = (undefined8 *)*plVar18;\n            puVar22 = puVar21;\n            uVar34 = uVar30;\n            uVar23 = uVar25;\n            if ((*(byte *)(puVar27 + 4) & 2) != 0) {\n              uVar34 = puVar27[6];\n              uVar23 = (uVar34 - 1) + ((ulong)puVar27[7] >> ((byte)DAT_0017f3c8 & 0x3f));\n              puVar22 = puVar27;\n              if ((puVar21 != (undefined8 *)0x0) && ((uVar34 <= uVar25 || (uVar25 < uVar30)))) {\n                uVar11 = *puVar21;\n                uVar14 = *puVar27;\n                uVar24 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);\n                FUN_001251f0(uVar24,uVar14,uVar34,uVar23,uVar11,uVar30,uVar25);\n                *(undefined4 *)(plVar18 + 1) = 1;\n              }\n            }\n            plVar18 = plVar18 + 2;\n            puVar21 = puVar22;\n            uVar30 = uVar34;\n            uVar25 = uVar23;\n          } while (plVar18 != plVar17 + uVar29 * 2);\n          qsort(plVar17,uVar29,0x10,FUN_00112350);\n          puVar21 = (undefined8 *)*plVar17;\n          uVar23 = 1;\n          uVar30 = puVar21[5];\n          uVar25 = uVar30;\n          do {\n            lVar16 = uVar23 * 2;\n            if (*(ulong *)(plVar17[lVar16] + 0x28) == uVar25) goto LAB_0011d4c4;\n            uVar23 = uVar23 + 1;\n            uVar25 = *(ulong *)(plVar17[lVar16] + 0x28);\n          } while (uVar23 != uVar29);\n          uVar23 = 0;\n          uVar25 = (uVar30 - 1) + ((ulong)puVar21[7] >> ((byte)DAT_0017f3c8 & 0x3f));\n          plVar18 = plVar17;\n          while( true ) {\n            uVar37 = uVar25;\n            uVar34 = uVar30;\n            puVar27 = puVar21;\n            plVar26 = plVar18 + 2;\n            uVar23 = uVar23 + 1;\n            if (uVar23 == uVar29) break;\n            puVar21 = (undefined8 *)*plVar26;\n            plVar3 = plVar18 + 3;\n            uVar30 = puVar21[5];\n            uVar25 = (uVar30 - 1) + ((ulong)puVar21[7] >> ((byte)DAT_0017f3c8 & 0x3f));\n            plVar18 = plVar26;\n            if (((int)*plVar3 == 0) && ((uVar30 <= uVar37 || (uVar37 < uVar34)))) {\n              uVar11 = *puVar27;\n              uVar14 = *puVar21;\n              uVar24 = dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",\n                                 5);\n              FUN_001251f0(uVar24,uVar14,uVar30,uVar25,uVar11,uVar34,uVar37);\n            }\n          }\nLAB_0011d4c4:\n          free(plVar17);\n          for (puVar27 = DAT_0017f398; puVar21 = DAT_0017f378, puVar27 != (undefined8 *)0x0;\n              puVar27 = (undefined8 *)puVar27[2]) {\n            if (*(int *)(puVar27 + 10) != 0) {\n              uVar11 = *puVar27;\n              lVar16 = puVar27[7] - (puVar27[5] + puVar27[4]);\n              uVar14 = dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",lVar16,5);\n              FUN_001251f0(uVar14,uVar11,lVar16);\n            }\n          }\n          goto joined_r0x0011ca92;\n        }\n      }\n      free(plVar17);\n      puVar21 = DAT_0017f378;\n    }\n  }\njoined_r0x0011ca92:\n  for (; puVar21 != (undefined8 *)0x0; puVar21 = (undefined8 *)puVar21[1]) {\n    lVar16 = bfd_link_hash_lookup(DAT_0017fae8,*puVar21,0,0,1);\n    if ((lVar16 == 0) || (1 < (byte)(*(char *)(lVar16 + 0x18) - 3U))) {\n      uVar11 = *puVar21;\n      uVar14 = dcgettext(0,"%X%P: required symbol `%s\' not defined\n",5);\n      FUN_001251f0(uVar14,uVar11);\n    }\n  }\n  iVar9 = DAT_0017fa0c;\n  if (((DAT_0017fac0 & 0x43) != 2) && ((DAT_0017fac0 & 3) != 3)) {\n    iVar9 = 1;\n  }\n  if (((DAT_0017fac0 & 0x43) == 0x42) && (DAT_0017fa0c == 0 && _DAT_0017fa08 == 0)) {\n    uVar11 = dcgettext(0,"%F%P: gc-sections requires either an entry or an undefined symbol\n",5);\n    FUN_001251f0(uVar11);\n  }\n  if (DAT_0017f2e8 == (undefined *)0x0) {\n    DAT_0017f2e8 = PTR_s_start_0017e660;\n    iVar9 = 0;\n  }\n  lVar16 = bfd_link_hash_lookup(DAT_0017fae8,DAT_0017f2e8,0,0,1);\n  if ((lVar16 != 0) && ((byte)(*(char *)(lVar16 + 0x18) - 3U) < 2)) {\n    lVar15 = *(long *)(*(long *)(lVar16 + 0x28) + 0x68);\n    if (lVar15 != 0) {\n      iVar9 = bfd_set_start_address\n                        (DAT_0017fb10,\n                         *(long *)(lVar15 + 0x28) +\n                         *(long *)(*(long *)(lVar16 + 0x28) + 0x60) + *(long *)(lVar16 + 0x30));\n      if (iVar9 != 0) {\n        return;\n      }\n      pcVar31 = "%F%P: %s: can\'t set start address\n";\n      goto LAB_0011cf37;\n    }\n  }\n  uVar11 = bfd_scan_vma(DAT_0017f2e8,&local_40,0);\n  if (*(char *)CONCAT44(uStack_3c,local_40) == '\0') {\n    iVar9 = bfd_set_start_address(DAT_0017fb10,uVar11);\n  }\n  else {\n    lVar16 = bfd_get_section_by_name(DAT_0017fb10,PTR_s__text_0017e648);\n    puVar7 = DAT_0017f2e8;\n    if (lVar16 == 0) {\n      if (iVar9 == 0) {\n        return;\n      }\n      pcVar31 = "%P: warning: cannot find entry symbol %s; not setting start address\n";\nLAB_0011cf37:\n      puVar7 = DAT_0017f2e8;\n      uVar11 = dcgettext(0,pcVar31,5);\n      FUN_001251f0(uVar11,puVar7);\n      return;\n    }\n    uVar11 = *(undefined8 *)(lVar16 + 0x28);\n    if (iVar9 != 0) {\n      uVar14 = dcgettext(0,"%P: warning: cannot find entry symbol %s; defaulting to %V\n",5);\n      FUN_001251f0(uVar14,puVar7,uVar11);\n      uVar11 = *(undefined8 *)(lVar16 + 0x28);\n    }\n    iVar9 = bfd_set_start_address(DAT_0017fb10,uVar11);\n  }\n  if (iVar9 != 0) {\n    return;\n  }\n  uVar11 = dcgettext(0,"%F%P: can\'t set start address\n",5);\n  FUN_001251f0(uVar11);\n  return;\ncode_r0x0011c5be:\n  plVar17 = (long *)plVar17[6];\n  goto joined_r0x0011be7f;\nLAB_0011c1d0:\n  uVar11 = *puVar21;\n  uVar14 = dcgettext(0,"%F%P: invalid length for memory region %s\n",5);\n  FUN_001251f0(uVar14,uVar11);\n  puVar21 = (undefined8 *)puVar21[2];\n  goto joined_r0x0011bfdf;\ncode_r0x0011c493:\n  (**(code **)(*(long *)(plVar17[4] + 8) + 0x2c8))(puVar21,&DAT_0017fac0);\n  puVar21 = (undefined8 *)puVar21[2];\n  goto joined_r0x0011c46e;\ncode_r0x0011c93b:\n  lVar16 = plVar17[6];\n  uVar11 = dcgettext(0,"%X%P: section `%s\' assigned to non-existent phdr `%s\'\n",5);\n  FUN_001251f0(uVar11,lVar16,pbVar4);\n  plVar18 = (long *)*plVar18;\n  goto joined_r0x0011c90a;\n}" primitive_type (function_declarator "FUN_0011bca0(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  byte bVar1;\n  uint uVar2;\n  long *plVar3;\n  byte *pbVar4;\n  long lVar5;\n  long *plVar6;\n  undefined *puVar7;\n  char cVar8;\n  int iVar9;\n  undefined4 uVar10;\n  undefined8 uVar11;\n  size_t sVar12;\n  long lVar13;\n  undefined8 uVar14;\n  long lVar15;\n  long lVar16;\n  long *plVar17;\n  void *__ptr;\n  long *plVar18;\n  char *pcVar19;\n  byte *pbVar20;\n  undefined8 *puVar21;\n  undefined8 *puVar22;\n  ulong uVar23;\n  undefined8 uVar24;\n  ulong uVar25;\n  long *plVar26;\n  undefined8 *puVar27;\n  long lVar28;\n  ulong uVar29;\n  ulong uVar30;\n  char *pcVar31;\n  byte *pbVar32;\n  long lVar33;\n  ulong uVar34;\n  byte bVar35;\n  long *plVar36;\n  ulong uVar37;\n  bool bVar38;\n  bool bVar39;\n  byte bVar40;\n  uint local_40;\n  undefined4 uStack_3c;\n  \n  bVar40 = 0;\n  if (DAT_0017fb98 != 0) {\n    FUN_00112d70();\n  }\n  DAT_0017f440 = DAT_0017fcc8;\n  FUN_00115a50(FUN_001182b0,DAT_0017f430);\n  FUN_00113540();\n  FUN_00123c10();\n  for (puVar21 = DAT_0017f2e0; puVar21 != (undefined8 *)0x0; puVar21 = (undefined8 *)*puVar21) {\n    FUN_00112b40(puVar21[1]);\n  }\n  iVar9 = bfd_section_already_linked_table_init();\n  if (iVar9 == 0) {\n    uVar11 = dcgettext(0,"%F%P: can not create hash table: %E\n",5);\n    FUN_001251f0(uVar11);\n  }\n  _DAT_0017f2c0 = _DAT_0017f2c0 + 1;\n  DAT_0017f440 = DAT_0017fcc8;\n  FUN_00119910(DAT_0017f430,0);\n  plVar3 = DAT_0017fa28;\n  plVar26 = DAT_0017fa20;\n  plVar18 = DAT_0017f2f8;\n  plVar17 = DAT_0017f2f0;\n  if ((DAT_0017fac1 & 2) != 0) {\n    lVar16 = *(long *)PTR_DAT_0017e650;\n    plVar36 = *(long **)(PTR_DAT_0017e650 + 8);\n    iVar9 = FUN_00128bb0();\n    if (iVar9 != 0) {\n      uVar11 = FUN_00128550();\n      uVar14 = dcgettext(0,"%F%P: %s: plugin reported error after all symbols read\n",5);\n      FUN_001251f0(uVar14,uVar11);\n    }\n    FUN_00119910(*plVar36,0);\n    puVar7 = PTR_DAT_0017e650;\n    if (*(long *)PTR_DAT_0017e650 != lVar16) {\n      FUN_001252b0("../../ld/ldlang.c",0x1baf);\n    }\n    plVar6 = *(long **)(puVar7 + 8);\n    lVar16 = *plVar36;\n    *(long **)(puVar7 + 8) = plVar36;\n    *plVar36 = 0;\n    if (DAT_0017f2f0 != plVar17) {\n      FUN_001252b0("../../ld/ldlang.c",0x1baf);\n    }\n    plVar36 = DAT_0017f2f8;\n    plVar17 = (long *)*plVar18;\n    DAT_0017f2f8 = plVar18;\n    *plVar18 = 0;\n    if (DAT_0017fa20 != plVar26) {\n      FUN_001252b0("../../ld/ldlang.c",0x1baf);\n    }\n    plVar26 = DAT_0017fa28;\n    lVar15 = *plVar3;\n    DAT_0017fa28 = plVar3;\n    *plVar3 = 0;\n    plVar18 = DAT_0017f2f0;\n    plVar3 = DAT_0017fa20;\n    if (lVar16 != 0) {\n      for (; DAT_0017f380 = plVar3, plVar18 != (long *)0x0; plVar18 = (long *)plVar18[6]) {\n        if ((*(byte *)((long)plVar18 + 0x49) & 0x20) != 0) {\n          if ((*(byte *)((long)plVar18 + 0x49) & 0x40) == 0) goto LAB_0011d6c0;\n          break;\n        }\n        if ((plVar18[4] != 0) && (*(long *)(plVar18[4] + 0xd0) == 0)) {\n          DAT_0017f380 = plVar18;\n        }\n        plVar3 = DAT_0017f380;\n      }\n      plVar18 = DAT_0017f380;\n      if (DAT_0017f380 == (long *)0x0) {\n        FUN_001252b0("../../ld/ldlang.c",0x1c32);\n        plVar18 = DAT_0017f380;\n      }\nLAB_0011d6c0:\n      DAT_0017f380 = plVar18;\n      plVar18 = DAT_0017f380;\n      puVar7 = PTR_DAT_0017e650;\n      *plVar6 = *DAT_0017f380;\n      *plVar18 = lVar16;\n      if (plVar18 == *(long **)(puVar7 + 8)) {\n        *(long **)(puVar7 + 8) = plVar6;\n      }\n      *plVar26 = plVar18[7];\n      bVar38 = DAT_0017fa28 == plVar18 + 7;\n      plVar18[7] = lVar15;\n      plVar3 = DAT_0017f2f8;\n      if (bVar38) {\n        DAT_0017fa28 = plVar26;\n      }\n      if (plVar18[2] == 0) {\n        *plVar36 = (long)DAT_0017f2f0;\n        DAT_0017f2f0 = plVar17;\n        if ((long **)plVar3 != &DAT_0017f2f0) {\n          plVar36 = DAT_0017f2f8;\n        }\n      }\n      else {\n        *plVar36 = plVar18[6];\n        plVar18[6] = (long)plVar17;\n        if (plVar3 != plVar18 + 6) {\n          plVar36 = DAT_0017f2f8;\n        }\n      }\n      DAT_0017f2f8 = plVar36;\n      plVar18 = DAT_0017f2f8;\n      plVar17 = DAT_0017f2f0;\n      _DAT_0017f2c0 = _DAT_0017f2c0 + 1;\n      FUN_00119910(DAT_0017f430);\n      if (DAT_0017f2f0 != plVar17) {\n        FUN_001252b0("../../ld/ldlang.c");\n      }\n      lVar16 = *plVar18;\n      DAT_0017f2f8 = plVar18;\n      *plVar18 = 0;\n      while (lVar16 != 0) {\n        lVar15 = *(long *)(*(long *)(lVar16 + 0x20) + 0xd0);\n        lVar13 = *(long *)(lVar16 + 0x20);\n        if (lVar15 != 0) {\n          lVar13 = lVar15;\n        }\n        if (DAT_0017fa20 == (long *)0x0) {\nLAB_0011dad0:\n          plVar17 = DAT_0017f2f0;\n        }\n        else {\n          plVar26 = (long *)0x0;\n          plVar18 = DAT_0017fa20;\n          plVar17 = (long *)0x0;\n          do {\n            while (plVar18[4] != lVar13) {\n              if ((plVar18[4] != 0) && (plVar18[6] != 0)) {\n                plVar26 = plVar18;\n              }\n              plVar18 = (long *)plVar18[7];\n              if (plVar18 == (long *)0x0) goto LAB_0011d7f1;\n            }\n            lVar28 = plVar18[6];\n            if (lVar28 != 0) {\n              plVar17 = (long *)(lVar28 + 0x30);\n              lVar13 = *(long *)(lVar28 + 0x30);\n              goto LAB_0011d835;\n            }\n            plVar18 = (long *)plVar18[7];\n            plVar17 = plVar26;\n          } while (plVar18 != (long *)0x0);\nLAB_0011d7f1:\n          if (plVar17 == (long *)0x0) goto LAB_0011dad0;\n        }\n        plVar17 = plVar17 + 6;\n        for (lVar13 = *plVar17; lVar13 != 0; lVar13 = *(long *)(lVar13 + 0x30)) {\n          if (((*(byte *)(lVar13 + 0x49) & 0x40) == 0) &&\n             (*(long *)(*(long *)(lVar13 + 0x20) + 0xd0) == 0)) {\n            lVar13 = *plVar17;\n            break;\n          }\n          plVar17 = (long *)(lVar13 + 0x30);\n        }\nLAB_0011d835:\n        plVar18 = (long *)(lVar16 + 0x30);\n        if (lVar15 == 0) {\n          *plVar17 = lVar16;\n          lVar15 = *(long *)(lVar16 + 0x30);\n          *(long *)(lVar16 + 0x30) = lVar13;\n          lVar16 = lVar15;\n        }\n        else {\n          lVar28 = *(long *)(lVar16 + 0x30);\n          if (lVar28 != 0) {\n            lVar5 = *(long *)(*(long *)(lVar28 + 0x20) + 0xd0);\n            while (lVar15 == lVar5) {\n              plVar18 = (long *)(lVar28 + 0x30);\n              lVar28 = *(long *)(lVar28 + 0x30);\n              if (lVar28 == 0) break;\n              lVar5 = *(long *)(*(long *)(lVar28 + 0x20) + 0xd0);\n            }\n          }\n          *plVar17 = lVar16;\n          lVar16 = *plVar18;\n          *plVar18 = lVar13;\n          if (*(long *)(lVar15 + 0x100) != 0) {\n            *(long **)(*(long *)(lVar15 + 0x100) + 0x30) = plVar18 + -6;\n          }\n        }\n      }\n    }\n  }\n  if (DAT_0017fb38 != (undefined8 *)0x0) {\n    FUN_001252b0("../../ld/ldlang.c",0x1c67);\n  }\n  DAT_0017fb38 = &DAT_0017f2e0;\n  if (DAT_0017f2e8 == (undefined *)0x0) {\n    DAT_0017fb38 = DAT_0017f2e0;\n    if (PTR_s_start_0017e660 != (undefined *)0x0) {\n      FUN_00115880();\n    }\n  }\n  if (DAT_0017fb48 != 0) {\n    FUN_00115880();\n  }\n  if (DAT_0017fb50 != 0) {\n    FUN_00115880();\n  }\n  FUN_00123b90();\n  if ((DAT_0017fc98 != 0) && (DAT_0017f3d0 != (undefined8 *)0x0)) {\n    uVar11 = dcgettext(0,"\nAs-needed library included to satisfy reference by file (symbol)\n\n",5)\n    ;\n    FUN_001252f0(uVar11);\n    for (puVar21 = DAT_0017f3d0; puVar21 != (undefined8 *)0x0; puVar21 = (undefined8 *)*puVar21) {\n      FUN_001252f0(&DAT_0013efee,puVar21[1]);\n      sVar12 = strlen((char *)puVar21[1]);\n      if (0x1c < sVar12) {\n        FUN_00124290();\n        sVar12 = 0;\n      }\n      do {\n        FUN_00124270();\n        sVar12 = sVar12 + 1;\n      } while (sVar12 != 0x1e);\n      if (puVar21[2] != 0) {\n        FUN_001252f0(&DAT_0013f279);\n      }\n      FUN_001252f0("(%pT)\n",puVar21[3]);\n    }\n  }\n  bfd_section_already_linked_table_free();\n  plVar17 = DAT_0017f2f0;\njoined_r0x0011be7f:\n  if (plVar17 != (long *)0x0) {\n    do {\n      if ((*(byte *)((long)plVar17 + 0x49) & 0x20) == 0) {\n        lVar16 = plVar17[4];\n        lVar13 = bfd_arch_get_compatible(lVar16,DAT_0017fb10,DAT_0017fbdc);\n        lVar15 = DAT_0017fb10;\n        if (((DAT_0017fac0 & 3) == 2) || ((DAT_0017fac3 & 8) != 0)) {\n          if (lVar13 != 0) {\n            puVar21 = *(undefined8 **)(lVar16 + 8);\n            puVar27 = *(undefined8 **)(DAT_0017fb10 + 8);\n            if ((*(int *)(puVar21 + 1) != *(int *)(puVar27 + 1)) &&\n               ((*(byte *)(lVar16 + 0x44) & 0x20) != 0)) goto LAB_0011c12e;\n            goto LAB_0011bed4;\n          }\n          if ((*(byte *)(lVar16 + 0x44) & 0x20) != 0) {\n            puVar21 = *(undefined8 **)(lVar16 + 8);\n            puVar27 = *(undefined8 **)(DAT_0017fb10 + 8);\nLAB_0011c12e:\n            uVar11 = *puVar27;\n            uVar14 = *puVar21;\n            uVar24 = 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_001251f0(uVar24,uVar14,lVar16,uVar11,lVar15);\n            goto joined_r0x0011c167;\n          }\n        }\n        else {\njoined_r0x0011c167:\n          if (lVar13 != 0) {\nLAB_0011bed4:\n            if (*(int *)(lVar16 + 0xa0) == 0) goto LAB_0011bf30;\n            uVar11 = 0;\n            if (DAT_0017fbd0 == 0) {\n              uVar11 = bfd_set_error_handler(FUN_00112380);\n            }\n            iVar9 = (**(code **)(*(long *)(DAT_0017fb10 + 8) + 0x140))(lVar16,&DAT_0017fac0);\n            if (iVar9 == 0) {\n              if (DAT_0017fbd0 != 0) {\n                uVar14 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);\n                FUN_001251f0(uVar14,lVar16);\n                goto LAB_0011c5b0;\n              }\n            }\n            else {\nLAB_0011c5b0:\n              if (DAT_0017fbd0 != 0) goto code_r0x0011c5be;\n            }\n            bfd_set_error_handler(uVar11);\n            goto LAB_0011bf30;\n          }\n        }\n        if (DAT_0017fbd0 == 0) goto LAB_0011bf30;\n        uVar11 = bfd_printable_name(DAT_0017fb10);\n        uVar14 = bfd_printable_name(lVar16);\n        uVar24 = dcgettext(0,\n                           "%X%P: %s architecture of input file `%pB\' is incompatible with %s output\n"\n                           ,5);\n        FUN_001251f0(uVar24,uVar14,lVar16,uVar11);\n        plVar17 = (long *)plVar17[6];\n      }\n      else {\nLAB_0011bf30:\n        plVar17 = (long *)plVar17[6];\n      }\n      if (plVar17 == (long *)0x0) break;\n    } while( true );\n  }\n  if (DAT_0017fc30 != 0) {\n    uVar11 = 0;\n    for (plVar17 = DAT_0017f2f0; plVar17 != (long *)0x0; plVar17 = (long *)plVar17[6]) {\n      lVar16 = bfd_get_section_by_name(plVar17[4],".exports");\n      if (lVar16 != 0) {\n        lVar15 = *(long *)(lVar16 + 0x38);\n        pcVar31 = (char *)xmalloc(lVar15);\n        iVar9 = bfd_get_section_contents(plVar17[4],lVar16,pcVar31,0,lVar15);\n        if (iVar9 == 0) {\n          uVar14 = dcgettext(0,"%X%P: unable to read .exports section contents\n",5);\n          FUN_001251f0(uVar14,lVar16);\n        }\n        pcVar19 = pcVar31 + lVar15;\n        for (; pcVar31 < pcVar19; pcVar31 = pcVar31 + sVar12 + 1) {\n          uVar11 = FUN_0011b640(uVar11,pcVar31,0);\n          sVar12 = strlen(pcVar31);\n        }\n        *(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) | 0x208000;\n      }\n    }\n    uVar14 = FUN_0011b640(0,&DAT_0013f157,0,0);\n    lVar15 = xcalloc(1,0x70);\n    lVar16 = DAT_0017fc30;\n    *(undefined8 *)(lVar15 + 0x18) = uVar11;\n    *(undefined8 *)(lVar15 + 0x38) = uVar14;\n    *(code **)(lVar15 + 0x68) = FUN_00112f60;\n    *(undefined4 *)(lVar15 + 0x60) = 0xffffffff;\n    FUN_0011b860(lVar16,lVar15,0);\n  }\n  FUN_0011eaa0();\n  if ((DAT_0017fc4c != 0) &&\n     (cVar8 = *(char *)(*(long *)(DAT_0017fb10 + 8) + 0x1c), DAT_0017fb20 != 0)) {\n    lVar16 = DAT_0017fb20;\n    do {\n      for (puVar21 = *(undefined8 **)(lVar16 + 0x90); puVar21 != (undefined8 *)0x0;\n          puVar21 = (undefined8 *)puVar21[2]) {\n        while( true ) {\n          pbVar4 = (byte *)*puVar21;\n          bVar35 = *pbVar4;\n          if (bVar35 == 0) break;\n          bVar1 = _sch_istable[(ulong)bVar35 * 2];\n          pbVar20 = pbVar4;\n          while (((bVar1 & 0x8c) != 0 || (bVar35 == 0x5f))) {\n            pbVar20 = pbVar20 + 1;\n            bVar35 = *pbVar20;\n            if (bVar35 == 0) goto LAB_0011d178;\n            bVar1 = _sch_istable[(ulong)bVar35 * 2];\n          }\n          puVar21 = (undefined8 *)puVar21[2];\n          if (puVar21 == (undefined8 *)0x0) goto LAB_0011d163;\n        }\nLAB_0011d178:\n        sVar12 = strlen((char *)pbVar4);\n        pcVar31 = (char *)xmalloc(sVar12 + 10);\n        *pcVar31 = cVar8;\n        sprintf(pcVar31 + (cVar8 != '\0'),"__start_%s",pbVar4);\n        FUN_00112ee0(pcVar31,puVar21);\n        pcVar31[1] = cVar8;\n        builtin_strncpy(pcVar31 + (2 - (ulong)(cVar8 == '\0')),"__stop",6);\n        FUN_00112ee0(pcVar31 + 1,puVar21);\n        free(pcVar31);\n      }\nLAB_0011d163:\n      lVar16 = *(long *)(lVar16 + 0xf0);\n    } while (lVar16 != 0);\n  }\n  FUN_001188a0(1);\n  puVar21 = DAT_0017f398;\njoined_r0x0011bfdf:\n  if (puVar21 != (undefined8 *)0x0) {\n    do {\n      if (puVar21[3] != 0) {\n        FUN_00123150();\n        uVar11 = DAT_0017fd20;\n        if (DAT_0017fd38 == 0) {\n          uVar11 = *puVar21;\n          uVar14 = dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);\n          FUN_001251f0(uVar14,uVar11);\n        }\n        else {\n          puVar21[4] = DAT_0017fd20;\n          puVar21[7] = uVar11;\n        }\n      }\n      if (puVar21[6] != 0) {\n        FUN_00123150();\n        if (DAT_0017fd38 == 0) goto LAB_0011c1d0;\n        puVar21[5] = DAT_0017fd20;\n      }\n      puVar21 = (undefined8 *)puVar21[2];\n      if (puVar21 == (undefined8 *)0x0) break;\n    } while( true );\n  }\n  DAT_0017fd00 = 0;\n  if (((DAT_0017fac7 & 0x20) == 0) && (((DAT_0017fac0 & 3) != 2 || (DAT_0017fbc0 != 0)))) {\n    if (DAT_0017fc6c == 0) {\n      bfd_link_hash_traverse(DAT_0017fae8,FUN_001145f0,0);\n    }\n    else {\n      if (DAT_0017fc6c == 2) {\n        local_40 = 4;\n        do {\n          bfd_link_hash_traverse(DAT_0017fae8,FUN_001145f0,&local_40);\n          local_40 = local_40 - 1;\n        } while (local_40 != 0);\n        local_40 = 0;\n      }\n      else {\n        local_40 = 0;\n        do {\n          bfd_link_hash_traverse(DAT_0017fae8,FUN_001145f0,&local_40);\n          local_40 = local_40 + 1;\n        } while (local_40 < 5);\n        local_40 = 0xffffffff;\n      }\n      bfd_link_hash_traverse(DAT_0017fae8,FUN_001145f0,&local_40);\n    }\n  }\n  FUN_00119400(DAT_0017f430);\n  bVar35 = DAT_0017fac0;\n  plVar17 = DAT_0017f2f0;\n  if ((DAT_0017fac0 & 3) == 2) {\n    for (; plVar17 != (long *)0x0; plVar17 = (long *)plVar17[6]) {\n      if ((*(byte *)((long)plVar17 + 0x49) & 0x20) == 0) {\n        for (lVar16 = *(long *)(plVar17[4] + 0x90); lVar16 != 0; lVar16 = *(long *)(lVar16 + 0x10))\n        {\n          if ((*(uint *)(lVar16 + 0x20) & 0x2000) == 0) {\n            *(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) & 0xffff7fff;\n          }\n        }\n      }\n    }\n  }\n  if ((bVar35 & 0x40) != 0) {\n    (**(code **)(*(long *)(DAT_0017fb10 + 8) + 0x2f0))(DAT_0017fb10,&DAT_0017fac0);\n  }\n  lVar16 = DAT_0017fb20;\n  if ((DAT_0017fac6 & 0x20) != 0) {\n    for (; lVar16 != 0; lVar16 = *(long *)(lVar16 + 0xf0)) {\n      iVar9 = bfd_link_check_relocs(lVar16,&DAT_0017fac0);\n      if (iVar9 == 0) {\n        DAT_0017fc44 = 0;\n      }\n    }\n  }\n  FUN_00123ba0();\n  FUN_001124e0(DAT_0017f430);\n  _DAT_0017f2c0 = _DAT_0017f2c0 + 1;\n  FUN_00119520(DAT_0017f430,0,0);\n  plVar18 = (long *)0x0;\n  plVar26 = (long *)0x0;\n  plVar17 = DAT_0017fa60;\n  while (plVar36 = plVar17, plVar3 = (long *)*plVar36, plVar3 != (long *)0x0) {\n    plVar17 = plVar3;\n    if ((int)plVar3[1] == 0) {\n      if ((plVar26 != (long *)0x0) && (plVar3 != (long *)plVar26[4])) {\n        FUN_001252b0("../../ld/ldlang.c",0xea0);\n        plVar17 = (long *)*plVar36;\n      }\n      *(int *)((long)plVar3 + 0x84) = -2 - *(int *)((long)plVar3 + 0x84);\n      plVar26 = plVar3;\n      if (plVar18 == (long *)0x0) {\n        plVar18 = plVar3;\n      }\n    }\n    else if ((int)plVar3[1] == 0xe) {\n      lVar16 = FUN_00116e20(plVar3[2],0,0);\n      if (lVar16 == 0) {\nLAB_0011c415:\n        lVar16 = plVar3[2];\n        uVar11 = dcgettext(0,"%F%P: %s not found for insert\n",5);\n        FUN_001251f0(uVar11,lVar16);\n        plVar17 = DAT_0017f2f0;\n        goto joined_r0x0011c458;\n      }\n      if ((int)plVar3[3] != 0) {\n        do {\n          lVar16 = *(long *)(lVar16 + 0x28);\n          if (lVar16 == 0) goto LAB_0011c415;\n        } while (*(int *)(lVar16 + 0x84) < 0);\n      }\n      if (plVar26 != (long *)0x0) {\n        lVar15 = plVar18[5];\n        lVar13 = plVar26[4];\n        *(long *)(lVar15 + 0x20) = lVar13;\n        if (lVar13 == 0) {\n          DAT_0017fa68 = (long *)(lVar15 + 0x20);\n        }\n        else {\n          *(long *)(lVar13 + 0x28) = lVar15;\n        }\n        plVar26[4] = *(long *)(lVar16 + 0x20);\n        if (*(long *)(lVar16 + 0x20) == 0) {\n          DAT_0017fa68 = plVar26 + 4;\n        }\n        else {\n          *(long **)(*(long *)(lVar16 + 0x20) + 0x28) = plVar26;\n        }\n        plVar18[5] = lVar16;\n        lVar13 = 0;\n        lVar15 = 0;\n        *(long **)(lVar16 + 0x20) = plVar18;\n        do {\n          *(int *)((long)plVar18 + 0x84) = -2 - *(int *)((long)plVar18 + 0x84);\n          lVar28 = plVar18[7];\n          if (((lVar28 != 0) && (*(long *)(lVar28 + 0xf0) != 0)) && (lVar13 = lVar28, lVar15 == 0))\n          {\n            lVar15 = lVar28;\n          }\n        } while ((plVar26 != plVar18) && (plVar18 = (long *)plVar18[4], plVar18 != (long *)0x0));\n        plVar18 = (long *)0x0;\n        if (lVar13 != 0) {\n          lVar28 = *(long *)(lVar16 + 0x38);\n          if (lVar28 == 0) {\n            plVar18 = *(long **)(lVar16 + 0x28);\n            if (plVar18 != (long *)0x0) {\n              do {\n                if (((-1 < *(int *)((long)plVar18 + 0x84)) && (lVar28 = plVar18[7], lVar28 != 0)) &&\n                   (*(long *)(lVar28 + 0xf0) != 0)) goto LAB_0011cd61;\n                plVar18 = (long *)plVar18[5];\n              } while (plVar18 != (long *)0x0);\n              plVar18 = (long *)0x0;\n            }\n          }\n          else {\nLAB_0011cd61:\n            plVar18 = (long *)0x0;\n            if (lVar28 != lVar13) {\n              lVar5 = *(long *)(lVar15 + 0x18);\n              lVar33 = *(long *)(lVar13 + 0x10);\n              if (lVar5 == 0) {\n                *(long *)(DAT_0017fb10 + 0x90) = lVar33;\n              }\n              else {\n                *(long *)(lVar5 + 0x10) = lVar33;\n                lVar33 = *(long *)(lVar13 + 0x10);\n              }\n              if (lVar33 == 0) {\n                *(long *)(DAT_0017fb10 + 0x98) = lVar5;\n              }\n              else {\n                *(long *)(lVar33 + 0x18) = lVar5;\n              }\n              lVar5 = *(long *)(lVar28 + 0x10);\n              *(long *)(lVar13 + 0x10) = lVar5;\n              if (lVar5 == 0) {\n                *(long *)(DAT_0017fb10 + 0x98) = lVar13;\n              }\n              else {\n                *(long *)(lVar5 + 0x18) = lVar13;\n              }\n              *(long *)(lVar15 + 0x18) = lVar28;\n              plVar18 = (long *)0x0;\n              *(long *)(lVar28 + 0x10) = lVar15;\n            }\n          }\n        }\n      }\n      plVar17 = (long *)FUN_00112240(lVar16);\n      lVar16 = *DAT_0017fa60;\n      *DAT_0017fa60 = *(long *)*plVar36;\n      lVar15 = *plVar17;\n      *plVar36 = lVar15;\n      if (lVar15 == 0) {\n        DAT_0017f438 = plVar36;\n      }\n      *plVar17 = lVar16;\n      plVar26 = (long *)0x0;\n      plVar17 = DAT_0017fa60;\n    }\n  }\n  for (; (plVar17 = DAT_0017f2f0, plVar18 != (long *)0x0 &&\n         (*(int *)((long)plVar18 + 0x84) = -2 - *(int *)((long)plVar18 + 0x84),\n         plVar17 = DAT_0017f2f0, plVar26 != plVar18)); plVar18 = (long *)plVar18[4]) {\n  }\njoined_r0x0011c458:\n  for (; plVar17 != (long *)0x0; plVar17 = (long *)plVar17[6]) {\n    puVar21 = *(undefined8 **)(plVar17[4] + 0x90);\njoined_r0x0011c46e:\n    if (puVar21 != (undefined8 *)0x0) {\n      do {\n        if (puVar21[0xd] == 0) {\n          if ((*(byte *)(plVar17 + 9) & 0x10) != 0) goto code_r0x0011c493;\n          iVar9 = FUN_00113350(*(undefined4 *)(puVar21 + 4));\n          bVar38 = false;\n          bVar39 = iVar9 == 0;\n          if (bVar39) {\n            pbVar4 = (byte *)*puVar21;\n            lVar16 = 7;\n            pbVar20 = pbVar4;\n            pbVar32 = (byte *)"COMMON";\n            do {\n              if (lVar16 == 0) break;\n              lVar16 = lVar16 + -1;\n              bVar38 = *pbVar20 < *pbVar32;\n              bVar39 = *pbVar20 == *pbVar32;\n              pbVar20 = pbVar20 + (ulong)bVar40 * -2 + 1;\n              pbVar32 = pbVar32 + (ulong)bVar40 * -2 + 1;\n            } while (bVar39);\n            if ((!bVar38 && !bVar39) == bVar38) {\n              if (((DAT_0017fac0 & 3) != 2) || (DAT_0017fbc0 != 0)) {\n                lVar16 = DAT_0017f458;\n                if (DAT_0017f458 == 0) {\n                  lVar16 = FUN_00116e20(".bss",0,1);\n                  DAT_0017f458 = lVar16;\n                }\nLAB_0011c659:\n                FUN_00117b90(lVar16 + 0x10,puVar21,0);\n              }\n            }\n            else {\n              if (DAT_0017fc5c == 1) {\n                lVar16 = FUN_00116e20("/DISCARD/",0,1);\n                if ((*(long *)(lVar16 + 0x58) == 0) &&\n                   (((DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0)))) {\n                  uVar11 = FUN_00123030(0);\n                  *(undefined8 *)(lVar16 + 0x58) = uVar11;\n                }\n                goto LAB_0011c659;\n              }\n              if (DAT_0017fc5c == 3) {\n                uVar11 = puVar21[0x1e];\n                uVar14 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_001251f0(uVar14,puVar21,uVar11);\n              }\n              if ((DAT_0017fc78 == 0) && (iVar9 = FUN_001150a0(puVar21,0), iVar9 == 0)) {\n                uVar10 = 0;\n              }\n              else {\n                uVar10 = 0x17e;\n              }\n              lVar16 = FUN_00123c60(puVar21,pbVar4,uVar10);\n              if (lVar16 == 0) {\n                lVar16 = FUN_00116e20(pbVar4,uVar10,1);\n                if ((*(long *)(lVar16 + 0x58) == 0) &&\n                   (((DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0)))) {\n                  uVar11 = FUN_00123030(0);\n                  *(undefined8 *)(lVar16 + 0x58) = uVar11;\n                }\n                FUN_00117b90(lVar16 + 0x10,puVar21,0);\n              }\n              if (DAT_0017fc5c == 2) {\n                uVar11 = puVar21[0x1e];\n                uVar14 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_001251f0(uVar14,puVar21,uVar11);\n              }\n            }\n          }\n          else {\n            puVar21[0xd] = 0x17ed50;\n          }\n        }\n        puVar21 = (undefined8 *)puVar21[2];\n        if (puVar21 == (undefined8 *)0x0) break;\n      } while( true );\n    }\n  }\n  bVar35 = DAT_0017fac0 & 3;\n  plVar17 = DAT_0017f358;\n  plVar18 = DAT_0017fa60;\n  lVar16 = DAT_0017fb10;\n  if (bVar35 != 2) {\n    (**(code **)(*(long *)(DAT_0017fb10 + 8) + 0x300))(DAT_0017fb10,&DAT_0017fac0);\n    lVar16 = bfd_get_section_by_name(DAT_0017fb10,".text");\n    if (lVar16 == 0) {\n      bVar35 = DAT_0017fac0 & 3;\n      plVar17 = DAT_0017f358;\n      plVar18 = DAT_0017fa60;\n      lVar16 = DAT_0017fb10;\n    }\n    else {\n      bVar35 = DAT_0017fac0 & 3;\n      if (DAT_0017fc70 == 0) {\n        *(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) & 0xfffffff7;\n        plVar17 = DAT_0017f358;\n        plVar18 = DAT_0017fa60;\n        lVar16 = DAT_0017fb10;\n      }\n      else {\n        *(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) | 8;\n        plVar17 = DAT_0017f358;\n        plVar18 = DAT_0017fa60;\n        lVar16 = DAT_0017fb10;\n      }\n    }\n  }\n  for (; DAT_0017f358 = plVar17, DAT_0017fb10 = lVar16, plVar18 != (long *)0x0;\n      plVar18 = (long *)plVar18[4]) {\n    lVar16 = plVar18[5];\n    if ((((lVar16 != 0) && (plVar18[9] == 0)) && (plVar18[0xc] == 0)) &&\n       ((plVar18[0xb] == 0 && (plVar18[8] == *(long *)(lVar16 + 0x40))))) {\n      plVar18[9] = *(long *)(lVar16 + 0x48);\n    }\n    plVar17 = DAT_0017f358;\n    lVar16 = DAT_0017fb10;\n  }\n  if ((DAT_0017fc4c != 0) && (DAT_0017f350 != 0)) {\n    plVar18 = plVar17 + DAT_0017f350;\n    do {\n      lVar15 = *plVar17;\n      if ((*(byte *)(lVar15 + 0x19) & 8) == 0) {\n        puVar21 = (undefined8 *)(*(undefined8 **)(lVar15 + 0x28))[0xd];\n        if (((puVar21 == (undefined8 *)0x0) || (puVar21[0x1e] != lVar16)) ||\n           (iVar9 = strcmp((char *)**(undefined8 **)(lVar15 + 0x28),(char *)*puVar21), iVar9 != 0))\n        {\n          *(undefined1 *)(lVar15 + 0x18) = 1;\n          *(undefined8 *)(lVar15 + 0x28) = 0;\n        }\n      }\n      plVar17 = plVar17 + 1;\n    } while (plVar18 != plVar17);\n  }\n  if (bVar35 != 2) {\n    for (puVar21 = *(undefined8 **)(DAT_0017fb10 + 0x90); puVar21 != (undefined8 *)0x0;\n        puVar21 = (undefined8 *)puVar21[2]) {\n      pcVar31 = (char *)*puVar21;\n      sVar12 = strlen(pcVar31);\n      pcVar19 = (char *)xmalloc(sVar12 + 10);\n      sprintf(pcVar19,".startof.%s",pcVar31);\n      FUN_00112ee0(pcVar19,puVar21);\n      builtin_strncpy(pcVar19 + 1,".size",5);\n      FUN_00112ee0(pcVar19 + 1,puVar21);\n      free(pcVar19);\n    }\n  }\n  FUN_00123bc0();\n  plVar17 = (long *)0x0;\n  __ptr = (void *)xmalloc(0x50);\n  uVar2 = 10;\n  for (puVar21 = DAT_0017fa50; puVar21 != (undefined8 *)0x0; puVar21 = (undefined8 *)*puVar21) {\n    uVar30 = 0;\n    for (plVar18 = DAT_0017fa60; plVar18 != (long *)0x0; plVar18 = (long *)plVar18[4]) {\n      if (-1 < *(int *)((long)plVar18 + 0x84)) {\n        plVar26 = (long *)plVar18[0xe];\n        if (plVar26 == (long *)0x0) {\n          if (((*(int *)((long)plVar18 + 0x8c) != 2) && (plVar18[7] != 0)) &&\n             (((*(byte *)(plVar18[7] + 0x20) & 1) != 0 &&\n              (plVar26 = plVar17, plVar3 = plVar18, puVar21[2] != 3)))) {\n            while( true ) {\n              plVar17 = plVar26;\n              if (plVar26 != (long *)0x0) goto LAB_0011c7fd;\n              plVar3 = (long *)plVar3[4];\n              if (plVar3 == (long *)0x0) break;\n              plVar26 = (long *)plVar3[0xe];\n            }\n            plVar17 = (long *)0x0;\n            dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            FUN_001251f0();\n          }\n        }\n        else {\n          plVar17 = plVar26;\n          plVar3 = (long *)plVar18[7];\n          while (plVar3 != (long *)0x0) {\nLAB_0011c7fd:\n            iVar9 = strcmp((char *)plVar26[1],(char *)puVar21[1]);\n            uVar29 = uVar30;\n            if (iVar9 == 0) {\n              if (uVar2 <= (uint)uVar30) {\n                uVar2 = uVar2 << 1;\n                __ptr = (void *)xrealloc(__ptr,(ulong)uVar2 << 3);\n              }\n              uVar29 = (ulong)((uint)uVar30 + 1);\n              *(long *)((long)__ptr + uVar30 * 8) = plVar18[7];\n              *(undefined4 *)(plVar26 + 2) = 1;\n            }\n            plVar26 = (long *)*plVar26;\n            uVar30 = uVar29;\n            plVar3 = plVar26;\n          }\n        }\n      }\n    }\n    uVar10 = 0;\n    if (puVar21[5] != 0) {\n      uVar10 = FUN_00123800(puVar21[5],0,"phdr flags");\n    }\n    lVar16 = puVar21[4];\n    uVar11 = 0;\n    if (lVar16 != 0) {\n      uVar11 = FUN_00123800(lVar16,0,"phdr load address");\n      lVar16 = puVar21[4];\n    }\n    iVar9 = bfd_record_phdr(DAT_0017fb10,puVar21[2],puVar21[5] != 0,uVar10,lVar16 != 0,uVar11,\n                            *(undefined4 *)(puVar21 + 3),*(undefined4 *)((long)puVar21 + 0x1c),\n                            uVar30,__ptr);\n    if (iVar9 == 0) {\n      dcgettext(0,"%F%P: bfd_record_phdr failed: %E\n",5);\n      FUN_001251f0();\n    }\n  }\n  free(__ptr);\n  for (plVar17 = DAT_0017fa60; plVar17 != (long *)0x0; plVar17 = (long *)plVar17[4]) {\n    if ((-1 < *(int *)((long)plVar17 + 0x84)) && (plVar17[7] != 0)) {\n      plVar18 = (long *)plVar17[0xe];\njoined_r0x0011c90a:\n      if (plVar18 != (long *)0x0) {\n        do {\n          bVar38 = false;\n          bVar39 = (int)plVar18[2] == 0;\n          if (bVar39) {\n            pbVar4 = (byte *)plVar18[1];\n            lVar16 = 5;\n            pbVar20 = pbVar4;\n            pbVar32 = (byte *)0x130359;\n            do {\n              if (lVar16 == 0) break;\n              lVar16 = lVar16 + -1;\n              bVar38 = *pbVar20 < *pbVar32;\n              bVar39 = *pbVar20 == *pbVar32;\n              pbVar20 = pbVar20 + (ulong)bVar40 * -2 + 1;\n              pbVar32 = pbVar32 + (ulong)bVar40 * -2 + 1;\n            } while (bVar39);\n            if ((!bVar38 && !bVar39) != bVar38) goto code_r0x0011c93b;\n          }\n          plVar18 = (long *)*plVar18;\n          if (plVar18 == (long *)0x0) break;\n        } while( true );\n      }\n    }\n  }\n  if (((DAT_0017fac3 & 0x10) != 0) && ((DAT_0017fac0 & 3) != 2)) {\n    local_40 = 0;\n    FUN_00119860(DAT_0017fd98,&local_40);\n    if (local_40 == 0) {\n      DAT_0017fac3 = DAT_0017fac3 & 0xef;\n    }\n  }\n  FUN_0011a050(0,1 < DAT_0017fad8);\n  FUN_00123bb0();\n  lVar16 = DAT_0017fb10;\n  uVar10 = DAT_0017f3c8;\n  if (DAT_0017f350 != 0) {\n    plVar17 = DAT_0017f358 + DAT_0017f350;\n    plVar18 = DAT_0017f358;\n    do {\n      while (lVar15 = *plVar18, (*(ushort *)(lVar15 + 0x18) & 0x8ff) == 3) {\n        pcVar31 = *(char **)(lVar15 + 8);\n        if (*pcVar31 != '.') {\n          cVar8 = *(char *)(*(long *)(lVar16 + 8) + 0x1c);\n          lVar13 = *(long *)(*(long *)(lVar15 + 0x28) + 0x68);\n          *(long *)(lVar15 + 0x28) = lVar13;\n          if (pcVar31[(int)((cVar8 != '\0') + 4)] == 'o') {\n            *(ulong *)(lVar15 + 0x30) = *(ulong *)(lVar13 + 0x38) >> ((byte)uVar10 & 0x3f);\n          }\n          break;\n        }\n        if (pcVar31[2] != 'i') break;\n        plVar18 = plVar18 + 1;\n        uVar30 = *(ulong *)(*(long *)(lVar15 + 0x28) + 0x38);\n        *(undefined8 *)(lVar15 + 0x28) = 0x17ed50;\n        *(ulong *)(lVar15 + 0x30) = uVar30 >> ((byte)uVar10 & 0x3f);\n        if (plVar18 == plVar17) goto LAB_0011ca60;\n      }\n      plVar18 = plVar18 + 1;\n    } while (plVar18 != plVar17);\n  }\nLAB_0011ca60:\n  FUN_001188a0(4);\n  FUN_00123be0();\n  FUN_00123b20();\n  puVar21 = DAT_0017f378;\n  if (DAT_0017fbd8 != '\0') {\n    cVar8 = bfd_arch_bits_per_address(DAT_0017fb10);\n    puVar21 = *(undefined8 **)(DAT_0017fb10 + 0x90);\n    uVar30 = (1L << (cVar8 - 1U & 0x3f)) * 2 - 1;\n    if (puVar21 != (undefined8 *)0x0) {\n      do {\n        if ((*(byte *)(puVar21 + 4) & 1) != 0) {\n          uVar29 = puVar21[5] + puVar21[7] & uVar30;\n          if ((uVar29 == 0) || ((puVar21[5] & uVar30) <= uVar29)) {\n            uVar29 = puVar21[7] + puVar21[6] & uVar30;\n            if ((uVar29 == 0) || ((puVar21[6] & uVar30) <= uVar29)) goto LAB_0011d2f0;\n            uVar11 = *puVar21;\n            pcVar31 = "%X%P: section %s LMA wraps around address space\n";\n          }\n          else {\n            uVar11 = *puVar21;\n            pcVar31 = "%X%P: section %s VMA wraps around address space\n";\n          }\n          uVar14 = dcgettext(0,pcVar31,5);\n          FUN_001251f0(uVar14,uVar11);\n        }\nLAB_0011d2f0:\n        puVar21 = (undefined8 *)puVar21[2];\n      } while (puVar21 != (undefined8 *)0x0);\n    }\n    puVar21 = DAT_0017f378;\n    if (1 < *(uint *)(DAT_0017fb10 + 0xa0)) {\n      uVar30 = 0;\n      plVar17 = (long *)xmalloc((ulong)*(uint *)(DAT_0017fb10 + 0xa0) << 4);\n      lVar16 = *(long *)(DAT_0017fb10 + 0x90);\n      if (lVar16 != 0) {\n        do {\n          uVar29 = uVar30;\n          if ((((*(uint *)(lVar16 + 0x20) & 1) != 0) &&\n              ((*(uint *)(lVar16 + 0x20) & 0x402) != 0x400)) && (*(long *)(lVar16 + 0x38) != 0)) {\n            uVar29 = uVar30 + 1;\n            plVar17[uVar30 * 2] = lVar16;\n            *(undefined4 *)(plVar17 + uVar30 * 2 + 1) = 0;\n          }\n          lVar16 = *(long *)(lVar16 + 0x10);\n          uVar30 = uVar29;\n        } while (lVar16 != 0);\n        if (1 < uVar29) {\n          qsort(plVar17,uVar29,0x10,FUN_00112320);\n          puVar21 = (undefined8 *)0x0;\n          plVar18 = plVar17;\n          uVar30 = 0;\n          uVar25 = 0;\n          do {\n            puVar27 = (undefined8 *)*plVar18;\n            puVar22 = puVar21;\n            uVar34 = uVar30;\n            uVar23 = uVar25;\n            if ((*(byte *)(puVar27 + 4) & 2) != 0) {\n              uVar34 = puVar27[6];\n              uVar23 = (uVar34 - 1) + ((ulong)puVar27[7] >> ((byte)DAT_0017f3c8 & 0x3f));\n              puVar22 = puVar27;\n              if ((puVar21 != (undefined8 *)0x0) && ((uVar34 <= uVar25 || (uVar25 < uVar30)))) {\n                uVar11 = *puVar21;\n                uVar14 = *puVar27;\n                uVar24 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);\n                FUN_001251f0(uVar24,uVar14,uVar34,uVar23,uVar11,uVar30,uVar25);\n                *(undefined4 *)(plVar18 + 1) = 1;\n              }\n            }\n            plVar18 = plVar18 + 2;\n            puVar21 = puVar22;\n            uVar30 = uVar34;\n            uVar25 = uVar23;\n          } while (plVar18 != plVar17 + uVar29 * 2);\n          qsort(plVar17,uVar29,0x10,FUN_00112350);\n          puVar21 = (undefined8 *)*plVar17;\n          uVar23 = 1;\n          uVar30 = puVar21[5];\n          uVar25 = uVar30;\n          do {\n            lVar16 = uVar23 * 2;\n            if (*(ulong *)(plVar17[lVar16] + 0x28) == uVar25) goto LAB_0011d4c4;\n            uVar23 = uVar23 + 1;\n            uVar25 = *(ulong *)(plVar17[lVar16] + 0x28);\n          } while (uVar23 != uVar29);\n          uVar23 = 0;\n          uVar25 = (uVar30 - 1) + ((ulong)puVar21[7] >> ((byte)DAT_0017f3c8 & 0x3f));\n          plVar18 = plVar17;\n          while( true ) {\n            uVar37 = uVar25;\n            uVar34 = uVar30;\n            puVar27 = puVar21;\n            plVar26 = plVar18 + 2;\n            uVar23 = uVar23 + 1;\n            if (uVar23 == uVar29) break;\n            puVar21 = (undefined8 *)*plVar26;\n            plVar3 = plVar18 + 3;\n            uVar30 = puVar21[5];\n            uVar25 = (uVar30 - 1) + ((ulong)puVar21[7] >> ((byte)DAT_0017f3c8 & 0x3f));\n            plVar18 = plVar26;\n            if (((int)*plVar3 == 0) && ((uVar30 <= uVar37 || (uVar37 < uVar34)))) {\n              uVar11 = *puVar27;\n              uVar14 = *puVar21;\n              uVar24 = dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",\n                                 5);\n              FUN_001251f0(uVar24,uVar14,uVar30,uVar25,uVar11,uVar34,uVar37);\n            }\n          }\nLAB_0011d4c4:\n          free(plVar17);\n          for (puVar27 = DAT_0017f398; puVar21 = DAT_0017f378, puVar27 != (undefined8 *)0x0;\n              puVar27 = (undefined8 *)puVar27[2]) {\n            if (*(int *)(puVar27 + 10) != 0) {\n              uVar11 = *puVar27;\n              lVar16 = puVar27[7] - (puVar27[5] + puVar27[4]);\n              uVar14 = dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",lVar16,5);\n              FUN_001251f0(uVar14,uVar11,lVar16);\n            }\n          }\n          goto joined_r0x0011ca92;\n        }\n      }\n      free(plVar17);\n      puVar21 = DAT_0017f378;\n    }\n  }\njoined_r0x0011ca92:\n  for (; puVar21 != (undefined8 *)0x0; puVar21 = (undefined8 *)puVar21[1]) {\n    lVar16 = bfd_link_hash_lookup(DAT_0017fae8,*puVar21,0,0,1);\n    if ((lVar16 == 0) || (1 < (byte)(*(char *)(lVar16 + 0x18) - 3U))) {\n      uVar11 = *puVar21;\n      uVar14 = dcgettext(0,"%X%P: required symbol `%s\' not defined\n",5);\n      FUN_001251f0(uVar14,uVar11);\n    }\n  }\n  iVar9 = DAT_0017fa0c;\n  if (((DAT_0017fac0 & 0x43) != 2) && ((DAT_0017fac0 & 3) != 3)) {\n    iVar9 = 1;\n  }\n  if (((DAT_0017fac0 & 0x43) == 0x42) && (DAT_0017fa0c == 0 && _DAT_0017fa08 == 0)) {\n    uVar11 = dcgettext(0,"%F%P: gc-sections requires either an entry or an undefined symbol\n",5);\n    FUN_001251f0(uVar11);\n  }\n  if (DAT_0017f2e8 == (undefined *)0x0) {\n    DAT_0017f2e8 = PTR_s_start_0017e660;\n    iVar9 = 0;\n  }\n  lVar16 = bfd_link_hash_lookup(DAT_0017fae8,DAT_0017f2e8,0,0,1);\n  if ((lVar16 != 0) && ((byte)(*(char *)(lVar16 + 0x18) - 3U) < 2)) {\n    lVar15 = *(long *)(*(long *)(lVar16 + 0x28) + 0x68);\n    if (lVar15 != 0) {\n      iVar9 = bfd_set_start_address\n                        (DAT_0017fb10,\n                         *(long *)(lVar15 + 0x28) +\n                         *(long *)(*(long *)(lVar16 + 0x28) + 0x60) + *(long *)(lVar16 + 0x30));\n      if (iVar9 != 0) {\n        return;\n      }\n      pcVar31 = "%F%P: %s: can\'t set start address\n";\n      goto LAB_0011cf37;\n    }\n  }\n  uVar11 = bfd_scan_vma(DAT_0017f2e8,&local_40,0);\n  if (*(char *)CONCAT44(uStack_3c,local_40) == '\0') {\n    iVar9 = bfd_set_start_address(DAT_0017fb10,uVar11);\n  }\n  else {\n    lVar16 = bfd_get_section_by_name(DAT_0017fb10,PTR_s__text_0017e648);\n    puVar7 = DAT_0017f2e8;\n    if (lVar16 == 0) {\n      if (iVar9 == 0) {\n        return;\n      }\n      pcVar31 = "%P: warning: cannot find entry symbol %s; not setting start address\n";\nLAB_0011cf37:\n      puVar7 = DAT_0017f2e8;\n      uVar11 = dcgettext(0,pcVar31,5);\n      FUN_001251f0(uVar11,puVar7);\n      return;\n    }\n    uVar11 = *(undefined8 *)(lVar16 + 0x28);\n    if (iVar9 != 0) {\n      uVar14 = dcgettext(0,"%P: warning: cannot find entry symbol %s; defaulting to %V\n",5);\n      FUN_001251f0(uVar14,puVar7,uVar11);\n      uVar11 = *(undefined8 *)(lVar16 + 0x28);\n    }\n    iVar9 = bfd_set_start_address(DAT_0017fb10,uVar11);\n  }\n  if (iVar9 != 0) {\n    return;\n  }\n  uVar11 = dcgettext(0,"%F%P: can\'t set start address\n",5);\n  FUN_001251f0(uVar11);\n  return;\ncode_r0x0011c5be:\n  plVar17 = (long *)plVar17[6];\n  goto joined_r0x0011be7f;\nLAB_0011c1d0:\n  uVar11 = *puVar21;\n  uVar14 = dcgettext(0,"%F%P: invalid length for memory region %s\n",5);\n  FUN_001251f0(uVar14,uVar11);\n  puVar21 = (undefined8 *)puVar21[2];\n  goto joined_r0x0011bfdf;\ncode_r0x0011c493:\n  (**(code **)(*(long *)(plVar17[4] + 8) + 0x2c8))(puVar21,&DAT_0017fac0);\n  puVar21 = (undefined8 *)puVar21[2];\n  goto joined_r0x0011c46e;\ncode_r0x0011c93b:\n  lVar16 = plVar17[6];\n  uVar11 = dcgettext(0,"%X%P: section `%s\' assigned to non-existent phdr `%s\'\n",5);\n  FUN_001251f0(uVar11,lVar16,pbVar4);\n  plVar18 = (long *)*plVar18;\n  goto joined_r0x0011c90a;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "long *plVar3;" (sized_type_specifier "long" long) (pointer_declarator "*plVar3" * identifier) ;) (declaration "byte *pbVar4;" type_identifier (pointer_declarator "*pbVar4" * identifier) ;) (declaration "long lVar5;" (sized_type_specifier "long" long) identifier ;) (declaration "long *plVar6;" (sized_type_specifier "long" long) (pointer_declarator "*plVar6" * identifier) ;) (declaration "undefined *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "char cVar8;" primitive_type identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "undefined4 uVar10;" type_identifier identifier ;) (declaration "undefined8 uVar11;" type_identifier identifier ;) (declaration "size_t sVar12;" primitive_type identifier ;) (declaration "long lVar13;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 uVar14;" type_identifier identifier ;) (declaration "long lVar15;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar16;" (sized_type_specifier "long" long) identifier ;) (declaration "long *plVar17;" (sized_type_specifier "long" long) (pointer_declarator "*plVar17" * identifier) ;) (declaration "void *__ptr;" primitive_type (pointer_declarator "*__ptr" * identifier) ;) (declaration "long *plVar18;" (sized_type_specifier "long" long) (pointer_declarator "*plVar18" * identifier) ;) (declaration "char *pcVar19;" primitive_type (pointer_declarator "*pcVar19" * identifier) ;) (declaration "byte *pbVar20;" type_identifier (pointer_declarator "*pbVar20" * identifier) ;) (declaration "undefined8 *puVar21;" type_identifier (pointer_declarator "*puVar21" * identifier) ;) (declaration "undefined8 *puVar22;" type_identifier (pointer_declarator "*puVar22" * identifier) ;) (declaration "ulong uVar23;" type_identifier identifier ;) (declaration "undefined8 uVar24;" type_identifier identifier ;) (declaration "ulong uVar25;" type_identifier identifier ;) (declaration "long *plVar26;" (sized_type_specifier "long" long) (pointer_declarator "*plVar26" * identifier) ;) (declaration "undefined8 *puVar27;" type_identifier (pointer_declarator "*puVar27" * identifier) ;) (declaration "long lVar28;" (sized_type_specifier "long" long) identifier ;) (declaration "ulong uVar29;" type_identifier identifier ;) (declaration "ulong uVar30;" type_identifier identifier ;) (declaration "char *pcVar31;" primitive_type (pointer_declarator "*pcVar31" * identifier) ;) (declaration "byte *pbVar32;" type_identifier (pointer_declarator "*pbVar32" * identifier) ;) (declaration "long lVar33;" (sized_type_specifier "long" long) identifier ;) (declaration "ulong uVar34;" type_identifier identifier ;) (declaration "byte bVar35;" type_identifier identifier ;) (declaration "long *plVar36;" (sized_type_specifier "long" long) (pointer_declarator "*plVar36" * identifier) ;) (declaration "ulong uVar37;" type_identifier identifier ;) (declaration "bool bVar38;" primitive_type identifier ;) (declaration "bool bVar39;" primitive_type identifier ;) (declaration "byte bVar40;" type_identifier identifier ;) (declaration "uint local_40;" type_identifier identifier ;) (declaration "undefined4 uStack_3c;" type_identifier identifier ;) (expression_statement "bVar40 = 0;" (assignment_expression "bVar40 = 0" identifier = number_literal) ;) (if_statement "if (DAT_0017fb98 != 0) {\n    FUN_00112d70();\n  }" if (parenthesized_expression "(DAT_0017fb98 != 0)" ( (binary_expression "DAT_0017fb98 != 0" identifier != number_literal) )) (compound_statement "{\n    FUN_00112d70();\n  }" { (expression_statement "FUN_00112d70();" (call_expression "FUN_00112d70()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "DAT_0017f440 = DAT_0017fcc8;" (assignment_expression "DAT_0017f440 = DAT_0017fcc8" identifier = identifier) ;) (expression_statement "FUN_00115a50(FUN_001182b0,DAT_0017f430);" (call_expression "FUN_00115a50(FUN_001182b0,DAT_0017f430)" identifier (argument_list "(FUN_001182b0,DAT_0017f430)" ( identifier , identifier ))) ;) (expression_statement "FUN_00113540();" (call_expression "FUN_00113540()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00123c10();" (call_expression "FUN_00123c10()" identifier (argument_list "()" ( ))) ;) (for_statement "for (puVar21 = DAT_0017f2e0; puVar21 != (undefined8 *)0x0; puVar21 = (undefined8 *)*puVar21) {\n    FUN_00112b40(puVar21[1]);\n  }" for ( (assignment_expression "puVar21 = DAT_0017f2e0" identifier = identifier) ; (binary_expression "puVar21 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "puVar21 = (undefined8 *)*puVar21" identifier = (cast_expression "(undefined8 *)*puVar21" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar21" * identifier))) ) (compound_statement "{\n    FUN_00112b40(puVar21[1]);\n  }" { (expression_statement "FUN_00112b40(puVar21[1]);" (call_expression "FUN_00112b40(puVar21[1])" identifier (argument_list "(puVar21[1])" ( (subscript_expression "puVar21[1]" identifier [ number_literal ]) ))) ;) })) (expression_statement "iVar9 = bfd_section_already_linked_table_init();" (assignment_expression "iVar9 = bfd_section_already_linked_table_init()" identifier = (call_expression "bfd_section_already_linked_table_init()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar9 == 0) {\n    uVar11 = dcgettext(0,"%F%P: can not create hash table: %E\n",5);\n    FUN_001251f0(uVar11);\n  }" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (compound_statement "{\n    uVar11 = dcgettext(0,"%F%P: can not create hash table: %E\n",5);\n    FUN_001251f0(uVar11);\n  }" { (expression_statement "uVar11 = dcgettext(0,"%F%P: can not create hash table: %E\n",5);" (assignment_expression "uVar11 = 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_001251f0(uVar11);" (call_expression "FUN_001251f0(uVar11)" identifier (argument_list "(uVar11)" ( identifier ))) ;) })) (expression_statement "_DAT_0017f2c0 = _DAT_0017f2c0 + 1;" (assignment_expression "_DAT_0017f2c0 = _DAT_0017f2c0 + 1" identifier = (binary_expression "_DAT_0017f2c0 + 1" identifier + number_literal)) ;) (expression_statement "DAT_0017f440 = DAT_0017fcc8;" (assignment_expression "DAT_0017f440 = DAT_0017fcc8" identifier = identifier) ;) (expression_statement "FUN_00119910(DAT_0017f430,0);" (call_expression "FUN_00119910(DAT_0017f430,0)" identifier (argument_list "(DAT_0017f430,0)" ( identifier , number_literal ))) ;) (expression_statement "plVar3 = DAT_0017fa28;" (assignment_expression "plVar3 = DAT_0017fa28" identifier = identifier) ;) (expression_statement "plVar26 = DAT_0017fa20;" (assignment_expression "plVar26 = DAT_0017fa20" identifier = identifier) ;) (expression_statement "plVar18 = DAT_0017f2f8;" (assignment_expression "plVar18 = DAT_0017f2f8" identifier = identifier) ;) (expression_statement "plVar17 = DAT_0017f2f0;" (assignment_expression "plVar17 = DAT_0017f2f0" identifier = identifier) ;) (if_statement "if ((DAT_0017fac1 & 2) != 0) {\n    lVar16 = *(long *)PTR_DAT_0017e650;\n    plVar36 = *(long **)(PTR_DAT_0017e650 + 8);\n    iVar9 = FUN_00128bb0();\n    if (iVar9 != 0) {\n      uVar11 = FUN_00128550();\n      uVar14 = dcgettext(0,"%F%P: %s: plugin reported error after all symbols read\n",5);\n      FUN_001251f0(uVar14,uVar11);\n    }\n    FUN_00119910(*plVar36,0);\n    puVar7 = PTR_DAT_0017e650;\n    if (*(long *)PTR_DAT_0017e650 != lVar16) {\n      FUN_001252b0("../../ld/ldlang.c",0x1baf);\n    }\n    plVar6 = *(long **)(puVar7 + 8);\n    lVar16 = *plVar36;\n    *(long **)(puVar7 + 8) = plVar36;\n    *plVar36 = 0;\n    if (DAT_0017f2f0 != plVar17) {\n      FUN_001252b0("../../ld/ldlang.c",0x1baf);\n    }\n    plVar36 = DAT_0017f2f8;\n    plVar17 = (long *)*plVar18;\n    DAT_0017f2f8 = plVar18;\n    *plVar18 = 0;\n    if (DAT_0017fa20 != plVar26) {\n      FUN_001252b0("../../ld/ldlang.c",0x1baf);\n    }\n    plVar26 = DAT_0017fa28;\n    lVar15 = *plVar3;\n    DAT_0017fa28 = plVar3;\n    *plVar3 = 0;\n    plVar18 = DAT_0017f2f0;\n    plVar3 = DAT_0017fa20;\n    if (lVar16 != 0) {\n      for (; DAT_0017f380 = plVar3, plVar18 != (long *)0x0; plVar18 = (long *)plVar18[6]) {\n        if ((*(byte *)((long)plVar18 + 0x49) & 0x20) != 0) {\n          if ((*(byte *)((long)plVar18 + 0x49) & 0x40) == 0) goto LAB_0011d6c0;\n          break;\n        }\n        if ((plVar18[4] != 0) && (*(long *)(plVar18[4] + 0xd0) == 0)) {\n          DAT_0017f380 = plVar18;\n        }\n        plVar3 = DAT_0017f380;\n      }\n      plVar18 = DAT_0017f380;\n      if (DAT_0017f380 == (long *)0x0) {\n        FUN_001252b0("../../ld/ldlang.c",0x1c32);\n        plVar18 = DAT_0017f380;\n      }\nLAB_0011d6c0:\n      DAT_0017f380 = plVar18;\n      plVar18 = DAT_0017f380;\n      puVar7 = PTR_DAT_0017e650;\n      *plVar6 = *DAT_0017f380;\n      *plVar18 = lVar16;\n      if (plVar18 == *(long **)(puVar7 + 8)) {\n        *(long **)(puVar7 + 8) = plVar6;\n      }\n      *plVar26 = plVar18[7];\n      bVar38 = DAT_0017fa28 == plVar18 + 7;\n      plVar18[7] = lVar15;\n      plVar3 = DAT_0017f2f8;\n      if (bVar38) {\n        DAT_0017fa28 = plVar26;\n      }\n      if (plVar18[2] == 0) {\n        *plVar36 = (long)DAT_0017f2f0;\n        DAT_0017f2f0 = plVar17;\n        if ((long **)plVar3 != &DAT_0017f2f0) {\n          plVar36 = DAT_0017f2f8;\n        }\n      }\n      else {\n        *plVar36 = plVar18[6];\n        plVar18[6] = (long)plVar17;\n        if (plVar3 != plVar18 + 6) {\n          plVar36 = DAT_0017f2f8;\n        }\n      }\n      DAT_0017f2f8 = plVar36;\n      plVar18 = DAT_0017f2f8;\n      plVar17 = DAT_0017f2f0;\n      _DAT_0017f2c0 = _DAT_0017f2c0 + 1;\n      FUN_00119910(DAT_0017f430);\n      if (DAT_0017f2f0 != plVar17) {\n        FUN_001252b0("../../ld/ldlang.c");\n      }\n      lVar16 = *plVar18;\n      DAT_0017f2f8 = plVar18;\n      *plVar18 = 0;\n      while (lVar16 != 0) {\n        lVar15 = *(long *)(*(long *)(lVar16 + 0x20) + 0xd0);\n        lVar13 = *(long *)(lVar16 + 0x20);\n        if (lVar15 != 0) {\n          lVar13 = lVar15;\n        }\n        if (DAT_0017fa20 == (long *)0x0) {\nLAB_0011dad0:\n          plVar17 = DAT_0017f2f0;\n        }\n        else {\n          plVar26 = (long *)0x0;\n          plVar18 = DAT_0017fa20;\n          plVar17 = (long *)0x0;\n          do {\n            while (plVar18[4] != lVar13) {\n              if ((plVar18[4] != 0) && (plVar18[6] != 0)) {\n                plVar26 = plVar18;\n              }\n              plVar18 = (long *)plVar18[7];\n              if (plVar18 == (long *)0x0) goto LAB_0011d7f1;\n            }\n            lVar28 = plVar18[6];\n            if (lVar28 != 0) {\n              plVar17 = (long *)(lVar28 + 0x30);\n              lVar13 = *(long *)(lVar28 + 0x30);\n              goto LAB_0011d835;\n            }\n            plVar18 = (long *)plVar18[7];\n            plVar17 = plVar26;\n          } while (plVar18 != (long *)0x0);\nLAB_0011d7f1:\n          if (plVar17 == (long *)0x0) goto LAB_0011dad0;\n        }\n        plVar17 = plVar17 + 6;\n        for (lVar13 = *plVar17; lVar13 != 0; lVar13 = *(long *)(lVar13 + 0x30)) {\n          if (((*(byte *)(lVar13 + 0x49) & 0x40) == 0) &&\n             (*(long *)(*(long *)(lVar13 + 0x20) + 0xd0) == 0)) {\n            lVar13 = *plVar17;\n            break;\n          }\n          plVar17 = (long *)(lVar13 + 0x30);\n        }\nLAB_0011d835:\n        plVar18 = (long *)(lVar16 + 0x30);\n        if (lVar15 == 0) {\n          *plVar17 = lVar16;\n          lVar15 = *(long *)(lVar16 + 0x30);\n          *(long *)(lVar16 + 0x30) = lVar13;\n          lVar16 = lVar15;\n        }\n        else {\n          lVar28 = *(long *)(lVar16 + 0x30);\n          if (lVar28 != 0) {\n            lVar5 = *(long *)(*(long *)(lVar28 + 0x20) + 0xd0);\n            while (lVar15 == lVar5) {\n              plVar18 = (long *)(lVar28 + 0x30);\n              lVar28 = *(long *)(lVar28 + 0x30);\n              if (lVar28 == 0) break;\n              lVar5 = *(long *)(*(long *)(lVar28 + 0x20) + 0xd0);\n            }\n          }\n          *plVar17 = lVar16;\n          lVar16 = *plVar18;\n          *plVar18 = lVar13;\n          if (*(long *)(lVar15 + 0x100) != 0) {\n            *(long **)(*(long *)(lVar15 + 0x100) + 0x30) = plVar18 + -6;\n          }\n        }\n      }\n    }\n  }" if (parenthesized_expression "((DAT_0017fac1 & 2) != 0)" ( (binary_expression "(DAT_0017fac1 & 2) != 0" (parenthesized_expression "(DAT_0017fac1 & 2)" ( (binary_expression "DAT_0017fac1 & 2" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n    lVar16 = *(long *)PTR_DAT_0017e650;\n    plVar36 = *(long **)(PTR_DAT_0017e650 + 8);\n    iVar9 = FUN_00128bb0();\n    if (iVar9 != 0) {\n      uVar11 = FUN_00128550();\n      uVar14 = dcgettext(0,"%F%P: %s: plugin reported error after all symbols read\n",5);\n      FUN_001251f0(uVar14,uVar11);\n    }\n    FUN_00119910(*plVar36,0);\n    puVar7 = PTR_DAT_0017e650;\n    if (*(long *)PTR_DAT_0017e650 != lVar16) {\n      FUN_001252b0("../../ld/ldlang.c",0x1baf);\n    }\n    plVar6 = *(long **)(puVar7 + 8);\n    lVar16 = *plVar36;\n    *(long **)(puVar7 + 8) = plVar36;\n    *plVar36 = 0;\n    if (DAT_0017f2f0 != plVar17) {\n      FUN_001252b0("../../ld/ldlang.c",0x1baf);\n    }\n    plVar36 = DAT_0017f2f8;\n    plVar17 = (long *)*plVar18;\n    DAT_0017f2f8 = plVar18;\n    *plVar18 = 0;\n    if (DAT_0017fa20 != plVar26) {\n      FUN_001252b0("../../ld/ldlang.c",0x1baf);\n    }\n    plVar26 = DAT_0017fa28;\n    lVar15 = *plVar3;\n    DAT_0017fa28 = plVar3;\n    *plVar3 = 0;\n    plVar18 = DAT_0017f2f0;\n    plVar3 = DAT_0017fa20;\n    if (lVar16 != 0) {\n      for (; DAT_0017f380 = plVar3, plVar18 != (long *)0x0; plVar18 = (long *)plVar18[6]) {\n        if ((*(byte *)((long)plVar18 + 0x49) & 0x20) != 0) {\n          if ((*(byte *)((long)plVar18 + 0x49) & 0x40) == 0) goto LAB_0011d6c0;\n          break;\n        }\n        if ((plVar18[4] != 0) && (*(long *)(plVar18[4] + 0xd0) == 0)) {\n          DAT_0017f380 = plVar18;\n        }\n        plVar3 = DAT_0017f380;\n      }\n      plVar18 = DAT_0017f380;\n      if (DAT_0017f380 == (long *)0x0) {\n        FUN_001252b0("../../ld/ldlang.c",0x1c32);\n        plVar18 = DAT_0017f380;\n      }\nLAB_0011d6c0:\n      DAT_0017f380 = plVar18;\n      plVar18 = DAT_0017f380;\n      puVar7 = PTR_DAT_0017e650;\n      *plVar6 = *DAT_0017f380;\n      *plVar18 = lVar16;\n      if (plVar18 == *(long **)(puVar7 + 8)) {\n        *(long **)(puVar7 + 8) = plVar6;\n      }\n      *plVar26 = plVar18[7];\n      bVar38 = DAT_0017fa28 == plVar18 + 7;\n      plVar18[7] = lVar15;\n      plVar3 = DAT_0017f2f8;\n      if (bVar38) {\n        DAT_0017fa28 = plVar26;\n      }\n      if (plVar18[2] == 0) {\n        *plVar36 = (long)DAT_0017f2f0;\n        DAT_0017f2f0 = plVar17;\n        if ((long **)plVar3 != &DAT_0017f2f0) {\n          plVar36 = DAT_0017f2f8;\n        }\n      }\n      else {\n        *plVar36 = plVar18[6];\n        plVar18[6] = (long)plVar17;\n        if (plVar3 != plVar18 + 6) {\n          plVar36 = DAT_0017f2f8;\n        }\n      }\n      DAT_0017f2f8 = plVar36;\n      plVar18 = DAT_0017f2f8;\n      plVar17 = DAT_0017f2f0;\n      _DAT_0017f2c0 = _DAT_0017f2c0 + 1;\n      FUN_00119910(DAT_0017f430);\n      if (DAT_0017f2f0 != plVar17) {\n        FUN_001252b0("../../ld/ldlang.c");\n      }\n      lVar16 = *plVar18;\n      DAT_0017f2f8 = plVar18;\n      *plVar18 = 0;\n      while (lVar16 != 0) {\n        lVar15 = *(long *)(*(long *)(lVar16 + 0x20) + 0xd0);\n        lVar13 = *(long *)(lVar16 + 0x20);\n        if (lVar15 != 0) {\n          lVar13 = lVar15;\n        }\n        if (DAT_0017fa20 == (long *)0x0) {\nLAB_0011dad0:\n          plVar17 = DAT_0017f2f0;\n        }\n        else {\n          plVar26 = (long *)0x0;\n          plVar18 = DAT_0017fa20;\n          plVar17 = (long *)0x0;\n          do {\n            while (plVar18[4] != lVar13) {\n              if ((plVar18[4] != 0) && (plVar18[6] != 0)) {\n                plVar26 = plVar18;\n              }\n              plVar18 = (long *)plVar18[7];\n              if (plVar18 == (long *)0x0) goto LAB_0011d7f1;\n            }\n            lVar28 = plVar18[6];\n            if (lVar28 != 0) {\n              plVar17 = (long *)(lVar28 + 0x30);\n              lVar13 = *(long *)(lVar28 + 0x30);\n              goto LAB_0011d835;\n            }\n            plVar18 = (long *)plVar18[7];\n            plVar17 = plVar26;\n          } while (plVar18 != (long *)0x0);\nLAB_0011d7f1:\n          if (plVar17 == (long *)0x0) goto LAB_0011dad0;\n        }\n        plVar17 = plVar17 + 6;\n        for (lVar13 = *plVar17; lVar13 != 0; lVar13 = *(long *)(lVar13 + 0x30)) {\n          if (((*(byte *)(lVar13 + 0x49) & 0x40) == 0) &&\n             (*(long *)(*(long *)(lVar13 + 0x20) + 0xd0) == 0)) {\n            lVar13 = *plVar17;\n            break;\n          }\n          plVar17 = (long *)(lVar13 + 0x30);\n        }\nLAB_0011d835:\n        plVar18 = (long *)(lVar16 + 0x30);\n        if (lVar15 == 0) {\n          *plVar17 = lVar16;\n          lVar15 = *(long *)(lVar16 + 0x30);\n          *(long *)(lVar16 + 0x30) = lVar13;\n          lVar16 = lVar15;\n        }\n        else {\n          lVar28 = *(long *)(lVar16 + 0x30);\n          if (lVar28 != 0) {\n            lVar5 = *(long *)(*(long *)(lVar28 + 0x20) + 0xd0);\n            while (lVar15 == lVar5) {\n              plVar18 = (long *)(lVar28 + 0x30);\n              lVar28 = *(long *)(lVar28 + 0x30);\n              if (lVar28 == 0) break;\n              lVar5 = *(long *)(*(long *)(lVar28 + 0x20) + 0xd0);\n            }\n          }\n          *plVar17 = lVar16;\n          lVar16 = *plVar18;\n          *plVar18 = lVar13;\n          if (*(long *)(lVar15 + 0x100) != 0) {\n            *(long **)(*(long *)(lVar15 + 0x100) + 0x30) = plVar18 + -6;\n          }\n        }\n      }\n    }\n  }" { (expression_statement "lVar16 = *(long *)PTR_DAT_0017e650;" (assignment_expression "lVar16 = *(long *)PTR_DAT_0017e650" identifier = (pointer_expression "*(long *)PTR_DAT_0017e650" * (cast_expression "(long *)PTR_DAT_0017e650" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "plVar36 = *(long **)(PTR_DAT_0017e650 + 8);" (assignment_expression "plVar36 = *(long **)(PTR_DAT_0017e650 + 8)" identifier = (pointer_expression "*(long **)(PTR_DAT_0017e650 + 8)" * (cast_expression "(long **)(PTR_DAT_0017e650 + 8)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_DAT_0017e650 + 8)" ( (binary_expression "PTR_DAT_0017e650 + 8" identifier + number_literal) ))))) ;) (expression_statement "iVar9 = FUN_00128bb0();" (assignment_expression "iVar9 = FUN_00128bb0()" identifier = (call_expression "FUN_00128bb0()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar9 != 0) {\n      uVar11 = FUN_00128550();\n      uVar14 = dcgettext(0,"%F%P: %s: plugin reported error after all symbols read\n",5);\n      FUN_001251f0(uVar14,uVar11);\n    }" if (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) (compound_statement "{\n      uVar11 = FUN_00128550();\n      uVar14 = dcgettext(0,"%F%P: %s: plugin reported error after all symbols read\n",5);\n      FUN_001251f0(uVar14,uVar11);\n    }" { (expression_statement "uVar11 = FUN_00128550();" (assignment_expression "uVar11 = FUN_00128550()" identifier = (call_expression "FUN_00128550()" 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_001251f0(uVar14,uVar11);" (call_expression "FUN_001251f0(uVar14,uVar11)" identifier (argument_list "(uVar14,uVar11)" ( identifier , identifier ))) ;) })) (expression_statement "FUN_00119910(*plVar36,0);" (call_expression "FUN_00119910(*plVar36,0)" identifier (argument_list "(*plVar36,0)" ( (pointer_expression "*plVar36" * identifier) , number_literal ))) ;) (expression_statement "puVar7 = PTR_DAT_0017e650;" (assignment_expression "puVar7 = PTR_DAT_0017e650" identifier = identifier) ;) (if_statement "if (*(long *)PTR_DAT_0017e650 != lVar16) {\n      FUN_001252b0("../../ld/ldlang.c",0x1baf);\n    }" if (parenthesized_expression "(*(long *)PTR_DAT_0017e650 != lVar16)" ( (binary_expression "*(long *)PTR_DAT_0017e650 != lVar16" (pointer_expression "*(long *)PTR_DAT_0017e650" * (cast_expression "(long *)PTR_DAT_0017e650" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) identifier)) != identifier) )) (compound_statement "{\n      FUN_001252b0("../../ld/ldlang.c",0x1baf);\n    }" { (expression_statement "FUN_001252b0("../../ld/ldlang.c",0x1baf);" (call_expression "FUN_001252b0("../../ld/ldlang.c",0x1baf)" identifier (argument_list "("../../ld/ldlang.c",0x1baf)" ( (string_literal ""../../ld/ldlang.c"" " string_content ") , number_literal ))) ;) })) (expression_statement "plVar6 = *(long **)(puVar7 + 8);" (assignment_expression "plVar6 = *(long **)(puVar7 + 8)" identifier = (pointer_expression "*(long **)(puVar7 + 8)" * (cast_expression "(long **)(puVar7 + 8)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar7 + 8)" ( (binary_expression "puVar7 + 8" identifier + number_literal) ))))) ;) (expression_statement "lVar16 = *plVar36;" (assignment_expression "lVar16 = *plVar36" identifier = (pointer_expression "*plVar36" * identifier)) ;) (expression_statement "*(long **)(puVar7 + 8) = plVar36;" (assignment_expression "*(long **)(puVar7 + 8) = plVar36" (pointer_expression "*(long **)(puVar7 + 8)" * (cast_expression "(long **)(puVar7 + 8)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar7 + 8)" ( (binary_expression "puVar7 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*plVar36 = 0;" (assignment_expression "*plVar36 = 0" (pointer_expression "*plVar36" * identifier) = number_literal) ;) (if_statement "if (DAT_0017f2f0 != plVar17) {\n      FUN_001252b0("../../ld/ldlang.c",0x1baf);\n    }" if (parenthesized_expression "(DAT_0017f2f0 != plVar17)" ( (binary_expression "DAT_0017f2f0 != plVar17" identifier != identifier) )) (compound_statement "{\n      FUN_001252b0("../../ld/ldlang.c",0x1baf);\n    }" { (expression_statement "FUN_001252b0("../../ld/ldlang.c",0x1baf);" (call_expression "FUN_001252b0("../../ld/ldlang.c",0x1baf)" identifier (argument_list "("../../ld/ldlang.c",0x1baf)" ( (string_literal ""../../ld/ldlang.c"" " string_content ") , number_literal ))) ;) })) (expression_statement "plVar36 = DAT_0017f2f8;" (assignment_expression "plVar36 = DAT_0017f2f8" identifier = identifier) ;) (expression_statement "plVar17 = (long *)*plVar18;" (assignment_expression "plVar17 = (long *)*plVar18" identifier = (cast_expression "(long *)*plVar18" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar18" * identifier))) ;) (expression_statement "DAT_0017f2f8 = plVar18;" (assignment_expression "DAT_0017f2f8 = plVar18" identifier = identifier) ;) (expression_statement "*plVar18 = 0;" (assignment_expression "*plVar18 = 0" (pointer_expression "*plVar18" * identifier) = number_literal) ;) (if_statement "if (DAT_0017fa20 != plVar26) {\n      FUN_001252b0("../../ld/ldlang.c",0x1baf);\n    }" if (parenthesized_expression "(DAT_0017fa20 != plVar26)" ( (binary_expression "DAT_0017fa20 != plVar26" identifier != identifier) )) (compound_statement "{\n      FUN_001252b0("../../ld/ldlang.c",0x1baf);\n    }" { (expression_statement "FUN_001252b0("../../ld/ldlang.c",0x1baf);" (call_expression "FUN_001252b0("../../ld/ldlang.c",0x1baf)" identifier (argument_list "("../../ld/ldlang.c",0x1baf)" ( (string_literal ""../../ld/ldlang.c"" " string_content ") , number_literal ))) ;) })) (expression_statement "plVar26 = DAT_0017fa28;" (assignment_expression "plVar26 = DAT_0017fa28" identifier = identifier) ;) (expression_statement "lVar15 = *plVar3;" (assignment_expression "lVar15 = *plVar3" identifier = (pointer_expression "*plVar3" * identifier)) ;) (expression_statement "DAT_0017fa28 = plVar3;" (assignment_expression "DAT_0017fa28 = plVar3" identifier = identifier) ;) (expression_statement "*plVar3 = 0;" (assignment_expression "*plVar3 = 0" (pointer_expression "*plVar3" * identifier) = number_literal) ;) (expression_statement "plVar18 = DAT_0017f2f0;" (assignment_expression "plVar18 = DAT_0017f2f0" identifier = identifier) ;) (expression_statement "plVar3 = DAT_0017fa20;" (assignment_expression "plVar3 = DAT_0017fa20" identifier = identifier) ;) (if_statement "if (lVar16 != 0) {\n      for (; DAT_0017f380 = plVar3, plVar18 != (long *)0x0; plVar18 = (long *)plVar18[6]) {\n        if ((*(byte *)((long)plVar18 + 0x49) & 0x20) != 0) {\n          if ((*(byte *)((long)plVar18 + 0x49) & 0x40) == 0) goto LAB_0011d6c0;\n          break;\n        }\n        if ((plVar18[4] != 0) && (*(long *)(plVar18[4] + 0xd0) == 0)) {\n          DAT_0017f380 = plVar18;\n        }\n        plVar3 = DAT_0017f380;\n      }\n      plVar18 = DAT_0017f380;\n      if (DAT_0017f380 == (long *)0x0) {\n        FUN_001252b0("../../ld/ldlang.c",0x1c32);\n        plVar18 = DAT_0017f380;\n      }\nLAB_0011d6c0:\n      DAT_0017f380 = plVar18;\n      plVar18 = DAT_0017f380;\n      puVar7 = PTR_DAT_0017e650;\n      *plVar6 = *DAT_0017f380;\n      *plVar18 = lVar16;\n      if (plVar18 == *(long **)(puVar7 + 8)) {\n        *(long **)(puVar7 + 8) = plVar6;\n      }\n      *plVar26 = plVar18[7];\n      bVar38 = DAT_0017fa28 == plVar18 + 7;\n      plVar18[7] = lVar15;\n      plVar3 = DAT_0017f2f8;\n      if (bVar38) {\n        DAT_0017fa28 = plVar26;\n      }\n      if (plVar18[2] == 0) {\n        *plVar36 = (long)DAT_0017f2f0;\n        DAT_0017f2f0 = plVar17;\n        if ((long **)plVar3 != &DAT_0017f2f0) {\n          plVar36 = DAT_0017f2f8;\n        }\n      }\n      else {\n        *plVar36 = plVar18[6];\n        plVar18[6] = (long)plVar17;\n        if (plVar3 != plVar18 + 6) {\n          plVar36 = DAT_0017f2f8;\n        }\n      }\n      DAT_0017f2f8 = plVar36;\n      plVar18 = DAT_0017f2f8;\n      plVar17 = DAT_0017f2f0;\n      _DAT_0017f2c0 = _DAT_0017f2c0 + 1;\n      FUN_00119910(DAT_0017f430);\n      if (DAT_0017f2f0 != plVar17) {\n        FUN_001252b0("../../ld/ldlang.c");\n      }\n      lVar16 = *plVar18;\n      DAT_0017f2f8 = plVar18;\n      *plVar18 = 0;\n      while (lVar16 != 0) {\n        lVar15 = *(long *)(*(long *)(lVar16 + 0x20) + 0xd0);\n        lVar13 = *(long *)(lVar16 + 0x20);\n        if (lVar15 != 0) {\n          lVar13 = lVar15;\n        }\n        if (DAT_0017fa20 == (long *)0x0) {\nLAB_0011dad0:\n          plVar17 = DAT_0017f2f0;\n        }\n        else {\n          plVar26 = (long *)0x0;\n          plVar18 = DAT_0017fa20;\n          plVar17 = (long *)0x0;\n          do {\n            while (plVar18[4] != lVar13) {\n              if ((plVar18[4] != 0) && (plVar18[6] != 0)) {\n                plVar26 = plVar18;\n              }\n              plVar18 = (long *)plVar18[7];\n              if (plVar18 == (long *)0x0) goto LAB_0011d7f1;\n            }\n            lVar28 = plVar18[6];\n            if (lVar28 != 0) {\n              plVar17 = (long *)(lVar28 + 0x30);\n              lVar13 = *(long *)(lVar28 + 0x30);\n              goto LAB_0011d835;\n            }\n            plVar18 = (long *)plVar18[7];\n            plVar17 = plVar26;\n          } while (plVar18 != (long *)0x0);\nLAB_0011d7f1:\n          if (plVar17 == (long *)0x0) goto LAB_0011dad0;\n        }\n        plVar17 = plVar17 + 6;\n        for (lVar13 = *plVar17; lVar13 != 0; lVar13 = *(long *)(lVar13 + 0x30)) {\n          if (((*(byte *)(lVar13 + 0x49) & 0x40) == 0) &&\n             (*(long *)(*(long *)(lVar13 + 0x20) + 0xd0) == 0)) {\n            lVar13 = *plVar17;\n            break;\n          }\n          plVar17 = (long *)(lVar13 + 0x30);\n        }\nLAB_0011d835:\n        plVar18 = (long *)(lVar16 + 0x30);\n        if (lVar15 == 0) {\n          *plVar17 = lVar16;\n          lVar15 = *(long *)(lVar16 + 0x30);\n          *(long *)(lVar16 + 0x30) = lVar13;\n          lVar16 = lVar15;\n        }\n        else {\n          lVar28 = *(long *)(lVar16 + 0x30);\n          if (lVar28 != 0) {\n            lVar5 = *(long *)(*(long *)(lVar28 + 0x20) + 0xd0);\n            while (lVar15 == lVar5) {\n              plVar18 = (long *)(lVar28 + 0x30);\n              lVar28 = *(long *)(lVar28 + 0x30);\n              if (lVar28 == 0) break;\n              lVar5 = *(long *)(*(long *)(lVar28 + 0x20) + 0xd0);\n            }\n          }\n          *plVar17 = lVar16;\n          lVar16 = *plVar18;\n          *plVar18 = lVar13;\n          if (*(long *)(lVar15 + 0x100) != 0) {\n            *(long **)(*(long *)(lVar15 + 0x100) + 0x30) = plVar18 + -6;\n          }\n        }\n      }\n    }" if (parenthesized_expression "(lVar16 != 0)" ( (binary_expression "lVar16 != 0" identifier != number_literal) )) (compound_statement "{\n      for (; DAT_0017f380 = plVar3, plVar18 != (long *)0x0; plVar18 = (long *)plVar18[6]) {\n        if ((*(byte *)((long)plVar18 + 0x49) & 0x20) != 0) {\n          if ((*(byte *)((long)plVar18 + 0x49) & 0x40) == 0) goto LAB_0011d6c0;\n          break;\n        }\n        if ((plVar18[4] != 0) && (*(long *)(plVar18[4] + 0xd0) == 0)) {\n          DAT_0017f380 = plVar18;\n        }\n        plVar3 = DAT_0017f380;\n      }\n      plVar18 = DAT_0017f380;\n      if (DAT_0017f380 == (long *)0x0) {\n        FUN_001252b0("../../ld/ldlang.c",0x1c32);\n        plVar18 = DAT_0017f380;\n      }\nLAB_0011d6c0:\n      DAT_0017f380 = plVar18;\n      plVar18 = DAT_0017f380;\n      puVar7 = PTR_DAT_0017e650;\n      *plVar6 = *DAT_0017f380;\n      *plVar18 = lVar16;\n      if (plVar18 == *(long **)(puVar7 + 8)) {\n        *(long **)(puVar7 + 8) = plVar6;\n      }\n      *plVar26 = plVar18[7];\n      bVar38 = DAT_0017fa28 == plVar18 + 7;\n      plVar18[7] = lVar15;\n      plVar3 = DAT_0017f2f8;\n      if (bVar38) {\n        DAT_0017fa28 = plVar26;\n      }\n      if (plVar18[2] == 0) {\n        *plVar36 = (long)DAT_0017f2f0;\n        DAT_0017f2f0 = plVar17;\n        if ((long **)plVar3 != &DAT_0017f2f0) {\n          plVar36 = DAT_0017f2f8;\n        }\n      }\n      else {\n        *plVar36 = plVar18[6];\n        plVar18[6] = (long)plVar17;\n        if (plVar3 != plVar18 + 6) {\n          plVar36 = DAT_0017f2f8;\n        }\n      }\n      DAT_0017f2f8 = plVar36;\n      plVar18 = DAT_0017f2f8;\n      plVar17 = DAT_0017f2f0;\n      _DAT_0017f2c0 = _DAT_0017f2c0 + 1;\n      FUN_00119910(DAT_0017f430);\n      if (DAT_0017f2f0 != plVar17) {\n        FUN_001252b0("../../ld/ldlang.c");\n      }\n      lVar16 = *plVar18;\n      DAT_0017f2f8 = plVar18;\n      *plVar18 = 0;\n      while (lVar16 != 0) {\n        lVar15 = *(long *)(*(long *)(lVar16 + 0x20) + 0xd0);\n        lVar13 = *(long *)(lVar16 + 0x20);\n        if (lVar15 != 0) {\n          lVar13 = lVar15;\n        }\n        if (DAT_0017fa20 == (long *)0x0) {\nLAB_0011dad0:\n          plVar17 = DAT_0017f2f0;\n        }\n        else {\n          plVar26 = (long *)0x0;\n          plVar18 = DAT_0017fa20;\n          plVar17 = (long *)0x0;\n          do {\n            while (plVar18[4] != lVar13) {\n              if ((plVar18[4] != 0) && (plVar18[6] != 0)) {\n                plVar26 = plVar18;\n              }\n              plVar18 = (long *)plVar18[7];\n              if (plVar18 == (long *)0x0) goto LAB_0011d7f1;\n            }\n            lVar28 = plVar18[6];\n            if (lVar28 != 0) {\n              plVar17 = (long *)(lVar28 + 0x30);\n              lVar13 = *(long *)(lVar28 + 0x30);\n              goto LAB_0011d835;\n            }\n            plVar18 = (long *)plVar18[7];\n            plVar17 = plVar26;\n          } while (plVar18 != (long *)0x0);\nLAB_0011d7f1:\n          if (plVar17 == (long *)0x0) goto LAB_0011dad0;\n        }\n        plVar17 = plVar17 + 6;\n        for (lVar13 = *plVar17; lVar13 != 0; lVar13 = *(long *)(lVar13 + 0x30)) {\n          if (((*(byte *)(lVar13 + 0x49) & 0x40) == 0) &&\n             (*(long *)(*(long *)(lVar13 + 0x20) + 0xd0) == 0)) {\n            lVar13 = *plVar17;\n            break;\n          }\n          plVar17 = (long *)(lVar13 + 0x30);\n        }\nLAB_0011d835:\n        plVar18 = (long *)(lVar16 + 0x30);\n        if (lVar15 == 0) {\n          *plVar17 = lVar16;\n          lVar15 = *(long *)(lVar16 + 0x30);\n          *(long *)(lVar16 + 0x30) = lVar13;\n          lVar16 = lVar15;\n        }\n        else {\n          lVar28 = *(long *)(lVar16 + 0x30);\n          if (lVar28 != 0) {\n            lVar5 = *(long *)(*(long *)(lVar28 + 0x20) + 0xd0);\n            while (lVar15 == lVar5) {\n              plVar18 = (long *)(lVar28 + 0x30);\n              lVar28 = *(long *)(lVar28 + 0x30);\n              if (lVar28 == 0) break;\n              lVar5 = *(long *)(*(long *)(lVar28 + 0x20) + 0xd0);\n            }\n          }\n          *plVar17 = lVar16;\n          lVar16 = *plVar18;\n          *plVar18 = lVar13;\n          if (*(long *)(lVar15 + 0x100) != 0) {\n            *(long **)(*(long *)(lVar15 + 0x100) + 0x30) = plVar18 + -6;\n          }\n        }\n      }\n    }" { (for_statement "for (; DAT_0017f380 = plVar3, plVar18 != (long *)0x0; plVar18 = (long *)plVar18[6]) {\n        if ((*(byte *)((long)plVar18 + 0x49) & 0x20) != 0) {\n          if ((*(byte *)((long)plVar18 + 0x49) & 0x40) == 0) goto LAB_0011d6c0;\n          break;\n        }\n        if ((plVar18[4] != 0) && (*(long *)(plVar18[4] + 0xd0) == 0)) {\n          DAT_0017f380 = plVar18;\n        }\n        plVar3 = DAT_0017f380;\n      }" for ( ; (comma_expression "DAT_0017f380 = plVar3, plVar18 != (long *)0x0" (assignment_expression "DAT_0017f380 = plVar3" identifier = identifier) , (binary_expression "plVar18 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal))) ; (assignment_expression "plVar18 = (long *)plVar18[6]" identifier = (cast_expression "(long *)plVar18[6]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar18[6]" identifier [ number_literal ]))) ) (compound_statement "{\n        if ((*(byte *)((long)plVar18 + 0x49) & 0x20) != 0) {\n          if ((*(byte *)((long)plVar18 + 0x49) & 0x40) == 0) goto LAB_0011d6c0;\n          break;\n        }\n        if ((plVar18[4] != 0) && (*(long *)(plVar18[4] + 0xd0) == 0)) {\n          DAT_0017f380 = plVar18;\n        }\n        plVar3 = DAT_0017f380;\n      }" { (if_statement "if ((*(byte *)((long)plVar18 + 0x49) & 0x20) != 0) {\n          if ((*(byte *)((long)plVar18 + 0x49) & 0x40) == 0) goto LAB_0011d6c0;\n          break;\n        }" if (parenthesized_expression "((*(byte *)((long)plVar18 + 0x49) & 0x20) != 0)" ( (binary_expression "(*(byte *)((long)plVar18 + 0x49) & 0x20) != 0" (parenthesized_expression "(*(byte *)((long)plVar18 + 0x49) & 0x20)" ( (binary_expression "*(byte *)((long)plVar18 + 0x49) & 0x20" (pointer_expression "*(byte *)((long)plVar18 + 0x49)" * (cast_expression "(byte *)((long)plVar18 + 0x49)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar18 + 0x49)" ( (binary_expression "(long)plVar18 + 0x49" (cast_expression "(long)plVar18" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n          if ((*(byte *)((long)plVar18 + 0x49) & 0x40) == 0) goto LAB_0011d6c0;\n          break;\n        }" { (if_statement "if ((*(byte *)((long)plVar18 + 0x49) & 0x40) == 0) goto LAB_0011d6c0;" if (parenthesized_expression "((*(byte *)((long)plVar18 + 0x49) & 0x40) == 0)" ( (binary_expression "(*(byte *)((long)plVar18 + 0x49) & 0x40) == 0" (parenthesized_expression "(*(byte *)((long)plVar18 + 0x49) & 0x40)" ( (binary_expression "*(byte *)((long)plVar18 + 0x49) & 0x40" (pointer_expression "*(byte *)((long)plVar18 + 0x49)" * (cast_expression "(byte *)((long)plVar18 + 0x49)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar18 + 0x49)" ( (binary_expression "(long)plVar18 + 0x49" (cast_expression "(long)plVar18" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_0011d6c0;" goto statement_identifier ;)) (break_statement "break;" break ;) })) (if_statement "if ((plVar18[4] != 0) && (*(long *)(plVar18[4] + 0xd0) == 0)) {\n          DAT_0017f380 = plVar18;\n        }" if (parenthesized_expression "((plVar18[4] != 0) && (*(long *)(plVar18[4] + 0xd0) == 0))" ( (binary_expression "(plVar18[4] != 0) && (*(long *)(plVar18[4] + 0xd0) == 0)" (parenthesized_expression "(plVar18[4] != 0)" ( (binary_expression "plVar18[4] != 0" (subscript_expression "plVar18[4]" identifier [ number_literal ]) != number_literal) )) && (parenthesized_expression "(*(long *)(plVar18[4] + 0xd0) == 0)" ( (binary_expression "*(long *)(plVar18[4] + 0xd0) == 0" (pointer_expression "*(long *)(plVar18[4] + 0xd0)" * (cast_expression "(long *)(plVar18[4] + 0xd0)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar18[4] + 0xd0)" ( (binary_expression "plVar18[4] + 0xd0" (subscript_expression "plVar18[4]" identifier [ number_literal ]) + number_literal) )))) == number_literal) ))) )) (compound_statement "{\n          DAT_0017f380 = plVar18;\n        }" { (expression_statement "DAT_0017f380 = plVar18;" (assignment_expression "DAT_0017f380 = plVar18" identifier = identifier) ;) })) (expression_statement "plVar3 = DAT_0017f380;" (assignment_expression "plVar3 = DAT_0017f380" identifier = identifier) ;) })) (expression_statement "plVar18 = DAT_0017f380;" (assignment_expression "plVar18 = DAT_0017f380" identifier = identifier) ;) (if_statement "if (DAT_0017f380 == (long *)0x0) {\n        FUN_001252b0("../../ld/ldlang.c",0x1c32);\n        plVar18 = DAT_0017f380;\n      }" if (parenthesized_expression "(DAT_0017f380 == (long *)0x0)" ( (binary_expression "DAT_0017f380 == (long *)0x0" identifier == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        FUN_001252b0("../../ld/ldlang.c",0x1c32);\n        plVar18 = DAT_0017f380;\n      }" { (expression_statement "FUN_001252b0("../../ld/ldlang.c",0x1c32);" (call_expression "FUN_001252b0("../../ld/ldlang.c",0x1c32)" identifier (argument_list "("../../ld/ldlang.c",0x1c32)" ( (string_literal ""../../ld/ldlang.c"" " string_content ") , number_literal ))) ;) (expression_statement "plVar18 = DAT_0017f380;" (assignment_expression "plVar18 = DAT_0017f380" identifier = identifier) ;) })) (labeled_statement "LAB_0011d6c0:\n      DAT_0017f380 = plVar18;" statement_identifier : (expression_statement "DAT_0017f380 = plVar18;" (assignment_expression "DAT_0017f380 = plVar18" identifier = identifier) ;)) (expression_statement "plVar18 = DAT_0017f380;" (assignment_expression "plVar18 = DAT_0017f380" identifier = identifier) ;) (expression_statement "puVar7 = PTR_DAT_0017e650;" (assignment_expression "puVar7 = PTR_DAT_0017e650" identifier = identifier) ;) (expression_statement "*plVar6 = *DAT_0017f380;" (assignment_expression "*plVar6 = *DAT_0017f380" (pointer_expression "*plVar6" * identifier) = (pointer_expression "*DAT_0017f380" * identifier)) ;) (expression_statement "*plVar18 = lVar16;" (assignment_expression "*plVar18 = lVar16" (pointer_expression "*plVar18" * identifier) = identifier) ;) (if_statement "if (plVar18 == *(long **)(puVar7 + 8)) {\n        *(long **)(puVar7 + 8) = plVar6;\n      }" if (parenthesized_expression "(plVar18 == *(long **)(puVar7 + 8))" ( (binary_expression "plVar18 == *(long **)(puVar7 + 8)" identifier == (pointer_expression "*(long **)(puVar7 + 8)" * (cast_expression "(long **)(puVar7 + 8)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar7 + 8)" ( (binary_expression "puVar7 + 8" identifier + number_literal) ))))) )) (compound_statement "{\n        *(long **)(puVar7 + 8) = plVar6;\n      }" { (expression_statement "*(long **)(puVar7 + 8) = plVar6;" (assignment_expression "*(long **)(puVar7 + 8) = plVar6" (pointer_expression "*(long **)(puVar7 + 8)" * (cast_expression "(long **)(puVar7 + 8)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar7 + 8)" ( (binary_expression "puVar7 + 8" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "*plVar26 = plVar18[7];" (assignment_expression "*plVar26 = plVar18[7]" (pointer_expression "*plVar26" * identifier) = (subscript_expression "plVar18[7]" identifier [ number_literal ])) ;) (expression_statement "bVar38 = DAT_0017fa28 == plVar18 + 7;" (assignment_expression "bVar38 = DAT_0017fa28 == plVar18 + 7" identifier = (binary_expression "DAT_0017fa28 == plVar18 + 7" identifier == (binary_expression "plVar18 + 7" identifier + number_literal))) ;) (expression_statement "plVar18[7] = lVar15;" (assignment_expression "plVar18[7] = lVar15" (subscript_expression "plVar18[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "plVar3 = DAT_0017f2f8;" (assignment_expression "plVar3 = DAT_0017f2f8" identifier = identifier) ;) (if_statement "if (bVar38) {\n        DAT_0017fa28 = plVar26;\n      }" if (parenthesized_expression "(bVar38)" ( identifier )) (compound_statement "{\n        DAT_0017fa28 = plVar26;\n      }" { (expression_statement "DAT_0017fa28 = plVar26;" (assignment_expression "DAT_0017fa28 = plVar26" identifier = identifier) ;) })) (if_statement "if (plVar18[2] == 0) {\n        *plVar36 = (long)DAT_0017f2f0;\n        DAT_0017f2f0 = plVar17;\n        if ((long **)plVar3 != &DAT_0017f2f0) {\n          plVar36 = DAT_0017f2f8;\n        }\n      }\n      else {\n        *plVar36 = plVar18[6];\n        plVar18[6] = (long)plVar17;\n        if (plVar3 != plVar18 + 6) {\n          plVar36 = DAT_0017f2f8;\n        }\n      }" if (parenthesized_expression "(plVar18[2] == 0)" ( (binary_expression "plVar18[2] == 0" (subscript_expression "plVar18[2]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n        *plVar36 = (long)DAT_0017f2f0;\n        DAT_0017f2f0 = plVar17;\n        if ((long **)plVar3 != &DAT_0017f2f0) {\n          plVar36 = DAT_0017f2f8;\n        }\n      }" { (expression_statement "*plVar36 = (long)DAT_0017f2f0;" (assignment_expression "*plVar36 = (long)DAT_0017f2f0" (pointer_expression "*plVar36" * identifier) = (cast_expression "(long)DAT_0017f2f0" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) (expression_statement "DAT_0017f2f0 = plVar17;" (assignment_expression "DAT_0017f2f0 = plVar17" identifier = identifier) ;) (if_statement "if ((long **)plVar3 != &DAT_0017f2f0) {\n          plVar36 = DAT_0017f2f8;\n        }" if (parenthesized_expression "((long **)plVar3 != &DAT_0017f2f0)" ( (binary_expression "(long **)plVar3 != &DAT_0017f2f0" (cast_expression "(long **)plVar3" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier) != (pointer_expression "&DAT_0017f2f0" & identifier)) )) (compound_statement "{\n          plVar36 = DAT_0017f2f8;\n        }" { (expression_statement "plVar36 = DAT_0017f2f8;" (assignment_expression "plVar36 = DAT_0017f2f8" identifier = identifier) ;) })) }) (else_clause "else {\n        *plVar36 = plVar18[6];\n        plVar18[6] = (long)plVar17;\n        if (plVar3 != plVar18 + 6) {\n          plVar36 = DAT_0017f2f8;\n        }\n      }" else (compound_statement "{\n        *plVar36 = plVar18[6];\n        plVar18[6] = (long)plVar17;\n        if (plVar3 != plVar18 + 6) {\n          plVar36 = DAT_0017f2f8;\n        }\n      }" { (expression_statement "*plVar36 = plVar18[6];" (assignment_expression "*plVar36 = plVar18[6]" (pointer_expression "*plVar36" * identifier) = (subscript_expression "plVar18[6]" identifier [ number_literal ])) ;) (expression_statement "plVar18[6] = (long)plVar17;" (assignment_expression "plVar18[6] = (long)plVar17" (subscript_expression "plVar18[6]" identifier [ number_literal ]) = (cast_expression "(long)plVar17" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) (if_statement "if (plVar3 != plVar18 + 6) {\n          plVar36 = DAT_0017f2f8;\n        }" if (parenthesized_expression "(plVar3 != plVar18 + 6)" ( (binary_expression "plVar3 != plVar18 + 6" identifier != (binary_expression "plVar18 + 6" identifier + number_literal)) )) (compound_statement "{\n          plVar36 = DAT_0017f2f8;\n        }" { (expression_statement "plVar36 = DAT_0017f2f8;" (assignment_expression "plVar36 = DAT_0017f2f8" identifier = identifier) ;) })) }))) (expression_statement "DAT_0017f2f8 = plVar36;" (assignment_expression "DAT_0017f2f8 = plVar36" identifier = identifier) ;) (expression_statement "plVar18 = DAT_0017f2f8;" (assignment_expression "plVar18 = DAT_0017f2f8" identifier = identifier) ;) (expression_statement "plVar17 = DAT_0017f2f0;" (assignment_expression "plVar17 = DAT_0017f2f0" identifier = identifier) ;) (expression_statement "_DAT_0017f2c0 = _DAT_0017f2c0 + 1;" (assignment_expression "_DAT_0017f2c0 = _DAT_0017f2c0 + 1" identifier = (binary_expression "_DAT_0017f2c0 + 1" identifier + number_literal)) ;) (expression_statement "FUN_00119910(DAT_0017f430);" (call_expression "FUN_00119910(DAT_0017f430)" identifier (argument_list "(DAT_0017f430)" ( identifier ))) ;) (if_statement "if (DAT_0017f2f0 != plVar17) {\n        FUN_001252b0("../../ld/ldlang.c");\n      }" if (parenthesized_expression "(DAT_0017f2f0 != plVar17)" ( (binary_expression "DAT_0017f2f0 != plVar17" identifier != identifier) )) (compound_statement "{\n        FUN_001252b0("../../ld/ldlang.c");\n      }" { (expression_statement "FUN_001252b0("../../ld/ldlang.c");" (call_expression "FUN_001252b0("../../ld/ldlang.c")" identifier (argument_list "("../../ld/ldlang.c")" ( (string_literal ""../../ld/ldlang.c"" " string_content ") ))) ;) })) (expression_statement "lVar16 = *plVar18;" (assignment_expression "lVar16 = *plVar18" identifier = (pointer_expression "*plVar18" * identifier)) ;) (expression_statement "DAT_0017f2f8 = plVar18;" (assignment_expression "DAT_0017f2f8 = plVar18" identifier = identifier) ;) (expression_statement "*plVar18 = 0;" (assignment_expression "*plVar18 = 0" (pointer_expression "*plVar18" * identifier) = number_literal) ;) (while_statement "while (lVar16 != 0) {\n        lVar15 = *(long *)(*(long *)(lVar16 + 0x20) + 0xd0);\n        lVar13 = *(long *)(lVar16 + 0x20);\n        if (lVar15 != 0) {\n          lVar13 = lVar15;\n        }\n        if (DAT_0017fa20 == (long *)0x0) {\nLAB_0011dad0:\n          plVar17 = DAT_0017f2f0;\n        }\n        else {\n          plVar26 = (long *)0x0;\n          plVar18 = DAT_0017fa20;\n          plVar17 = (long *)0x0;\n          do {\n            while (plVar18[4] != lVar13) {\n              if ((plVar18[4] != 0) && (plVar18[6] != 0)) {\n                plVar26 = plVar18;\n              }\n              plVar18 = (long *)plVar18[7];\n              if (plVar18 == (long *)0x0) goto LAB_0011d7f1;\n            }\n            lVar28 = plVar18[6];\n            if (lVar28 != 0) {\n              plVar17 = (long *)(lVar28 + 0x30);\n              lVar13 = *(long *)(lVar28 + 0x30);\n              goto LAB_0011d835;\n            }\n            plVar18 = (long *)plVar18[7];\n            plVar17 = plVar26;\n          } while (plVar18 != (long *)0x0);\nLAB_0011d7f1:\n          if (plVar17 == (long *)0x0) goto LAB_0011dad0;\n        }\n        plVar17 = plVar17 + 6;\n        for (lVar13 = *plVar17; lVar13 != 0; lVar13 = *(long *)(lVar13 + 0x30)) {\n          if (((*(byte *)(lVar13 + 0x49) & 0x40) == 0) &&\n             (*(long *)(*(long *)(lVar13 + 0x20) + 0xd0) == 0)) {\n            lVar13 = *plVar17;\n            break;\n          }\n          plVar17 = (long *)(lVar13 + 0x30);\n        }\nLAB_0011d835:\n        plVar18 = (long *)(lVar16 + 0x30);\n        if (lVar15 == 0) {\n          *plVar17 = lVar16;\n          lVar15 = *(long *)(lVar16 + 0x30);\n          *(long *)(lVar16 + 0x30) = lVar13;\n          lVar16 = lVar15;\n        }\n        else {\n          lVar28 = *(long *)(lVar16 + 0x30);\n          if (lVar28 != 0) {\n            lVar5 = *(long *)(*(long *)(lVar28 + 0x20) + 0xd0);\n            while (lVar15 == lVar5) {\n              plVar18 = (long *)(lVar28 + 0x30);\n              lVar28 = *(long *)(lVar28 + 0x30);\n              if (lVar28 == 0) break;\n              lVar5 = *(long *)(*(long *)(lVar28 + 0x20) + 0xd0);\n            }\n          }\n          *plVar17 = lVar16;\n          lVar16 = *plVar18;\n          *plVar18 = lVar13;\n          if (*(long *)(lVar15 + 0x100) != 0) {\n            *(long **)(*(long *)(lVar15 + 0x100) + 0x30) = plVar18 + -6;\n          }\n        }\n      }" while (parenthesized_expression "(lVar16 != 0)" ( (binary_expression "lVar16 != 0" identifier != number_literal) )) (compound_statement "{\n        lVar15 = *(long *)(*(long *)(lVar16 + 0x20) + 0xd0);\n        lVar13 = *(long *)(lVar16 + 0x20);\n        if (lVar15 != 0) {\n          lVar13 = lVar15;\n        }\n        if (DAT_0017fa20 == (long *)0x0) {\nLAB_0011dad0:\n          plVar17 = DAT_0017f2f0;\n        }\n        else {\n          plVar26 = (long *)0x0;\n          plVar18 = DAT_0017fa20;\n          plVar17 = (long *)0x0;\n          do {\n            while (plVar18[4] != lVar13) {\n              if ((plVar18[4] != 0) && (plVar18[6] != 0)) {\n                plVar26 = plVar18;\n              }\n              plVar18 = (long *)plVar18[7];\n              if (plVar18 == (long *)0x0) goto LAB_0011d7f1;\n            }\n            lVar28 = plVar18[6];\n            if (lVar28 != 0) {\n              plVar17 = (long *)(lVar28 + 0x30);\n              lVar13 = *(long *)(lVar28 + 0x30);\n              goto LAB_0011d835;\n            }\n            plVar18 = (long *)plVar18[7];\n            plVar17 = plVar26;\n          } while (plVar18 != (long *)0x0);\nLAB_0011d7f1:\n          if (plVar17 == (long *)0x0) goto LAB_0011dad0;\n        }\n        plVar17 = plVar17 + 6;\n        for (lVar13 = *plVar17; lVar13 != 0; lVar13 = *(long *)(lVar13 + 0x30)) {\n          if (((*(byte *)(lVar13 + 0x49) & 0x40) == 0) &&\n             (*(long *)(*(long *)(lVar13 + 0x20) + 0xd0) == 0)) {\n            lVar13 = *plVar17;\n            break;\n          }\n          plVar17 = (long *)(lVar13 + 0x30);\n        }\nLAB_0011d835:\n        plVar18 = (long *)(lVar16 + 0x30);\n        if (lVar15 == 0) {\n          *plVar17 = lVar16;\n          lVar15 = *(long *)(lVar16 + 0x30);\n          *(long *)(lVar16 + 0x30) = lVar13;\n          lVar16 = lVar15;\n        }\n        else {\n          lVar28 = *(long *)(lVar16 + 0x30);\n          if (lVar28 != 0) {\n            lVar5 = *(long *)(*(long *)(lVar28 + 0x20) + 0xd0);\n            while (lVar15 == lVar5) {\n              plVar18 = (long *)(lVar28 + 0x30);\n              lVar28 = *(long *)(lVar28 + 0x30);\n              if (lVar28 == 0) break;\n              lVar5 = *(long *)(*(long *)(lVar28 + 0x20) + 0xd0);\n            }\n          }\n          *plVar17 = lVar16;\n          lVar16 = *plVar18;\n          *plVar18 = lVar13;\n          if (*(long *)(lVar15 + 0x100) != 0) {\n            *(long **)(*(long *)(lVar15 + 0x100) + 0x30) = plVar18 + -6;\n          }\n        }\n      }" { (expression_statement "lVar15 = *(long *)(*(long *)(lVar16 + 0x20) + 0xd0);" (assignment_expression "lVar15 = *(long *)(*(long *)(lVar16 + 0x20) + 0xd0)" identifier = (pointer_expression "*(long *)(*(long *)(lVar16 + 0x20) + 0xd0)" * (cast_expression "(long *)(*(long *)(lVar16 + 0x20) + 0xd0)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(lVar16 + 0x20) + 0xd0)" ( (binary_expression "*(long *)(lVar16 + 0x20) + 0xd0" (pointer_expression "*(long *)(lVar16 + 0x20)" * (cast_expression "(long *)(lVar16 + 0x20)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar16 + 0x20)" ( (binary_expression "lVar16 + 0x20" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "lVar13 = *(long *)(lVar16 + 0x20);" (assignment_expression "lVar13 = *(long *)(lVar16 + 0x20)" identifier = (pointer_expression "*(long *)(lVar16 + 0x20)" * (cast_expression "(long *)(lVar16 + 0x20)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar16 + 0x20)" ( (binary_expression "lVar16 + 0x20" identifier + number_literal) ))))) ;) (if_statement "if (lVar15 != 0) {\n          lVar13 = lVar15;\n        }" if (parenthesized_expression "(lVar15 != 0)" ( (binary_expression "lVar15 != 0" identifier != number_literal) )) (compound_statement "{\n          lVar13 = lVar15;\n        }" { (expression_statement "lVar13 = lVar15;" (assignment_expression "lVar13 = lVar15" identifier = identifier) ;) })) (if_statement "if (DAT_0017fa20 == (long *)0x0) {\nLAB_0011dad0:\n          plVar17 = DAT_0017f2f0;\n        }\n        else {\n          plVar26 = (long *)0x0;\n          plVar18 = DAT_0017fa20;\n          plVar17 = (long *)0x0;\n          do {\n            while (plVar18[4] != lVar13) {\n              if ((plVar18[4] != 0) && (plVar18[6] != 0)) {\n                plVar26 = plVar18;\n              }\n              plVar18 = (long *)plVar18[7];\n              if (plVar18 == (long *)0x0) goto LAB_0011d7f1;\n            }\n            lVar28 = plVar18[6];\n            if (lVar28 != 0) {\n              plVar17 = (long *)(lVar28 + 0x30);\n              lVar13 = *(long *)(lVar28 + 0x30);\n              goto LAB_0011d835;\n            }\n            plVar18 = (long *)plVar18[7];\n            plVar17 = plVar26;\n          } while (plVar18 != (long *)0x0);\nLAB_0011d7f1:\n          if (plVar17 == (long *)0x0) goto LAB_0011dad0;\n        }" if (parenthesized_expression "(DAT_0017fa20 == (long *)0x0)" ( (binary_expression "DAT_0017fa20 == (long *)0x0" identifier == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_0011dad0:\n          plVar17 = DAT_0017f2f0;\n        }" { (labeled_statement "LAB_0011dad0:\n          plVar17 = DAT_0017f2f0;" statement_identifier : (expression_statement "plVar17 = DAT_0017f2f0;" (assignment_expression "plVar17 = DAT_0017f2f0" identifier = identifier) ;)) }) (else_clause "else {\n          plVar26 = (long *)0x0;\n          plVar18 = DAT_0017fa20;\n          plVar17 = (long *)0x0;\n          do {\n            while (plVar18[4] != lVar13) {\n              if ((plVar18[4] != 0) && (plVar18[6] != 0)) {\n                plVar26 = plVar18;\n              }\n              plVar18 = (long *)plVar18[7];\n              if (plVar18 == (long *)0x0) goto LAB_0011d7f1;\n            }\n            lVar28 = plVar18[6];\n            if (lVar28 != 0) {\n              plVar17 = (long *)(lVar28 + 0x30);\n              lVar13 = *(long *)(lVar28 + 0x30);\n              goto LAB_0011d835;\n            }\n            plVar18 = (long *)plVar18[7];\n            plVar17 = plVar26;\n          } while (plVar18 != (long *)0x0);\nLAB_0011d7f1:\n          if (plVar17 == (long *)0x0) goto LAB_0011dad0;\n        }" else (compound_statement "{\n          plVar26 = (long *)0x0;\n          plVar18 = DAT_0017fa20;\n          plVar17 = (long *)0x0;\n          do {\n            while (plVar18[4] != lVar13) {\n              if ((plVar18[4] != 0) && (plVar18[6] != 0)) {\n                plVar26 = plVar18;\n              }\n              plVar18 = (long *)plVar18[7];\n              if (plVar18 == (long *)0x0) goto LAB_0011d7f1;\n            }\n            lVar28 = plVar18[6];\n            if (lVar28 != 0) {\n              plVar17 = (long *)(lVar28 + 0x30);\n              lVar13 = *(long *)(lVar28 + 0x30);\n              goto LAB_0011d835;\n            }\n            plVar18 = (long *)plVar18[7];\n            plVar17 = plVar26;\n          } while (plVar18 != (long *)0x0);\nLAB_0011d7f1:\n          if (plVar17 == (long *)0x0) goto LAB_0011dad0;\n        }" { (expression_statement "plVar26 = (long *)0x0;" (assignment_expression "plVar26 = (long *)0x0" identifier = (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "plVar18 = DAT_0017fa20;" (assignment_expression "plVar18 = DAT_0017fa20" identifier = identifier) ;) (expression_statement "plVar17 = (long *)0x0;" (assignment_expression "plVar17 = (long *)0x0" identifier = (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n            while (plVar18[4] != lVar13) {\n              if ((plVar18[4] != 0) && (plVar18[6] != 0)) {\n                plVar26 = plVar18;\n              }\n              plVar18 = (long *)plVar18[7];\n              if (plVar18 == (long *)0x0) goto LAB_0011d7f1;\n            }\n            lVar28 = plVar18[6];\n            if (lVar28 != 0) {\n              plVar17 = (long *)(lVar28 + 0x30);\n              lVar13 = *(long *)(lVar28 + 0x30);\n              goto LAB_0011d835;\n            }\n            plVar18 = (long *)plVar18[7];\n            plVar17 = plVar26;\n          } while (plVar18 != (long *)0x0);" do (compound_statement "{\n            while (plVar18[4] != lVar13) {\n              if ((plVar18[4] != 0) && (plVar18[6] != 0)) {\n                plVar26 = plVar18;\n              }\n              plVar18 = (long *)plVar18[7];\n              if (plVar18 == (long *)0x0) goto LAB_0011d7f1;\n            }\n            lVar28 = plVar18[6];\n            if (lVar28 != 0) {\n              plVar17 = (long *)(lVar28 + 0x30);\n              lVar13 = *(long *)(lVar28 + 0x30);\n              goto LAB_0011d835;\n            }\n            plVar18 = (long *)plVar18[7];\n            plVar17 = plVar26;\n          }" { (while_statement "while (plVar18[4] != lVar13) {\n              if ((plVar18[4] != 0) && (plVar18[6] != 0)) {\n                plVar26 = plVar18;\n              }\n              plVar18 = (long *)plVar18[7];\n              if (plVar18 == (long *)0x0) goto LAB_0011d7f1;\n            }" while (parenthesized_expression "(plVar18[4] != lVar13)" ( (binary_expression "plVar18[4] != lVar13" (subscript_expression "plVar18[4]" identifier [ number_literal ]) != identifier) )) (compound_statement "{\n              if ((plVar18[4] != 0) && (plVar18[6] != 0)) {\n                plVar26 = plVar18;\n              }\n              plVar18 = (long *)plVar18[7];\n              if (plVar18 == (long *)0x0) goto LAB_0011d7f1;\n            }" { (if_statement "if ((plVar18[4] != 0) && (plVar18[6] != 0)) {\n                plVar26 = plVar18;\n              }" if (parenthesized_expression "((plVar18[4] != 0) && (plVar18[6] != 0))" ( (binary_expression "(plVar18[4] != 0) && (plVar18[6] != 0)" (parenthesized_expression "(plVar18[4] != 0)" ( (binary_expression "plVar18[4] != 0" (subscript_expression "plVar18[4]" identifier [ number_literal ]) != number_literal) )) && (parenthesized_expression "(plVar18[6] != 0)" ( (binary_expression "plVar18[6] != 0" (subscript_expression "plVar18[6]" identifier [ number_literal ]) != number_literal) ))) )) (compound_statement "{\n                plVar26 = plVar18;\n              }" { (expression_statement "plVar26 = plVar18;" (assignment_expression "plVar26 = plVar18" identifier = identifier) ;) })) (expression_statement "plVar18 = (long *)plVar18[7];" (assignment_expression "plVar18 = (long *)plVar18[7]" identifier = (cast_expression "(long *)plVar18[7]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar18[7]" identifier [ number_literal ]))) ;) (if_statement "if (plVar18 == (long *)0x0) goto LAB_0011d7f1;" if (parenthesized_expression "(plVar18 == (long *)0x0)" ( (binary_expression "plVar18 == (long *)0x0" identifier == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0011d7f1;" goto statement_identifier ;)) })) (expression_statement "lVar28 = plVar18[6];" (assignment_expression "lVar28 = plVar18[6]" identifier = (subscript_expression "plVar18[6]" identifier [ number_literal ])) ;) (if_statement "if (lVar28 != 0) {\n              plVar17 = (long *)(lVar28 + 0x30);\n              lVar13 = *(long *)(lVar28 + 0x30);\n              goto LAB_0011d835;\n            }" if (parenthesized_expression "(lVar28 != 0)" ( (binary_expression "lVar28 != 0" identifier != number_literal) )) (compound_statement "{\n              plVar17 = (long *)(lVar28 + 0x30);\n              lVar13 = *(long *)(lVar28 + 0x30);\n              goto LAB_0011d835;\n            }" { (expression_statement "plVar17 = (long *)(lVar28 + 0x30);" (assignment_expression "plVar17 = (long *)(lVar28 + 0x30)" identifier = (cast_expression "(long *)(lVar28 + 0x30)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar28 + 0x30)" ( (binary_expression "lVar28 + 0x30" identifier + number_literal) )))) ;) (expression_statement "lVar13 = *(long *)(lVar28 + 0x30);" (assignment_expression "lVar13 = *(long *)(lVar28 + 0x30)" identifier = (pointer_expression "*(long *)(lVar28 + 0x30)" * (cast_expression "(long *)(lVar28 + 0x30)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar28 + 0x30)" ( (binary_expression "lVar28 + 0x30" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0011d835;" goto statement_identifier ;) })) (expression_statement "plVar18 = (long *)plVar18[7];" (assignment_expression "plVar18 = (long *)plVar18[7]" identifier = (cast_expression "(long *)plVar18[7]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar18[7]" identifier [ number_literal ]))) ;) (expression_statement "plVar17 = plVar26;" (assignment_expression "plVar17 = plVar26" identifier = identifier) ;) }) while (parenthesized_expression "(plVar18 != (long *)0x0)" ( (binary_expression "plVar18 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (labeled_statement "LAB_0011d7f1:\n          if (plVar17 == (long *)0x0) goto LAB_0011dad0;" statement_identifier : (if_statement "if (plVar17 == (long *)0x0) goto LAB_0011dad0;" if (parenthesized_expression "(plVar17 == (long *)0x0)" ( (binary_expression "plVar17 == (long *)0x0" identifier == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0011dad0;" goto statement_identifier ;))) }))) (expression_statement "plVar17 = plVar17 + 6;" (assignment_expression "plVar17 = plVar17 + 6" identifier = (binary_expression "plVar17 + 6" identifier + number_literal)) ;) (for_statement "for (lVar13 = *plVar17; lVar13 != 0; lVar13 = *(long *)(lVar13 + 0x30)) {\n          if (((*(byte *)(lVar13 + 0x49) & 0x40) == 0) &&\n             (*(long *)(*(long *)(lVar13 + 0x20) + 0xd0) == 0)) {\n            lVar13 = *plVar17;\n            break;\n          }\n          plVar17 = (long *)(lVar13 + 0x30);\n        }" for ( (assignment_expression "lVar13 = *plVar17" identifier = (pointer_expression "*plVar17" * identifier)) ; (binary_expression "lVar13 != 0" identifier != number_literal) ; (assignment_expression "lVar13 = *(long *)(lVar13 + 0x30)" identifier = (pointer_expression "*(long *)(lVar13 + 0x30)" * (cast_expression "(long *)(lVar13 + 0x30)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar13 + 0x30)" ( (binary_expression "lVar13 + 0x30" identifier + number_literal) ))))) ) (compound_statement "{\n          if (((*(byte *)(lVar13 + 0x49) & 0x40) == 0) &&\n             (*(long *)(*(long *)(lVar13 + 0x20) + 0xd0) == 0)) {\n            lVar13 = *plVar17;\n            break;\n          }\n          plVar17 = (long *)(lVar13 + 0x30);\n        }" { (if_statement "if (((*(byte *)(lVar13 + 0x49) & 0x40) == 0) &&\n             (*(long *)(*(long *)(lVar13 + 0x20) + 0xd0) == 0)) {\n            lVar13 = *plVar17;\n            break;\n          }" if (parenthesized_expression "(((*(byte *)(lVar13 + 0x49) & 0x40) == 0) &&\n             (*(long *)(*(long *)(lVar13 + 0x20) + 0xd0) == 0))" ( (binary_expression "((*(byte *)(lVar13 + 0x49) & 0x40) == 0) &&\n             (*(long *)(*(long *)(lVar13 + 0x20) + 0xd0) == 0)" (parenthesized_expression "((*(byte *)(lVar13 + 0x49) & 0x40) == 0)" ( (binary_expression "(*(byte *)(lVar13 + 0x49) & 0x40) == 0" (parenthesized_expression "(*(byte *)(lVar13 + 0x49) & 0x40)" ( (binary_expression "*(byte *)(lVar13 + 0x49) & 0x40" (pointer_expression "*(byte *)(lVar13 + 0x49)" * (cast_expression "(byte *)(lVar13 + 0x49)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar13 + 0x49)" ( (binary_expression "lVar13 + 0x49" identifier + number_literal) )))) & number_literal) )) == number_literal) )) && (parenthesized_expression "(*(long *)(*(long *)(lVar13 + 0x20) + 0xd0) == 0)" ( (binary_expression "*(long *)(*(long *)(lVar13 + 0x20) + 0xd0) == 0" (pointer_expression "*(long *)(*(long *)(lVar13 + 0x20) + 0xd0)" * (cast_expression "(long *)(*(long *)(lVar13 + 0x20) + 0xd0)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(lVar13 + 0x20) + 0xd0)" ( (binary_expression "*(long *)(lVar13 + 0x20) + 0xd0" (pointer_expression "*(long *)(lVar13 + 0x20)" * (cast_expression "(long *)(lVar13 + 0x20)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar13 + 0x20)" ( (binary_expression "lVar13 + 0x20" identifier + number_literal) )))) + number_literal) )))) == number_literal) ))) )) (compound_statement "{\n            lVar13 = *plVar17;\n            break;\n          }" { (expression_statement "lVar13 = *plVar17;" (assignment_expression "lVar13 = *plVar17" identifier = (pointer_expression "*plVar17" * identifier)) ;) (break_statement "break;" break ;) })) (expression_statement "plVar17 = (long *)(lVar13 + 0x30);" (assignment_expression "plVar17 = (long *)(lVar13 + 0x30)" identifier = (cast_expression "(long *)(lVar13 + 0x30)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar13 + 0x30)" ( (binary_expression "lVar13 + 0x30" identifier + number_literal) )))) ;) })) (labeled_statement "LAB_0011d835:\n        plVar18 = (long *)(lVar16 + 0x30);" statement_identifier : (expression_statement "plVar18 = (long *)(lVar16 + 0x30);" (assignment_expression "plVar18 = (long *)(lVar16 + 0x30)" identifier = (cast_expression "(long *)(lVar16 + 0x30)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar16 + 0x30)" ( (binary_expression "lVar16 + 0x30" identifier + number_literal) )))) ;)) (if_statement "if (lVar15 == 0) {\n          *plVar17 = lVar16;\n          lVar15 = *(long *)(lVar16 + 0x30);\n          *(long *)(lVar16 + 0x30) = lVar13;\n          lVar16 = lVar15;\n        }\n        else {\n          lVar28 = *(long *)(lVar16 + 0x30);\n          if (lVar28 != 0) {\n            lVar5 = *(long *)(*(long *)(lVar28 + 0x20) + 0xd0);\n            while (lVar15 == lVar5) {\n              plVar18 = (long *)(lVar28 + 0x30);\n              lVar28 = *(long *)(lVar28 + 0x30);\n              if (lVar28 == 0) break;\n              lVar5 = *(long *)(*(long *)(lVar28 + 0x20) + 0xd0);\n            }\n          }\n          *plVar17 = lVar16;\n          lVar16 = *plVar18;\n          *plVar18 = lVar13;\n          if (*(long *)(lVar15 + 0x100) != 0) {\n            *(long **)(*(long *)(lVar15 + 0x100) + 0x30) = plVar18 + -6;\n          }\n        }" if (parenthesized_expression "(lVar15 == 0)" ( (binary_expression "lVar15 == 0" identifier == number_literal) )) (compound_statement "{\n          *plVar17 = lVar16;\n          lVar15 = *(long *)(lVar16 + 0x30);\n          *(long *)(lVar16 + 0x30) = lVar13;\n          lVar16 = lVar15;\n        }" { (expression_statement "*plVar17 = lVar16;" (assignment_expression "*plVar17 = lVar16" (pointer_expression "*plVar17" * identifier) = identifier) ;) (expression_statement "lVar15 = *(long *)(lVar16 + 0x30);" (assignment_expression "lVar15 = *(long *)(lVar16 + 0x30)" identifier = (pointer_expression "*(long *)(lVar16 + 0x30)" * (cast_expression "(long *)(lVar16 + 0x30)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar16 + 0x30)" ( (binary_expression "lVar16 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "*(long *)(lVar16 + 0x30) = lVar13;" (assignment_expression "*(long *)(lVar16 + 0x30) = lVar13" (pointer_expression "*(long *)(lVar16 + 0x30)" * (cast_expression "(long *)(lVar16 + 0x30)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar16 + 0x30)" ( (binary_expression "lVar16 + 0x30" identifier + number_literal) )))) = identifier) ;) (expression_statement "lVar16 = lVar15;" (assignment_expression "lVar16 = lVar15" identifier = identifier) ;) }) (else_clause "else {\n          lVar28 = *(long *)(lVar16 + 0x30);\n          if (lVar28 != 0) {\n            lVar5 = *(long *)(*(long *)(lVar28 + 0x20) + 0xd0);\n            while (lVar15 == lVar5) {\n              plVar18 = (long *)(lVar28 + 0x30);\n              lVar28 = *(long *)(lVar28 + 0x30);\n              if (lVar28 == 0) break;\n              lVar5 = *(long *)(*(long *)(lVar28 + 0x20) + 0xd0);\n            }\n          }\n          *plVar17 = lVar16;\n          lVar16 = *plVar18;\n          *plVar18 = lVar13;\n          if (*(long *)(lVar15 + 0x100) != 0) {\n            *(long **)(*(long *)(lVar15 + 0x100) + 0x30) = plVar18 + -6;\n          }\n        }" else (compound_statement "{\n          lVar28 = *(long *)(lVar16 + 0x30);\n          if (lVar28 != 0) {\n            lVar5 = *(long *)(*(long *)(lVar28 + 0x20) + 0xd0);\n            while (lVar15 == lVar5) {\n              plVar18 = (long *)(lVar28 + 0x30);\n              lVar28 = *(long *)(lVar28 + 0x30);\n              if (lVar28 == 0) break;\n              lVar5 = *(long *)(*(long *)(lVar28 + 0x20) + 0xd0);\n            }\n          }\n          *plVar17 = lVar16;\n          lVar16 = *plVar18;\n          *plVar18 = lVar13;\n          if (*(long *)(lVar15 + 0x100) != 0) {\n            *(long **)(*(long *)(lVar15 + 0x100) + 0x30) = plVar18 + -6;\n          }\n        }" { (expression_statement "lVar28 = *(long *)(lVar16 + 0x30);" (assignment_expression "lVar28 = *(long *)(lVar16 + 0x30)" identifier = (pointer_expression "*(long *)(lVar16 + 0x30)" * (cast_expression "(long *)(lVar16 + 0x30)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar16 + 0x30)" ( (binary_expression "lVar16 + 0x30" identifier + number_literal) ))))) ;) (if_statement "if (lVar28 != 0) {\n            lVar5 = *(long *)(*(long *)(lVar28 + 0x20) + 0xd0);\n            while (lVar15 == lVar5) {\n              plVar18 = (long *)(lVar28 + 0x30);\n              lVar28 = *(long *)(lVar28 + 0x30);\n              if (lVar28 == 0) break;\n              lVar5 = *(long *)(*(long *)(lVar28 + 0x20) + 0xd0);\n            }\n          }" if (parenthesized_expression "(lVar28 != 0)" ( (binary_expression "lVar28 != 0" identifier != number_literal) )) (compound_statement "{\n            lVar5 = *(long *)(*(long *)(lVar28 + 0x20) + 0xd0);\n            while (lVar15 == lVar5) {\n              plVar18 = (long *)(lVar28 + 0x30);\n              lVar28 = *(long *)(lVar28 + 0x30);\n              if (lVar28 == 0) break;\n              lVar5 = *(long *)(*(long *)(lVar28 + 0x20) + 0xd0);\n            }\n          }" { (expression_statement "lVar5 = *(long *)(*(long *)(lVar28 + 0x20) + 0xd0);" (assignment_expression "lVar5 = *(long *)(*(long *)(lVar28 + 0x20) + 0xd0)" identifier = (pointer_expression "*(long *)(*(long *)(lVar28 + 0x20) + 0xd0)" * (cast_expression "(long *)(*(long *)(lVar28 + 0x20) + 0xd0)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(lVar28 + 0x20) + 0xd0)" ( (binary_expression "*(long *)(lVar28 + 0x20) + 0xd0" (pointer_expression "*(long *)(lVar28 + 0x20)" * (cast_expression "(long *)(lVar28 + 0x20)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar28 + 0x20)" ( (binary_expression "lVar28 + 0x20" identifier + number_literal) )))) + number_literal) ))))) ;) (while_statement "while (lVar15 == lVar5) {\n              plVar18 = (long *)(lVar28 + 0x30);\n              lVar28 = *(long *)(lVar28 + 0x30);\n              if (lVar28 == 0) break;\n              lVar5 = *(long *)(*(long *)(lVar28 + 0x20) + 0xd0);\n            }" while (parenthesized_expression "(lVar15 == lVar5)" ( (binary_expression "lVar15 == lVar5" identifier == identifier) )) (compound_statement "{\n              plVar18 = (long *)(lVar28 + 0x30);\n              lVar28 = *(long *)(lVar28 + 0x30);\n              if (lVar28 == 0) break;\n              lVar5 = *(long *)(*(long *)(lVar28 + 0x20) + 0xd0);\n            }" { (expression_statement "plVar18 = (long *)(lVar28 + 0x30);" (assignment_expression "plVar18 = (long *)(lVar28 + 0x30)" identifier = (cast_expression "(long *)(lVar28 + 0x30)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar28 + 0x30)" ( (binary_expression "lVar28 + 0x30" identifier + number_literal) )))) ;) (expression_statement "lVar28 = *(long *)(lVar28 + 0x30);" (assignment_expression "lVar28 = *(long *)(lVar28 + 0x30)" identifier = (pointer_expression "*(long *)(lVar28 + 0x30)" * (cast_expression "(long *)(lVar28 + 0x30)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar28 + 0x30)" ( (binary_expression "lVar28 + 0x30" identifier + number_literal) ))))) ;) (if_statement "if (lVar28 == 0) break;" if (parenthesized_expression "(lVar28 == 0)" ( (binary_expression "lVar28 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar5 = *(long *)(*(long *)(lVar28 + 0x20) + 0xd0);" (assignment_expression "lVar5 = *(long *)(*(long *)(lVar28 + 0x20) + 0xd0)" identifier = (pointer_expression "*(long *)(*(long *)(lVar28 + 0x20) + 0xd0)" * (cast_expression "(long *)(*(long *)(lVar28 + 0x20) + 0xd0)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(lVar28 + 0x20) + 0xd0)" ( (binary_expression "*(long *)(lVar28 + 0x20) + 0xd0" (pointer_expression "*(long *)(lVar28 + 0x20)" * (cast_expression "(long *)(lVar28 + 0x20)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar28 + 0x20)" ( (binary_expression "lVar28 + 0x20" identifier + number_literal) )))) + number_literal) ))))) ;) })) })) (expression_statement "*plVar17 = lVar16;" (assignment_expression "*plVar17 = lVar16" (pointer_expression "*plVar17" * identifier) = identifier) ;) (expression_statement "lVar16 = *plVar18;" (assignment_expression "lVar16 = *plVar18" identifier = (pointer_expression "*plVar18" * identifier)) ;) (expression_statement "*plVar18 = lVar13;" (assignment_expression "*plVar18 = lVar13" (pointer_expression "*plVar18" * identifier) = identifier) ;) (if_statement "if (*(long *)(lVar15 + 0x100) != 0) {\n            *(long **)(*(long *)(lVar15 + 0x100) + 0x30) = plVar18 + -6;\n          }" if (parenthesized_expression "(*(long *)(lVar15 + 0x100) != 0)" ( (binary_expression "*(long *)(lVar15 + 0x100) != 0" (pointer_expression "*(long *)(lVar15 + 0x100)" * (cast_expression "(long *)(lVar15 + 0x100)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar15 + 0x100)" ( (binary_expression "lVar15 + 0x100" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n            *(long **)(*(long *)(lVar15 + 0x100) + 0x30) = plVar18 + -6;\n          }" { (expression_statement "*(long **)(*(long *)(lVar15 + 0x100) + 0x30) = plVar18 + -6;" (assignment_expression "*(long **)(*(long *)(lVar15 + 0x100) + 0x30) = plVar18 + -6" (pointer_expression "*(long **)(*(long *)(lVar15 + 0x100) + 0x30)" * (cast_expression "(long **)(*(long *)(lVar15 + 0x100) + 0x30)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)(lVar15 + 0x100) + 0x30)" ( (binary_expression "*(long *)(lVar15 + 0x100) + 0x30" (pointer_expression "*(long *)(lVar15 + 0x100)" * (cast_expression "(long *)(lVar15 + 0x100)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar15 + 0x100)" ( (binary_expression "lVar15 + 0x100" identifier + number_literal) )))) + number_literal) )))) = (binary_expression "plVar18 + -6" identifier + number_literal)) ;) })) }))) })) })) })) (if_statement "if (DAT_0017fb38 != (undefined8 *)0x0) {\n    FUN_001252b0("../../ld/ldlang.c",0x1c67);\n  }" if (parenthesized_expression "(DAT_0017fb38 != (undefined8 *)0x0)" ( (binary_expression "DAT_0017fb38 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    FUN_001252b0("../../ld/ldlang.c",0x1c67);\n  }" { (expression_statement "FUN_001252b0("../../ld/ldlang.c",0x1c67);" (call_expression "FUN_001252b0("../../ld/ldlang.c",0x1c67)" identifier (argument_list "("../../ld/ldlang.c",0x1c67)" ( (string_literal ""../../ld/ldlang.c"" " string_content ") , number_literal ))) ;) })) (expression_statement "DAT_0017fb38 = &DAT_0017f2e0;" (assignment_expression "DAT_0017fb38 = &DAT_0017f2e0" identifier = (pointer_expression "&DAT_0017f2e0" & identifier)) ;) (if_statement "if (DAT_0017f2e8 == (undefined *)0x0) {\n    DAT_0017fb38 = DAT_0017f2e0;\n    if (PTR_s_start_0017e660 != (undefined *)0x0) {\n      FUN_00115880();\n    }\n  }" if (parenthesized_expression "(DAT_0017f2e8 == (undefined *)0x0)" ( (binary_expression "DAT_0017f2e8 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    DAT_0017fb38 = DAT_0017f2e0;\n    if (PTR_s_start_0017e660 != (undefined *)0x0) {\n      FUN_00115880();\n    }\n  }" { (expression_statement "DAT_0017fb38 = DAT_0017f2e0;" (assignment_expression "DAT_0017fb38 = DAT_0017f2e0" identifier = identifier) ;) (if_statement "if (PTR_s_start_0017e660 != (undefined *)0x0) {\n      FUN_00115880();\n    }" if (parenthesized_expression "(PTR_s_start_0017e660 != (undefined *)0x0)" ( (binary_expression "PTR_s_start_0017e660 != (undefined *)0x0" identifier != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      FUN_00115880();\n    }" { (expression_statement "FUN_00115880();" (call_expression "FUN_00115880()" identifier (argument_list "()" ( ))) ;) })) })) (if_statement "if (DAT_0017fb48 != 0) {\n    FUN_00115880();\n  }" if (parenthesized_expression "(DAT_0017fb48 != 0)" ( (binary_expression "DAT_0017fb48 != 0" identifier != number_literal) )) (compound_statement "{\n    FUN_00115880();\n  }" { (expression_statement "FUN_00115880();" (call_expression "FUN_00115880()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if (DAT_0017fb50 != 0) {\n    FUN_00115880();\n  }" if (parenthesized_expression "(DAT_0017fb50 != 0)" ( (binary_expression "DAT_0017fb50 != 0" identifier != number_literal) )) (compound_statement "{\n    FUN_00115880();\n  }" { (expression_statement "FUN_00115880();" (call_expression "FUN_00115880()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "FUN_00123b90();" (call_expression "FUN_00123b90()" identifier (argument_list "()" ( ))) ;) (if_statement "if ((DAT_0017fc98 != 0) && (DAT_0017f3d0 != (undefined8 *)0x0)) {\n    uVar11 = dcgettext(0,"\nAs-needed library included to satisfy reference by file (symbol)\n\n",5)\n    ;\n    FUN_001252f0(uVar11);\n    for (puVar21 = DAT_0017f3d0; puVar21 != (undefined8 *)0x0; puVar21 = (undefined8 *)*puVar21) {\n      FUN_001252f0(&DAT_0013efee,puVar21[1]);\n      sVar12 = strlen((char *)puVar21[1]);\n      if (0x1c < sVar12) {\n        FUN_00124290();\n        sVar12 = 0;\n      }\n      do {\n        FUN_00124270();\n        sVar12 = sVar12 + 1;\n      } while (sVar12 != 0x1e);\n      if (puVar21[2] != 0) {\n        FUN_001252f0(&DAT_0013f279);\n      }\n      FUN_001252f0("(%pT)\n",puVar21[3]);\n    }\n  }" if (parenthesized_expression "((DAT_0017fc98 != 0) && (DAT_0017f3d0 != (undefined8 *)0x0))" ( (binary_expression "(DAT_0017fc98 != 0) && (DAT_0017f3d0 != (undefined8 *)0x0)" (parenthesized_expression "(DAT_0017fc98 != 0)" ( (binary_expression "DAT_0017fc98 != 0" identifier != number_literal) )) && (parenthesized_expression "(DAT_0017f3d0 != (undefined8 *)0x0)" ( (binary_expression "DAT_0017f3d0 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n    uVar11 = dcgettext(0,"\nAs-needed library included to satisfy reference by file (symbol)\n\n",5)\n    ;\n    FUN_001252f0(uVar11);\n    for (puVar21 = DAT_0017f3d0; puVar21 != (undefined8 *)0x0; puVar21 = (undefined8 *)*puVar21) {\n      FUN_001252f0(&DAT_0013efee,puVar21[1]);\n      sVar12 = strlen((char *)puVar21[1]);\n      if (0x1c < sVar12) {\n        FUN_00124290();\n        sVar12 = 0;\n      }\n      do {\n        FUN_00124270();\n        sVar12 = sVar12 + 1;\n      } while (sVar12 != 0x1e);\n      if (puVar21[2] != 0) {\n        FUN_001252f0(&DAT_0013f279);\n      }\n      FUN_001252f0("(%pT)\n",puVar21[3]);\n    }\n  }" { (expression_statement "uVar11 = dcgettext(0,"\nAs-needed library included to satisfy reference by file (symbol)\n\n",5)\n    ;" (assignment_expression "uVar11 = 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_001252f0(uVar11);" (call_expression "FUN_001252f0(uVar11)" identifier (argument_list "(uVar11)" ( identifier ))) ;) (for_statement "for (puVar21 = DAT_0017f3d0; puVar21 != (undefined8 *)0x0; puVar21 = (undefined8 *)*puVar21) {\n      FUN_001252f0(&DAT_0013efee,puVar21[1]);\n      sVar12 = strlen((char *)puVar21[1]);\n      if (0x1c < sVar12) {\n        FUN_00124290();\n        sVar12 = 0;\n      }\n      do {\n        FUN_00124270();\n        sVar12 = sVar12 + 1;\n      } while (sVar12 != 0x1e);\n      if (puVar21[2] != 0) {\n        FUN_001252f0(&DAT_0013f279);\n      }\n      FUN_001252f0("(%pT)\n",puVar21[3]);\n    }" for ( (assignment_expression "puVar21 = DAT_0017f3d0" identifier = identifier) ; (binary_expression "puVar21 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "puVar21 = (undefined8 *)*puVar21" identifier = (cast_expression "(undefined8 *)*puVar21" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar21" * identifier))) ) (compound_statement "{\n      FUN_001252f0(&DAT_0013efee,puVar21[1]);\n      sVar12 = strlen((char *)puVar21[1]);\n      if (0x1c < sVar12) {\n        FUN_00124290();\n        sVar12 = 0;\n      }\n      do {\n        FUN_00124270();\n        sVar12 = sVar12 + 1;\n      } while (sVar12 != 0x1e);\n      if (puVar21[2] != 0) {\n        FUN_001252f0(&DAT_0013f279);\n      }\n      FUN_001252f0("(%pT)\n",puVar21[3]);\n    }" { (expression_statement "FUN_001252f0(&DAT_0013efee,puVar21[1]);" (call_expression "FUN_001252f0(&DAT_0013efee,puVar21[1])" identifier (argument_list "(&DAT_0013efee,puVar21[1])" ( (pointer_expression "&DAT_0013efee" & identifier) , (subscript_expression "puVar21[1]" identifier [ number_literal ]) ))) ;) (expression_statement "sVar12 = strlen((char *)puVar21[1]);" (assignment_expression "sVar12 = strlen((char *)puVar21[1])" identifier = (call_expression "strlen((char *)puVar21[1])" identifier (argument_list "((char *)puVar21[1])" ( (cast_expression "(char *)puVar21[1]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar21[1]" identifier [ number_literal ])) )))) ;) (if_statement "if (0x1c < sVar12) {\n        FUN_00124290();\n        sVar12 = 0;\n      }" if (parenthesized_expression "(0x1c < sVar12)" ( (binary_expression "0x1c < sVar12" number_literal < identifier) )) (compound_statement "{\n        FUN_00124290();\n        sVar12 = 0;\n      }" { (expression_statement "FUN_00124290();" (call_expression "FUN_00124290()" identifier (argument_list "()" ( ))) ;) (expression_statement "sVar12 = 0;" (assignment_expression "sVar12 = 0" identifier = number_literal) ;) })) (do_statement "do {\n        FUN_00124270();\n        sVar12 = sVar12 + 1;\n      } while (sVar12 != 0x1e);" do (compound_statement "{\n        FUN_00124270();\n        sVar12 = sVar12 + 1;\n      }" { (expression_statement "FUN_00124270();" (call_expression "FUN_00124270()" identifier (argument_list "()" ( ))) ;) (expression_statement "sVar12 = sVar12 + 1;" (assignment_expression "sVar12 = sVar12 + 1" identifier = (binary_expression "sVar12 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(sVar12 != 0x1e)" ( (binary_expression "sVar12 != 0x1e" identifier != number_literal) )) ;) (if_statement "if (puVar21[2] != 0) {\n        FUN_001252f0(&DAT_0013f279);\n      }" if (parenthesized_expression "(puVar21[2] != 0)" ( (binary_expression "puVar21[2] != 0" (subscript_expression "puVar21[2]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n        FUN_001252f0(&DAT_0013f279);\n      }" { (expression_statement "FUN_001252f0(&DAT_0013f279);" (call_expression "FUN_001252f0(&DAT_0013f279)" identifier (argument_list "(&DAT_0013f279)" ( (pointer_expression "&DAT_0013f279" & identifier) ))) ;) })) (expression_statement "FUN_001252f0("(%pT)\n",puVar21[3]);" (call_expression "FUN_001252f0("(%pT)\n",puVar21[3])" identifier (argument_list "("(%pT)\n",puVar21[3])" ( (string_literal ""(%pT)\n"" " string_content escape_sequence ") , (subscript_expression "puVar21[3]" identifier [ number_literal ]) ))) ;) })) })) (expression_statement "bfd_section_already_linked_table_free();" (call_expression "bfd_section_already_linked_table_free()" identifier (argument_list "()" ( ))) ;) (expression_statement "plVar17 = DAT_0017f2f0;" (assignment_expression "plVar17 = DAT_0017f2f0" identifier = identifier) ;) (labeled_statement "joined_r0x0011be7f:\n  if (plVar17 != (long *)0x0) {\n    do {\n      if ((*(byte *)((long)plVar17 + 0x49) & 0x20) == 0) {\n        lVar16 = plVar17[4];\n        lVar13 = bfd_arch_get_compatible(lVar16,DAT_0017fb10,DAT_0017fbdc);\n        lVar15 = DAT_0017fb10;\n        if (((DAT_0017fac0 & 3) == 2) || ((DAT_0017fac3 & 8) != 0)) {\n          if (lVar13 != 0) {\n            puVar21 = *(undefined8 **)(lVar16 + 8);\n            puVar27 = *(undefined8 **)(DAT_0017fb10 + 8);\n            if ((*(int *)(puVar21 + 1) != *(int *)(puVar27 + 1)) &&\n               ((*(byte *)(lVar16 + 0x44) & 0x20) != 0)) goto LAB_0011c12e;\n            goto LAB_0011bed4;\n          }\n          if ((*(byte *)(lVar16 + 0x44) & 0x20) != 0) {\n            puVar21 = *(undefined8 **)(lVar16 + 8);\n            puVar27 = *(undefined8 **)(DAT_0017fb10 + 8);\nLAB_0011c12e:\n            uVar11 = *puVar27;\n            uVar14 = *puVar21;\n            uVar24 = 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_001251f0(uVar24,uVar14,lVar16,uVar11,lVar15);\n            goto joined_r0x0011c167;\n          }\n        }\n        else {\njoined_r0x0011c167:\n          if (lVar13 != 0) {\nLAB_0011bed4:\n            if (*(int *)(lVar16 + 0xa0) == 0) goto LAB_0011bf30;\n            uVar11 = 0;\n            if (DAT_0017fbd0 == 0) {\n              uVar11 = bfd_set_error_handler(FUN_00112380);\n            }\n            iVar9 = (**(code **)(*(long *)(DAT_0017fb10 + 8) + 0x140))(lVar16,&DAT_0017fac0);\n            if (iVar9 == 0) {\n              if (DAT_0017fbd0 != 0) {\n                uVar14 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);\n                FUN_001251f0(uVar14,lVar16);\n                goto LAB_0011c5b0;\n              }\n            }\n            else {\nLAB_0011c5b0:\n              if (DAT_0017fbd0 != 0) goto code_r0x0011c5be;\n            }\n            bfd_set_error_handler(uVar11);\n            goto LAB_0011bf30;\n          }\n        }\n        if (DAT_0017fbd0 == 0) goto LAB_0011bf30;\n        uVar11 = bfd_printable_name(DAT_0017fb10);\n        uVar14 = bfd_printable_name(lVar16);\n        uVar24 = dcgettext(0,\n                           "%X%P: %s architecture of input file `%pB\' is incompatible with %s output\n"\n                           ,5);\n        FUN_001251f0(uVar24,uVar14,lVar16,uVar11);\n        plVar17 = (long *)plVar17[6];\n      }\n      else {\nLAB_0011bf30:\n        plVar17 = (long *)plVar17[6];\n      }\n      if (plVar17 == (long *)0x0) break;\n    } while( true );\n  }" statement_identifier : (if_statement "if (plVar17 != (long *)0x0) {\n    do {\n      if ((*(byte *)((long)plVar17 + 0x49) & 0x20) == 0) {\n        lVar16 = plVar17[4];\n        lVar13 = bfd_arch_get_compatible(lVar16,DAT_0017fb10,DAT_0017fbdc);\n        lVar15 = DAT_0017fb10;\n        if (((DAT_0017fac0 & 3) == 2) || ((DAT_0017fac3 & 8) != 0)) {\n          if (lVar13 != 0) {\n            puVar21 = *(undefined8 **)(lVar16 + 8);\n            puVar27 = *(undefined8 **)(DAT_0017fb10 + 8);\n            if ((*(int *)(puVar21 + 1) != *(int *)(puVar27 + 1)) &&\n               ((*(byte *)(lVar16 + 0x44) & 0x20) != 0)) goto LAB_0011c12e;\n            goto LAB_0011bed4;\n          }\n          if ((*(byte *)(lVar16 + 0x44) & 0x20) != 0) {\n            puVar21 = *(undefined8 **)(lVar16 + 8);\n            puVar27 = *(undefined8 **)(DAT_0017fb10 + 8);\nLAB_0011c12e:\n            uVar11 = *puVar27;\n            uVar14 = *puVar21;\n            uVar24 = 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_001251f0(uVar24,uVar14,lVar16,uVar11,lVar15);\n            goto joined_r0x0011c167;\n          }\n        }\n        else {\njoined_r0x0011c167:\n          if (lVar13 != 0) {\nLAB_0011bed4:\n            if (*(int *)(lVar16 + 0xa0) == 0) goto LAB_0011bf30;\n            uVar11 = 0;\n            if (DAT_0017fbd0 == 0) {\n              uVar11 = bfd_set_error_handler(FUN_00112380);\n            }\n            iVar9 = (**(code **)(*(long *)(DAT_0017fb10 + 8) + 0x140))(lVar16,&DAT_0017fac0);\n            if (iVar9 == 0) {\n              if (DAT_0017fbd0 != 0) {\n                uVar14 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);\n                FUN_001251f0(uVar14,lVar16);\n                goto LAB_0011c5b0;\n              }\n            }\n            else {\nLAB_0011c5b0:\n              if (DAT_0017fbd0 != 0) goto code_r0x0011c5be;\n            }\n            bfd_set_error_handler(uVar11);\n            goto LAB_0011bf30;\n          }\n        }\n        if (DAT_0017fbd0 == 0) goto LAB_0011bf30;\n        uVar11 = bfd_printable_name(DAT_0017fb10);\n        uVar14 = bfd_printable_name(lVar16);\n        uVar24 = dcgettext(0,\n                           "%X%P: %s architecture of input file `%pB\' is incompatible with %s output\n"\n                           ,5);\n        FUN_001251f0(uVar24,uVar14,lVar16,uVar11);\n        plVar17 = (long *)plVar17[6];\n      }\n      else {\nLAB_0011bf30:\n        plVar17 = (long *)plVar17[6];\n      }\n      if (plVar17 == (long *)0x0) break;\n    } while( true );\n  }" if (parenthesized_expression "(plVar17 != (long *)0x0)" ( (binary_expression "plVar17 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    do {\n      if ((*(byte *)((long)plVar17 + 0x49) & 0x20) == 0) {\n        lVar16 = plVar17[4];\n        lVar13 = bfd_arch_get_compatible(lVar16,DAT_0017fb10,DAT_0017fbdc);\n        lVar15 = DAT_0017fb10;\n        if (((DAT_0017fac0 & 3) == 2) || ((DAT_0017fac3 & 8) != 0)) {\n          if (lVar13 != 0) {\n            puVar21 = *(undefined8 **)(lVar16 + 8);\n            puVar27 = *(undefined8 **)(DAT_0017fb10 + 8);\n            if ((*(int *)(puVar21 + 1) != *(int *)(puVar27 + 1)) &&\n               ((*(byte *)(lVar16 + 0x44) & 0x20) != 0)) goto LAB_0011c12e;\n            goto LAB_0011bed4;\n          }\n          if ((*(byte *)(lVar16 + 0x44) & 0x20) != 0) {\n            puVar21 = *(undefined8 **)(lVar16 + 8);\n            puVar27 = *(undefined8 **)(DAT_0017fb10 + 8);\nLAB_0011c12e:\n            uVar11 = *puVar27;\n            uVar14 = *puVar21;\n            uVar24 = 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_001251f0(uVar24,uVar14,lVar16,uVar11,lVar15);\n            goto joined_r0x0011c167;\n          }\n        }\n        else {\njoined_r0x0011c167:\n          if (lVar13 != 0) {\nLAB_0011bed4:\n            if (*(int *)(lVar16 + 0xa0) == 0) goto LAB_0011bf30;\n            uVar11 = 0;\n            if (DAT_0017fbd0 == 0) {\n              uVar11 = bfd_set_error_handler(FUN_00112380);\n            }\n            iVar9 = (**(code **)(*(long *)(DAT_0017fb10 + 8) + 0x140))(lVar16,&DAT_0017fac0);\n            if (iVar9 == 0) {\n              if (DAT_0017fbd0 != 0) {\n                uVar14 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);\n                FUN_001251f0(uVar14,lVar16);\n                goto LAB_0011c5b0;\n              }\n            }\n            else {\nLAB_0011c5b0:\n              if (DAT_0017fbd0 != 0) goto code_r0x0011c5be;\n            }\n            bfd_set_error_handler(uVar11);\n            goto LAB_0011bf30;\n          }\n        }\n        if (DAT_0017fbd0 == 0) goto LAB_0011bf30;\n        uVar11 = bfd_printable_name(DAT_0017fb10);\n        uVar14 = bfd_printable_name(lVar16);\n        uVar24 = dcgettext(0,\n                           "%X%P: %s architecture of input file `%pB\' is incompatible with %s output\n"\n                           ,5);\n        FUN_001251f0(uVar24,uVar14,lVar16,uVar11);\n        plVar17 = (long *)plVar17[6];\n      }\n      else {\nLAB_0011bf30:\n        plVar17 = (long *)plVar17[6];\n      }\n      if (plVar17 == (long *)0x0) break;\n    } while( true );\n  }" { (do_statement "do {\n      if ((*(byte *)((long)plVar17 + 0x49) & 0x20) == 0) {\n        lVar16 = plVar17[4];\n        lVar13 = bfd_arch_get_compatible(lVar16,DAT_0017fb10,DAT_0017fbdc);\n        lVar15 = DAT_0017fb10;\n        if (((DAT_0017fac0 & 3) == 2) || ((DAT_0017fac3 & 8) != 0)) {\n          if (lVar13 != 0) {\n            puVar21 = *(undefined8 **)(lVar16 + 8);\n            puVar27 = *(undefined8 **)(DAT_0017fb10 + 8);\n            if ((*(int *)(puVar21 + 1) != *(int *)(puVar27 + 1)) &&\n               ((*(byte *)(lVar16 + 0x44) & 0x20) != 0)) goto LAB_0011c12e;\n            goto LAB_0011bed4;\n          }\n          if ((*(byte *)(lVar16 + 0x44) & 0x20) != 0) {\n            puVar21 = *(undefined8 **)(lVar16 + 8);\n            puVar27 = *(undefined8 **)(DAT_0017fb10 + 8);\nLAB_0011c12e:\n            uVar11 = *puVar27;\n            uVar14 = *puVar21;\n            uVar24 = 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_001251f0(uVar24,uVar14,lVar16,uVar11,lVar15);\n            goto joined_r0x0011c167;\n          }\n        }\n        else {\njoined_r0x0011c167:\n          if (lVar13 != 0) {\nLAB_0011bed4:\n            if (*(int *)(lVar16 + 0xa0) == 0) goto LAB_0011bf30;\n            uVar11 = 0;\n            if (DAT_0017fbd0 == 0) {\n              uVar11 = bfd_set_error_handler(FUN_00112380);\n            }\n            iVar9 = (**(code **)(*(long *)(DAT_0017fb10 + 8) + 0x140))(lVar16,&DAT_0017fac0);\n            if (iVar9 == 0) {\n              if (DAT_0017fbd0 != 0) {\n                uVar14 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);\n                FUN_001251f0(uVar14,lVar16);\n                goto LAB_0011c5b0;\n              }\n            }\n            else {\nLAB_0011c5b0:\n              if (DAT_0017fbd0 != 0) goto code_r0x0011c5be;\n            }\n            bfd_set_error_handler(uVar11);\n            goto LAB_0011bf30;\n          }\n        }\n        if (DAT_0017fbd0 == 0) goto LAB_0011bf30;\n        uVar11 = bfd_printable_name(DAT_0017fb10);\n        uVar14 = bfd_printable_name(lVar16);\n        uVar24 = dcgettext(0,\n                           "%X%P: %s architecture of input file `%pB\' is incompatible with %s output\n"\n                           ,5);\n        FUN_001251f0(uVar24,uVar14,lVar16,uVar11);\n        plVar17 = (long *)plVar17[6];\n      }\n      else {\nLAB_0011bf30:\n        plVar17 = (long *)plVar17[6];\n      }\n      if (plVar17 == (long *)0x0) break;\n    } while( true );" do (compound_statement "{\n      if ((*(byte *)((long)plVar17 + 0x49) & 0x20) == 0) {\n        lVar16 = plVar17[4];\n        lVar13 = bfd_arch_get_compatible(lVar16,DAT_0017fb10,DAT_0017fbdc);\n        lVar15 = DAT_0017fb10;\n        if (((DAT_0017fac0 & 3) == 2) || ((DAT_0017fac3 & 8) != 0)) {\n          if (lVar13 != 0) {\n            puVar21 = *(undefined8 **)(lVar16 + 8);\n            puVar27 = *(undefined8 **)(DAT_0017fb10 + 8);\n            if ((*(int *)(puVar21 + 1) != *(int *)(puVar27 + 1)) &&\n               ((*(byte *)(lVar16 + 0x44) & 0x20) != 0)) goto LAB_0011c12e;\n            goto LAB_0011bed4;\n          }\n          if ((*(byte *)(lVar16 + 0x44) & 0x20) != 0) {\n            puVar21 = *(undefined8 **)(lVar16 + 8);\n            puVar27 = *(undefined8 **)(DAT_0017fb10 + 8);\nLAB_0011c12e:\n            uVar11 = *puVar27;\n            uVar14 = *puVar21;\n            uVar24 = 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_001251f0(uVar24,uVar14,lVar16,uVar11,lVar15);\n            goto joined_r0x0011c167;\n          }\n        }\n        else {\njoined_r0x0011c167:\n          if (lVar13 != 0) {\nLAB_0011bed4:\n            if (*(int *)(lVar16 + 0xa0) == 0) goto LAB_0011bf30;\n            uVar11 = 0;\n            if (DAT_0017fbd0 == 0) {\n              uVar11 = bfd_set_error_handler(FUN_00112380);\n            }\n            iVar9 = (**(code **)(*(long *)(DAT_0017fb10 + 8) + 0x140))(lVar16,&DAT_0017fac0);\n            if (iVar9 == 0) {\n              if (DAT_0017fbd0 != 0) {\n                uVar14 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);\n                FUN_001251f0(uVar14,lVar16);\n                goto LAB_0011c5b0;\n              }\n            }\n            else {\nLAB_0011c5b0:\n              if (DAT_0017fbd0 != 0) goto code_r0x0011c5be;\n            }\n            bfd_set_error_handler(uVar11);\n            goto LAB_0011bf30;\n          }\n        }\n        if (DAT_0017fbd0 == 0) goto LAB_0011bf30;\n        uVar11 = bfd_printable_name(DAT_0017fb10);\n        uVar14 = bfd_printable_name(lVar16);\n        uVar24 = dcgettext(0,\n                           "%X%P: %s architecture of input file `%pB\' is incompatible with %s output\n"\n                           ,5);\n        FUN_001251f0(uVar24,uVar14,lVar16,uVar11);\n        plVar17 = (long *)plVar17[6];\n      }\n      else {\nLAB_0011bf30:\n        plVar17 = (long *)plVar17[6];\n      }\n      if (plVar17 == (long *)0x0) break;\n    }" { (if_statement "if ((*(byte *)((long)plVar17 + 0x49) & 0x20) == 0) {\n        lVar16 = plVar17[4];\n        lVar13 = bfd_arch_get_compatible(lVar16,DAT_0017fb10,DAT_0017fbdc);\n        lVar15 = DAT_0017fb10;\n        if (((DAT_0017fac0 & 3) == 2) || ((DAT_0017fac3 & 8) != 0)) {\n          if (lVar13 != 0) {\n            puVar21 = *(undefined8 **)(lVar16 + 8);\n            puVar27 = *(undefined8 **)(DAT_0017fb10 + 8);\n            if ((*(int *)(puVar21 + 1) != *(int *)(puVar27 + 1)) &&\n               ((*(byte *)(lVar16 + 0x44) & 0x20) != 0)) goto LAB_0011c12e;\n            goto LAB_0011bed4;\n          }\n          if ((*(byte *)(lVar16 + 0x44) & 0x20) != 0) {\n            puVar21 = *(undefined8 **)(lVar16 + 8);\n            puVar27 = *(undefined8 **)(DAT_0017fb10 + 8);\nLAB_0011c12e:\n            uVar11 = *puVar27;\n            uVar14 = *puVar21;\n            uVar24 = 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_001251f0(uVar24,uVar14,lVar16,uVar11,lVar15);\n            goto joined_r0x0011c167;\n          }\n        }\n        else {\njoined_r0x0011c167:\n          if (lVar13 != 0) {\nLAB_0011bed4:\n            if (*(int *)(lVar16 + 0xa0) == 0) goto LAB_0011bf30;\n            uVar11 = 0;\n            if (DAT_0017fbd0 == 0) {\n              uVar11 = bfd_set_error_handler(FUN_00112380);\n            }\n            iVar9 = (**(code **)(*(long *)(DAT_0017fb10 + 8) + 0x140))(lVar16,&DAT_0017fac0);\n            if (iVar9 == 0) {\n              if (DAT_0017fbd0 != 0) {\n                uVar14 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);\n                FUN_001251f0(uVar14,lVar16);\n                goto LAB_0011c5b0;\n              }\n            }\n            else {\nLAB_0011c5b0:\n              if (DAT_0017fbd0 != 0) goto code_r0x0011c5be;\n            }\n            bfd_set_error_handler(uVar11);\n            goto LAB_0011bf30;\n          }\n        }\n        if (DAT_0017fbd0 == 0) goto LAB_0011bf30;\n        uVar11 = bfd_printable_name(DAT_0017fb10);\n        uVar14 = bfd_printable_name(lVar16);\n        uVar24 = dcgettext(0,\n                           "%X%P: %s architecture of input file `%pB\' is incompatible with %s output\n"\n                           ,5);\n        FUN_001251f0(uVar24,uVar14,lVar16,uVar11);\n        plVar17 = (long *)plVar17[6];\n      }\n      else {\nLAB_0011bf30:\n        plVar17 = (long *)plVar17[6];\n      }" if (parenthesized_expression "((*(byte *)((long)plVar17 + 0x49) & 0x20) == 0)" ( (binary_expression "(*(byte *)((long)plVar17 + 0x49) & 0x20) == 0" (parenthesized_expression "(*(byte *)((long)plVar17 + 0x49) & 0x20)" ( (binary_expression "*(byte *)((long)plVar17 + 0x49) & 0x20" (pointer_expression "*(byte *)((long)plVar17 + 0x49)" * (cast_expression "(byte *)((long)plVar17 + 0x49)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar17 + 0x49)" ( (binary_expression "(long)plVar17 + 0x49" (cast_expression "(long)plVar17" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n        lVar16 = plVar17[4];\n        lVar13 = bfd_arch_get_compatible(lVar16,DAT_0017fb10,DAT_0017fbdc);\n        lVar15 = DAT_0017fb10;\n        if (((DAT_0017fac0 & 3) == 2) || ((DAT_0017fac3 & 8) != 0)) {\n          if (lVar13 != 0) {\n            puVar21 = *(undefined8 **)(lVar16 + 8);\n            puVar27 = *(undefined8 **)(DAT_0017fb10 + 8);\n            if ((*(int *)(puVar21 + 1) != *(int *)(puVar27 + 1)) &&\n               ((*(byte *)(lVar16 + 0x44) & 0x20) != 0)) goto LAB_0011c12e;\n            goto LAB_0011bed4;\n          }\n          if ((*(byte *)(lVar16 + 0x44) & 0x20) != 0) {\n            puVar21 = *(undefined8 **)(lVar16 + 8);\n            puVar27 = *(undefined8 **)(DAT_0017fb10 + 8);\nLAB_0011c12e:\n            uVar11 = *puVar27;\n            uVar14 = *puVar21;\n            uVar24 = 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_001251f0(uVar24,uVar14,lVar16,uVar11,lVar15);\n            goto joined_r0x0011c167;\n          }\n        }\n        else {\njoined_r0x0011c167:\n          if (lVar13 != 0) {\nLAB_0011bed4:\n            if (*(int *)(lVar16 + 0xa0) == 0) goto LAB_0011bf30;\n            uVar11 = 0;\n            if (DAT_0017fbd0 == 0) {\n              uVar11 = bfd_set_error_handler(FUN_00112380);\n            }\n            iVar9 = (**(code **)(*(long *)(DAT_0017fb10 + 8) + 0x140))(lVar16,&DAT_0017fac0);\n            if (iVar9 == 0) {\n              if (DAT_0017fbd0 != 0) {\n                uVar14 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);\n                FUN_001251f0(uVar14,lVar16);\n                goto LAB_0011c5b0;\n              }\n            }\n            else {\nLAB_0011c5b0:\n              if (DAT_0017fbd0 != 0) goto code_r0x0011c5be;\n            }\n            bfd_set_error_handler(uVar11);\n            goto LAB_0011bf30;\n          }\n        }\n        if (DAT_0017fbd0 == 0) goto LAB_0011bf30;\n        uVar11 = bfd_printable_name(DAT_0017fb10);\n        uVar14 = bfd_printable_name(lVar16);\n        uVar24 = dcgettext(0,\n                           "%X%P: %s architecture of input file `%pB\' is incompatible with %s output\n"\n                           ,5);\n        FUN_001251f0(uVar24,uVar14,lVar16,uVar11);\n        plVar17 = (long *)plVar17[6];\n      }" { (expression_statement "lVar16 = plVar17[4];" (assignment_expression "lVar16 = plVar17[4]" identifier = (subscript_expression "plVar17[4]" identifier [ number_literal ])) ;) (expression_statement "lVar13 = bfd_arch_get_compatible(lVar16,DAT_0017fb10,DAT_0017fbdc);" (assignment_expression "lVar13 = bfd_arch_get_compatible(lVar16,DAT_0017fb10,DAT_0017fbdc)" identifier = (call_expression "bfd_arch_get_compatible(lVar16,DAT_0017fb10,DAT_0017fbdc)" identifier (argument_list "(lVar16,DAT_0017fb10,DAT_0017fbdc)" ( identifier , identifier , identifier )))) ;) (expression_statement "lVar15 = DAT_0017fb10;" (assignment_expression "lVar15 = DAT_0017fb10" identifier = identifier) ;) (if_statement "if (((DAT_0017fac0 & 3) == 2) || ((DAT_0017fac3 & 8) != 0)) {\n          if (lVar13 != 0) {\n            puVar21 = *(undefined8 **)(lVar16 + 8);\n            puVar27 = *(undefined8 **)(DAT_0017fb10 + 8);\n            if ((*(int *)(puVar21 + 1) != *(int *)(puVar27 + 1)) &&\n               ((*(byte *)(lVar16 + 0x44) & 0x20) != 0)) goto LAB_0011c12e;\n            goto LAB_0011bed4;\n          }\n          if ((*(byte *)(lVar16 + 0x44) & 0x20) != 0) {\n            puVar21 = *(undefined8 **)(lVar16 + 8);\n            puVar27 = *(undefined8 **)(DAT_0017fb10 + 8);\nLAB_0011c12e:\n            uVar11 = *puVar27;\n            uVar14 = *puVar21;\n            uVar24 = 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_001251f0(uVar24,uVar14,lVar16,uVar11,lVar15);\n            goto joined_r0x0011c167;\n          }\n        }\n        else {\njoined_r0x0011c167:\n          if (lVar13 != 0) {\nLAB_0011bed4:\n            if (*(int *)(lVar16 + 0xa0) == 0) goto LAB_0011bf30;\n            uVar11 = 0;\n            if (DAT_0017fbd0 == 0) {\n              uVar11 = bfd_set_error_handler(FUN_00112380);\n            }\n            iVar9 = (**(code **)(*(long *)(DAT_0017fb10 + 8) + 0x140))(lVar16,&DAT_0017fac0);\n            if (iVar9 == 0) {\n              if (DAT_0017fbd0 != 0) {\n                uVar14 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);\n                FUN_001251f0(uVar14,lVar16);\n                goto LAB_0011c5b0;\n              }\n            }\n            else {\nLAB_0011c5b0:\n              if (DAT_0017fbd0 != 0) goto code_r0x0011c5be;\n            }\n            bfd_set_error_handler(uVar11);\n            goto LAB_0011bf30;\n          }\n        }" if (parenthesized_expression "(((DAT_0017fac0 & 3) == 2) || ((DAT_0017fac3 & 8) != 0))" ( (binary_expression "((DAT_0017fac0 & 3) == 2) || ((DAT_0017fac3 & 8) != 0)" (parenthesized_expression "((DAT_0017fac0 & 3) == 2)" ( (binary_expression "(DAT_0017fac0 & 3) == 2" (parenthesized_expression "(DAT_0017fac0 & 3)" ( (binary_expression "DAT_0017fac0 & 3" identifier & number_literal) )) == number_literal) )) || (parenthesized_expression "((DAT_0017fac3 & 8) != 0)" ( (binary_expression "(DAT_0017fac3 & 8) != 0" (parenthesized_expression "(DAT_0017fac3 & 8)" ( (binary_expression "DAT_0017fac3 & 8" identifier & number_literal) )) != number_literal) ))) )) (compound_statement "{\n          if (lVar13 != 0) {\n            puVar21 = *(undefined8 **)(lVar16 + 8);\n            puVar27 = *(undefined8 **)(DAT_0017fb10 + 8);\n            if ((*(int *)(puVar21 + 1) != *(int *)(puVar27 + 1)) &&\n               ((*(byte *)(lVar16 + 0x44) & 0x20) != 0)) goto LAB_0011c12e;\n            goto LAB_0011bed4;\n          }\n          if ((*(byte *)(lVar16 + 0x44) & 0x20) != 0) {\n            puVar21 = *(undefined8 **)(lVar16 + 8);\n            puVar27 = *(undefined8 **)(DAT_0017fb10 + 8);\nLAB_0011c12e:\n            uVar11 = *puVar27;\n            uVar14 = *puVar21;\n            uVar24 = 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_001251f0(uVar24,uVar14,lVar16,uVar11,lVar15);\n            goto joined_r0x0011c167;\n          }\n        }" { (if_statement "if (lVar13 != 0) {\n            puVar21 = *(undefined8 **)(lVar16 + 8);\n            puVar27 = *(undefined8 **)(DAT_0017fb10 + 8);\n            if ((*(int *)(puVar21 + 1) != *(int *)(puVar27 + 1)) &&\n               ((*(byte *)(lVar16 + 0x44) & 0x20) != 0)) goto LAB_0011c12e;\n            goto LAB_0011bed4;\n          }" if (parenthesized_expression "(lVar13 != 0)" ( (binary_expression "lVar13 != 0" identifier != number_literal) )) (compound_statement "{\n            puVar21 = *(undefined8 **)(lVar16 + 8);\n            puVar27 = *(undefined8 **)(DAT_0017fb10 + 8);\n            if ((*(int *)(puVar21 + 1) != *(int *)(puVar27 + 1)) &&\n               ((*(byte *)(lVar16 + 0x44) & 0x20) != 0)) goto LAB_0011c12e;\n            goto LAB_0011bed4;\n          }" { (expression_statement "puVar21 = *(undefined8 **)(lVar16 + 8);" (assignment_expression "puVar21 = *(undefined8 **)(lVar16 + 8)" identifier = (pointer_expression "*(undefined8 **)(lVar16 + 8)" * (cast_expression "(undefined8 **)(lVar16 + 8)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar16 + 8)" ( (binary_expression "lVar16 + 8" identifier + number_literal) ))))) ;) (expression_statement "puVar27 = *(undefined8 **)(DAT_0017fb10 + 8);" (assignment_expression "puVar27 = *(undefined8 **)(DAT_0017fb10 + 8)" identifier = (pointer_expression "*(undefined8 **)(DAT_0017fb10 + 8)" * (cast_expression "(undefined8 **)(DAT_0017fb10 + 8)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(DAT_0017fb10 + 8)" ( (binary_expression "DAT_0017fb10 + 8" identifier + number_literal) ))))) ;) (if_statement "if ((*(int *)(puVar21 + 1) != *(int *)(puVar27 + 1)) &&\n               ((*(byte *)(lVar16 + 0x44) & 0x20) != 0)) goto LAB_0011c12e;" if (parenthesized_expression "((*(int *)(puVar21 + 1) != *(int *)(puVar27 + 1)) &&\n               ((*(byte *)(lVar16 + 0x44) & 0x20) != 0))" ( (binary_expression "(*(int *)(puVar21 + 1) != *(int *)(puVar27 + 1)) &&\n               ((*(byte *)(lVar16 + 0x44) & 0x20) != 0)" (parenthesized_expression "(*(int *)(puVar21 + 1) != *(int *)(puVar27 + 1))" ( (binary_expression "*(int *)(puVar21 + 1) != *(int *)(puVar27 + 1)" (pointer_expression "*(int *)(puVar21 + 1)" * (cast_expression "(int *)(puVar21 + 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + 1)" ( (binary_expression "puVar21 + 1" identifier + number_literal) )))) != (pointer_expression "*(int *)(puVar27 + 1)" * (cast_expression "(int *)(puVar27 + 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + 1)" ( (binary_expression "puVar27 + 1" identifier + number_literal) ))))) )) && (parenthesized_expression "((*(byte *)(lVar16 + 0x44) & 0x20) != 0)" ( (binary_expression "(*(byte *)(lVar16 + 0x44) & 0x20) != 0" (parenthesized_expression "(*(byte *)(lVar16 + 0x44) & 0x20)" ( (binary_expression "*(byte *)(lVar16 + 0x44) & 0x20" (pointer_expression "*(byte *)(lVar16 + 0x44)" * (cast_expression "(byte *)(lVar16 + 0x44)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar16 + 0x44)" ( (binary_expression "lVar16 + 0x44" identifier + number_literal) )))) & number_literal) )) != number_literal) ))) )) (goto_statement "goto LAB_0011c12e;" goto statement_identifier ;)) (goto_statement "goto LAB_0011bed4;" goto statement_identifier ;) })) (if_statement "if ((*(byte *)(lVar16 + 0x44) & 0x20) != 0) {\n            puVar21 = *(undefined8 **)(lVar16 + 8);\n            puVar27 = *(undefined8 **)(DAT_0017fb10 + 8);\nLAB_0011c12e:\n            uVar11 = *puVar27;\n            uVar14 = *puVar21;\n            uVar24 = 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_001251f0(uVar24,uVar14,lVar16,uVar11,lVar15);\n            goto joined_r0x0011c167;\n          }" if (parenthesized_expression "((*(byte *)(lVar16 + 0x44) & 0x20) != 0)" ( (binary_expression "(*(byte *)(lVar16 + 0x44) & 0x20) != 0" (parenthesized_expression "(*(byte *)(lVar16 + 0x44) & 0x20)" ( (binary_expression "*(byte *)(lVar16 + 0x44) & 0x20" (pointer_expression "*(byte *)(lVar16 + 0x44)" * (cast_expression "(byte *)(lVar16 + 0x44)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar16 + 0x44)" ( (binary_expression "lVar16 + 0x44" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n            puVar21 = *(undefined8 **)(lVar16 + 8);\n            puVar27 = *(undefined8 **)(DAT_0017fb10 + 8);\nLAB_0011c12e:\n            uVar11 = *puVar27;\n            uVar14 = *puVar21;\n            uVar24 = 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_001251f0(uVar24,uVar14,lVar16,uVar11,lVar15);\n            goto joined_r0x0011c167;\n          }" { (expression_statement "puVar21 = *(undefined8 **)(lVar16 + 8);" (assignment_expression "puVar21 = *(undefined8 **)(lVar16 + 8)" identifier = (pointer_expression "*(undefined8 **)(lVar16 + 8)" * (cast_expression "(undefined8 **)(lVar16 + 8)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar16 + 8)" ( (binary_expression "lVar16 + 8" identifier + number_literal) ))))) ;) (expression_statement "puVar27 = *(undefined8 **)(DAT_0017fb10 + 8);" (assignment_expression "puVar27 = *(undefined8 **)(DAT_0017fb10 + 8)" identifier = (pointer_expression "*(undefined8 **)(DAT_0017fb10 + 8)" * (cast_expression "(undefined8 **)(DAT_0017fb10 + 8)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(DAT_0017fb10 + 8)" ( (binary_expression "DAT_0017fb10 + 8" identifier + number_literal) ))))) ;) (labeled_statement "LAB_0011c12e:\n            uVar11 = *puVar27;" statement_identifier : (expression_statement "uVar11 = *puVar27;" (assignment_expression "uVar11 = *puVar27" identifier = (pointer_expression "*puVar27" * identifier)) ;)) (expression_statement "uVar14 = *puVar21;" (assignment_expression "uVar14 = *puVar21" identifier = (pointer_expression "*puVar21" * identifier)) ;) (expression_statement "uVar24 = 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 "uVar24 = 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_001251f0(uVar24,uVar14,lVar16,uVar11,lVar15);" (call_expression "FUN_001251f0(uVar24,uVar14,lVar16,uVar11,lVar15)" identifier (argument_list "(uVar24,uVar14,lVar16,uVar11,lVar15)" ( identifier , identifier , identifier , identifier , identifier ))) ;) (goto_statement "goto joined_r0x0011c167;" goto statement_identifier ;) })) }) (else_clause "else {\njoined_r0x0011c167:\n          if (lVar13 != 0) {\nLAB_0011bed4:\n            if (*(int *)(lVar16 + 0xa0) == 0) goto LAB_0011bf30;\n            uVar11 = 0;\n            if (DAT_0017fbd0 == 0) {\n              uVar11 = bfd_set_error_handler(FUN_00112380);\n            }\n            iVar9 = (**(code **)(*(long *)(DAT_0017fb10 + 8) + 0x140))(lVar16,&DAT_0017fac0);\n            if (iVar9 == 0) {\n              if (DAT_0017fbd0 != 0) {\n                uVar14 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);\n                FUN_001251f0(uVar14,lVar16);\n                goto LAB_0011c5b0;\n              }\n            }\n            else {\nLAB_0011c5b0:\n              if (DAT_0017fbd0 != 0) goto code_r0x0011c5be;\n            }\n            bfd_set_error_handler(uVar11);\n            goto LAB_0011bf30;\n          }\n        }" else (compound_statement "{\njoined_r0x0011c167:\n          if (lVar13 != 0) {\nLAB_0011bed4:\n            if (*(int *)(lVar16 + 0xa0) == 0) goto LAB_0011bf30;\n            uVar11 = 0;\n            if (DAT_0017fbd0 == 0) {\n              uVar11 = bfd_set_error_handler(FUN_00112380);\n            }\n            iVar9 = (**(code **)(*(long *)(DAT_0017fb10 + 8) + 0x140))(lVar16,&DAT_0017fac0);\n            if (iVar9 == 0) {\n              if (DAT_0017fbd0 != 0) {\n                uVar14 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);\n                FUN_001251f0(uVar14,lVar16);\n                goto LAB_0011c5b0;\n              }\n            }\n            else {\nLAB_0011c5b0:\n              if (DAT_0017fbd0 != 0) goto code_r0x0011c5be;\n            }\n            bfd_set_error_handler(uVar11);\n            goto LAB_0011bf30;\n          }\n        }" { (labeled_statement "joined_r0x0011c167:\n          if (lVar13 != 0) {\nLAB_0011bed4:\n            if (*(int *)(lVar16 + 0xa0) == 0) goto LAB_0011bf30;\n            uVar11 = 0;\n            if (DAT_0017fbd0 == 0) {\n              uVar11 = bfd_set_error_handler(FUN_00112380);\n            }\n            iVar9 = (**(code **)(*(long *)(DAT_0017fb10 + 8) + 0x140))(lVar16,&DAT_0017fac0);\n            if (iVar9 == 0) {\n              if (DAT_0017fbd0 != 0) {\n                uVar14 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);\n                FUN_001251f0(uVar14,lVar16);\n                goto LAB_0011c5b0;\n              }\n            }\n            else {\nLAB_0011c5b0:\n              if (DAT_0017fbd0 != 0) goto code_r0x0011c5be;\n            }\n            bfd_set_error_handler(uVar11);\n            goto LAB_0011bf30;\n          }" statement_identifier : (if_statement "if (lVar13 != 0) {\nLAB_0011bed4:\n            if (*(int *)(lVar16 + 0xa0) == 0) goto LAB_0011bf30;\n            uVar11 = 0;\n            if (DAT_0017fbd0 == 0) {\n              uVar11 = bfd_set_error_handler(FUN_00112380);\n            }\n            iVar9 = (**(code **)(*(long *)(DAT_0017fb10 + 8) + 0x140))(lVar16,&DAT_0017fac0);\n            if (iVar9 == 0) {\n              if (DAT_0017fbd0 != 0) {\n                uVar14 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);\n                FUN_001251f0(uVar14,lVar16);\n                goto LAB_0011c5b0;\n              }\n            }\n            else {\nLAB_0011c5b0:\n              if (DAT_0017fbd0 != 0) goto code_r0x0011c5be;\n            }\n            bfd_set_error_handler(uVar11);\n            goto LAB_0011bf30;\n          }" if (parenthesized_expression "(lVar13 != 0)" ( (binary_expression "lVar13 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_0011bed4:\n            if (*(int *)(lVar16 + 0xa0) == 0) goto LAB_0011bf30;\n            uVar11 = 0;\n            if (DAT_0017fbd0 == 0) {\n              uVar11 = bfd_set_error_handler(FUN_00112380);\n            }\n            iVar9 = (**(code **)(*(long *)(DAT_0017fb10 + 8) + 0x140))(lVar16,&DAT_0017fac0);\n            if (iVar9 == 0) {\n              if (DAT_0017fbd0 != 0) {\n                uVar14 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);\n                FUN_001251f0(uVar14,lVar16);\n                goto LAB_0011c5b0;\n              }\n            }\n            else {\nLAB_0011c5b0:\n              if (DAT_0017fbd0 != 0) goto code_r0x0011c5be;\n            }\n            bfd_set_error_handler(uVar11);\n            goto LAB_0011bf30;\n          }" { (labeled_statement "LAB_0011bed4:\n            if (*(int *)(lVar16 + 0xa0) == 0) goto LAB_0011bf30;" statement_identifier : (if_statement "if (*(int *)(lVar16 + 0xa0) == 0) goto LAB_0011bf30;" if (parenthesized_expression "(*(int *)(lVar16 + 0xa0) == 0)" ( (binary_expression "*(int *)(lVar16 + 0xa0) == 0" (pointer_expression "*(int *)(lVar16 + 0xa0)" * (cast_expression "(int *)(lVar16 + 0xa0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar16 + 0xa0)" ( (binary_expression "lVar16 + 0xa0" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_0011bf30;" goto statement_identifier ;))) (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" identifier = number_literal) ;) (if_statement "if (DAT_0017fbd0 == 0) {\n              uVar11 = bfd_set_error_handler(FUN_00112380);\n            }" if (parenthesized_expression "(DAT_0017fbd0 == 0)" ( (binary_expression "DAT_0017fbd0 == 0" identifier == number_literal) )) (compound_statement "{\n              uVar11 = bfd_set_error_handler(FUN_00112380);\n            }" { (expression_statement "uVar11 = bfd_set_error_handler(FUN_00112380);" (assignment_expression "uVar11 = bfd_set_error_handler(FUN_00112380)" identifier = (call_expression "bfd_set_error_handler(FUN_00112380)" identifier (argument_list "(FUN_00112380)" ( identifier )))) ;) })) (expression_statement "iVar9 = (**(code **)(*(long *)(DAT_0017fb10 + 8) + 0x140))(lVar16,&DAT_0017fac0);" (assignment_expression "iVar9 = (**(code **)(*(long *)(DAT_0017fb10 + 8) + 0x140))(lVar16,&DAT_0017fac0)" identifier = (call_expression "(**(code **)(*(long *)(DAT_0017fb10 + 8) + 0x140))(lVar16,&DAT_0017fac0)" (parenthesized_expression "(**(code **)(*(long *)(DAT_0017fb10 + 8) + 0x140))" ( (pointer_expression "**(code **)(*(long *)(DAT_0017fb10 + 8) + 0x140)" * (pointer_expression "*(code **)(*(long *)(DAT_0017fb10 + 8) + 0x140)" * (cast_expression "(code **)(*(long *)(DAT_0017fb10 + 8) + 0x140)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)(DAT_0017fb10 + 8) + 0x140)" ( (binary_expression "*(long *)(DAT_0017fb10 + 8) + 0x140" (pointer_expression "*(long *)(DAT_0017fb10 + 8)" * (cast_expression "(long *)(DAT_0017fb10 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0017fb10 + 8)" ( (binary_expression "DAT_0017fb10 + 8" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(lVar16,&DAT_0017fac0)" ( identifier , (pointer_expression "&DAT_0017fac0" & identifier) )))) ;) (if_statement "if (iVar9 == 0) {\n              if (DAT_0017fbd0 != 0) {\n                uVar14 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);\n                FUN_001251f0(uVar14,lVar16);\n                goto LAB_0011c5b0;\n              }\n            }\n            else {\nLAB_0011c5b0:\n              if (DAT_0017fbd0 != 0) goto code_r0x0011c5be;\n            }" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (compound_statement "{\n              if (DAT_0017fbd0 != 0) {\n                uVar14 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);\n                FUN_001251f0(uVar14,lVar16);\n                goto LAB_0011c5b0;\n              }\n            }" { (if_statement "if (DAT_0017fbd0 != 0) {\n                uVar14 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);\n                FUN_001251f0(uVar14,lVar16);\n                goto LAB_0011c5b0;\n              }" if (parenthesized_expression "(DAT_0017fbd0 != 0)" ( (binary_expression "DAT_0017fbd0 != 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_001251f0(uVar14,lVar16);\n                goto LAB_0011c5b0;\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_001251f0(uVar14,lVar16);" (call_expression "FUN_001251f0(uVar14,lVar16)" identifier (argument_list "(uVar14,lVar16)" ( identifier , identifier ))) ;) (goto_statement "goto LAB_0011c5b0;" goto statement_identifier ;) })) }) (else_clause "else {\nLAB_0011c5b0:\n              if (DAT_0017fbd0 != 0) goto code_r0x0011c5be;\n            }" else (compound_statement "{\nLAB_0011c5b0:\n              if (DAT_0017fbd0 != 0) goto code_r0x0011c5be;\n            }" { (labeled_statement "LAB_0011c5b0:\n              if (DAT_0017fbd0 != 0) goto code_r0x0011c5be;" statement_identifier : (if_statement "if (DAT_0017fbd0 != 0) goto code_r0x0011c5be;" if (parenthesized_expression "(DAT_0017fbd0 != 0)" ( (binary_expression "DAT_0017fbd0 != 0" identifier != number_literal) )) (goto_statement "goto code_r0x0011c5be;" goto statement_identifier ;))) }))) (expression_statement "bfd_set_error_handler(uVar11);" (call_expression "bfd_set_error_handler(uVar11)" identifier (argument_list "(uVar11)" ( identifier ))) ;) (goto_statement "goto LAB_0011bf30;" goto statement_identifier ;) }))) }))) (if_statement "if (DAT_0017fbd0 == 0) goto LAB_0011bf30;" if (parenthesized_expression "(DAT_0017fbd0 == 0)" ( (binary_expression "DAT_0017fbd0 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0011bf30;" goto statement_identifier ;)) (expression_statement "uVar11 = bfd_printable_name(DAT_0017fb10);" (assignment_expression "uVar11 = bfd_printable_name(DAT_0017fb10)" identifier = (call_expression "bfd_printable_name(DAT_0017fb10)" identifier (argument_list "(DAT_0017fb10)" ( identifier )))) ;) (expression_statement "uVar14 = bfd_printable_name(lVar16);" (assignment_expression "uVar14 = bfd_printable_name(lVar16)" identifier = (call_expression "bfd_printable_name(lVar16)" identifier (argument_list "(lVar16)" ( identifier )))) ;) (expression_statement "uVar24 = dcgettext(0,\n                           "%X%P: %s architecture of input file `%pB\' is incompatible with %s output\n"\n                           ,5);" (assignment_expression "uVar24 = 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_001251f0(uVar24,uVar14,lVar16,uVar11);" (call_expression "FUN_001251f0(uVar24,uVar14,lVar16,uVar11)" identifier (argument_list "(uVar24,uVar14,lVar16,uVar11)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "plVar17 = (long *)plVar17[6];" (assignment_expression "plVar17 = (long *)plVar17[6]" identifier = (cast_expression "(long *)plVar17[6]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar17[6]" identifier [ number_literal ]))) ;) }) (else_clause "else {\nLAB_0011bf30:\n        plVar17 = (long *)plVar17[6];\n      }" else (compound_statement "{\nLAB_0011bf30:\n        plVar17 = (long *)plVar17[6];\n      }" { (labeled_statement "LAB_0011bf30:\n        plVar17 = (long *)plVar17[6];" statement_identifier : (expression_statement "plVar17 = (long *)plVar17[6];" (assignment_expression "plVar17 = (long *)plVar17[6]" identifier = (cast_expression "(long *)plVar17[6]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar17[6]" identifier [ number_literal ]))) ;)) }))) (if_statement "if (plVar17 == (long *)0x0) break;" if (parenthesized_expression "(plVar17 == (long *)0x0)" ( (binary_expression "plVar17 == (long *)0x0" identifier == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) }) while (parenthesized_expression "( true )" ( true )) ;) }))) (if_statement "if (DAT_0017fc30 != 0) {\n    uVar11 = 0;\n    for (plVar17 = DAT_0017f2f0; plVar17 != (long *)0x0; plVar17 = (long *)plVar17[6]) {\n      lVar16 = bfd_get_section_by_name(plVar17[4],".exports");\n      if (lVar16 != 0) {\n        lVar15 = *(long *)(lVar16 + 0x38);\n        pcVar31 = (char *)xmalloc(lVar15);\n        iVar9 = bfd_get_section_contents(plVar17[4],lVar16,pcVar31,0,lVar15);\n        if (iVar9 == 0) {\n          uVar14 = dcgettext(0,"%X%P: unable to read .exports section contents\n",5);\n          FUN_001251f0(uVar14,lVar16);\n        }\n        pcVar19 = pcVar31 + lVar15;\n        for (; pcVar31 < pcVar19; pcVar31 = pcVar31 + sVar12 + 1) {\n          uVar11 = FUN_0011b640(uVar11,pcVar31,0);\n          sVar12 = strlen(pcVar31);\n        }\n        *(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) | 0x208000;\n      }\n    }\n    uVar14 = FUN_0011b640(0,&DAT_0013f157,0,0);\n    lVar15 = xcalloc(1,0x70);\n    lVar16 = DAT_0017fc30;\n    *(undefined8 *)(lVar15 + 0x18) = uVar11;\n    *(undefined8 *)(lVar15 + 0x38) = uVar14;\n    *(code **)(lVar15 + 0x68) = FUN_00112f60;\n    *(undefined4 *)(lVar15 + 0x60) = 0xffffffff;\n    FUN_0011b860(lVar16,lVar15,0);\n  }" if (parenthesized_expression "(DAT_0017fc30 != 0)" ( (binary_expression "DAT_0017fc30 != 0" identifier != number_literal) )) (compound_statement "{\n    uVar11 = 0;\n    for (plVar17 = DAT_0017f2f0; plVar17 != (long *)0x0; plVar17 = (long *)plVar17[6]) {\n      lVar16 = bfd_get_section_by_name(plVar17[4],".exports");\n      if (lVar16 != 0) {\n        lVar15 = *(long *)(lVar16 + 0x38);\n        pcVar31 = (char *)xmalloc(lVar15);\n        iVar9 = bfd_get_section_contents(plVar17[4],lVar16,pcVar31,0,lVar15);\n        if (iVar9 == 0) {\n          uVar14 = dcgettext(0,"%X%P: unable to read .exports section contents\n",5);\n          FUN_001251f0(uVar14,lVar16);\n        }\n        pcVar19 = pcVar31 + lVar15;\n        for (; pcVar31 < pcVar19; pcVar31 = pcVar31 + sVar12 + 1) {\n          uVar11 = FUN_0011b640(uVar11,pcVar31,0);\n          sVar12 = strlen(pcVar31);\n        }\n        *(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) | 0x208000;\n      }\n    }\n    uVar14 = FUN_0011b640(0,&DAT_0013f157,0,0);\n    lVar15 = xcalloc(1,0x70);\n    lVar16 = DAT_0017fc30;\n    *(undefined8 *)(lVar15 + 0x18) = uVar11;\n    *(undefined8 *)(lVar15 + 0x38) = uVar14;\n    *(code **)(lVar15 + 0x68) = FUN_00112f60;\n    *(undefined4 *)(lVar15 + 0x60) = 0xffffffff;\n    FUN_0011b860(lVar16,lVar15,0);\n  }" { (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" identifier = number_literal) ;) (for_statement "for (plVar17 = DAT_0017f2f0; plVar17 != (long *)0x0; plVar17 = (long *)plVar17[6]) {\n      lVar16 = bfd_get_section_by_name(plVar17[4],".exports");\n      if (lVar16 != 0) {\n        lVar15 = *(long *)(lVar16 + 0x38);\n        pcVar31 = (char *)xmalloc(lVar15);\n        iVar9 = bfd_get_section_contents(plVar17[4],lVar16,pcVar31,0,lVar15);\n        if (iVar9 == 0) {\n          uVar14 = dcgettext(0,"%X%P: unable to read .exports section contents\n",5);\n          FUN_001251f0(uVar14,lVar16);\n        }\n        pcVar19 = pcVar31 + lVar15;\n        for (; pcVar31 < pcVar19; pcVar31 = pcVar31 + sVar12 + 1) {\n          uVar11 = FUN_0011b640(uVar11,pcVar31,0);\n          sVar12 = strlen(pcVar31);\n        }\n        *(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) | 0x208000;\n      }\n    }" for ( (assignment_expression "plVar17 = DAT_0017f2f0" identifier = identifier) ; (binary_expression "plVar17 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "plVar17 = (long *)plVar17[6]" identifier = (cast_expression "(long *)plVar17[6]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar17[6]" identifier [ number_literal ]))) ) (compound_statement "{\n      lVar16 = bfd_get_section_by_name(plVar17[4],".exports");\n      if (lVar16 != 0) {\n        lVar15 = *(long *)(lVar16 + 0x38);\n        pcVar31 = (char *)xmalloc(lVar15);\n        iVar9 = bfd_get_section_contents(plVar17[4],lVar16,pcVar31,0,lVar15);\n        if (iVar9 == 0) {\n          uVar14 = dcgettext(0,"%X%P: unable to read .exports section contents\n",5);\n          FUN_001251f0(uVar14,lVar16);\n        }\n        pcVar19 = pcVar31 + lVar15;\n        for (; pcVar31 < pcVar19; pcVar31 = pcVar31 + sVar12 + 1) {\n          uVar11 = FUN_0011b640(uVar11,pcVar31,0);\n          sVar12 = strlen(pcVar31);\n        }\n        *(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) | 0x208000;\n      }\n    }" { (expression_statement "lVar16 = bfd_get_section_by_name(plVar17[4],".exports");" (assignment_expression "lVar16 = bfd_get_section_by_name(plVar17[4],".exports")" identifier = (call_expression "bfd_get_section_by_name(plVar17[4],".exports")" identifier (argument_list "(plVar17[4],".exports")" ( (subscript_expression "plVar17[4]" identifier [ number_literal ]) , (string_literal "".exports"" " string_content ") )))) ;) (if_statement "if (lVar16 != 0) {\n        lVar15 = *(long *)(lVar16 + 0x38);\n        pcVar31 = (char *)xmalloc(lVar15);\n        iVar9 = bfd_get_section_contents(plVar17[4],lVar16,pcVar31,0,lVar15);\n        if (iVar9 == 0) {\n          uVar14 = dcgettext(0,"%X%P: unable to read .exports section contents\n",5);\n          FUN_001251f0(uVar14,lVar16);\n        }\n        pcVar19 = pcVar31 + lVar15;\n        for (; pcVar31 < pcVar19; pcVar31 = pcVar31 + sVar12 + 1) {\n          uVar11 = FUN_0011b640(uVar11,pcVar31,0);\n          sVar12 = strlen(pcVar31);\n        }\n        *(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) | 0x208000;\n      }" if (parenthesized_expression "(lVar16 != 0)" ( (binary_expression "lVar16 != 0" identifier != number_literal) )) (compound_statement "{\n        lVar15 = *(long *)(lVar16 + 0x38);\n        pcVar31 = (char *)xmalloc(lVar15);\n        iVar9 = bfd_get_section_contents(plVar17[4],lVar16,pcVar31,0,lVar15);\n        if (iVar9 == 0) {\n          uVar14 = dcgettext(0,"%X%P: unable to read .exports section contents\n",5);\n          FUN_001251f0(uVar14,lVar16);\n        }\n        pcVar19 = pcVar31 + lVar15;\n        for (; pcVar31 < pcVar19; pcVar31 = pcVar31 + sVar12 + 1) {\n          uVar11 = FUN_0011b640(uVar11,pcVar31,0);\n          sVar12 = strlen(pcVar31);\n        }\n        *(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) | 0x208000;\n      }" { (expression_statement "lVar15 = *(long *)(lVar16 + 0x38);" (assignment_expression "lVar15 = *(long *)(lVar16 + 0x38)" identifier = (pointer_expression "*(long *)(lVar16 + 0x38)" * (cast_expression "(long *)(lVar16 + 0x38)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar16 + 0x38)" ( (binary_expression "lVar16 + 0x38" identifier + number_literal) ))))) ;) (expression_statement "pcVar31 = (char *)xmalloc(lVar15);" (assignment_expression "pcVar31 = (char *)xmalloc(lVar15)" identifier = (cast_expression "(char *)xmalloc(lVar15)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(lVar15)" identifier (argument_list "(lVar15)" ( identifier ))))) ;) (expression_statement "iVar9 = bfd_get_section_contents(plVar17[4],lVar16,pcVar31,0,lVar15);" (assignment_expression "iVar9 = bfd_get_section_contents(plVar17[4],lVar16,pcVar31,0,lVar15)" identifier = (call_expression "bfd_get_section_contents(plVar17[4],lVar16,pcVar31,0,lVar15)" identifier (argument_list "(plVar17[4],lVar16,pcVar31,0,lVar15)" ( (subscript_expression "plVar17[4]" identifier [ number_literal ]) , identifier , identifier , number_literal , identifier )))) ;) (if_statement "if (iVar9 == 0) {\n          uVar14 = dcgettext(0,"%X%P: unable to read .exports section contents\n",5);\n          FUN_001251f0(uVar14,lVar16);\n        }" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (compound_statement "{\n          uVar14 = dcgettext(0,"%X%P: unable to read .exports section contents\n",5);\n          FUN_001251f0(uVar14,lVar16);\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_001251f0(uVar14,lVar16);" (call_expression "FUN_001251f0(uVar14,lVar16)" identifier (argument_list "(uVar14,lVar16)" ( identifier , identifier ))) ;) })) (expression_statement "pcVar19 = pcVar31 + lVar15;" (assignment_expression "pcVar19 = pcVar31 + lVar15" identifier = (binary_expression "pcVar31 + lVar15" identifier + identifier)) ;) (for_statement "for (; pcVar31 < pcVar19; pcVar31 = pcVar31 + sVar12 + 1) {\n          uVar11 = FUN_0011b640(uVar11,pcVar31,0);\n          sVar12 = strlen(pcVar31);\n        }" for ( ; (binary_expression "pcVar31 < pcVar19" identifier < identifier) ; (assignment_expression "pcVar31 = pcVar31 + sVar12 + 1" identifier = (binary_expression "pcVar31 + sVar12 + 1" (binary_expression "pcVar31 + sVar12" identifier + identifier) + number_literal)) ) (compound_statement "{\n          uVar11 = FUN_0011b640(uVar11,pcVar31,0);\n          sVar12 = strlen(pcVar31);\n        }" { (expression_statement "uVar11 = FUN_0011b640(uVar11,pcVar31,0);" (assignment_expression "uVar11 = FUN_0011b640(uVar11,pcVar31,0)" identifier = (call_expression "FUN_0011b640(uVar11,pcVar31,0)" identifier (argument_list "(uVar11,pcVar31,0)" ( identifier , identifier , number_literal )))) ;) (expression_statement "sVar12 = strlen(pcVar31);" (assignment_expression "sVar12 = strlen(pcVar31)" identifier = (call_expression "strlen(pcVar31)" identifier (argument_list "(pcVar31)" ( identifier )))) ;) })) (expression_statement "*(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) | 0x208000;" (assignment_expression "*(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) | 0x208000" (pointer_expression "*(uint *)(lVar16 + 0x20)" * (cast_expression "(uint *)(lVar16 + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar16 + 0x20)" ( (binary_expression "lVar16 + 0x20" identifier + number_literal) )))) = (binary_expression "*(uint *)(lVar16 + 0x20) | 0x208000" (pointer_expression "*(uint *)(lVar16 + 0x20)" * (cast_expression "(uint *)(lVar16 + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar16 + 0x20)" ( (binary_expression "lVar16 + 0x20" identifier + number_literal) )))) | number_literal)) ;) })) })) (expression_statement "uVar14 = FUN_0011b640(0,&DAT_0013f157,0,0);" (assignment_expression "uVar14 = FUN_0011b640(0,&DAT_0013f157,0,0)" identifier = (call_expression "FUN_0011b640(0,&DAT_0013f157,0,0)" identifier (argument_list "(0,&DAT_0013f157,0,0)" ( number_literal , (pointer_expression "&DAT_0013f157" & identifier) , number_literal , number_literal )))) ;) (expression_statement "lVar15 = xcalloc(1,0x70);" (assignment_expression "lVar15 = xcalloc(1,0x70)" identifier = (call_expression "xcalloc(1,0x70)" identifier (argument_list "(1,0x70)" ( number_literal , number_literal )))) ;) (expression_statement "lVar16 = DAT_0017fc30;" (assignment_expression "lVar16 = DAT_0017fc30" identifier = identifier) ;) (expression_statement "*(undefined8 *)(lVar15 + 0x18) = uVar11;" (assignment_expression "*(undefined8 *)(lVar15 + 0x18) = uVar11" (pointer_expression "*(undefined8 *)(lVar15 + 0x18)" * (cast_expression "(undefined8 *)(lVar15 + 0x18)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar15 + 0x18)" ( (binary_expression "lVar15 + 0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined8 *)(lVar15 + 0x38) = uVar14;" (assignment_expression "*(undefined8 *)(lVar15 + 0x38) = uVar14" (pointer_expression "*(undefined8 *)(lVar15 + 0x38)" * (cast_expression "(undefined8 *)(lVar15 + 0x38)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar15 + 0x38)" ( (binary_expression "lVar15 + 0x38" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(lVar15 + 0x68) = FUN_00112f60;" (assignment_expression "*(code **)(lVar15 + 0x68) = FUN_00112f60" (pointer_expression "*(code **)(lVar15 + 0x68)" * (cast_expression "(code **)(lVar15 + 0x68)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar15 + 0x68)" ( (binary_expression "lVar15 + 0x68" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(lVar15 + 0x60) = 0xffffffff;" (assignment_expression "*(undefined4 *)(lVar15 + 0x60) = 0xffffffff" (pointer_expression "*(undefined4 *)(lVar15 + 0x60)" * (cast_expression "(undefined4 *)(lVar15 + 0x60)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar15 + 0x60)" ( (binary_expression "lVar15 + 0x60" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_0011b860(lVar16,lVar15,0);" (call_expression "FUN_0011b860(lVar16,lVar15,0)" identifier (argument_list "(lVar16,lVar15,0)" ( identifier , identifier , number_literal ))) ;) })) (expression_statement "FUN_0011eaa0();" (call_expression "FUN_0011eaa0()" identifier (argument_list "()" ( ))) ;) (if_statement "if ((DAT_0017fc4c != 0) &&\n     (cVar8 = *(char *)(*(long *)(DAT_0017fb10 + 8) + 0x1c), DAT_0017fb20 != 0)) {\n    lVar16 = DAT_0017fb20;\n    do {\n      for (puVar21 = *(undefined8 **)(lVar16 + 0x90); puVar21 != (undefined8 *)0x0;\n          puVar21 = (undefined8 *)puVar21[2]) {\n        while( true ) {\n          pbVar4 = (byte *)*puVar21;\n          bVar35 = *pbVar4;\n          if (bVar35 == 0) break;\n          bVar1 = _sch_istable[(ulong)bVar35 * 2];\n          pbVar20 = pbVar4;\n          while (((bVar1 & 0x8c) != 0 || (bVar35 == 0x5f))) {\n            pbVar20 = pbVar20 + 1;\n            bVar35 = *pbVar20;\n            if (bVar35 == 0) goto LAB_0011d178;\n            bVar1 = _sch_istable[(ulong)bVar35 * 2];\n          }\n          puVar21 = (undefined8 *)puVar21[2];\n          if (puVar21 == (undefined8 *)0x0) goto LAB_0011d163;\n        }\nLAB_0011d178:\n        sVar12 = strlen((char *)pbVar4);\n        pcVar31 = (char *)xmalloc(sVar12 + 10);\n        *pcVar31 = cVar8;\n        sprintf(pcVar31 + (cVar8 != '\0'),"__start_%s",pbVar4);\n        FUN_00112ee0(pcVar31,puVar21);\n        pcVar31[1] = cVar8;\n        builtin_strncpy(pcVar31 + (2 - (ulong)(cVar8 == '\0')),"__stop",6);\n        FUN_00112ee0(pcVar31 + 1,puVar21);\n        free(pcVar31);\n      }\nLAB_0011d163:\n      lVar16 = *(long *)(lVar16 + 0xf0);\n    } while (lVar16 != 0);\n  }" if (parenthesized_expression "((DAT_0017fc4c != 0) &&\n     (cVar8 = *(char *)(*(long *)(DAT_0017fb10 + 8) + 0x1c), DAT_0017fb20 != 0))" ( (binary_expression "(DAT_0017fc4c != 0) &&\n     (cVar8 = *(char *)(*(long *)(DAT_0017fb10 + 8) + 0x1c), DAT_0017fb20 != 0)" (parenthesized_expression "(DAT_0017fc4c != 0)" ( (binary_expression "DAT_0017fc4c != 0" identifier != number_literal) )) && (parenthesized_expression "(cVar8 = *(char *)(*(long *)(DAT_0017fb10 + 8) + 0x1c), DAT_0017fb20 != 0)" ( (comma_expression "cVar8 = *(char *)(*(long *)(DAT_0017fb10 + 8) + 0x1c), DAT_0017fb20 != 0" (assignment_expression "cVar8 = *(char *)(*(long *)(DAT_0017fb10 + 8) + 0x1c)" identifier = (pointer_expression "*(char *)(*(long *)(DAT_0017fb10 + 8) + 0x1c)" * (cast_expression "(char *)(*(long *)(DAT_0017fb10 + 8) + 0x1c)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(DAT_0017fb10 + 8) + 0x1c)" ( (binary_expression "*(long *)(DAT_0017fb10 + 8) + 0x1c" (pointer_expression "*(long *)(DAT_0017fb10 + 8)" * (cast_expression "(long *)(DAT_0017fb10 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0017fb10 + 8)" ( (binary_expression "DAT_0017fb10 + 8" identifier + number_literal) )))) + number_literal) ))))) , (binary_expression "DAT_0017fb20 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n    lVar16 = DAT_0017fb20;\n    do {\n      for (puVar21 = *(undefined8 **)(lVar16 + 0x90); puVar21 != (undefined8 *)0x0;\n          puVar21 = (undefined8 *)puVar21[2]) {\n        while( true ) {\n          pbVar4 = (byte *)*puVar21;\n          bVar35 = *pbVar4;\n          if (bVar35 == 0) break;\n          bVar1 = _sch_istable[(ulong)bVar35 * 2];\n          pbVar20 = pbVar4;\n          while (((bVar1 & 0x8c) != 0 || (bVar35 == 0x5f))) {\n            pbVar20 = pbVar20 + 1;\n            bVar35 = *pbVar20;\n            if (bVar35 == 0) goto LAB_0011d178;\n            bVar1 = _sch_istable[(ulong)bVar35 * 2];\n          }\n          puVar21 = (undefined8 *)puVar21[2];\n          if (puVar21 == (undefined8 *)0x0) goto LAB_0011d163;\n        }\nLAB_0011d178:\n        sVar12 = strlen((char *)pbVar4);\n        pcVar31 = (char *)xmalloc(sVar12 + 10);\n        *pcVar31 = cVar8;\n        sprintf(pcVar31 + (cVar8 != '\0'),"__start_%s",pbVar4);\n        FUN_00112ee0(pcVar31,puVar21);\n        pcVar31[1] = cVar8;\n        builtin_strncpy(pcVar31 + (2 - (ulong)(cVar8 == '\0')),"__stop",6);\n        FUN_00112ee0(pcVar31 + 1,puVar21);\n        free(pcVar31);\n      }\nLAB_0011d163:\n      lVar16 = *(long *)(lVar16 + 0xf0);\n    } while (lVar16 != 0);\n  }" { (expression_statement "lVar16 = DAT_0017fb20;" (assignment_expression "lVar16 = DAT_0017fb20" identifier = identifier) ;) (do_statement "do {\n      for (puVar21 = *(undefined8 **)(lVar16 + 0x90); puVar21 != (undefined8 *)0x0;\n          puVar21 = (undefined8 *)puVar21[2]) {\n        while( true ) {\n          pbVar4 = (byte *)*puVar21;\n          bVar35 = *pbVar4;\n          if (bVar35 == 0) break;\n          bVar1 = _sch_istable[(ulong)bVar35 * 2];\n          pbVar20 = pbVar4;\n          while (((bVar1 & 0x8c) != 0 || (bVar35 == 0x5f))) {\n            pbVar20 = pbVar20 + 1;\n            bVar35 = *pbVar20;\n            if (bVar35 == 0) goto LAB_0011d178;\n            bVar1 = _sch_istable[(ulong)bVar35 * 2];\n          }\n          puVar21 = (undefined8 *)puVar21[2];\n          if (puVar21 == (undefined8 *)0x0) goto LAB_0011d163;\n        }\nLAB_0011d178:\n        sVar12 = strlen((char *)pbVar4);\n        pcVar31 = (char *)xmalloc(sVar12 + 10);\n        *pcVar31 = cVar8;\n        sprintf(pcVar31 + (cVar8 != '\0'),"__start_%s",pbVar4);\n        FUN_00112ee0(pcVar31,puVar21);\n        pcVar31[1] = cVar8;\n        builtin_strncpy(pcVar31 + (2 - (ulong)(cVar8 == '\0')),"__stop",6);\n        FUN_00112ee0(pcVar31 + 1,puVar21);\n        free(pcVar31);\n      }\nLAB_0011d163:\n      lVar16 = *(long *)(lVar16 + 0xf0);\n    } while (lVar16 != 0);" do (compound_statement "{\n      for (puVar21 = *(undefined8 **)(lVar16 + 0x90); puVar21 != (undefined8 *)0x0;\n          puVar21 = (undefined8 *)puVar21[2]) {\n        while( true ) {\n          pbVar4 = (byte *)*puVar21;\n          bVar35 = *pbVar4;\n          if (bVar35 == 0) break;\n          bVar1 = _sch_istable[(ulong)bVar35 * 2];\n          pbVar20 = pbVar4;\n          while (((bVar1 & 0x8c) != 0 || (bVar35 == 0x5f))) {\n            pbVar20 = pbVar20 + 1;\n            bVar35 = *pbVar20;\n            if (bVar35 == 0) goto LAB_0011d178;\n            bVar1 = _sch_istable[(ulong)bVar35 * 2];\n          }\n          puVar21 = (undefined8 *)puVar21[2];\n          if (puVar21 == (undefined8 *)0x0) goto LAB_0011d163;\n        }\nLAB_0011d178:\n        sVar12 = strlen((char *)pbVar4);\n        pcVar31 = (char *)xmalloc(sVar12 + 10);\n        *pcVar31 = cVar8;\n        sprintf(pcVar31 + (cVar8 != '\0'),"__start_%s",pbVar4);\n        FUN_00112ee0(pcVar31,puVar21);\n        pcVar31[1] = cVar8;\n        builtin_strncpy(pcVar31 + (2 - (ulong)(cVar8 == '\0')),"__stop",6);\n        FUN_00112ee0(pcVar31 + 1,puVar21);\n        free(pcVar31);\n      }\nLAB_0011d163:\n      lVar16 = *(long *)(lVar16 + 0xf0);\n    }" { (for_statement "for (puVar21 = *(undefined8 **)(lVar16 + 0x90); puVar21 != (undefined8 *)0x0;\n          puVar21 = (undefined8 *)puVar21[2]) {\n        while( true ) {\n          pbVar4 = (byte *)*puVar21;\n          bVar35 = *pbVar4;\n          if (bVar35 == 0) break;\n          bVar1 = _sch_istable[(ulong)bVar35 * 2];\n          pbVar20 = pbVar4;\n          while (((bVar1 & 0x8c) != 0 || (bVar35 == 0x5f))) {\n            pbVar20 = pbVar20 + 1;\n            bVar35 = *pbVar20;\n            if (bVar35 == 0) goto LAB_0011d178;\n            bVar1 = _sch_istable[(ulong)bVar35 * 2];\n          }\n          puVar21 = (undefined8 *)puVar21[2];\n          if (puVar21 == (undefined8 *)0x0) goto LAB_0011d163;\n        }\nLAB_0011d178:\n        sVar12 = strlen((char *)pbVar4);\n        pcVar31 = (char *)xmalloc(sVar12 + 10);\n        *pcVar31 = cVar8;\n        sprintf(pcVar31 + (cVar8 != '\0'),"__start_%s",pbVar4);\n        FUN_00112ee0(pcVar31,puVar21);\n        pcVar31[1] = cVar8;\n        builtin_strncpy(pcVar31 + (2 - (ulong)(cVar8 == '\0')),"__stop",6);\n        FUN_00112ee0(pcVar31 + 1,puVar21);\n        free(pcVar31);\n      }" for ( (assignment_expression "puVar21 = *(undefined8 **)(lVar16 + 0x90)" identifier = (pointer_expression "*(undefined8 **)(lVar16 + 0x90)" * (cast_expression "(undefined8 **)(lVar16 + 0x90)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar16 + 0x90)" ( (binary_expression "lVar16 + 0x90" identifier + number_literal) ))))) ; (binary_expression "puVar21 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "puVar21 = (undefined8 *)puVar21[2]" identifier = (cast_expression "(undefined8 *)puVar21[2]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar21[2]" identifier [ number_literal ]))) ) (compound_statement "{\n        while( true ) {\n          pbVar4 = (byte *)*puVar21;\n          bVar35 = *pbVar4;\n          if (bVar35 == 0) break;\n          bVar1 = _sch_istable[(ulong)bVar35 * 2];\n          pbVar20 = pbVar4;\n          while (((bVar1 & 0x8c) != 0 || (bVar35 == 0x5f))) {\n            pbVar20 = pbVar20 + 1;\n            bVar35 = *pbVar20;\n            if (bVar35 == 0) goto LAB_0011d178;\n            bVar1 = _sch_istable[(ulong)bVar35 * 2];\n          }\n          puVar21 = (undefined8 *)puVar21[2];\n          if (puVar21 == (undefined8 *)0x0) goto LAB_0011d163;\n        }\nLAB_0011d178:\n        sVar12 = strlen((char *)pbVar4);\n        pcVar31 = (char *)xmalloc(sVar12 + 10);\n        *pcVar31 = cVar8;\n        sprintf(pcVar31 + (cVar8 != '\0'),"__start_%s",pbVar4);\n        FUN_00112ee0(pcVar31,puVar21);\n        pcVar31[1] = cVar8;\n        builtin_strncpy(pcVar31 + (2 - (ulong)(cVar8 == '\0')),"__stop",6);\n        FUN_00112ee0(pcVar31 + 1,puVar21);\n        free(pcVar31);\n      }" { (while_statement "while( true ) {\n          pbVar4 = (byte *)*puVar21;\n          bVar35 = *pbVar4;\n          if (bVar35 == 0) break;\n          bVar1 = _sch_istable[(ulong)bVar35 * 2];\n          pbVar20 = pbVar4;\n          while (((bVar1 & 0x8c) != 0 || (bVar35 == 0x5f))) {\n            pbVar20 = pbVar20 + 1;\n            bVar35 = *pbVar20;\n            if (bVar35 == 0) goto LAB_0011d178;\n            bVar1 = _sch_istable[(ulong)bVar35 * 2];\n          }\n          puVar21 = (undefined8 *)puVar21[2];\n          if (puVar21 == (undefined8 *)0x0) goto LAB_0011d163;\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          pbVar4 = (byte *)*puVar21;\n          bVar35 = *pbVar4;\n          if (bVar35 == 0) break;\n          bVar1 = _sch_istable[(ulong)bVar35 * 2];\n          pbVar20 = pbVar4;\n          while (((bVar1 & 0x8c) != 0 || (bVar35 == 0x5f))) {\n            pbVar20 = pbVar20 + 1;\n            bVar35 = *pbVar20;\n            if (bVar35 == 0) goto LAB_0011d178;\n            bVar1 = _sch_istable[(ulong)bVar35 * 2];\n          }\n          puVar21 = (undefined8 *)puVar21[2];\n          if (puVar21 == (undefined8 *)0x0) goto LAB_0011d163;\n        }" { (expression_statement "pbVar4 = (byte *)*puVar21;" (assignment_expression "pbVar4 = (byte *)*puVar21" identifier = (cast_expression "(byte *)*puVar21" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar21" * identifier))) ;) (expression_statement "bVar35 = *pbVar4;" (assignment_expression "bVar35 = *pbVar4" identifier = (pointer_expression "*pbVar4" * identifier)) ;) (if_statement "if (bVar35 == 0) break;" if (parenthesized_expression "(bVar35 == 0)" ( (binary_expression "bVar35 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "bVar1 = _sch_istable[(ulong)bVar35 * 2];" (assignment_expression "bVar1 = _sch_istable[(ulong)bVar35 * 2]" identifier = (subscript_expression "_sch_istable[(ulong)bVar35 * 2]" identifier [ (binary_expression "(ulong)bVar35 * 2" (cast_expression "(ulong)bVar35" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal) ])) ;) (expression_statement "pbVar20 = pbVar4;" (assignment_expression "pbVar20 = pbVar4" identifier = identifier) ;) (while_statement "while (((bVar1 & 0x8c) != 0 || (bVar35 == 0x5f))) {\n            pbVar20 = pbVar20 + 1;\n            bVar35 = *pbVar20;\n            if (bVar35 == 0) goto LAB_0011d178;\n            bVar1 = _sch_istable[(ulong)bVar35 * 2];\n          }" while (parenthesized_expression "(((bVar1 & 0x8c) != 0 || (bVar35 == 0x5f)))" ( (parenthesized_expression "((bVar1 & 0x8c) != 0 || (bVar35 == 0x5f))" ( (binary_expression "(bVar1 & 0x8c) != 0 || (bVar35 == 0x5f)" (binary_expression "(bVar1 & 0x8c) != 0" (parenthesized_expression "(bVar1 & 0x8c)" ( (binary_expression "bVar1 & 0x8c" identifier & number_literal) )) != number_literal) || (parenthesized_expression "(bVar35 == 0x5f)" ( (binary_expression "bVar35 == 0x5f" identifier == number_literal) ))) )) )) (compound_statement "{\n            pbVar20 = pbVar20 + 1;\n            bVar35 = *pbVar20;\n            if (bVar35 == 0) goto LAB_0011d178;\n            bVar1 = _sch_istable[(ulong)bVar35 * 2];\n          }" { (expression_statement "pbVar20 = pbVar20 + 1;" (assignment_expression "pbVar20 = pbVar20 + 1" identifier = (binary_expression "pbVar20 + 1" identifier + number_literal)) ;) (expression_statement "bVar35 = *pbVar20;" (assignment_expression "bVar35 = *pbVar20" identifier = (pointer_expression "*pbVar20" * identifier)) ;) (if_statement "if (bVar35 == 0) goto LAB_0011d178;" if (parenthesized_expression "(bVar35 == 0)" ( (binary_expression "bVar35 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0011d178;" goto statement_identifier ;)) (expression_statement "bVar1 = _sch_istable[(ulong)bVar35 * 2];" (assignment_expression "bVar1 = _sch_istable[(ulong)bVar35 * 2]" identifier = (subscript_expression "_sch_istable[(ulong)bVar35 * 2]" identifier [ (binary_expression "(ulong)bVar35 * 2" (cast_expression "(ulong)bVar35" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal) ])) ;) })) (expression_statement "puVar21 = (undefined8 *)puVar21[2];" (assignment_expression "puVar21 = (undefined8 *)puVar21[2]" identifier = (cast_expression "(undefined8 *)puVar21[2]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar21[2]" identifier [ number_literal ]))) ;) (if_statement "if (puVar21 == (undefined8 *)0x0) goto LAB_0011d163;" if (parenthesized_expression "(puVar21 == (undefined8 *)0x0)" ( (binary_expression "puVar21 == (undefined8 *)0x0" identifier == (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0011d163;" goto statement_identifier ;)) })) (labeled_statement "LAB_0011d178:\n        sVar12 = strlen((char *)pbVar4);" statement_identifier : (expression_statement "sVar12 = strlen((char *)pbVar4);" (assignment_expression "sVar12 = strlen((char *)pbVar4)" identifier = (call_expression "strlen((char *)pbVar4)" identifier (argument_list "((char *)pbVar4)" ( (cast_expression "(char *)pbVar4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;)) (expression_statement "pcVar31 = (char *)xmalloc(sVar12 + 10);" (assignment_expression "pcVar31 = (char *)xmalloc(sVar12 + 10)" identifier = (cast_expression "(char *)xmalloc(sVar12 + 10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(sVar12 + 10)" identifier (argument_list "(sVar12 + 10)" ( (binary_expression "sVar12 + 10" identifier + number_literal) ))))) ;) (expression_statement "*pcVar31 = cVar8;" (assignment_expression "*pcVar31 = cVar8" (pointer_expression "*pcVar31" * identifier) = identifier) ;) (expression_statement "sprintf(pcVar31 + (cVar8 != '\0'),"__start_%s",pbVar4);" (call_expression "sprintf(pcVar31 + (cVar8 != '\0'),"__start_%s",pbVar4)" identifier (argument_list "(pcVar31 + (cVar8 != '\0'),"__start_%s",pbVar4)" ( (binary_expression "pcVar31 + (cVar8 != '\0')" identifier + (parenthesized_expression "(cVar8 != '\0')" ( (binary_expression "cVar8 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) ))) , (string_literal ""__start_%s"" " string_content ") , identifier ))) ;) (expression_statement "FUN_00112ee0(pcVar31,puVar21);" (call_expression "FUN_00112ee0(pcVar31,puVar21)" identifier (argument_list "(pcVar31,puVar21)" ( identifier , identifier ))) ;) (expression_statement "pcVar31[1] = cVar8;" (assignment_expression "pcVar31[1] = cVar8" (subscript_expression "pcVar31[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "builtin_strncpy(pcVar31 + (2 - (ulong)(cVar8 == '\0')),"__stop",6);" (call_expression "builtin_strncpy(pcVar31 + (2 - (ulong)(cVar8 == '\0')),"__stop",6)" identifier (argument_list "(pcVar31 + (2 - (ulong)(cVar8 == '\0')),"__stop",6)" ( (binary_expression "pcVar31 + (2 - (ulong)(cVar8 == '\0'))" identifier + (parenthesized_expression "(2 - (ulong)(cVar8 == '\0'))" ( (binary_expression "2 - (ulong)(cVar8 == '\0')" number_literal - (call_expression "(ulong)(cVar8 == '\0')" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(cVar8 == '\0')" ( (binary_expression "cVar8 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )))) ))) , (string_literal ""__stop"" " string_content ") , number_literal ))) ;) (expression_statement "FUN_00112ee0(pcVar31 + 1,puVar21);" (call_expression "FUN_00112ee0(pcVar31 + 1,puVar21)" identifier (argument_list "(pcVar31 + 1,puVar21)" ( (binary_expression "pcVar31 + 1" identifier + number_literal) , identifier ))) ;) (expression_statement "free(pcVar31);" (call_expression "free(pcVar31)" identifier (argument_list "(pcVar31)" ( identifier ))) ;) })) (labeled_statement "LAB_0011d163:\n      lVar16 = *(long *)(lVar16 + 0xf0);" statement_identifier : (expression_statement "lVar16 = *(long *)(lVar16 + 0xf0);" (assignment_expression "lVar16 = *(long *)(lVar16 + 0xf0)" identifier = (pointer_expression "*(long *)(lVar16 + 0xf0)" * (cast_expression "(long *)(lVar16 + 0xf0)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar16 + 0xf0)" ( (binary_expression "lVar16 + 0xf0" identifier + number_literal) ))))) ;)) }) while (parenthesized_expression "(lVar16 != 0)" ( (binary_expression "lVar16 != 0" identifier != number_literal) )) ;) })) (expression_statement "FUN_001188a0(1);" (call_expression "FUN_001188a0(1)" identifier (argument_list "(1)" ( number_literal ))) ;) (expression_statement "puVar21 = DAT_0017f398;" (assignment_expression "puVar21 = DAT_0017f398" identifier = identifier) ;) (labeled_statement "joined_r0x0011bfdf:\n  if (puVar21 != (undefined8 *)0x0) {\n    do {\n      if (puVar21[3] != 0) {\n        FUN_00123150();\n        uVar11 = DAT_0017fd20;\n        if (DAT_0017fd38 == 0) {\n          uVar11 = *puVar21;\n          uVar14 = dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);\n          FUN_001251f0(uVar14,uVar11);\n        }\n        else {\n          puVar21[4] = DAT_0017fd20;\n          puVar21[7] = uVar11;\n        }\n      }\n      if (puVar21[6] != 0) {\n        FUN_00123150();\n        if (DAT_0017fd38 == 0) goto LAB_0011c1d0;\n        puVar21[5] = DAT_0017fd20;\n      }\n      puVar21 = (undefined8 *)puVar21[2];\n      if (puVar21 == (undefined8 *)0x0) break;\n    } while( true );\n  }" statement_identifier : (if_statement "if (puVar21 != (undefined8 *)0x0) {\n    do {\n      if (puVar21[3] != 0) {\n        FUN_00123150();\n        uVar11 = DAT_0017fd20;\n        if (DAT_0017fd38 == 0) {\n          uVar11 = *puVar21;\n          uVar14 = dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);\n          FUN_001251f0(uVar14,uVar11);\n        }\n        else {\n          puVar21[4] = DAT_0017fd20;\n          puVar21[7] = uVar11;\n        }\n      }\n      if (puVar21[6] != 0) {\n        FUN_00123150();\n        if (DAT_0017fd38 == 0) goto LAB_0011c1d0;\n        puVar21[5] = DAT_0017fd20;\n      }\n      puVar21 = (undefined8 *)puVar21[2];\n      if (puVar21 == (undefined8 *)0x0) break;\n    } while( true );\n  }" if (parenthesized_expression "(puVar21 != (undefined8 *)0x0)" ( (binary_expression "puVar21 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    do {\n      if (puVar21[3] != 0) {\n        FUN_00123150();\n        uVar11 = DAT_0017fd20;\n        if (DAT_0017fd38 == 0) {\n          uVar11 = *puVar21;\n          uVar14 = dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);\n          FUN_001251f0(uVar14,uVar11);\n        }\n        else {\n          puVar21[4] = DAT_0017fd20;\n          puVar21[7] = uVar11;\n        }\n      }\n      if (puVar21[6] != 0) {\n        FUN_00123150();\n        if (DAT_0017fd38 == 0) goto LAB_0011c1d0;\n        puVar21[5] = DAT_0017fd20;\n      }\n      puVar21 = (undefined8 *)puVar21[2];\n      if (puVar21 == (undefined8 *)0x0) break;\n    } while( true );\n  }" { (do_statement "do {\n      if (puVar21[3] != 0) {\n        FUN_00123150();\n        uVar11 = DAT_0017fd20;\n        if (DAT_0017fd38 == 0) {\n          uVar11 = *puVar21;\n          uVar14 = dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);\n          FUN_001251f0(uVar14,uVar11);\n        }\n        else {\n          puVar21[4] = DAT_0017fd20;\n          puVar21[7] = uVar11;\n        }\n      }\n      if (puVar21[6] != 0) {\n        FUN_00123150();\n        if (DAT_0017fd38 == 0) goto LAB_0011c1d0;\n        puVar21[5] = DAT_0017fd20;\n      }\n      puVar21 = (undefined8 *)puVar21[2];\n      if (puVar21 == (undefined8 *)0x0) break;\n    } while( true );" do (compound_statement "{\n      if (puVar21[3] != 0) {\n        FUN_00123150();\n        uVar11 = DAT_0017fd20;\n        if (DAT_0017fd38 == 0) {\n          uVar11 = *puVar21;\n          uVar14 = dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);\n          FUN_001251f0(uVar14,uVar11);\n        }\n        else {\n          puVar21[4] = DAT_0017fd20;\n          puVar21[7] = uVar11;\n        }\n      }\n      if (puVar21[6] != 0) {\n        FUN_00123150();\n        if (DAT_0017fd38 == 0) goto LAB_0011c1d0;\n        puVar21[5] = DAT_0017fd20;\n      }\n      puVar21 = (undefined8 *)puVar21[2];\n      if (puVar21 == (undefined8 *)0x0) break;\n    }" { (if_statement "if (puVar21[3] != 0) {\n        FUN_00123150();\n        uVar11 = DAT_0017fd20;\n        if (DAT_0017fd38 == 0) {\n          uVar11 = *puVar21;\n          uVar14 = dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);\n          FUN_001251f0(uVar14,uVar11);\n        }\n        else {\n          puVar21[4] = DAT_0017fd20;\n          puVar21[7] = uVar11;\n        }\n      }" if (parenthesized_expression "(puVar21[3] != 0)" ( (binary_expression "puVar21[3] != 0" (subscript_expression "puVar21[3]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n        FUN_00123150();\n        uVar11 = DAT_0017fd20;\n        if (DAT_0017fd38 == 0) {\n          uVar11 = *puVar21;\n          uVar14 = dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);\n          FUN_001251f0(uVar14,uVar11);\n        }\n        else {\n          puVar21[4] = DAT_0017fd20;\n          puVar21[7] = uVar11;\n        }\n      }" { (expression_statement "FUN_00123150();" (call_expression "FUN_00123150()" identifier (argument_list "()" ( ))) ;) (expression_statement "uVar11 = DAT_0017fd20;" (assignment_expression "uVar11 = DAT_0017fd20" identifier = identifier) ;) (if_statement "if (DAT_0017fd38 == 0) {\n          uVar11 = *puVar21;\n          uVar14 = dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);\n          FUN_001251f0(uVar14,uVar11);\n        }\n        else {\n          puVar21[4] = DAT_0017fd20;\n          puVar21[7] = uVar11;\n        }" if (parenthesized_expression "(DAT_0017fd38 == 0)" ( (binary_expression "DAT_0017fd38 == 0" identifier == number_literal) )) (compound_statement "{\n          uVar11 = *puVar21;\n          uVar14 = dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);\n          FUN_001251f0(uVar14,uVar11);\n        }" { (expression_statement "uVar11 = *puVar21;" (assignment_expression "uVar11 = *puVar21" identifier = (pointer_expression "*puVar21" * 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_001251f0(uVar14,uVar11);" (call_expression "FUN_001251f0(uVar14,uVar11)" identifier (argument_list "(uVar14,uVar11)" ( identifier , identifier ))) ;) }) (else_clause "else {\n          puVar21[4] = DAT_0017fd20;\n          puVar21[7] = uVar11;\n        }" else (compound_statement "{\n          puVar21[4] = DAT_0017fd20;\n          puVar21[7] = uVar11;\n        }" { (expression_statement "puVar21[4] = DAT_0017fd20;" (assignment_expression "puVar21[4] = DAT_0017fd20" (subscript_expression "puVar21[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar21[7] = uVar11;" (assignment_expression "puVar21[7] = uVar11" (subscript_expression "puVar21[7]" identifier [ number_literal ]) = identifier) ;) }))) })) (if_statement "if (puVar21[6] != 0) {\n        FUN_00123150();\n        if (DAT_0017fd38 == 0) goto LAB_0011c1d0;\n        puVar21[5] = DAT_0017fd20;\n      }" if (parenthesized_expression "(puVar21[6] != 0)" ( (binary_expression "puVar21[6] != 0" (subscript_expression "puVar21[6]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n        FUN_00123150();\n        if (DAT_0017fd38 == 0) goto LAB_0011c1d0;\n        puVar21[5] = DAT_0017fd20;\n      }" { (expression_statement "FUN_00123150();" (call_expression "FUN_00123150()" identifier (argument_list "()" ( ))) ;) (if_statement "if (DAT_0017fd38 == 0) goto LAB_0011c1d0;" if (parenthesized_expression "(DAT_0017fd38 == 0)" ( (binary_expression "DAT_0017fd38 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0011c1d0;" goto statement_identifier ;)) (expression_statement "puVar21[5] = DAT_0017fd20;" (assignment_expression "puVar21[5] = DAT_0017fd20" (subscript_expression "puVar21[5]" identifier [ number_literal ]) = identifier) ;) })) (expression_statement "puVar21 = (undefined8 *)puVar21[2];" (assignment_expression "puVar21 = (undefined8 *)puVar21[2]" identifier = (cast_expression "(undefined8 *)puVar21[2]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar21[2]" identifier [ number_literal ]))) ;) (if_statement "if (puVar21 == (undefined8 *)0x0) break;" if (parenthesized_expression "(puVar21 == (undefined8 *)0x0)" ( (binary_expression "puVar21 == (undefined8 *)0x0" identifier == (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) }) while (parenthesized_expression "( true )" ( true )) ;) }))) (expression_statement "DAT_0017fd00 = 0;" (assignment_expression "DAT_0017fd00 = 0" identifier = number_literal) ;) (if_statement "if (((DAT_0017fac7 & 0x20) == 0) && (((DAT_0017fac0 & 3) != 2 || (DAT_0017fbc0 != 0)))) {\n    if (DAT_0017fc6c == 0) {\n      bfd_link_hash_traverse(DAT_0017fae8,FUN_001145f0,0);\n    }\n    else {\n      if (DAT_0017fc6c == 2) {\n        local_40 = 4;\n        do {\n          bfd_link_hash_traverse(DAT_0017fae8,FUN_001145f0,&local_40);\n          local_40 = local_40 - 1;\n        } while (local_40 != 0);\n        local_40 = 0;\n      }\n      else {\n        local_40 = 0;\n        do {\n          bfd_link_hash_traverse(DAT_0017fae8,FUN_001145f0,&local_40);\n          local_40 = local_40 + 1;\n        } while (local_40 < 5);\n        local_40 = 0xffffffff;\n      }\n      bfd_link_hash_traverse(DAT_0017fae8,FUN_001145f0,&local_40);\n    }\n  }" if (parenthesized_expression "(((DAT_0017fac7 & 0x20) == 0) && (((DAT_0017fac0 & 3) != 2 || (DAT_0017fbc0 != 0))))" ( (binary_expression "((DAT_0017fac7 & 0x20) == 0) && (((DAT_0017fac0 & 3) != 2 || (DAT_0017fbc0 != 0)))" (parenthesized_expression "((DAT_0017fac7 & 0x20) == 0)" ( (binary_expression "(DAT_0017fac7 & 0x20) == 0" (parenthesized_expression "(DAT_0017fac7 & 0x20)" ( (binary_expression "DAT_0017fac7 & 0x20" identifier & number_literal) )) == number_literal) )) && (parenthesized_expression "(((DAT_0017fac0 & 3) != 2 || (DAT_0017fbc0 != 0)))" ( (parenthesized_expression "((DAT_0017fac0 & 3) != 2 || (DAT_0017fbc0 != 0))" ( (binary_expression "(DAT_0017fac0 & 3) != 2 || (DAT_0017fbc0 != 0)" (binary_expression "(DAT_0017fac0 & 3) != 2" (parenthesized_expression "(DAT_0017fac0 & 3)" ( (binary_expression "DAT_0017fac0 & 3" identifier & number_literal) )) != number_literal) || (parenthesized_expression "(DAT_0017fbc0 != 0)" ( (binary_expression "DAT_0017fbc0 != 0" identifier != number_literal) ))) )) ))) )) (compound_statement "{\n    if (DAT_0017fc6c == 0) {\n      bfd_link_hash_traverse(DAT_0017fae8,FUN_001145f0,0);\n    }\n    else {\n      if (DAT_0017fc6c == 2) {\n        local_40 = 4;\n        do {\n          bfd_link_hash_traverse(DAT_0017fae8,FUN_001145f0,&local_40);\n          local_40 = local_40 - 1;\n        } while (local_40 != 0);\n        local_40 = 0;\n      }\n      else {\n        local_40 = 0;\n        do {\n          bfd_link_hash_traverse(DAT_0017fae8,FUN_001145f0,&local_40);\n          local_40 = local_40 + 1;\n        } while (local_40 < 5);\n        local_40 = 0xffffffff;\n      }\n      bfd_link_hash_traverse(DAT_0017fae8,FUN_001145f0,&local_40);\n    }\n  }" { (if_statement "if (DAT_0017fc6c == 0) {\n      bfd_link_hash_traverse(DAT_0017fae8,FUN_001145f0,0);\n    }\n    else {\n      if (DAT_0017fc6c == 2) {\n        local_40 = 4;\n        do {\n          bfd_link_hash_traverse(DAT_0017fae8,FUN_001145f0,&local_40);\n          local_40 = local_40 - 1;\n        } while (local_40 != 0);\n        local_40 = 0;\n      }\n      else {\n        local_40 = 0;\n        do {\n          bfd_link_hash_traverse(DAT_0017fae8,FUN_001145f0,&local_40);\n          local_40 = local_40 + 1;\n        } while (local_40 < 5);\n        local_40 = 0xffffffff;\n      }\n      bfd_link_hash_traverse(DAT_0017fae8,FUN_001145f0,&local_40);\n    }" if (parenthesized_expression "(DAT_0017fc6c == 0)" ( (binary_expression "DAT_0017fc6c == 0" identifier == number_literal) )) (compound_statement "{\n      bfd_link_hash_traverse(DAT_0017fae8,FUN_001145f0,0);\n    }" { (expression_statement "bfd_link_hash_traverse(DAT_0017fae8,FUN_001145f0,0);" (call_expression "bfd_link_hash_traverse(DAT_0017fae8,FUN_001145f0,0)" identifier (argument_list "(DAT_0017fae8,FUN_001145f0,0)" ( identifier , identifier , number_literal ))) ;) }) (else_clause "else {\n      if (DAT_0017fc6c == 2) {\n        local_40 = 4;\n        do {\n          bfd_link_hash_traverse(DAT_0017fae8,FUN_001145f0,&local_40);\n          local_40 = local_40 - 1;\n        } while (local_40 != 0);\n        local_40 = 0;\n      }\n      else {\n        local_40 = 0;\n        do {\n          bfd_link_hash_traverse(DAT_0017fae8,FUN_001145f0,&local_40);\n          local_40 = local_40 + 1;\n        } while (local_40 < 5);\n        local_40 = 0xffffffff;\n      }\n      bfd_link_hash_traverse(DAT_0017fae8,FUN_001145f0,&local_40);\n    }" else (compound_statement "{\n      if (DAT_0017fc6c == 2) {\n        local_40 = 4;\n        do {\n          bfd_link_hash_traverse(DAT_0017fae8,FUN_001145f0,&local_40);\n          local_40 = local_40 - 1;\n        } while (local_40 != 0);\n        local_40 = 0;\n      }\n      else {\n        local_40 = 0;\n        do {\n          bfd_link_hash_traverse(DAT_0017fae8,FUN_001145f0,&local_40);\n          local_40 = local_40 + 1;\n        } while (local_40 < 5);\n        local_40 = 0xffffffff;\n      }\n      bfd_link_hash_traverse(DAT_0017fae8,FUN_001145f0,&local_40);\n    }" { (if_statement "if (DAT_0017fc6c == 2) {\n        local_40 = 4;\n        do {\n          bfd_link_hash_traverse(DAT_0017fae8,FUN_001145f0,&local_40);\n          local_40 = local_40 - 1;\n        } while (local_40 != 0);\n        local_40 = 0;\n      }\n      else {\n        local_40 = 0;\n        do {\n          bfd_link_hash_traverse(DAT_0017fae8,FUN_001145f0,&local_40);\n          local_40 = local_40 + 1;\n        } while (local_40 < 5);\n        local_40 = 0xffffffff;\n      }" if (parenthesized_expression "(DAT_0017fc6c == 2)" ( (binary_expression "DAT_0017fc6c == 2" identifier == number_literal) )) (compound_statement "{\n        local_40 = 4;\n        do {\n          bfd_link_hash_traverse(DAT_0017fae8,FUN_001145f0,&local_40);\n          local_40 = local_40 - 1;\n        } while (local_40 != 0);\n        local_40 = 0;\n      }" { (expression_statement "local_40 = 4;" (assignment_expression "local_40 = 4" identifier = number_literal) ;) (do_statement "do {\n          bfd_link_hash_traverse(DAT_0017fae8,FUN_001145f0,&local_40);\n          local_40 = local_40 - 1;\n        } while (local_40 != 0);" do (compound_statement "{\n          bfd_link_hash_traverse(DAT_0017fae8,FUN_001145f0,&local_40);\n          local_40 = local_40 - 1;\n        }" { (expression_statement "bfd_link_hash_traverse(DAT_0017fae8,FUN_001145f0,&local_40);" (call_expression "bfd_link_hash_traverse(DAT_0017fae8,FUN_001145f0,&local_40)" identifier (argument_list "(DAT_0017fae8,FUN_001145f0,&local_40)" ( identifier , identifier , (pointer_expression "&local_40" & identifier) ))) ;) (expression_statement "local_40 = local_40 - 1;" (assignment_expression "local_40 = local_40 - 1" identifier = (binary_expression "local_40 - 1" identifier - number_literal)) ;) }) while (parenthesized_expression "(local_40 != 0)" ( (binary_expression "local_40 != 0" identifier != number_literal) )) ;) (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" identifier = number_literal) ;) }) (else_clause "else {\n        local_40 = 0;\n        do {\n          bfd_link_hash_traverse(DAT_0017fae8,FUN_001145f0,&local_40);\n          local_40 = local_40 + 1;\n        } while (local_40 < 5);\n        local_40 = 0xffffffff;\n      }" else (compound_statement "{\n        local_40 = 0;\n        do {\n          bfd_link_hash_traverse(DAT_0017fae8,FUN_001145f0,&local_40);\n          local_40 = local_40 + 1;\n        } while (local_40 < 5);\n        local_40 = 0xffffffff;\n      }" { (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" identifier = number_literal) ;) (do_statement "do {\n          bfd_link_hash_traverse(DAT_0017fae8,FUN_001145f0,&local_40);\n          local_40 = local_40 + 1;\n        } while (local_40 < 5);" do (compound_statement "{\n          bfd_link_hash_traverse(DAT_0017fae8,FUN_001145f0,&local_40);\n          local_40 = local_40 + 1;\n        }" { (expression_statement "bfd_link_hash_traverse(DAT_0017fae8,FUN_001145f0,&local_40);" (call_expression "bfd_link_hash_traverse(DAT_0017fae8,FUN_001145f0,&local_40)" identifier (argument_list "(DAT_0017fae8,FUN_001145f0,&local_40)" ( identifier , identifier , (pointer_expression "&local_40" & identifier) ))) ;) (expression_statement "local_40 = local_40 + 1;" (assignment_expression "local_40 = local_40 + 1" identifier = (binary_expression "local_40 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(local_40 < 5)" ( (binary_expression "local_40 < 5" identifier < number_literal) )) ;) (expression_statement "local_40 = 0xffffffff;" (assignment_expression "local_40 = 0xffffffff" identifier = number_literal) ;) }))) (expression_statement "bfd_link_hash_traverse(DAT_0017fae8,FUN_001145f0,&local_40);" (call_expression "bfd_link_hash_traverse(DAT_0017fae8,FUN_001145f0,&local_40)" identifier (argument_list "(DAT_0017fae8,FUN_001145f0,&local_40)" ( identifier , identifier , (pointer_expression "&local_40" & identifier) ))) ;) }))) })) (expression_statement "FUN_00119400(DAT_0017f430);" (call_expression "FUN_00119400(DAT_0017f430)" identifier (argument_list "(DAT_0017f430)" ( identifier ))) ;) (expression_statement "bVar35 = DAT_0017fac0;" (assignment_expression "bVar35 = DAT_0017fac0" identifier = identifier) ;) (expression_statement "plVar17 = DAT_0017f2f0;" (assignment_expression "plVar17 = DAT_0017f2f0" identifier = identifier) ;) (if_statement "if ((DAT_0017fac0 & 3) == 2) {\n    for (; plVar17 != (long *)0x0; plVar17 = (long *)plVar17[6]) {\n      if ((*(byte *)((long)plVar17 + 0x49) & 0x20) == 0) {\n        for (lVar16 = *(long *)(plVar17[4] + 0x90); lVar16 != 0; lVar16 = *(long *)(lVar16 + 0x10))\n        {\n          if ((*(uint *)(lVar16 + 0x20) & 0x2000) == 0) {\n            *(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) & 0xffff7fff;\n          }\n        }\n      }\n    }\n  }" if (parenthesized_expression "((DAT_0017fac0 & 3) == 2)" ( (binary_expression "(DAT_0017fac0 & 3) == 2" (parenthesized_expression "(DAT_0017fac0 & 3)" ( (binary_expression "DAT_0017fac0 & 3" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n    for (; plVar17 != (long *)0x0; plVar17 = (long *)plVar17[6]) {\n      if ((*(byte *)((long)plVar17 + 0x49) & 0x20) == 0) {\n        for (lVar16 = *(long *)(plVar17[4] + 0x90); lVar16 != 0; lVar16 = *(long *)(lVar16 + 0x10))\n        {\n          if ((*(uint *)(lVar16 + 0x20) & 0x2000) == 0) {\n            *(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) & 0xffff7fff;\n          }\n        }\n      }\n    }\n  }" { (for_statement "for (; plVar17 != (long *)0x0; plVar17 = (long *)plVar17[6]) {\n      if ((*(byte *)((long)plVar17 + 0x49) & 0x20) == 0) {\n        for (lVar16 = *(long *)(plVar17[4] + 0x90); lVar16 != 0; lVar16 = *(long *)(lVar16 + 0x10))\n        {\n          if ((*(uint *)(lVar16 + 0x20) & 0x2000) == 0) {\n            *(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) & 0xffff7fff;\n          }\n        }\n      }\n    }" for ( ; (binary_expression "plVar17 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "plVar17 = (long *)plVar17[6]" identifier = (cast_expression "(long *)plVar17[6]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar17[6]" identifier [ number_literal ]))) ) (compound_statement "{\n      if ((*(byte *)((long)plVar17 + 0x49) & 0x20) == 0) {\n        for (lVar16 = *(long *)(plVar17[4] + 0x90); lVar16 != 0; lVar16 = *(long *)(lVar16 + 0x10))\n        {\n          if ((*(uint *)(lVar16 + 0x20) & 0x2000) == 0) {\n            *(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) & 0xffff7fff;\n          }\n        }\n      }\n    }" { (if_statement "if ((*(byte *)((long)plVar17 + 0x49) & 0x20) == 0) {\n        for (lVar16 = *(long *)(plVar17[4] + 0x90); lVar16 != 0; lVar16 = *(long *)(lVar16 + 0x10))\n        {\n          if ((*(uint *)(lVar16 + 0x20) & 0x2000) == 0) {\n            *(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) & 0xffff7fff;\n          }\n        }\n      }" if (parenthesized_expression "((*(byte *)((long)plVar17 + 0x49) & 0x20) == 0)" ( (binary_expression "(*(byte *)((long)plVar17 + 0x49) & 0x20) == 0" (parenthesized_expression "(*(byte *)((long)plVar17 + 0x49) & 0x20)" ( (binary_expression "*(byte *)((long)plVar17 + 0x49) & 0x20" (pointer_expression "*(byte *)((long)plVar17 + 0x49)" * (cast_expression "(byte *)((long)plVar17 + 0x49)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar17 + 0x49)" ( (binary_expression "(long)plVar17 + 0x49" (cast_expression "(long)plVar17" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n        for (lVar16 = *(long *)(plVar17[4] + 0x90); lVar16 != 0; lVar16 = *(long *)(lVar16 + 0x10))\n        {\n          if ((*(uint *)(lVar16 + 0x20) & 0x2000) == 0) {\n            *(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) & 0xffff7fff;\n          }\n        }\n      }" { (for_statement "for (lVar16 = *(long *)(plVar17[4] + 0x90); lVar16 != 0; lVar16 = *(long *)(lVar16 + 0x10))\n        {\n          if ((*(uint *)(lVar16 + 0x20) & 0x2000) == 0) {\n            *(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) & 0xffff7fff;\n          }\n        }" for ( (assignment_expression "lVar16 = *(long *)(plVar17[4] + 0x90)" identifier = (pointer_expression "*(long *)(plVar17[4] + 0x90)" * (cast_expression "(long *)(plVar17[4] + 0x90)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar17[4] + 0x90)" ( (binary_expression "plVar17[4] + 0x90" (subscript_expression "plVar17[4]" identifier [ number_literal ]) + number_literal) ))))) ; (binary_expression "lVar16 != 0" identifier != number_literal) ; (assignment_expression "lVar16 = *(long *)(lVar16 + 0x10)" identifier = (pointer_expression "*(long *)(lVar16 + 0x10)" * (cast_expression "(long *)(lVar16 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar16 + 0x10)" ( (binary_expression "lVar16 + 0x10" identifier + number_literal) ))))) ) (compound_statement "{\n          if ((*(uint *)(lVar16 + 0x20) & 0x2000) == 0) {\n            *(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) & 0xffff7fff;\n          }\n        }" { (if_statement "if ((*(uint *)(lVar16 + 0x20) & 0x2000) == 0) {\n            *(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) & 0xffff7fff;\n          }" if (parenthesized_expression "((*(uint *)(lVar16 + 0x20) & 0x2000) == 0)" ( (binary_expression "(*(uint *)(lVar16 + 0x20) & 0x2000) == 0" (parenthesized_expression "(*(uint *)(lVar16 + 0x20) & 0x2000)" ( (binary_expression "*(uint *)(lVar16 + 0x20) & 0x2000" (pointer_expression "*(uint *)(lVar16 + 0x20)" * (cast_expression "(uint *)(lVar16 + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar16 + 0x20)" ( (binary_expression "lVar16 + 0x20" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n            *(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) & 0xffff7fff;\n          }" { (expression_statement "*(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) & 0xffff7fff;" (assignment_expression "*(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) & 0xffff7fff" (pointer_expression "*(uint *)(lVar16 + 0x20)" * (cast_expression "(uint *)(lVar16 + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar16 + 0x20)" ( (binary_expression "lVar16 + 0x20" identifier + number_literal) )))) = (binary_expression "*(uint *)(lVar16 + 0x20) & 0xffff7fff" (pointer_expression "*(uint *)(lVar16 + 0x20)" * (cast_expression "(uint *)(lVar16 + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar16 + 0x20)" ( (binary_expression "lVar16 + 0x20" identifier + number_literal) )))) & number_literal)) ;) })) })) })) })) })) (if_statement "if ((bVar35 & 0x40) != 0) {\n    (**(code **)(*(long *)(DAT_0017fb10 + 8) + 0x2f0))(DAT_0017fb10,&DAT_0017fac0);\n  }" if (parenthesized_expression "((bVar35 & 0x40) != 0)" ( (binary_expression "(bVar35 & 0x40) != 0" (parenthesized_expression "(bVar35 & 0x40)" ( (binary_expression "bVar35 & 0x40" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n    (**(code **)(*(long *)(DAT_0017fb10 + 8) + 0x2f0))(DAT_0017fb10,&DAT_0017fac0);\n  }" { (expression_statement "(**(code **)(*(long *)(DAT_0017fb10 + 8) + 0x2f0))(DAT_0017fb10,&DAT_0017fac0);" (call_expression "(**(code **)(*(long *)(DAT_0017fb10 + 8) + 0x2f0))(DAT_0017fb10,&DAT_0017fac0)" (parenthesized_expression "(**(code **)(*(long *)(DAT_0017fb10 + 8) + 0x2f0))" ( (pointer_expression "**(code **)(*(long *)(DAT_0017fb10 + 8) + 0x2f0)" * (pointer_expression "*(code **)(*(long *)(DAT_0017fb10 + 8) + 0x2f0)" * (cast_expression "(code **)(*(long *)(DAT_0017fb10 + 8) + 0x2f0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)(DAT_0017fb10 + 8) + 0x2f0)" ( (binary_expression "*(long *)(DAT_0017fb10 + 8) + 0x2f0" (pointer_expression "*(long *)(DAT_0017fb10 + 8)" * (cast_expression "(long *)(DAT_0017fb10 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0017fb10 + 8)" ( (binary_expression "DAT_0017fb10 + 8" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(DAT_0017fb10,&DAT_0017fac0)" ( identifier , (pointer_expression "&DAT_0017fac0" & identifier) ))) ;) })) (expression_statement "lVar16 = DAT_0017fb20;" (assignment_expression "lVar16 = DAT_0017fb20" identifier = identifier) ;) (if_statement "if ((DAT_0017fac6 & 0x20) != 0) {\n    for (; lVar16 != 0; lVar16 = *(long *)(lVar16 + 0xf0)) {\n      iVar9 = bfd_link_check_relocs(lVar16,&DAT_0017fac0);\n      if (iVar9 == 0) {\n        DAT_0017fc44 = 0;\n      }\n    }\n  }" if (parenthesized_expression "((DAT_0017fac6 & 0x20) != 0)" ( (binary_expression "(DAT_0017fac6 & 0x20) != 0" (parenthesized_expression "(DAT_0017fac6 & 0x20)" ( (binary_expression "DAT_0017fac6 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n    for (; lVar16 != 0; lVar16 = *(long *)(lVar16 + 0xf0)) {\n      iVar9 = bfd_link_check_relocs(lVar16,&DAT_0017fac0);\n      if (iVar9 == 0) {\n        DAT_0017fc44 = 0;\n      }\n    }\n  }" { (for_statement "for (; lVar16 != 0; lVar16 = *(long *)(lVar16 + 0xf0)) {\n      iVar9 = bfd_link_check_relocs(lVar16,&DAT_0017fac0);\n      if (iVar9 == 0) {\n        DAT_0017fc44 = 0;\n      }\n    }" for ( ; (binary_expression "lVar16 != 0" identifier != number_literal) ; (assignment_expression "lVar16 = *(long *)(lVar16 + 0xf0)" identifier = (pointer_expression "*(long *)(lVar16 + 0xf0)" * (cast_expression "(long *)(lVar16 + 0xf0)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar16 + 0xf0)" ( (binary_expression "lVar16 + 0xf0" identifier + number_literal) ))))) ) (compound_statement "{\n      iVar9 = bfd_link_check_relocs(lVar16,&DAT_0017fac0);\n      if (iVar9 == 0) {\n        DAT_0017fc44 = 0;\n      }\n    }" { (expression_statement "iVar9 = bfd_link_check_relocs(lVar16,&DAT_0017fac0);" (assignment_expression "iVar9 = bfd_link_check_relocs(lVar16,&DAT_0017fac0)" identifier = (call_expression "bfd_link_check_relocs(lVar16,&DAT_0017fac0)" identifier (argument_list "(lVar16,&DAT_0017fac0)" ( identifier , (pointer_expression "&DAT_0017fac0" & identifier) )))) ;) (if_statement "if (iVar9 == 0) {\n        DAT_0017fc44 = 0;\n      }" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (compound_statement "{\n        DAT_0017fc44 = 0;\n      }" { (expression_statement "DAT_0017fc44 = 0;" (assignment_expression "DAT_0017fc44 = 0" identifier = number_literal) ;) })) })) })) (expression_statement "FUN_00123ba0();" (call_expression "FUN_00123ba0()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_001124e0(DAT_0017f430);" (call_expression "FUN_001124e0(DAT_0017f430)" identifier (argument_list "(DAT_0017f430)" ( identifier ))) ;) (expression_statement "_DAT_0017f2c0 = _DAT_0017f2c0 + 1;" (assignment_expression "_DAT_0017f2c0 = _DAT_0017f2c0 + 1" identifier = (binary_expression "_DAT_0017f2c0 + 1" identifier + number_literal)) ;) (expression_statement "FUN_00119520(DAT_0017f430,0,0);" (call_expression "FUN_00119520(DAT_0017f430,0,0)" identifier (argument_list "(DAT_0017f430,0,0)" ( identifier , number_literal , number_literal ))) ;) (expression_statement "plVar18 = (long *)0x0;" (assignment_expression "plVar18 = (long *)0x0" identifier = (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "plVar26 = (long *)0x0;" (assignment_expression "plVar26 = (long *)0x0" identifier = (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "plVar17 = DAT_0017fa60;" (assignment_expression "plVar17 = DAT_0017fa60" identifier = identifier) ;) (while_statement "while (plVar36 = plVar17, plVar3 = (long *)*plVar36, plVar3 != (long *)0x0) {\n    plVar17 = plVar3;\n    if ((int)plVar3[1] == 0) {\n      if ((plVar26 != (long *)0x0) && (plVar3 != (long *)plVar26[4])) {\n        FUN_001252b0("../../ld/ldlang.c",0xea0);\n        plVar17 = (long *)*plVar36;\n      }\n      *(int *)((long)plVar3 + 0x84) = -2 - *(int *)((long)plVar3 + 0x84);\n      plVar26 = plVar3;\n      if (plVar18 == (long *)0x0) {\n        plVar18 = plVar3;\n      }\n    }\n    else if ((int)plVar3[1] == 0xe) {\n      lVar16 = FUN_00116e20(plVar3[2],0,0);\n      if (lVar16 == 0) {\nLAB_0011c415:\n        lVar16 = plVar3[2];\n        uVar11 = dcgettext(0,"%F%P: %s not found for insert\n",5);\n        FUN_001251f0(uVar11,lVar16);\n        plVar17 = DAT_0017f2f0;\n        goto joined_r0x0011c458;\n      }\n      if ((int)plVar3[3] != 0) {\n        do {\n          lVar16 = *(long *)(lVar16 + 0x28);\n          if (lVar16 == 0) goto LAB_0011c415;\n        } while (*(int *)(lVar16 + 0x84) < 0);\n      }\n      if (plVar26 != (long *)0x0) {\n        lVar15 = plVar18[5];\n        lVar13 = plVar26[4];\n        *(long *)(lVar15 + 0x20) = lVar13;\n        if (lVar13 == 0) {\n          DAT_0017fa68 = (long *)(lVar15 + 0x20);\n        }\n        else {\n          *(long *)(lVar13 + 0x28) = lVar15;\n        }\n        plVar26[4] = *(long *)(lVar16 + 0x20);\n        if (*(long *)(lVar16 + 0x20) == 0) {\n          DAT_0017fa68 = plVar26 + 4;\n        }\n        else {\n          *(long **)(*(long *)(lVar16 + 0x20) + 0x28) = plVar26;\n        }\n        plVar18[5] = lVar16;\n        lVar13 = 0;\n        lVar15 = 0;\n        *(long **)(lVar16 + 0x20) = plVar18;\n        do {\n          *(int *)((long)plVar18 + 0x84) = -2 - *(int *)((long)plVar18 + 0x84);\n          lVar28 = plVar18[7];\n          if (((lVar28 != 0) && (*(long *)(lVar28 + 0xf0) != 0)) && (lVar13 = lVar28, lVar15 == 0))\n          {\n            lVar15 = lVar28;\n          }\n        } while ((plVar26 != plVar18) && (plVar18 = (long *)plVar18[4], plVar18 != (long *)0x0));\n        plVar18 = (long *)0x0;\n        if (lVar13 != 0) {\n          lVar28 = *(long *)(lVar16 + 0x38);\n          if (lVar28 == 0) {\n            plVar18 = *(long **)(lVar16 + 0x28);\n            if (plVar18 != (long *)0x0) {\n              do {\n                if (((-1 < *(int *)((long)plVar18 + 0x84)) && (lVar28 = plVar18[7], lVar28 != 0)) &&\n                   (*(long *)(lVar28 + 0xf0) != 0)) goto LAB_0011cd61;\n                plVar18 = (long *)plVar18[5];\n              } while (plVar18 != (long *)0x0);\n              plVar18 = (long *)0x0;\n            }\n          }\n          else {\nLAB_0011cd61:\n            plVar18 = (long *)0x0;\n            if (lVar28 != lVar13) {\n              lVar5 = *(long *)(lVar15 + 0x18);\n              lVar33 = *(long *)(lVar13 + 0x10);\n              if (lVar5 == 0) {\n                *(long *)(DAT_0017fb10 + 0x90) = lVar33;\n              }\n              else {\n                *(long *)(lVar5 + 0x10) = lVar33;\n                lVar33 = *(long *)(lVar13 + 0x10);\n              }\n              if (lVar33 == 0) {\n                *(long *)(DAT_0017fb10 + 0x98) = lVar5;\n              }\n              else {\n                *(long *)(lVar33 + 0x18) = lVar5;\n              }\n              lVar5 = *(long *)(lVar28 + 0x10);\n              *(long *)(lVar13 + 0x10) = lVar5;\n              if (lVar5 == 0) {\n                *(long *)(DAT_0017fb10 + 0x98) = lVar13;\n              }\n              else {\n                *(long *)(lVar5 + 0x18) = lVar13;\n              }\n              *(long *)(lVar15 + 0x18) = lVar28;\n              plVar18 = (long *)0x0;\n              *(long *)(lVar28 + 0x10) = lVar15;\n            }\n          }\n        }\n      }\n      plVar17 = (long *)FUN_00112240(lVar16);\n      lVar16 = *DAT_0017fa60;\n      *DAT_0017fa60 = *(long *)*plVar36;\n      lVar15 = *plVar17;\n      *plVar36 = lVar15;\n      if (lVar15 == 0) {\n        DAT_0017f438 = plVar36;\n      }\n      *plVar17 = lVar16;\n      plVar26 = (long *)0x0;\n      plVar17 = DAT_0017fa60;\n    }\n  }" while (parenthesized_expression "(plVar36 = plVar17, plVar3 = (long *)*plVar36, plVar3 != (long *)0x0)" ( (comma_expression "plVar36 = plVar17, plVar3 = (long *)*plVar36, plVar3 != (long *)0x0" (assignment_expression "plVar36 = plVar17" identifier = identifier) , (comma_expression "plVar3 = (long *)*plVar36, plVar3 != (long *)0x0" (assignment_expression "plVar3 = (long *)*plVar36" identifier = (cast_expression "(long *)*plVar36" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar36" * identifier))) , (binary_expression "plVar3 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)))) )) (compound_statement "{\n    plVar17 = plVar3;\n    if ((int)plVar3[1] == 0) {\n      if ((plVar26 != (long *)0x0) && (plVar3 != (long *)plVar26[4])) {\n        FUN_001252b0("../../ld/ldlang.c",0xea0);\n        plVar17 = (long *)*plVar36;\n      }\n      *(int *)((long)plVar3 + 0x84) = -2 - *(int *)((long)plVar3 + 0x84);\n      plVar26 = plVar3;\n      if (plVar18 == (long *)0x0) {\n        plVar18 = plVar3;\n      }\n    }\n    else if ((int)plVar3[1] == 0xe) {\n      lVar16 = FUN_00116e20(plVar3[2],0,0);\n      if (lVar16 == 0) {\nLAB_0011c415:\n        lVar16 = plVar3[2];\n        uVar11 = dcgettext(0,"%F%P: %s not found for insert\n",5);\n        FUN_001251f0(uVar11,lVar16);\n        plVar17 = DAT_0017f2f0;\n        goto joined_r0x0011c458;\n      }\n      if ((int)plVar3[3] != 0) {\n        do {\n          lVar16 = *(long *)(lVar16 + 0x28);\n          if (lVar16 == 0) goto LAB_0011c415;\n        } while (*(int *)(lVar16 + 0x84) < 0);\n      }\n      if (plVar26 != (long *)0x0) {\n        lVar15 = plVar18[5];\n        lVar13 = plVar26[4];\n        *(long *)(lVar15 + 0x20) = lVar13;\n        if (lVar13 == 0) {\n          DAT_0017fa68 = (long *)(lVar15 + 0x20);\n        }\n        else {\n          *(long *)(lVar13 + 0x28) = lVar15;\n        }\n        plVar26[4] = *(long *)(lVar16 + 0x20);\n        if (*(long *)(lVar16 + 0x20) == 0) {\n          DAT_0017fa68 = plVar26 + 4;\n        }\n        else {\n          *(long **)(*(long *)(lVar16 + 0x20) + 0x28) = plVar26;\n        }\n        plVar18[5] = lVar16;\n        lVar13 = 0;\n        lVar15 = 0;\n        *(long **)(lVar16 + 0x20) = plVar18;\n        do {\n          *(int *)((long)plVar18 + 0x84) = -2 - *(int *)((long)plVar18 + 0x84);\n          lVar28 = plVar18[7];\n          if (((lVar28 != 0) && (*(long *)(lVar28 + 0xf0) != 0)) && (lVar13 = lVar28, lVar15 == 0))\n          {\n            lVar15 = lVar28;\n          }\n        } while ((plVar26 != plVar18) && (plVar18 = (long *)plVar18[4], plVar18 != (long *)0x0));\n        plVar18 = (long *)0x0;\n        if (lVar13 != 0) {\n          lVar28 = *(long *)(lVar16 + 0x38);\n          if (lVar28 == 0) {\n            plVar18 = *(long **)(lVar16 + 0x28);\n            if (plVar18 != (long *)0x0) {\n              do {\n                if (((-1 < *(int *)((long)plVar18 + 0x84)) && (lVar28 = plVar18[7], lVar28 != 0)) &&\n                   (*(long *)(lVar28 + 0xf0) != 0)) goto LAB_0011cd61;\n                plVar18 = (long *)plVar18[5];\n              } while (plVar18 != (long *)0x0);\n              plVar18 = (long *)0x0;\n            }\n          }\n          else {\nLAB_0011cd61:\n            plVar18 = (long *)0x0;\n            if (lVar28 != lVar13) {\n              lVar5 = *(long *)(lVar15 + 0x18);\n              lVar33 = *(long *)(lVar13 + 0x10);\n              if (lVar5 == 0) {\n                *(long *)(DAT_0017fb10 + 0x90) = lVar33;\n              }\n              else {\n                *(long *)(lVar5 + 0x10) = lVar33;\n                lVar33 = *(long *)(lVar13 + 0x10);\n              }\n              if (lVar33 == 0) {\n                *(long *)(DAT_0017fb10 + 0x98) = lVar5;\n              }\n              else {\n                *(long *)(lVar33 + 0x18) = lVar5;\n              }\n              lVar5 = *(long *)(lVar28 + 0x10);\n              *(long *)(lVar13 + 0x10) = lVar5;\n              if (lVar5 == 0) {\n                *(long *)(DAT_0017fb10 + 0x98) = lVar13;\n              }\n              else {\n                *(long *)(lVar5 + 0x18) = lVar13;\n              }\n              *(long *)(lVar15 + 0x18) = lVar28;\n              plVar18 = (long *)0x0;\n              *(long *)(lVar28 + 0x10) = lVar15;\n            }\n          }\n        }\n      }\n      plVar17 = (long *)FUN_00112240(lVar16);\n      lVar16 = *DAT_0017fa60;\n      *DAT_0017fa60 = *(long *)*plVar36;\n      lVar15 = *plVar17;\n      *plVar36 = lVar15;\n      if (lVar15 == 0) {\n        DAT_0017f438 = plVar36;\n      }\n      *plVar17 = lVar16;\n      plVar26 = (long *)0x0;\n      plVar17 = DAT_0017fa60;\n    }\n  }" { (expression_statement "plVar17 = plVar3;" (assignment_expression "plVar17 = plVar3" identifier = identifier) ;) (if_statement "if ((int)plVar3[1] == 0) {\n      if ((plVar26 != (long *)0x0) && (plVar3 != (long *)plVar26[4])) {\n        FUN_001252b0("../../ld/ldlang.c",0xea0);\n        plVar17 = (long *)*plVar36;\n      }\n      *(int *)((long)plVar3 + 0x84) = -2 - *(int *)((long)plVar3 + 0x84);\n      plVar26 = plVar3;\n      if (plVar18 == (long *)0x0) {\n        plVar18 = plVar3;\n      }\n    }\n    else if ((int)plVar3[1] == 0xe) {\n      lVar16 = FUN_00116e20(plVar3[2],0,0);\n      if (lVar16 == 0) {\nLAB_0011c415:\n        lVar16 = plVar3[2];\n        uVar11 = dcgettext(0,"%F%P: %s not found for insert\n",5);\n        FUN_001251f0(uVar11,lVar16);\n        plVar17 = DAT_0017f2f0;\n        goto joined_r0x0011c458;\n      }\n      if ((int)plVar3[3] != 0) {\n        do {\n          lVar16 = *(long *)(lVar16 + 0x28);\n          if (lVar16 == 0) goto LAB_0011c415;\n        } while (*(int *)(lVar16 + 0x84) < 0);\n      }\n      if (plVar26 != (long *)0x0) {\n        lVar15 = plVar18[5];\n        lVar13 = plVar26[4];\n        *(long *)(lVar15 + 0x20) = lVar13;\n        if (lVar13 == 0) {\n          DAT_0017fa68 = (long *)(lVar15 + 0x20);\n        }\n        else {\n          *(long *)(lVar13 + 0x28) = lVar15;\n        }\n        plVar26[4] = *(long *)(lVar16 + 0x20);\n        if (*(long *)(lVar16 + 0x20) == 0) {\n          DAT_0017fa68 = plVar26 + 4;\n        }\n        else {\n          *(long **)(*(long *)(lVar16 + 0x20) + 0x28) = plVar26;\n        }\n        plVar18[5] = lVar16;\n        lVar13 = 0;\n        lVar15 = 0;\n        *(long **)(lVar16 + 0x20) = plVar18;\n        do {\n          *(int *)((long)plVar18 + 0x84) = -2 - *(int *)((long)plVar18 + 0x84);\n          lVar28 = plVar18[7];\n          if (((lVar28 != 0) && (*(long *)(lVar28 + 0xf0) != 0)) && (lVar13 = lVar28, lVar15 == 0))\n          {\n            lVar15 = lVar28;\n          }\n        } while ((plVar26 != plVar18) && (plVar18 = (long *)plVar18[4], plVar18 != (long *)0x0));\n        plVar18 = (long *)0x0;\n        if (lVar13 != 0) {\n          lVar28 = *(long *)(lVar16 + 0x38);\n          if (lVar28 == 0) {\n            plVar18 = *(long **)(lVar16 + 0x28);\n            if (plVar18 != (long *)0x0) {\n              do {\n                if (((-1 < *(int *)((long)plVar18 + 0x84)) && (lVar28 = plVar18[7], lVar28 != 0)) &&\n                   (*(long *)(lVar28 + 0xf0) != 0)) goto LAB_0011cd61;\n                plVar18 = (long *)plVar18[5];\n              } while (plVar18 != (long *)0x0);\n              plVar18 = (long *)0x0;\n            }\n          }\n          else {\nLAB_0011cd61:\n            plVar18 = (long *)0x0;\n            if (lVar28 != lVar13) {\n              lVar5 = *(long *)(lVar15 + 0x18);\n              lVar33 = *(long *)(lVar13 + 0x10);\n              if (lVar5 == 0) {\n                *(long *)(DAT_0017fb10 + 0x90) = lVar33;\n              }\n              else {\n                *(long *)(lVar5 + 0x10) = lVar33;\n                lVar33 = *(long *)(lVar13 + 0x10);\n              }\n              if (lVar33 == 0) {\n                *(long *)(DAT_0017fb10 + 0x98) = lVar5;\n              }\n              else {\n                *(long *)(lVar33 + 0x18) = lVar5;\n              }\n              lVar5 = *(long *)(lVar28 + 0x10);\n              *(long *)(lVar13 + 0x10) = lVar5;\n              if (lVar5 == 0) {\n                *(long *)(DAT_0017fb10 + 0x98) = lVar13;\n              }\n              else {\n                *(long *)(lVar5 + 0x18) = lVar13;\n              }\n              *(long *)(lVar15 + 0x18) = lVar28;\n              plVar18 = (long *)0x0;\n              *(long *)(lVar28 + 0x10) = lVar15;\n            }\n          }\n        }\n      }\n      plVar17 = (long *)FUN_00112240(lVar16);\n      lVar16 = *DAT_0017fa60;\n      *DAT_0017fa60 = *(long *)*plVar36;\n      lVar15 = *plVar17;\n      *plVar36 = lVar15;\n      if (lVar15 == 0) {\n        DAT_0017f438 = plVar36;\n      }\n      *plVar17 = lVar16;\n      plVar26 = (long *)0x0;\n      plVar17 = DAT_0017fa60;\n    }" if (parenthesized_expression "((int)plVar3[1] == 0)" ( (binary_expression "(int)plVar3[1] == 0" (cast_expression "(int)plVar3[1]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "plVar3[1]" identifier [ number_literal ])) == number_literal) )) (compound_statement "{\n      if ((plVar26 != (long *)0x0) && (plVar3 != (long *)plVar26[4])) {\n        FUN_001252b0("../../ld/ldlang.c",0xea0);\n        plVar17 = (long *)*plVar36;\n      }\n      *(int *)((long)plVar3 + 0x84) = -2 - *(int *)((long)plVar3 + 0x84);\n      plVar26 = plVar3;\n      if (plVar18 == (long *)0x0) {\n        plVar18 = plVar3;\n      }\n    }" { (if_statement "if ((plVar26 != (long *)0x0) && (plVar3 != (long *)plVar26[4])) {\n        FUN_001252b0("../../ld/ldlang.c",0xea0);\n        plVar17 = (long *)*plVar36;\n      }" if (parenthesized_expression "((plVar26 != (long *)0x0) && (plVar3 != (long *)plVar26[4]))" ( (binary_expression "(plVar26 != (long *)0x0) && (plVar3 != (long *)plVar26[4])" (parenthesized_expression "(plVar26 != (long *)0x0)" ( (binary_expression "plVar26 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(plVar3 != (long *)plVar26[4])" ( (binary_expression "plVar3 != (long *)plVar26[4]" identifier != (cast_expression "(long *)plVar26[4]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar26[4]" identifier [ number_literal ]))) ))) )) (compound_statement "{\n        FUN_001252b0("../../ld/ldlang.c",0xea0);\n        plVar17 = (long *)*plVar36;\n      }" { (expression_statement "FUN_001252b0("../../ld/ldlang.c",0xea0);" (call_expression "FUN_001252b0("../../ld/ldlang.c",0xea0)" identifier (argument_list "("../../ld/ldlang.c",0xea0)" ( (string_literal ""../../ld/ldlang.c"" " string_content ") , number_literal ))) ;) (expression_statement "plVar17 = (long *)*plVar36;" (assignment_expression "plVar17 = (long *)*plVar36" identifier = (cast_expression "(long *)*plVar36" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar36" * identifier))) ;) })) (expression_statement "*(int *)((long)plVar3 + 0x84) = -2 - *(int *)((long)plVar3 + 0x84);" (assignment_expression "*(int *)((long)plVar3 + 0x84) = -2 - *(int *)((long)plVar3 + 0x84)" (pointer_expression "*(int *)((long)plVar3 + 0x84)" * (cast_expression "(int *)((long)plVar3 + 0x84)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar3 + 0x84)" ( (binary_expression "(long)plVar3 + 0x84" (cast_expression "(long)plVar3" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = (binary_expression "-2 - *(int *)((long)plVar3 + 0x84)" number_literal - (pointer_expression "*(int *)((long)plVar3 + 0x84)" * (cast_expression "(int *)((long)plVar3 + 0x84)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar3 + 0x84)" ( (binary_expression "(long)plVar3 + 0x84" (cast_expression "(long)plVar3" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))))) ;) (expression_statement "plVar26 = plVar3;" (assignment_expression "plVar26 = plVar3" identifier = identifier) ;) (if_statement "if (plVar18 == (long *)0x0) {\n        plVar18 = plVar3;\n      }" if (parenthesized_expression "(plVar18 == (long *)0x0)" ( (binary_expression "plVar18 == (long *)0x0" identifier == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        plVar18 = plVar3;\n      }" { (expression_statement "plVar18 = plVar3;" (assignment_expression "plVar18 = plVar3" identifier = identifier) ;) })) }) (else_clause "else if ((int)plVar3[1] == 0xe) {\n      lVar16 = FUN_00116e20(plVar3[2],0,0);\n      if (lVar16 == 0) {\nLAB_0011c415:\n        lVar16 = plVar3[2];\n        uVar11 = dcgettext(0,"%F%P: %s not found for insert\n",5);\n        FUN_001251f0(uVar11,lVar16);\n        plVar17 = DAT_0017f2f0;\n        goto joined_r0x0011c458;\n      }\n      if ((int)plVar3[3] != 0) {\n        do {\n          lVar16 = *(long *)(lVar16 + 0x28);\n          if (lVar16 == 0) goto LAB_0011c415;\n        } while (*(int *)(lVar16 + 0x84) < 0);\n      }\n      if (plVar26 != (long *)0x0) {\n        lVar15 = plVar18[5];\n        lVar13 = plVar26[4];\n        *(long *)(lVar15 + 0x20) = lVar13;\n        if (lVar13 == 0) {\n          DAT_0017fa68 = (long *)(lVar15 + 0x20);\n        }\n        else {\n          *(long *)(lVar13 + 0x28) = lVar15;\n        }\n        plVar26[4] = *(long *)(lVar16 + 0x20);\n        if (*(long *)(lVar16 + 0x20) == 0) {\n          DAT_0017fa68 = plVar26 + 4;\n        }\n        else {\n          *(long **)(*(long *)(lVar16 + 0x20) + 0x28) = plVar26;\n        }\n        plVar18[5] = lVar16;\n        lVar13 = 0;\n        lVar15 = 0;\n        *(long **)(lVar16 + 0x20) = plVar18;\n        do {\n          *(int *)((long)plVar18 + 0x84) = -2 - *(int *)((long)plVar18 + 0x84);\n          lVar28 = plVar18[7];\n          if (((lVar28 != 0) && (*(long *)(lVar28 + 0xf0) != 0)) && (lVar13 = lVar28, lVar15 == 0))\n          {\n            lVar15 = lVar28;\n          }\n        } while ((plVar26 != plVar18) && (plVar18 = (long *)plVar18[4], plVar18 != (long *)0x0));\n        plVar18 = (long *)0x0;\n        if (lVar13 != 0) {\n          lVar28 = *(long *)(lVar16 + 0x38);\n          if (lVar28 == 0) {\n            plVar18 = *(long **)(lVar16 + 0x28);\n            if (plVar18 != (long *)0x0) {\n              do {\n                if (((-1 < *(int *)((long)plVar18 + 0x84)) && (lVar28 = plVar18[7], lVar28 != 0)) &&\n                   (*(long *)(lVar28 + 0xf0) != 0)) goto LAB_0011cd61;\n                plVar18 = (long *)plVar18[5];\n              } while (plVar18 != (long *)0x0);\n              plVar18 = (long *)0x0;\n            }\n          }\n          else {\nLAB_0011cd61:\n            plVar18 = (long *)0x0;\n            if (lVar28 != lVar13) {\n              lVar5 = *(long *)(lVar15 + 0x18);\n              lVar33 = *(long *)(lVar13 + 0x10);\n              if (lVar5 == 0) {\n                *(long *)(DAT_0017fb10 + 0x90) = lVar33;\n              }\n              else {\n                *(long *)(lVar5 + 0x10) = lVar33;\n                lVar33 = *(long *)(lVar13 + 0x10);\n              }\n              if (lVar33 == 0) {\n                *(long *)(DAT_0017fb10 + 0x98) = lVar5;\n              }\n              else {\n                *(long *)(lVar33 + 0x18) = lVar5;\n              }\n              lVar5 = *(long *)(lVar28 + 0x10);\n              *(long *)(lVar13 + 0x10) = lVar5;\n              if (lVar5 == 0) {\n                *(long *)(DAT_0017fb10 + 0x98) = lVar13;\n              }\n              else {\n                *(long *)(lVar5 + 0x18) = lVar13;\n              }\n              *(long *)(lVar15 + 0x18) = lVar28;\n              plVar18 = (long *)0x0;\n              *(long *)(lVar28 + 0x10) = lVar15;\n            }\n          }\n        }\n      }\n      plVar17 = (long *)FUN_00112240(lVar16);\n      lVar16 = *DAT_0017fa60;\n      *DAT_0017fa60 = *(long *)*plVar36;\n      lVar15 = *plVar17;\n      *plVar36 = lVar15;\n      if (lVar15 == 0) {\n        DAT_0017f438 = plVar36;\n      }\n      *plVar17 = lVar16;\n      plVar26 = (long *)0x0;\n      plVar17 = DAT_0017fa60;\n    }" else (if_statement "if ((int)plVar3[1] == 0xe) {\n      lVar16 = FUN_00116e20(plVar3[2],0,0);\n      if (lVar16 == 0) {\nLAB_0011c415:\n        lVar16 = plVar3[2];\n        uVar11 = dcgettext(0,"%F%P: %s not found for insert\n",5);\n        FUN_001251f0(uVar11,lVar16);\n        plVar17 = DAT_0017f2f0;\n        goto joined_r0x0011c458;\n      }\n      if ((int)plVar3[3] != 0) {\n        do {\n          lVar16 = *(long *)(lVar16 + 0x28);\n          if (lVar16 == 0) goto LAB_0011c415;\n        } while (*(int *)(lVar16 + 0x84) < 0);\n      }\n      if (plVar26 != (long *)0x0) {\n        lVar15 = plVar18[5];\n        lVar13 = plVar26[4];\n        *(long *)(lVar15 + 0x20) = lVar13;\n        if (lVar13 == 0) {\n          DAT_0017fa68 = (long *)(lVar15 + 0x20);\n        }\n        else {\n          *(long *)(lVar13 + 0x28) = lVar15;\n        }\n        plVar26[4] = *(long *)(lVar16 + 0x20);\n        if (*(long *)(lVar16 + 0x20) == 0) {\n          DAT_0017fa68 = plVar26 + 4;\n        }\n        else {\n          *(long **)(*(long *)(lVar16 + 0x20) + 0x28) = plVar26;\n        }\n        plVar18[5] = lVar16;\n        lVar13 = 0;\n        lVar15 = 0;\n        *(long **)(lVar16 + 0x20) = plVar18;\n        do {\n          *(int *)((long)plVar18 + 0x84) = -2 - *(int *)((long)plVar18 + 0x84);\n          lVar28 = plVar18[7];\n          if (((lVar28 != 0) && (*(long *)(lVar28 + 0xf0) != 0)) && (lVar13 = lVar28, lVar15 == 0))\n          {\n            lVar15 = lVar28;\n          }\n        } while ((plVar26 != plVar18) && (plVar18 = (long *)plVar18[4], plVar18 != (long *)0x0));\n        plVar18 = (long *)0x0;\n        if (lVar13 != 0) {\n          lVar28 = *(long *)(lVar16 + 0x38);\n          if (lVar28 == 0) {\n            plVar18 = *(long **)(lVar16 + 0x28);\n            if (plVar18 != (long *)0x0) {\n              do {\n                if (((-1 < *(int *)((long)plVar18 + 0x84)) && (lVar28 = plVar18[7], lVar28 != 0)) &&\n                   (*(long *)(lVar28 + 0xf0) != 0)) goto LAB_0011cd61;\n                plVar18 = (long *)plVar18[5];\n              } while (plVar18 != (long *)0x0);\n              plVar18 = (long *)0x0;\n            }\n          }\n          else {\nLAB_0011cd61:\n            plVar18 = (long *)0x0;\n            if (lVar28 != lVar13) {\n              lVar5 = *(long *)(lVar15 + 0x18);\n              lVar33 = *(long *)(lVar13 + 0x10);\n              if (lVar5 == 0) {\n                *(long *)(DAT_0017fb10 + 0x90) = lVar33;\n              }\n              else {\n                *(long *)(lVar5 + 0x10) = lVar33;\n                lVar33 = *(long *)(lVar13 + 0x10);\n              }\n              if (lVar33 == 0) {\n                *(long *)(DAT_0017fb10 + 0x98) = lVar5;\n              }\n              else {\n                *(long *)(lVar33 + 0x18) = lVar5;\n              }\n              lVar5 = *(long *)(lVar28 + 0x10);\n              *(long *)(lVar13 + 0x10) = lVar5;\n              if (lVar5 == 0) {\n                *(long *)(DAT_0017fb10 + 0x98) = lVar13;\n              }\n              else {\n                *(long *)(lVar5 + 0x18) = lVar13;\n              }\n              *(long *)(lVar15 + 0x18) = lVar28;\n              plVar18 = (long *)0x0;\n              *(long *)(lVar28 + 0x10) = lVar15;\n            }\n          }\n        }\n      }\n      plVar17 = (long *)FUN_00112240(lVar16);\n      lVar16 = *DAT_0017fa60;\n      *DAT_0017fa60 = *(long *)*plVar36;\n      lVar15 = *plVar17;\n      *plVar36 = lVar15;\n      if (lVar15 == 0) {\n        DAT_0017f438 = plVar36;\n      }\n      *plVar17 = lVar16;\n      plVar26 = (long *)0x0;\n      plVar17 = DAT_0017fa60;\n    }" if (parenthesized_expression "((int)plVar3[1] == 0xe)" ( (binary_expression "(int)plVar3[1] == 0xe" (cast_expression "(int)plVar3[1]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "plVar3[1]" identifier [ number_literal ])) == number_literal) )) (compound_statement "{\n      lVar16 = FUN_00116e20(plVar3[2],0,0);\n      if (lVar16 == 0) {\nLAB_0011c415:\n        lVar16 = plVar3[2];\n        uVar11 = dcgettext(0,"%F%P: %s not found for insert\n",5);\n        FUN_001251f0(uVar11,lVar16);\n        plVar17 = DAT_0017f2f0;\n        goto joined_r0x0011c458;\n      }\n      if ((int)plVar3[3] != 0) {\n        do {\n          lVar16 = *(long *)(lVar16 + 0x28);\n          if (lVar16 == 0) goto LAB_0011c415;\n        } while (*(int *)(lVar16 + 0x84) < 0);\n      }\n      if (plVar26 != (long *)0x0) {\n        lVar15 = plVar18[5];\n        lVar13 = plVar26[4];\n        *(long *)(lVar15 + 0x20) = lVar13;\n        if (lVar13 == 0) {\n          DAT_0017fa68 = (long *)(lVar15 + 0x20);\n        }\n        else {\n          *(long *)(lVar13 + 0x28) = lVar15;\n        }\n        plVar26[4] = *(long *)(lVar16 + 0x20);\n        if (*(long *)(lVar16 + 0x20) == 0) {\n          DAT_0017fa68 = plVar26 + 4;\n        }\n        else {\n          *(long **)(*(long *)(lVar16 + 0x20) + 0x28) = plVar26;\n        }\n        plVar18[5] = lVar16;\n        lVar13 = 0;\n        lVar15 = 0;\n        *(long **)(lVar16 + 0x20) = plVar18;\n        do {\n          *(int *)((long)plVar18 + 0x84) = -2 - *(int *)((long)plVar18 + 0x84);\n          lVar28 = plVar18[7];\n          if (((lVar28 != 0) && (*(long *)(lVar28 + 0xf0) != 0)) && (lVar13 = lVar28, lVar15 == 0))\n          {\n            lVar15 = lVar28;\n          }\n        } while ((plVar26 != plVar18) && (plVar18 = (long *)plVar18[4], plVar18 != (long *)0x0));\n        plVar18 = (long *)0x0;\n        if (lVar13 != 0) {\n          lVar28 = *(long *)(lVar16 + 0x38);\n          if (lVar28 == 0) {\n            plVar18 = *(long **)(lVar16 + 0x28);\n            if (plVar18 != (long *)0x0) {\n              do {\n                if (((-1 < *(int *)((long)plVar18 + 0x84)) && (lVar28 = plVar18[7], lVar28 != 0)) &&\n                   (*(long *)(lVar28 + 0xf0) != 0)) goto LAB_0011cd61;\n                plVar18 = (long *)plVar18[5];\n              } while (plVar18 != (long *)0x0);\n              plVar18 = (long *)0x0;\n            }\n          }\n          else {\nLAB_0011cd61:\n            plVar18 = (long *)0x0;\n            if (lVar28 != lVar13) {\n              lVar5 = *(long *)(lVar15 + 0x18);\n              lVar33 = *(long *)(lVar13 + 0x10);\n              if (lVar5 == 0) {\n                *(long *)(DAT_0017fb10 + 0x90) = lVar33;\n              }\n              else {\n                *(long *)(lVar5 + 0x10) = lVar33;\n                lVar33 = *(long *)(lVar13 + 0x10);\n              }\n              if (lVar33 == 0) {\n                *(long *)(DAT_0017fb10 + 0x98) = lVar5;\n              }\n              else {\n                *(long *)(lVar33 + 0x18) = lVar5;\n              }\n              lVar5 = *(long *)(lVar28 + 0x10);\n              *(long *)(lVar13 + 0x10) = lVar5;\n              if (lVar5 == 0) {\n                *(long *)(DAT_0017fb10 + 0x98) = lVar13;\n              }\n              else {\n                *(long *)(lVar5 + 0x18) = lVar13;\n              }\n              *(long *)(lVar15 + 0x18) = lVar28;\n              plVar18 = (long *)0x0;\n              *(long *)(lVar28 + 0x10) = lVar15;\n            }\n          }\n        }\n      }\n      plVar17 = (long *)FUN_00112240(lVar16);\n      lVar16 = *DAT_0017fa60;\n      *DAT_0017fa60 = *(long *)*plVar36;\n      lVar15 = *plVar17;\n      *plVar36 = lVar15;\n      if (lVar15 == 0) {\n        DAT_0017f438 = plVar36;\n      }\n      *plVar17 = lVar16;\n      plVar26 = (long *)0x0;\n      plVar17 = DAT_0017fa60;\n    }" { (expression_statement "lVar16 = FUN_00116e20(plVar3[2],0,0);" (assignment_expression "lVar16 = FUN_00116e20(plVar3[2],0,0)" identifier = (call_expression "FUN_00116e20(plVar3[2],0,0)" identifier (argument_list "(plVar3[2],0,0)" ( (subscript_expression "plVar3[2]" identifier [ number_literal ]) , number_literal , number_literal )))) ;) (if_statement "if (lVar16 == 0) {\nLAB_0011c415:\n        lVar16 = plVar3[2];\n        uVar11 = dcgettext(0,"%F%P: %s not found for insert\n",5);\n        FUN_001251f0(uVar11,lVar16);\n        plVar17 = DAT_0017f2f0;\n        goto joined_r0x0011c458;\n      }" if (parenthesized_expression "(lVar16 == 0)" ( (binary_expression "lVar16 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_0011c415:\n        lVar16 = plVar3[2];\n        uVar11 = dcgettext(0,"%F%P: %s not found for insert\n",5);\n        FUN_001251f0(uVar11,lVar16);\n        plVar17 = DAT_0017f2f0;\n        goto joined_r0x0011c458;\n      }" { (labeled_statement "LAB_0011c415:\n        lVar16 = plVar3[2];" statement_identifier : (expression_statement "lVar16 = plVar3[2];" (assignment_expression "lVar16 = plVar3[2]" identifier = (subscript_expression "plVar3[2]" identifier [ number_literal ])) ;)) (expression_statement "uVar11 = dcgettext(0,"%F%P: %s not found for insert\n",5);" (assignment_expression "uVar11 = 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_001251f0(uVar11,lVar16);" (call_expression "FUN_001251f0(uVar11,lVar16)" identifier (argument_list "(uVar11,lVar16)" ( identifier , identifier ))) ;) (expression_statement "plVar17 = DAT_0017f2f0;" (assignment_expression "plVar17 = DAT_0017f2f0" identifier = identifier) ;) (goto_statement "goto joined_r0x0011c458;" goto statement_identifier ;) })) (if_statement "if ((int)plVar3[3] != 0) {\n        do {\n          lVar16 = *(long *)(lVar16 + 0x28);\n          if (lVar16 == 0) goto LAB_0011c415;\n        } while (*(int *)(lVar16 + 0x84) < 0);\n      }" if (parenthesized_expression "((int)plVar3[3] != 0)" ( (binary_expression "(int)plVar3[3] != 0" (cast_expression "(int)plVar3[3]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "plVar3[3]" identifier [ number_literal ])) != number_literal) )) (compound_statement "{\n        do {\n          lVar16 = *(long *)(lVar16 + 0x28);\n          if (lVar16 == 0) goto LAB_0011c415;\n        } while (*(int *)(lVar16 + 0x84) < 0);\n      }" { (do_statement "do {\n          lVar16 = *(long *)(lVar16 + 0x28);\n          if (lVar16 == 0) goto LAB_0011c415;\n        } while (*(int *)(lVar16 + 0x84) < 0);" do (compound_statement "{\n          lVar16 = *(long *)(lVar16 + 0x28);\n          if (lVar16 == 0) goto LAB_0011c415;\n        }" { (expression_statement "lVar16 = *(long *)(lVar16 + 0x28);" (assignment_expression "lVar16 = *(long *)(lVar16 + 0x28)" identifier = (pointer_expression "*(long *)(lVar16 + 0x28)" * (cast_expression "(long *)(lVar16 + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar16 + 0x28)" ( (binary_expression "lVar16 + 0x28" identifier + number_literal) ))))) ;) (if_statement "if (lVar16 == 0) goto LAB_0011c415;" if (parenthesized_expression "(lVar16 == 0)" ( (binary_expression "lVar16 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0011c415;" goto statement_identifier ;)) }) while (parenthesized_expression "(*(int *)(lVar16 + 0x84) < 0)" ( (binary_expression "*(int *)(lVar16 + 0x84) < 0" (pointer_expression "*(int *)(lVar16 + 0x84)" * (cast_expression "(int *)(lVar16 + 0x84)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar16 + 0x84)" ( (binary_expression "lVar16 + 0x84" identifier + number_literal) )))) < number_literal) )) ;) })) (if_statement "if (plVar26 != (long *)0x0) {\n        lVar15 = plVar18[5];\n        lVar13 = plVar26[4];\n        *(long *)(lVar15 + 0x20) = lVar13;\n        if (lVar13 == 0) {\n          DAT_0017fa68 = (long *)(lVar15 + 0x20);\n        }\n        else {\n          *(long *)(lVar13 + 0x28) = lVar15;\n        }\n        plVar26[4] = *(long *)(lVar16 + 0x20);\n        if (*(long *)(lVar16 + 0x20) == 0) {\n          DAT_0017fa68 = plVar26 + 4;\n        }\n        else {\n          *(long **)(*(long *)(lVar16 + 0x20) + 0x28) = plVar26;\n        }\n        plVar18[5] = lVar16;\n        lVar13 = 0;\n        lVar15 = 0;\n        *(long **)(lVar16 + 0x20) = plVar18;\n        do {\n          *(int *)((long)plVar18 + 0x84) = -2 - *(int *)((long)plVar18 + 0x84);\n          lVar28 = plVar18[7];\n          if (((lVar28 != 0) && (*(long *)(lVar28 + 0xf0) != 0)) && (lVar13 = lVar28, lVar15 == 0))\n          {\n            lVar15 = lVar28;\n          }\n        } while ((plVar26 != plVar18) && (plVar18 = (long *)plVar18[4], plVar18 != (long *)0x0));\n        plVar18 = (long *)0x0;\n        if (lVar13 != 0) {\n          lVar28 = *(long *)(lVar16 + 0x38);\n          if (lVar28 == 0) {\n            plVar18 = *(long **)(lVar16 + 0x28);\n            if (plVar18 != (long *)0x0) {\n              do {\n                if (((-1 < *(int *)((long)plVar18 + 0x84)) && (lVar28 = plVar18[7], lVar28 != 0)) &&\n                   (*(long *)(lVar28 + 0xf0) != 0)) goto LAB_0011cd61;\n                plVar18 = (long *)plVar18[5];\n              } while (plVar18 != (long *)0x0);\n              plVar18 = (long *)0x0;\n            }\n          }\n          else {\nLAB_0011cd61:\n            plVar18 = (long *)0x0;\n            if (lVar28 != lVar13) {\n              lVar5 = *(long *)(lVar15 + 0x18);\n              lVar33 = *(long *)(lVar13 + 0x10);\n              if (lVar5 == 0) {\n                *(long *)(DAT_0017fb10 + 0x90) = lVar33;\n              }\n              else {\n                *(long *)(lVar5 + 0x10) = lVar33;\n                lVar33 = *(long *)(lVar13 + 0x10);\n              }\n              if (lVar33 == 0) {\n                *(long *)(DAT_0017fb10 + 0x98) = lVar5;\n              }\n              else {\n                *(long *)(lVar33 + 0x18) = lVar5;\n              }\n              lVar5 = *(long *)(lVar28 + 0x10);\n              *(long *)(lVar13 + 0x10) = lVar5;\n              if (lVar5 == 0) {\n                *(long *)(DAT_0017fb10 + 0x98) = lVar13;\n              }\n              else {\n                *(long *)(lVar5 + 0x18) = lVar13;\n              }\n              *(long *)(lVar15 + 0x18) = lVar28;\n              plVar18 = (long *)0x0;\n              *(long *)(lVar28 + 0x10) = lVar15;\n            }\n          }\n        }\n      }" if (parenthesized_expression "(plVar26 != (long *)0x0)" ( (binary_expression "plVar26 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        lVar15 = plVar18[5];\n        lVar13 = plVar26[4];\n        *(long *)(lVar15 + 0x20) = lVar13;\n        if (lVar13 == 0) {\n          DAT_0017fa68 = (long *)(lVar15 + 0x20);\n        }\n        else {\n          *(long *)(lVar13 + 0x28) = lVar15;\n        }\n        plVar26[4] = *(long *)(lVar16 + 0x20);\n        if (*(long *)(lVar16 + 0x20) == 0) {\n          DAT_0017fa68 = plVar26 + 4;\n        }\n        else {\n          *(long **)(*(long *)(lVar16 + 0x20) + 0x28) = plVar26;\n        }\n        plVar18[5] = lVar16;\n        lVar13 = 0;\n        lVar15 = 0;\n        *(long **)(lVar16 + 0x20) = plVar18;\n        do {\n          *(int *)((long)plVar18 + 0x84) = -2 - *(int *)((long)plVar18 + 0x84);\n          lVar28 = plVar18[7];\n          if (((lVar28 != 0) && (*(long *)(lVar28 + 0xf0) != 0)) && (lVar13 = lVar28, lVar15 == 0))\n          {\n            lVar15 = lVar28;\n          }\n        } while ((plVar26 != plVar18) && (plVar18 = (long *)plVar18[4], plVar18 != (long *)0x0));\n        plVar18 = (long *)0x0;\n        if (lVar13 != 0) {\n          lVar28 = *(long *)(lVar16 + 0x38);\n          if (lVar28 == 0) {\n            plVar18 = *(long **)(lVar16 + 0x28);\n            if (plVar18 != (long *)0x0) {\n              do {\n                if (((-1 < *(int *)((long)plVar18 + 0x84)) && (lVar28 = plVar18[7], lVar28 != 0)) &&\n                   (*(long *)(lVar28 + 0xf0) != 0)) goto LAB_0011cd61;\n                plVar18 = (long *)plVar18[5];\n              } while (plVar18 != (long *)0x0);\n              plVar18 = (long *)0x0;\n            }\n          }\n          else {\nLAB_0011cd61:\n            plVar18 = (long *)0x0;\n            if (lVar28 != lVar13) {\n              lVar5 = *(long *)(lVar15 + 0x18);\n              lVar33 = *(long *)(lVar13 + 0x10);\n              if (lVar5 == 0) {\n                *(long *)(DAT_0017fb10 + 0x90) = lVar33;\n              }\n              else {\n                *(long *)(lVar5 + 0x10) = lVar33;\n                lVar33 = *(long *)(lVar13 + 0x10);\n              }\n              if (lVar33 == 0) {\n                *(long *)(DAT_0017fb10 + 0x98) = lVar5;\n              }\n              else {\n                *(long *)(lVar33 + 0x18) = lVar5;\n              }\n              lVar5 = *(long *)(lVar28 + 0x10);\n              *(long *)(lVar13 + 0x10) = lVar5;\n              if (lVar5 == 0) {\n                *(long *)(DAT_0017fb10 + 0x98) = lVar13;\n              }\n              else {\n                *(long *)(lVar5 + 0x18) = lVar13;\n              }\n              *(long *)(lVar15 + 0x18) = lVar28;\n              plVar18 = (long *)0x0;\n              *(long *)(lVar28 + 0x10) = lVar15;\n            }\n          }\n        }\n      }" { (expression_statement "lVar15 = plVar18[5];" (assignment_expression "lVar15 = plVar18[5]" identifier = (subscript_expression "plVar18[5]" identifier [ number_literal ])) ;) (expression_statement "lVar13 = plVar26[4];" (assignment_expression "lVar13 = plVar26[4]" identifier = (subscript_expression "plVar26[4]" identifier [ number_literal ])) ;) (expression_statement "*(long *)(lVar15 + 0x20) = lVar13;" (assignment_expression "*(long *)(lVar15 + 0x20) = lVar13" (pointer_expression "*(long *)(lVar15 + 0x20)" * (cast_expression "(long *)(lVar15 + 0x20)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar15 + 0x20)" ( (binary_expression "lVar15 + 0x20" identifier + number_literal) )))) = identifier) ;) (if_statement "if (lVar13 == 0) {\n          DAT_0017fa68 = (long *)(lVar15 + 0x20);\n        }\n        else {\n          *(long *)(lVar13 + 0x28) = lVar15;\n        }" if (parenthesized_expression "(lVar13 == 0)" ( (binary_expression "lVar13 == 0" identifier == number_literal) )) (compound_statement "{\n          DAT_0017fa68 = (long *)(lVar15 + 0x20);\n        }" { (expression_statement "DAT_0017fa68 = (long *)(lVar15 + 0x20);" (assignment_expression "DAT_0017fa68 = (long *)(lVar15 + 0x20)" identifier = (cast_expression "(long *)(lVar15 + 0x20)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar15 + 0x20)" ( (binary_expression "lVar15 + 0x20" identifier + number_literal) )))) ;) }) (else_clause "else {\n          *(long *)(lVar13 + 0x28) = lVar15;\n        }" else (compound_statement "{\n          *(long *)(lVar13 + 0x28) = lVar15;\n        }" { (expression_statement "*(long *)(lVar13 + 0x28) = lVar15;" (assignment_expression "*(long *)(lVar13 + 0x28) = lVar15" (pointer_expression "*(long *)(lVar13 + 0x28)" * (cast_expression "(long *)(lVar13 + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar13 + 0x28)" ( (binary_expression "lVar13 + 0x28" identifier + number_literal) )))) = identifier) ;) }))) (expression_statement "plVar26[4] = *(long *)(lVar16 + 0x20);" (assignment_expression "plVar26[4] = *(long *)(lVar16 + 0x20)" (subscript_expression "plVar26[4]" identifier [ number_literal ]) = (pointer_expression "*(long *)(lVar16 + 0x20)" * (cast_expression "(long *)(lVar16 + 0x20)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar16 + 0x20)" ( (binary_expression "lVar16 + 0x20" identifier + number_literal) ))))) ;) (if_statement "if (*(long *)(lVar16 + 0x20) == 0) {\n          DAT_0017fa68 = plVar26 + 4;\n        }\n        else {\n          *(long **)(*(long *)(lVar16 + 0x20) + 0x28) = plVar26;\n        }" if (parenthesized_expression "(*(long *)(lVar16 + 0x20) == 0)" ( (binary_expression "*(long *)(lVar16 + 0x20) == 0" (pointer_expression "*(long *)(lVar16 + 0x20)" * (cast_expression "(long *)(lVar16 + 0x20)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar16 + 0x20)" ( (binary_expression "lVar16 + 0x20" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n          DAT_0017fa68 = plVar26 + 4;\n        }" { (expression_statement "DAT_0017fa68 = plVar26 + 4;" (assignment_expression "DAT_0017fa68 = plVar26 + 4" identifier = (binary_expression "plVar26 + 4" identifier + number_literal)) ;) }) (else_clause "else {\n          *(long **)(*(long *)(lVar16 + 0x20) + 0x28) = plVar26;\n        }" else (compound_statement "{\n          *(long **)(*(long *)(lVar16 + 0x20) + 0x28) = plVar26;\n        }" { (expression_statement "*(long **)(*(long *)(lVar16 + 0x20) + 0x28) = plVar26;" (assignment_expression "*(long **)(*(long *)(lVar16 + 0x20) + 0x28) = plVar26" (pointer_expression "*(long **)(*(long *)(lVar16 + 0x20) + 0x28)" * (cast_expression "(long **)(*(long *)(lVar16 + 0x20) + 0x28)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)(lVar16 + 0x20) + 0x28)" ( (binary_expression "*(long *)(lVar16 + 0x20) + 0x28" (pointer_expression "*(long *)(lVar16 + 0x20)" * (cast_expression "(long *)(lVar16 + 0x20)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar16 + 0x20)" ( (binary_expression "lVar16 + 0x20" identifier + number_literal) )))) + number_literal) )))) = identifier) ;) }))) (expression_statement "plVar18[5] = lVar16;" (assignment_expression "plVar18[5] = lVar16" (subscript_expression "plVar18[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "lVar13 = 0;" (assignment_expression "lVar13 = 0" identifier = number_literal) ;) (expression_statement "lVar15 = 0;" (assignment_expression "lVar15 = 0" identifier = number_literal) ;) (expression_statement "*(long **)(lVar16 + 0x20) = plVar18;" (assignment_expression "*(long **)(lVar16 + 0x20) = plVar18" (pointer_expression "*(long **)(lVar16 + 0x20)" * (cast_expression "(long **)(lVar16 + 0x20)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar16 + 0x20)" ( (binary_expression "lVar16 + 0x20" identifier + number_literal) )))) = identifier) ;) (do_statement "do {\n          *(int *)((long)plVar18 + 0x84) = -2 - *(int *)((long)plVar18 + 0x84);\n          lVar28 = plVar18[7];\n          if (((lVar28 != 0) && (*(long *)(lVar28 + 0xf0) != 0)) && (lVar13 = lVar28, lVar15 == 0))\n          {\n            lVar15 = lVar28;\n          }\n        } while ((plVar26 != plVar18) && (plVar18 = (long *)plVar18[4], plVar18 != (long *)0x0));" do (compound_statement "{\n          *(int *)((long)plVar18 + 0x84) = -2 - *(int *)((long)plVar18 + 0x84);\n          lVar28 = plVar18[7];\n          if (((lVar28 != 0) && (*(long *)(lVar28 + 0xf0) != 0)) && (lVar13 = lVar28, lVar15 == 0))\n          {\n            lVar15 = lVar28;\n          }\n        }" { (expression_statement "*(int *)((long)plVar18 + 0x84) = -2 - *(int *)((long)plVar18 + 0x84);" (assignment_expression "*(int *)((long)plVar18 + 0x84) = -2 - *(int *)((long)plVar18 + 0x84)" (pointer_expression "*(int *)((long)plVar18 + 0x84)" * (cast_expression "(int *)((long)plVar18 + 0x84)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar18 + 0x84)" ( (binary_expression "(long)plVar18 + 0x84" (cast_expression "(long)plVar18" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = (binary_expression "-2 - *(int *)((long)plVar18 + 0x84)" number_literal - (pointer_expression "*(int *)((long)plVar18 + 0x84)" * (cast_expression "(int *)((long)plVar18 + 0x84)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar18 + 0x84)" ( (binary_expression "(long)plVar18 + 0x84" (cast_expression "(long)plVar18" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))))) ;) (expression_statement "lVar28 = plVar18[7];" (assignment_expression "lVar28 = plVar18[7]" identifier = (subscript_expression "plVar18[7]" identifier [ number_literal ])) ;) (if_statement "if (((lVar28 != 0) && (*(long *)(lVar28 + 0xf0) != 0)) && (lVar13 = lVar28, lVar15 == 0))\n          {\n            lVar15 = lVar28;\n          }" if (parenthesized_expression "(((lVar28 != 0) && (*(long *)(lVar28 + 0xf0) != 0)) && (lVar13 = lVar28, lVar15 == 0))" ( (binary_expression "((lVar28 != 0) && (*(long *)(lVar28 + 0xf0) != 0)) && (lVar13 = lVar28, lVar15 == 0)" (parenthesized_expression "((lVar28 != 0) && (*(long *)(lVar28 + 0xf0) != 0))" ( (binary_expression "(lVar28 != 0) && (*(long *)(lVar28 + 0xf0) != 0)" (parenthesized_expression "(lVar28 != 0)" ( (binary_expression "lVar28 != 0" identifier != number_literal) )) && (parenthesized_expression "(*(long *)(lVar28 + 0xf0) != 0)" ( (binary_expression "*(long *)(lVar28 + 0xf0) != 0" (pointer_expression "*(long *)(lVar28 + 0xf0)" * (cast_expression "(long *)(lVar28 + 0xf0)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar28 + 0xf0)" ( (binary_expression "lVar28 + 0xf0" identifier + number_literal) )))) != number_literal) ))) )) && (parenthesized_expression "(lVar13 = lVar28, lVar15 == 0)" ( (comma_expression "lVar13 = lVar28, lVar15 == 0" (assignment_expression "lVar13 = lVar28" identifier = identifier) , (binary_expression "lVar15 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n            lVar15 = lVar28;\n          }" { (expression_statement "lVar15 = lVar28;" (assignment_expression "lVar15 = lVar28" identifier = identifier) ;) })) }) while (parenthesized_expression "((plVar26 != plVar18) && (plVar18 = (long *)plVar18[4], plVar18 != (long *)0x0))" ( (binary_expression "(plVar26 != plVar18) && (plVar18 = (long *)plVar18[4], plVar18 != (long *)0x0)" (parenthesized_expression "(plVar26 != plVar18)" ( (binary_expression "plVar26 != plVar18" identifier != identifier) )) && (parenthesized_expression "(plVar18 = (long *)plVar18[4], plVar18 != (long *)0x0)" ( (comma_expression "plVar18 = (long *)plVar18[4], plVar18 != (long *)0x0" (assignment_expression "plVar18 = (long *)plVar18[4]" identifier = (cast_expression "(long *)plVar18[4]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar18[4]" identifier [ number_literal ]))) , (binary_expression "plVar18 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) ;) (expression_statement "plVar18 = (long *)0x0;" (assignment_expression "plVar18 = (long *)0x0" identifier = (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (lVar13 != 0) {\n          lVar28 = *(long *)(lVar16 + 0x38);\n          if (lVar28 == 0) {\n            plVar18 = *(long **)(lVar16 + 0x28);\n            if (plVar18 != (long *)0x0) {\n              do {\n                if (((-1 < *(int *)((long)plVar18 + 0x84)) && (lVar28 = plVar18[7], lVar28 != 0)) &&\n                   (*(long *)(lVar28 + 0xf0) != 0)) goto LAB_0011cd61;\n                plVar18 = (long *)plVar18[5];\n              } while (plVar18 != (long *)0x0);\n              plVar18 = (long *)0x0;\n            }\n          }\n          else {\nLAB_0011cd61:\n            plVar18 = (long *)0x0;\n            if (lVar28 != lVar13) {\n              lVar5 = *(long *)(lVar15 + 0x18);\n              lVar33 = *(long *)(lVar13 + 0x10);\n              if (lVar5 == 0) {\n                *(long *)(DAT_0017fb10 + 0x90) = lVar33;\n              }\n              else {\n                *(long *)(lVar5 + 0x10) = lVar33;\n                lVar33 = *(long *)(lVar13 + 0x10);\n              }\n              if (lVar33 == 0) {\n                *(long *)(DAT_0017fb10 + 0x98) = lVar5;\n              }\n              else {\n                *(long *)(lVar33 + 0x18) = lVar5;\n              }\n              lVar5 = *(long *)(lVar28 + 0x10);\n              *(long *)(lVar13 + 0x10) = lVar5;\n              if (lVar5 == 0) {\n                *(long *)(DAT_0017fb10 + 0x98) = lVar13;\n              }\n              else {\n                *(long *)(lVar5 + 0x18) = lVar13;\n              }\n              *(long *)(lVar15 + 0x18) = lVar28;\n              plVar18 = (long *)0x0;\n              *(long *)(lVar28 + 0x10) = lVar15;\n            }\n          }\n        }" if (parenthesized_expression "(lVar13 != 0)" ( (binary_expression "lVar13 != 0" identifier != number_literal) )) (compound_statement "{\n          lVar28 = *(long *)(lVar16 + 0x38);\n          if (lVar28 == 0) {\n            plVar18 = *(long **)(lVar16 + 0x28);\n            if (plVar18 != (long *)0x0) {\n              do {\n                if (((-1 < *(int *)((long)plVar18 + 0x84)) && (lVar28 = plVar18[7], lVar28 != 0)) &&\n                   (*(long *)(lVar28 + 0xf0) != 0)) goto LAB_0011cd61;\n                plVar18 = (long *)plVar18[5];\n              } while (plVar18 != (long *)0x0);\n              plVar18 = (long *)0x0;\n            }\n          }\n          else {\nLAB_0011cd61:\n            plVar18 = (long *)0x0;\n            if (lVar28 != lVar13) {\n              lVar5 = *(long *)(lVar15 + 0x18);\n              lVar33 = *(long *)(lVar13 + 0x10);\n              if (lVar5 == 0) {\n                *(long *)(DAT_0017fb10 + 0x90) = lVar33;\n              }\n              else {\n                *(long *)(lVar5 + 0x10) = lVar33;\n                lVar33 = *(long *)(lVar13 + 0x10);\n              }\n              if (lVar33 == 0) {\n                *(long *)(DAT_0017fb10 + 0x98) = lVar5;\n              }\n              else {\n                *(long *)(lVar33 + 0x18) = lVar5;\n              }\n              lVar5 = *(long *)(lVar28 + 0x10);\n              *(long *)(lVar13 + 0x10) = lVar5;\n              if (lVar5 == 0) {\n                *(long *)(DAT_0017fb10 + 0x98) = lVar13;\n              }\n              else {\n                *(long *)(lVar5 + 0x18) = lVar13;\n              }\n              *(long *)(lVar15 + 0x18) = lVar28;\n              plVar18 = (long *)0x0;\n              *(long *)(lVar28 + 0x10) = lVar15;\n            }\n          }\n        }" { (expression_statement "lVar28 = *(long *)(lVar16 + 0x38);" (assignment_expression "lVar28 = *(long *)(lVar16 + 0x38)" identifier = (pointer_expression "*(long *)(lVar16 + 0x38)" * (cast_expression "(long *)(lVar16 + 0x38)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar16 + 0x38)" ( (binary_expression "lVar16 + 0x38" identifier + number_literal) ))))) ;) (if_statement "if (lVar28 == 0) {\n            plVar18 = *(long **)(lVar16 + 0x28);\n            if (plVar18 != (long *)0x0) {\n              do {\n                if (((-1 < *(int *)((long)plVar18 + 0x84)) && (lVar28 = plVar18[7], lVar28 != 0)) &&\n                   (*(long *)(lVar28 + 0xf0) != 0)) goto LAB_0011cd61;\n                plVar18 = (long *)plVar18[5];\n              } while (plVar18 != (long *)0x0);\n              plVar18 = (long *)0x0;\n            }\n          }\n          else {\nLAB_0011cd61:\n            plVar18 = (long *)0x0;\n            if (lVar28 != lVar13) {\n              lVar5 = *(long *)(lVar15 + 0x18);\n              lVar33 = *(long *)(lVar13 + 0x10);\n              if (lVar5 == 0) {\n                *(long *)(DAT_0017fb10 + 0x90) = lVar33;\n              }\n              else {\n                *(long *)(lVar5 + 0x10) = lVar33;\n                lVar33 = *(long *)(lVar13 + 0x10);\n              }\n              if (lVar33 == 0) {\n                *(long *)(DAT_0017fb10 + 0x98) = lVar5;\n              }\n              else {\n                *(long *)(lVar33 + 0x18) = lVar5;\n              }\n              lVar5 = *(long *)(lVar28 + 0x10);\n              *(long *)(lVar13 + 0x10) = lVar5;\n              if (lVar5 == 0) {\n                *(long *)(DAT_0017fb10 + 0x98) = lVar13;\n              }\n              else {\n                *(long *)(lVar5 + 0x18) = lVar13;\n              }\n              *(long *)(lVar15 + 0x18) = lVar28;\n              plVar18 = (long *)0x0;\n              *(long *)(lVar28 + 0x10) = lVar15;\n            }\n          }" if (parenthesized_expression "(lVar28 == 0)" ( (binary_expression "lVar28 == 0" identifier == number_literal) )) (compound_statement "{\n            plVar18 = *(long **)(lVar16 + 0x28);\n            if (plVar18 != (long *)0x0) {\n              do {\n                if (((-1 < *(int *)((long)plVar18 + 0x84)) && (lVar28 = plVar18[7], lVar28 != 0)) &&\n                   (*(long *)(lVar28 + 0xf0) != 0)) goto LAB_0011cd61;\n                plVar18 = (long *)plVar18[5];\n              } while (plVar18 != (long *)0x0);\n              plVar18 = (long *)0x0;\n            }\n          }" { (expression_statement "plVar18 = *(long **)(lVar16 + 0x28);" (assignment_expression "plVar18 = *(long **)(lVar16 + 0x28)" identifier = (pointer_expression "*(long **)(lVar16 + 0x28)" * (cast_expression "(long **)(lVar16 + 0x28)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar16 + 0x28)" ( (binary_expression "lVar16 + 0x28" identifier + number_literal) ))))) ;) (if_statement "if (plVar18 != (long *)0x0) {\n              do {\n                if (((-1 < *(int *)((long)plVar18 + 0x84)) && (lVar28 = plVar18[7], lVar28 != 0)) &&\n                   (*(long *)(lVar28 + 0xf0) != 0)) goto LAB_0011cd61;\n                plVar18 = (long *)plVar18[5];\n              } while (plVar18 != (long *)0x0);\n              plVar18 = (long *)0x0;\n            }" if (parenthesized_expression "(plVar18 != (long *)0x0)" ( (binary_expression "plVar18 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              do {\n                if (((-1 < *(int *)((long)plVar18 + 0x84)) && (lVar28 = plVar18[7], lVar28 != 0)) &&\n                   (*(long *)(lVar28 + 0xf0) != 0)) goto LAB_0011cd61;\n                plVar18 = (long *)plVar18[5];\n              } while (plVar18 != (long *)0x0);\n              plVar18 = (long *)0x0;\n            }" { (do_statement "do {\n                if (((-1 < *(int *)((long)plVar18 + 0x84)) && (lVar28 = plVar18[7], lVar28 != 0)) &&\n                   (*(long *)(lVar28 + 0xf0) != 0)) goto LAB_0011cd61;\n                plVar18 = (long *)plVar18[5];\n              } while (plVar18 != (long *)0x0);" do (compound_statement "{\n                if (((-1 < *(int *)((long)plVar18 + 0x84)) && (lVar28 = plVar18[7], lVar28 != 0)) &&\n                   (*(long *)(lVar28 + 0xf0) != 0)) goto LAB_0011cd61;\n                plVar18 = (long *)plVar18[5];\n              }" { (if_statement "if (((-1 < *(int *)((long)plVar18 + 0x84)) && (lVar28 = plVar18[7], lVar28 != 0)) &&\n                   (*(long *)(lVar28 + 0xf0) != 0)) goto LAB_0011cd61;" if (parenthesized_expression "(((-1 < *(int *)((long)plVar18 + 0x84)) && (lVar28 = plVar18[7], lVar28 != 0)) &&\n                   (*(long *)(lVar28 + 0xf0) != 0))" ( (binary_expression "((-1 < *(int *)((long)plVar18 + 0x84)) && (lVar28 = plVar18[7], lVar28 != 0)) &&\n                   (*(long *)(lVar28 + 0xf0) != 0)" (parenthesized_expression "((-1 < *(int *)((long)plVar18 + 0x84)) && (lVar28 = plVar18[7], lVar28 != 0))" ( (binary_expression "(-1 < *(int *)((long)plVar18 + 0x84)) && (lVar28 = plVar18[7], lVar28 != 0)" (parenthesized_expression "(-1 < *(int *)((long)plVar18 + 0x84))" ( (binary_expression "-1 < *(int *)((long)plVar18 + 0x84)" number_literal < (pointer_expression "*(int *)((long)plVar18 + 0x84)" * (cast_expression "(int *)((long)plVar18 + 0x84)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar18 + 0x84)" ( (binary_expression "(long)plVar18 + 0x84" (cast_expression "(long)plVar18" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) )) && (parenthesized_expression "(lVar28 = plVar18[7], lVar28 != 0)" ( (comma_expression "lVar28 = plVar18[7], lVar28 != 0" (assignment_expression "lVar28 = plVar18[7]" identifier = (subscript_expression "plVar18[7]" identifier [ number_literal ])) , (binary_expression "lVar28 != 0" identifier != number_literal)) ))) )) && (parenthesized_expression "(*(long *)(lVar28 + 0xf0) != 0)" ( (binary_expression "*(long *)(lVar28 + 0xf0) != 0" (pointer_expression "*(long *)(lVar28 + 0xf0)" * (cast_expression "(long *)(lVar28 + 0xf0)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar28 + 0xf0)" ( (binary_expression "lVar28 + 0xf0" identifier + number_literal) )))) != number_literal) ))) )) (goto_statement "goto LAB_0011cd61;" goto statement_identifier ;)) (expression_statement "plVar18 = (long *)plVar18[5];" (assignment_expression "plVar18 = (long *)plVar18[5]" identifier = (cast_expression "(long *)plVar18[5]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar18[5]" identifier [ number_literal ]))) ;) }) while (parenthesized_expression "(plVar18 != (long *)0x0)" ( (binary_expression "plVar18 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "plVar18 = (long *)0x0;" (assignment_expression "plVar18 = (long *)0x0" identifier = (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) }) (else_clause "else {\nLAB_0011cd61:\n            plVar18 = (long *)0x0;\n            if (lVar28 != lVar13) {\n              lVar5 = *(long *)(lVar15 + 0x18);\n              lVar33 = *(long *)(lVar13 + 0x10);\n              if (lVar5 == 0) {\n                *(long *)(DAT_0017fb10 + 0x90) = lVar33;\n              }\n              else {\n                *(long *)(lVar5 + 0x10) = lVar33;\n                lVar33 = *(long *)(lVar13 + 0x10);\n              }\n              if (lVar33 == 0) {\n                *(long *)(DAT_0017fb10 + 0x98) = lVar5;\n              }\n              else {\n                *(long *)(lVar33 + 0x18) = lVar5;\n              }\n              lVar5 = *(long *)(lVar28 + 0x10);\n              *(long *)(lVar13 + 0x10) = lVar5;\n              if (lVar5 == 0) {\n                *(long *)(DAT_0017fb10 + 0x98) = lVar13;\n              }\n              else {\n                *(long *)(lVar5 + 0x18) = lVar13;\n              }\n              *(long *)(lVar15 + 0x18) = lVar28;\n              plVar18 = (long *)0x0;\n              *(long *)(lVar28 + 0x10) = lVar15;\n            }\n          }" else (compound_statement "{\nLAB_0011cd61:\n            plVar18 = (long *)0x0;\n            if (lVar28 != lVar13) {\n              lVar5 = *(long *)(lVar15 + 0x18);\n              lVar33 = *(long *)(lVar13 + 0x10);\n              if (lVar5 == 0) {\n                *(long *)(DAT_0017fb10 + 0x90) = lVar33;\n              }\n              else {\n                *(long *)(lVar5 + 0x10) = lVar33;\n                lVar33 = *(long *)(lVar13 + 0x10);\n              }\n              if (lVar33 == 0) {\n                *(long *)(DAT_0017fb10 + 0x98) = lVar5;\n              }\n              else {\n                *(long *)(lVar33 + 0x18) = lVar5;\n              }\n              lVar5 = *(long *)(lVar28 + 0x10);\n              *(long *)(lVar13 + 0x10) = lVar5;\n              if (lVar5 == 0) {\n                *(long *)(DAT_0017fb10 + 0x98) = lVar13;\n              }\n              else {\n                *(long *)(lVar5 + 0x18) = lVar13;\n              }\n              *(long *)(lVar15 + 0x18) = lVar28;\n              plVar18 = (long *)0x0;\n              *(long *)(lVar28 + 0x10) = lVar15;\n            }\n          }" { (labeled_statement "LAB_0011cd61:\n            plVar18 = (long *)0x0;" statement_identifier : (expression_statement "plVar18 = (long *)0x0;" (assignment_expression "plVar18 = (long *)0x0" identifier = (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (if_statement "if (lVar28 != lVar13) {\n              lVar5 = *(long *)(lVar15 + 0x18);\n              lVar33 = *(long *)(lVar13 + 0x10);\n              if (lVar5 == 0) {\n                *(long *)(DAT_0017fb10 + 0x90) = lVar33;\n              }\n              else {\n                *(long *)(lVar5 + 0x10) = lVar33;\n                lVar33 = *(long *)(lVar13 + 0x10);\n              }\n              if (lVar33 == 0) {\n                *(long *)(DAT_0017fb10 + 0x98) = lVar5;\n              }\n              else {\n                *(long *)(lVar33 + 0x18) = lVar5;\n              }\n              lVar5 = *(long *)(lVar28 + 0x10);\n              *(long *)(lVar13 + 0x10) = lVar5;\n              if (lVar5 == 0) {\n                *(long *)(DAT_0017fb10 + 0x98) = lVar13;\n              }\n              else {\n                *(long *)(lVar5 + 0x18) = lVar13;\n              }\n              *(long *)(lVar15 + 0x18) = lVar28;\n              plVar18 = (long *)0x0;\n              *(long *)(lVar28 + 0x10) = lVar15;\n            }" if (parenthesized_expression "(lVar28 != lVar13)" ( (binary_expression "lVar28 != lVar13" identifier != identifier) )) (compound_statement "{\n              lVar5 = *(long *)(lVar15 + 0x18);\n              lVar33 = *(long *)(lVar13 + 0x10);\n              if (lVar5 == 0) {\n                *(long *)(DAT_0017fb10 + 0x90) = lVar33;\n              }\n              else {\n                *(long *)(lVar5 + 0x10) = lVar33;\n                lVar33 = *(long *)(lVar13 + 0x10);\n              }\n              if (lVar33 == 0) {\n                *(long *)(DAT_0017fb10 + 0x98) = lVar5;\n              }\n              else {\n                *(long *)(lVar33 + 0x18) = lVar5;\n              }\n              lVar5 = *(long *)(lVar28 + 0x10);\n              *(long *)(lVar13 + 0x10) = lVar5;\n              if (lVar5 == 0) {\n                *(long *)(DAT_0017fb10 + 0x98) = lVar13;\n              }\n              else {\n                *(long *)(lVar5 + 0x18) = lVar13;\n              }\n              *(long *)(lVar15 + 0x18) = lVar28;\n              plVar18 = (long *)0x0;\n              *(long *)(lVar28 + 0x10) = lVar15;\n            }" { (expression_statement "lVar5 = *(long *)(lVar15 + 0x18);" (assignment_expression "lVar5 = *(long *)(lVar15 + 0x18)" identifier = (pointer_expression "*(long *)(lVar15 + 0x18)" * (cast_expression "(long *)(lVar15 + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar15 + 0x18)" ( (binary_expression "lVar15 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "lVar33 = *(long *)(lVar13 + 0x10);" (assignment_expression "lVar33 = *(long *)(lVar13 + 0x10)" identifier = (pointer_expression "*(long *)(lVar13 + 0x10)" * (cast_expression "(long *)(lVar13 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar13 + 0x10)" ( (binary_expression "lVar13 + 0x10" identifier + number_literal) ))))) ;) (if_statement "if (lVar5 == 0) {\n                *(long *)(DAT_0017fb10 + 0x90) = lVar33;\n              }\n              else {\n                *(long *)(lVar5 + 0x10) = lVar33;\n                lVar33 = *(long *)(lVar13 + 0x10);\n              }" if (parenthesized_expression "(lVar5 == 0)" ( (binary_expression "lVar5 == 0" identifier == number_literal) )) (compound_statement "{\n                *(long *)(DAT_0017fb10 + 0x90) = lVar33;\n              }" { (expression_statement "*(long *)(DAT_0017fb10 + 0x90) = lVar33;" (assignment_expression "*(long *)(DAT_0017fb10 + 0x90) = lVar33" (pointer_expression "*(long *)(DAT_0017fb10 + 0x90)" * (cast_expression "(long *)(DAT_0017fb10 + 0x90)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0017fb10 + 0x90)" ( (binary_expression "DAT_0017fb10 + 0x90" identifier + number_literal) )))) = identifier) ;) }) (else_clause "else {\n                *(long *)(lVar5 + 0x10) = lVar33;\n                lVar33 = *(long *)(lVar13 + 0x10);\n              }" else (compound_statement "{\n                *(long *)(lVar5 + 0x10) = lVar33;\n                lVar33 = *(long *)(lVar13 + 0x10);\n              }" { (expression_statement "*(long *)(lVar5 + 0x10) = lVar33;" (assignment_expression "*(long *)(lVar5 + 0x10) = lVar33" (pointer_expression "*(long *)(lVar5 + 0x10)" * (cast_expression "(long *)(lVar5 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + 0x10)" ( (binary_expression "lVar5 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "lVar33 = *(long *)(lVar13 + 0x10);" (assignment_expression "lVar33 = *(long *)(lVar13 + 0x10)" identifier = (pointer_expression "*(long *)(lVar13 + 0x10)" * (cast_expression "(long *)(lVar13 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar13 + 0x10)" ( (binary_expression "lVar13 + 0x10" identifier + number_literal) ))))) ;) }))) (if_statement "if (lVar33 == 0) {\n                *(long *)(DAT_0017fb10 + 0x98) = lVar5;\n              }\n              else {\n                *(long *)(lVar33 + 0x18) = lVar5;\n              }" if (parenthesized_expression "(lVar33 == 0)" ( (binary_expression "lVar33 == 0" identifier == number_literal) )) (compound_statement "{\n                *(long *)(DAT_0017fb10 + 0x98) = lVar5;\n              }" { (expression_statement "*(long *)(DAT_0017fb10 + 0x98) = lVar5;" (assignment_expression "*(long *)(DAT_0017fb10 + 0x98) = lVar5" (pointer_expression "*(long *)(DAT_0017fb10 + 0x98)" * (cast_expression "(long *)(DAT_0017fb10 + 0x98)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0017fb10 + 0x98)" ( (binary_expression "DAT_0017fb10 + 0x98" identifier + number_literal) )))) = identifier) ;) }) (else_clause "else {\n                *(long *)(lVar33 + 0x18) = lVar5;\n              }" else (compound_statement "{\n                *(long *)(lVar33 + 0x18) = lVar5;\n              }" { (expression_statement "*(long *)(lVar33 + 0x18) = lVar5;" (assignment_expression "*(long *)(lVar33 + 0x18) = lVar5" (pointer_expression "*(long *)(lVar33 + 0x18)" * (cast_expression "(long *)(lVar33 + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar33 + 0x18)" ( (binary_expression "lVar33 + 0x18" identifier + number_literal) )))) = identifier) ;) }))) (expression_statement "lVar5 = *(long *)(lVar28 + 0x10);" (assignment_expression "lVar5 = *(long *)(lVar28 + 0x10)" identifier = (pointer_expression "*(long *)(lVar28 + 0x10)" * (cast_expression "(long *)(lVar28 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar28 + 0x10)" ( (binary_expression "lVar28 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "*(long *)(lVar13 + 0x10) = lVar5;" (assignment_expression "*(long *)(lVar13 + 0x10) = lVar5" (pointer_expression "*(long *)(lVar13 + 0x10)" * (cast_expression "(long *)(lVar13 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar13 + 0x10)" ( (binary_expression "lVar13 + 0x10" identifier + number_literal) )))) = identifier) ;) (if_statement "if (lVar5 == 0) {\n                *(long *)(DAT_0017fb10 + 0x98) = lVar13;\n              }\n              else {\n                *(long *)(lVar5 + 0x18) = lVar13;\n              }" if (parenthesized_expression "(lVar5 == 0)" ( (binary_expression "lVar5 == 0" identifier == number_literal) )) (compound_statement "{\n                *(long *)(DAT_0017fb10 + 0x98) = lVar13;\n              }" { (expression_statement "*(long *)(DAT_0017fb10 + 0x98) = lVar13;" (assignment_expression "*(long *)(DAT_0017fb10 + 0x98) = lVar13" (pointer_expression "*(long *)(DAT_0017fb10 + 0x98)" * (cast_expression "(long *)(DAT_0017fb10 + 0x98)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0017fb10 + 0x98)" ( (binary_expression "DAT_0017fb10 + 0x98" identifier + number_literal) )))) = identifier) ;) }) (else_clause "else {\n                *(long *)(lVar5 + 0x18) = lVar13;\n              }" else (compound_statement "{\n                *(long *)(lVar5 + 0x18) = lVar13;\n              }" { (expression_statement "*(long *)(lVar5 + 0x18) = lVar13;" (assignment_expression "*(long *)(lVar5 + 0x18) = lVar13" (pointer_expression "*(long *)(lVar5 + 0x18)" * (cast_expression "(long *)(lVar5 + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + 0x18)" ( (binary_expression "lVar5 + 0x18" identifier + number_literal) )))) = identifier) ;) }))) (expression_statement "*(long *)(lVar15 + 0x18) = lVar28;" (assignment_expression "*(long *)(lVar15 + 0x18) = lVar28" (pointer_expression "*(long *)(lVar15 + 0x18)" * (cast_expression "(long *)(lVar15 + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar15 + 0x18)" ( (binary_expression "lVar15 + 0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "plVar18 = (long *)0x0;" (assignment_expression "plVar18 = (long *)0x0" identifier = (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*(long *)(lVar28 + 0x10) = lVar15;" (assignment_expression "*(long *)(lVar28 + 0x10) = lVar15" (pointer_expression "*(long *)(lVar28 + 0x10)" * (cast_expression "(long *)(lVar28 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar28 + 0x10)" ( (binary_expression "lVar28 + 0x10" identifier + number_literal) )))) = identifier) ;) })) }))) })) })) (expression_statement "plVar17 = (long *)FUN_00112240(lVar16);" (assignment_expression "plVar17 = (long *)FUN_00112240(lVar16)" identifier = (cast_expression "(long *)FUN_00112240(lVar16)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00112240(lVar16)" identifier (argument_list "(lVar16)" ( identifier ))))) ;) (expression_statement "lVar16 = *DAT_0017fa60;" (assignment_expression "lVar16 = *DAT_0017fa60" identifier = (pointer_expression "*DAT_0017fa60" * identifier)) ;) (expression_statement "*DAT_0017fa60 = *(long *)*plVar36;" (assignment_expression "*DAT_0017fa60 = *(long *)*plVar36" (pointer_expression "*DAT_0017fa60" * identifier) = (pointer_expression "*(long *)*plVar36" * (cast_expression "(long *)*plVar36" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar36" * identifier)))) ;) (expression_statement "lVar15 = *plVar17;" (assignment_expression "lVar15 = *plVar17" identifier = (pointer_expression "*plVar17" * identifier)) ;) (expression_statement "*plVar36 = lVar15;" (assignment_expression "*plVar36 = lVar15" (pointer_expression "*plVar36" * identifier) = identifier) ;) (if_statement "if (lVar15 == 0) {\n        DAT_0017f438 = plVar36;\n      }" if (parenthesized_expression "(lVar15 == 0)" ( (binary_expression "lVar15 == 0" identifier == number_literal) )) (compound_statement "{\n        DAT_0017f438 = plVar36;\n      }" { (expression_statement "DAT_0017f438 = plVar36;" (assignment_expression "DAT_0017f438 = plVar36" identifier = identifier) ;) })) (expression_statement "*plVar17 = lVar16;" (assignment_expression "*plVar17 = lVar16" (pointer_expression "*plVar17" * identifier) = identifier) ;) (expression_statement "plVar26 = (long *)0x0;" (assignment_expression "plVar26 = (long *)0x0" identifier = (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "plVar17 = DAT_0017fa60;" (assignment_expression "plVar17 = DAT_0017fa60" identifier = identifier) ;) })))) })) (for_statement "for (; (plVar17 = DAT_0017f2f0, plVar18 != (long *)0x0 &&\n         (*(int *)((long)plVar18 + 0x84) = -2 - *(int *)((long)plVar18 + 0x84),\n         plVar17 = DAT_0017f2f0, plVar26 != plVar18)); plVar18 = (long *)plVar18[4]) {\n  }" for ( ; (parenthesized_expression "(plVar17 = DAT_0017f2f0, plVar18 != (long *)0x0 &&\n         (*(int *)((long)plVar18 + 0x84) = -2 - *(int *)((long)plVar18 + 0x84),\n         plVar17 = DAT_0017f2f0, plVar26 != plVar18))" ( (comma_expression "plVar17 = DAT_0017f2f0, plVar18 != (long *)0x0 &&\n         (*(int *)((long)plVar18 + 0x84) = -2 - *(int *)((long)plVar18 + 0x84),\n         plVar17 = DAT_0017f2f0, plVar26 != plVar18)" (assignment_expression "plVar17 = DAT_0017f2f0" identifier = identifier) , (binary_expression "plVar18 != (long *)0x0 &&\n         (*(int *)((long)plVar18 + 0x84) = -2 - *(int *)((long)plVar18 + 0x84),\n         plVar17 = DAT_0017f2f0, plVar26 != plVar18)" (binary_expression "plVar18 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) && (parenthesized_expression "(*(int *)((long)plVar18 + 0x84) = -2 - *(int *)((long)plVar18 + 0x84),\n         plVar17 = DAT_0017f2f0, plVar26 != plVar18)" ( (comma_expression "*(int *)((long)plVar18 + 0x84) = -2 - *(int *)((long)plVar18 + 0x84),\n         plVar17 = DAT_0017f2f0, plVar26 != plVar18" (assignment_expression "*(int *)((long)plVar18 + 0x84) = -2 - *(int *)((long)plVar18 + 0x84)" (pointer_expression "*(int *)((long)plVar18 + 0x84)" * (cast_expression "(int *)((long)plVar18 + 0x84)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar18 + 0x84)" ( (binary_expression "(long)plVar18 + 0x84" (cast_expression "(long)plVar18" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = (binary_expression "-2 - *(int *)((long)plVar18 + 0x84)" number_literal - (pointer_expression "*(int *)((long)plVar18 + 0x84)" * (cast_expression "(int *)((long)plVar18 + 0x84)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar18 + 0x84)" ( (binary_expression "(long)plVar18 + 0x84" (cast_expression "(long)plVar18" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))))) , (comma_expression "plVar17 = DAT_0017f2f0, plVar26 != plVar18" (assignment_expression "plVar17 = DAT_0017f2f0" identifier = identifier) , (binary_expression "plVar26 != plVar18" identifier != identifier))) )))) )) ; (assignment_expression "plVar18 = (long *)plVar18[4]" identifier = (cast_expression "(long *)plVar18[4]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar18[4]" identifier [ number_literal ]))) ) (compound_statement "{\n  }" { })) (labeled_statement "joined_r0x0011c458:\n  for (; plVar17 != (long *)0x0; plVar17 = (long *)plVar17[6]) {\n    puVar21 = *(undefined8 **)(plVar17[4] + 0x90);\njoined_r0x0011c46e:\n    if (puVar21 != (undefined8 *)0x0) {\n      do {\n        if (puVar21[0xd] == 0) {\n          if ((*(byte *)(plVar17 + 9) & 0x10) != 0) goto code_r0x0011c493;\n          iVar9 = FUN_00113350(*(undefined4 *)(puVar21 + 4));\n          bVar38 = false;\n          bVar39 = iVar9 == 0;\n          if (bVar39) {\n            pbVar4 = (byte *)*puVar21;\n            lVar16 = 7;\n            pbVar20 = pbVar4;\n            pbVar32 = (byte *)"COMMON";\n            do {\n              if (lVar16 == 0) break;\n              lVar16 = lVar16 + -1;\n              bVar38 = *pbVar20 < *pbVar32;\n              bVar39 = *pbVar20 == *pbVar32;\n              pbVar20 = pbVar20 + (ulong)bVar40 * -2 + 1;\n              pbVar32 = pbVar32 + (ulong)bVar40 * -2 + 1;\n            } while (bVar39);\n            if ((!bVar38 && !bVar39) == bVar38) {\n              if (((DAT_0017fac0 & 3) != 2) || (DAT_0017fbc0 != 0)) {\n                lVar16 = DAT_0017f458;\n                if (DAT_0017f458 == 0) {\n                  lVar16 = FUN_00116e20(".bss",0,1);\n                  DAT_0017f458 = lVar16;\n                }\nLAB_0011c659:\n                FUN_00117b90(lVar16 + 0x10,puVar21,0);\n              }\n            }\n            else {\n              if (DAT_0017fc5c == 1) {\n                lVar16 = FUN_00116e20("/DISCARD/",0,1);\n                if ((*(long *)(lVar16 + 0x58) == 0) &&\n                   (((DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0)))) {\n                  uVar11 = FUN_00123030(0);\n                  *(undefined8 *)(lVar16 + 0x58) = uVar11;\n                }\n                goto LAB_0011c659;\n              }\n              if (DAT_0017fc5c == 3) {\n                uVar11 = puVar21[0x1e];\n                uVar14 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_001251f0(uVar14,puVar21,uVar11);\n              }\n              if ((DAT_0017fc78 == 0) && (iVar9 = FUN_001150a0(puVar21,0), iVar9 == 0)) {\n                uVar10 = 0;\n              }\n              else {\n                uVar10 = 0x17e;\n              }\n              lVar16 = FUN_00123c60(puVar21,pbVar4,uVar10);\n              if (lVar16 == 0) {\n                lVar16 = FUN_00116e20(pbVar4,uVar10,1);\n                if ((*(long *)(lVar16 + 0x58) == 0) &&\n                   (((DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0)))) {\n                  uVar11 = FUN_00123030(0);\n                  *(undefined8 *)(lVar16 + 0x58) = uVar11;\n                }\n                FUN_00117b90(lVar16 + 0x10,puVar21,0);\n              }\n              if (DAT_0017fc5c == 2) {\n                uVar11 = puVar21[0x1e];\n                uVar14 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_001251f0(uVar14,puVar21,uVar11);\n              }\n            }\n          }\n          else {\n            puVar21[0xd] = 0x17ed50;\n          }\n        }\n        puVar21 = (undefined8 *)puVar21[2];\n        if (puVar21 == (undefined8 *)0x0) break;\n      } while( true );\n    }\n  }" statement_identifier : (for_statement "for (; plVar17 != (long *)0x0; plVar17 = (long *)plVar17[6]) {\n    puVar21 = *(undefined8 **)(plVar17[4] + 0x90);\njoined_r0x0011c46e:\n    if (puVar21 != (undefined8 *)0x0) {\n      do {\n        if (puVar21[0xd] == 0) {\n          if ((*(byte *)(plVar17 + 9) & 0x10) != 0) goto code_r0x0011c493;\n          iVar9 = FUN_00113350(*(undefined4 *)(puVar21 + 4));\n          bVar38 = false;\n          bVar39 = iVar9 == 0;\n          if (bVar39) {\n            pbVar4 = (byte *)*puVar21;\n            lVar16 = 7;\n            pbVar20 = pbVar4;\n            pbVar32 = (byte *)"COMMON";\n            do {\n              if (lVar16 == 0) break;\n              lVar16 = lVar16 + -1;\n              bVar38 = *pbVar20 < *pbVar32;\n              bVar39 = *pbVar20 == *pbVar32;\n              pbVar20 = pbVar20 + (ulong)bVar40 * -2 + 1;\n              pbVar32 = pbVar32 + (ulong)bVar40 * -2 + 1;\n            } while (bVar39);\n            if ((!bVar38 && !bVar39) == bVar38) {\n              if (((DAT_0017fac0 & 3) != 2) || (DAT_0017fbc0 != 0)) {\n                lVar16 = DAT_0017f458;\n                if (DAT_0017f458 == 0) {\n                  lVar16 = FUN_00116e20(".bss",0,1);\n                  DAT_0017f458 = lVar16;\n                }\nLAB_0011c659:\n                FUN_00117b90(lVar16 + 0x10,puVar21,0);\n              }\n            }\n            else {\n              if (DAT_0017fc5c == 1) {\n                lVar16 = FUN_00116e20("/DISCARD/",0,1);\n                if ((*(long *)(lVar16 + 0x58) == 0) &&\n                   (((DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0)))) {\n                  uVar11 = FUN_00123030(0);\n                  *(undefined8 *)(lVar16 + 0x58) = uVar11;\n                }\n                goto LAB_0011c659;\n              }\n              if (DAT_0017fc5c == 3) {\n                uVar11 = puVar21[0x1e];\n                uVar14 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_001251f0(uVar14,puVar21,uVar11);\n              }\n              if ((DAT_0017fc78 == 0) && (iVar9 = FUN_001150a0(puVar21,0), iVar9 == 0)) {\n                uVar10 = 0;\n              }\n              else {\n                uVar10 = 0x17e;\n              }\n              lVar16 = FUN_00123c60(puVar21,pbVar4,uVar10);\n              if (lVar16 == 0) {\n                lVar16 = FUN_00116e20(pbVar4,uVar10,1);\n                if ((*(long *)(lVar16 + 0x58) == 0) &&\n                   (((DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0)))) {\n                  uVar11 = FUN_00123030(0);\n                  *(undefined8 *)(lVar16 + 0x58) = uVar11;\n                }\n                FUN_00117b90(lVar16 + 0x10,puVar21,0);\n              }\n              if (DAT_0017fc5c == 2) {\n                uVar11 = puVar21[0x1e];\n                uVar14 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_001251f0(uVar14,puVar21,uVar11);\n              }\n            }\n          }\n          else {\n            puVar21[0xd] = 0x17ed50;\n          }\n        }\n        puVar21 = (undefined8 *)puVar21[2];\n        if (puVar21 == (undefined8 *)0x0) break;\n      } while( true );\n    }\n  }" for ( ; (binary_expression "plVar17 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "plVar17 = (long *)plVar17[6]" identifier = (cast_expression "(long *)plVar17[6]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar17[6]" identifier [ number_literal ]))) ) (compound_statement "{\n    puVar21 = *(undefined8 **)(plVar17[4] + 0x90);\njoined_r0x0011c46e:\n    if (puVar21 != (undefined8 *)0x0) {\n      do {\n        if (puVar21[0xd] == 0) {\n          if ((*(byte *)(plVar17 + 9) & 0x10) != 0) goto code_r0x0011c493;\n          iVar9 = FUN_00113350(*(undefined4 *)(puVar21 + 4));\n          bVar38 = false;\n          bVar39 = iVar9 == 0;\n          if (bVar39) {\n            pbVar4 = (byte *)*puVar21;\n            lVar16 = 7;\n            pbVar20 = pbVar4;\n            pbVar32 = (byte *)"COMMON";\n            do {\n              if (lVar16 == 0) break;\n              lVar16 = lVar16 + -1;\n              bVar38 = *pbVar20 < *pbVar32;\n              bVar39 = *pbVar20 == *pbVar32;\n              pbVar20 = pbVar20 + (ulong)bVar40 * -2 + 1;\n              pbVar32 = pbVar32 + (ulong)bVar40 * -2 + 1;\n            } while (bVar39);\n            if ((!bVar38 && !bVar39) == bVar38) {\n              if (((DAT_0017fac0 & 3) != 2) || (DAT_0017fbc0 != 0)) {\n                lVar16 = DAT_0017f458;\n                if (DAT_0017f458 == 0) {\n                  lVar16 = FUN_00116e20(".bss",0,1);\n                  DAT_0017f458 = lVar16;\n                }\nLAB_0011c659:\n                FUN_00117b90(lVar16 + 0x10,puVar21,0);\n              }\n            }\n            else {\n              if (DAT_0017fc5c == 1) {\n                lVar16 = FUN_00116e20("/DISCARD/",0,1);\n                if ((*(long *)(lVar16 + 0x58) == 0) &&\n                   (((DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0)))) {\n                  uVar11 = FUN_00123030(0);\n                  *(undefined8 *)(lVar16 + 0x58) = uVar11;\n                }\n                goto LAB_0011c659;\n              }\n              if (DAT_0017fc5c == 3) {\n                uVar11 = puVar21[0x1e];\n                uVar14 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_001251f0(uVar14,puVar21,uVar11);\n              }\n              if ((DAT_0017fc78 == 0) && (iVar9 = FUN_001150a0(puVar21,0), iVar9 == 0)) {\n                uVar10 = 0;\n              }\n              else {\n                uVar10 = 0x17e;\n              }\n              lVar16 = FUN_00123c60(puVar21,pbVar4,uVar10);\n              if (lVar16 == 0) {\n                lVar16 = FUN_00116e20(pbVar4,uVar10,1);\n                if ((*(long *)(lVar16 + 0x58) == 0) &&\n                   (((DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0)))) {\n                  uVar11 = FUN_00123030(0);\n                  *(undefined8 *)(lVar16 + 0x58) = uVar11;\n                }\n                FUN_00117b90(lVar16 + 0x10,puVar21,0);\n              }\n              if (DAT_0017fc5c == 2) {\n                uVar11 = puVar21[0x1e];\n                uVar14 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_001251f0(uVar14,puVar21,uVar11);\n              }\n            }\n          }\n          else {\n            puVar21[0xd] = 0x17ed50;\n          }\n        }\n        puVar21 = (undefined8 *)puVar21[2];\n        if (puVar21 == (undefined8 *)0x0) break;\n      } while( true );\n    }\n  }" { (expression_statement "puVar21 = *(undefined8 **)(plVar17[4] + 0x90);" (assignment_expression "puVar21 = *(undefined8 **)(plVar17[4] + 0x90)" identifier = (pointer_expression "*(undefined8 **)(plVar17[4] + 0x90)" * (cast_expression "(undefined8 **)(plVar17[4] + 0x90)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(plVar17[4] + 0x90)" ( (binary_expression "plVar17[4] + 0x90" (subscript_expression "plVar17[4]" identifier [ number_literal ]) + number_literal) ))))) ;) (labeled_statement "joined_r0x0011c46e:\n    if (puVar21 != (undefined8 *)0x0) {\n      do {\n        if (puVar21[0xd] == 0) {\n          if ((*(byte *)(plVar17 + 9) & 0x10) != 0) goto code_r0x0011c493;\n          iVar9 = FUN_00113350(*(undefined4 *)(puVar21 + 4));\n          bVar38 = false;\n          bVar39 = iVar9 == 0;\n          if (bVar39) {\n            pbVar4 = (byte *)*puVar21;\n            lVar16 = 7;\n            pbVar20 = pbVar4;\n            pbVar32 = (byte *)"COMMON";\n            do {\n              if (lVar16 == 0) break;\n              lVar16 = lVar16 + -1;\n              bVar38 = *pbVar20 < *pbVar32;\n              bVar39 = *pbVar20 == *pbVar32;\n              pbVar20 = pbVar20 + (ulong)bVar40 * -2 + 1;\n              pbVar32 = pbVar32 + (ulong)bVar40 * -2 + 1;\n            } while (bVar39);\n            if ((!bVar38 && !bVar39) == bVar38) {\n              if (((DAT_0017fac0 & 3) != 2) || (DAT_0017fbc0 != 0)) {\n                lVar16 = DAT_0017f458;\n                if (DAT_0017f458 == 0) {\n                  lVar16 = FUN_00116e20(".bss",0,1);\n                  DAT_0017f458 = lVar16;\n                }\nLAB_0011c659:\n                FUN_00117b90(lVar16 + 0x10,puVar21,0);\n              }\n            }\n            else {\n              if (DAT_0017fc5c == 1) {\n                lVar16 = FUN_00116e20("/DISCARD/",0,1);\n                if ((*(long *)(lVar16 + 0x58) == 0) &&\n                   (((DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0)))) {\n                  uVar11 = FUN_00123030(0);\n                  *(undefined8 *)(lVar16 + 0x58) = uVar11;\n                }\n                goto LAB_0011c659;\n              }\n              if (DAT_0017fc5c == 3) {\n                uVar11 = puVar21[0x1e];\n                uVar14 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_001251f0(uVar14,puVar21,uVar11);\n              }\n              if ((DAT_0017fc78 == 0) && (iVar9 = FUN_001150a0(puVar21,0), iVar9 == 0)) {\n                uVar10 = 0;\n              }\n              else {\n                uVar10 = 0x17e;\n              }\n              lVar16 = FUN_00123c60(puVar21,pbVar4,uVar10);\n              if (lVar16 == 0) {\n                lVar16 = FUN_00116e20(pbVar4,uVar10,1);\n                if ((*(long *)(lVar16 + 0x58) == 0) &&\n                   (((DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0)))) {\n                  uVar11 = FUN_00123030(0);\n                  *(undefined8 *)(lVar16 + 0x58) = uVar11;\n                }\n                FUN_00117b90(lVar16 + 0x10,puVar21,0);\n              }\n              if (DAT_0017fc5c == 2) {\n                uVar11 = puVar21[0x1e];\n                uVar14 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_001251f0(uVar14,puVar21,uVar11);\n              }\n            }\n          }\n          else {\n            puVar21[0xd] = 0x17ed50;\n          }\n        }\n        puVar21 = (undefined8 *)puVar21[2];\n        if (puVar21 == (undefined8 *)0x0) break;\n      } while( true );\n    }" statement_identifier : (if_statement "if (puVar21 != (undefined8 *)0x0) {\n      do {\n        if (puVar21[0xd] == 0) {\n          if ((*(byte *)(plVar17 + 9) & 0x10) != 0) goto code_r0x0011c493;\n          iVar9 = FUN_00113350(*(undefined4 *)(puVar21 + 4));\n          bVar38 = false;\n          bVar39 = iVar9 == 0;\n          if (bVar39) {\n            pbVar4 = (byte *)*puVar21;\n            lVar16 = 7;\n            pbVar20 = pbVar4;\n            pbVar32 = (byte *)"COMMON";\n            do {\n              if (lVar16 == 0) break;\n              lVar16 = lVar16 + -1;\n              bVar38 = *pbVar20 < *pbVar32;\n              bVar39 = *pbVar20 == *pbVar32;\n              pbVar20 = pbVar20 + (ulong)bVar40 * -2 + 1;\n              pbVar32 = pbVar32 + (ulong)bVar40 * -2 + 1;\n            } while (bVar39);\n            if ((!bVar38 && !bVar39) == bVar38) {\n              if (((DAT_0017fac0 & 3) != 2) || (DAT_0017fbc0 != 0)) {\n                lVar16 = DAT_0017f458;\n                if (DAT_0017f458 == 0) {\n                  lVar16 = FUN_00116e20(".bss",0,1);\n                  DAT_0017f458 = lVar16;\n                }\nLAB_0011c659:\n                FUN_00117b90(lVar16 + 0x10,puVar21,0);\n              }\n            }\n            else {\n              if (DAT_0017fc5c == 1) {\n                lVar16 = FUN_00116e20("/DISCARD/",0,1);\n                if ((*(long *)(lVar16 + 0x58) == 0) &&\n                   (((DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0)))) {\n                  uVar11 = FUN_00123030(0);\n                  *(undefined8 *)(lVar16 + 0x58) = uVar11;\n                }\n                goto LAB_0011c659;\n              }\n              if (DAT_0017fc5c == 3) {\n                uVar11 = puVar21[0x1e];\n                uVar14 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_001251f0(uVar14,puVar21,uVar11);\n              }\n              if ((DAT_0017fc78 == 0) && (iVar9 = FUN_001150a0(puVar21,0), iVar9 == 0)) {\n                uVar10 = 0;\n              }\n              else {\n                uVar10 = 0x17e;\n              }\n              lVar16 = FUN_00123c60(puVar21,pbVar4,uVar10);\n              if (lVar16 == 0) {\n                lVar16 = FUN_00116e20(pbVar4,uVar10,1);\n                if ((*(long *)(lVar16 + 0x58) == 0) &&\n                   (((DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0)))) {\n                  uVar11 = FUN_00123030(0);\n                  *(undefined8 *)(lVar16 + 0x58) = uVar11;\n                }\n                FUN_00117b90(lVar16 + 0x10,puVar21,0);\n              }\n              if (DAT_0017fc5c == 2) {\n                uVar11 = puVar21[0x1e];\n                uVar14 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_001251f0(uVar14,puVar21,uVar11);\n              }\n            }\n          }\n          else {\n            puVar21[0xd] = 0x17ed50;\n          }\n        }\n        puVar21 = (undefined8 *)puVar21[2];\n        if (puVar21 == (undefined8 *)0x0) break;\n      } while( true );\n    }" if (parenthesized_expression "(puVar21 != (undefined8 *)0x0)" ( (binary_expression "puVar21 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      do {\n        if (puVar21[0xd] == 0) {\n          if ((*(byte *)(plVar17 + 9) & 0x10) != 0) goto code_r0x0011c493;\n          iVar9 = FUN_00113350(*(undefined4 *)(puVar21 + 4));\n          bVar38 = false;\n          bVar39 = iVar9 == 0;\n          if (bVar39) {\n            pbVar4 = (byte *)*puVar21;\n            lVar16 = 7;\n            pbVar20 = pbVar4;\n            pbVar32 = (byte *)"COMMON";\n            do {\n              if (lVar16 == 0) break;\n              lVar16 = lVar16 + -1;\n              bVar38 = *pbVar20 < *pbVar32;\n              bVar39 = *pbVar20 == *pbVar32;\n              pbVar20 = pbVar20 + (ulong)bVar40 * -2 + 1;\n              pbVar32 = pbVar32 + (ulong)bVar40 * -2 + 1;\n            } while (bVar39);\n            if ((!bVar38 && !bVar39) == bVar38) {\n              if (((DAT_0017fac0 & 3) != 2) || (DAT_0017fbc0 != 0)) {\n                lVar16 = DAT_0017f458;\n                if (DAT_0017f458 == 0) {\n                  lVar16 = FUN_00116e20(".bss",0,1);\n                  DAT_0017f458 = lVar16;\n                }\nLAB_0011c659:\n                FUN_00117b90(lVar16 + 0x10,puVar21,0);\n              }\n            }\n            else {\n              if (DAT_0017fc5c == 1) {\n                lVar16 = FUN_00116e20("/DISCARD/",0,1);\n                if ((*(long *)(lVar16 + 0x58) == 0) &&\n                   (((DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0)))) {\n                  uVar11 = FUN_00123030(0);\n                  *(undefined8 *)(lVar16 + 0x58) = uVar11;\n                }\n                goto LAB_0011c659;\n              }\n              if (DAT_0017fc5c == 3) {\n                uVar11 = puVar21[0x1e];\n                uVar14 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_001251f0(uVar14,puVar21,uVar11);\n              }\n              if ((DAT_0017fc78 == 0) && (iVar9 = FUN_001150a0(puVar21,0), iVar9 == 0)) {\n                uVar10 = 0;\n              }\n              else {\n                uVar10 = 0x17e;\n              }\n              lVar16 = FUN_00123c60(puVar21,pbVar4,uVar10);\n              if (lVar16 == 0) {\n                lVar16 = FUN_00116e20(pbVar4,uVar10,1);\n                if ((*(long *)(lVar16 + 0x58) == 0) &&\n                   (((DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0)))) {\n                  uVar11 = FUN_00123030(0);\n                  *(undefined8 *)(lVar16 + 0x58) = uVar11;\n                }\n                FUN_00117b90(lVar16 + 0x10,puVar21,0);\n              }\n              if (DAT_0017fc5c == 2) {\n                uVar11 = puVar21[0x1e];\n                uVar14 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_001251f0(uVar14,puVar21,uVar11);\n              }\n            }\n          }\n          else {\n            puVar21[0xd] = 0x17ed50;\n          }\n        }\n        puVar21 = (undefined8 *)puVar21[2];\n        if (puVar21 == (undefined8 *)0x0) break;\n      } while( true );\n    }" { (do_statement "do {\n        if (puVar21[0xd] == 0) {\n          if ((*(byte *)(plVar17 + 9) & 0x10) != 0) goto code_r0x0011c493;\n          iVar9 = FUN_00113350(*(undefined4 *)(puVar21 + 4));\n          bVar38 = false;\n          bVar39 = iVar9 == 0;\n          if (bVar39) {\n            pbVar4 = (byte *)*puVar21;\n            lVar16 = 7;\n            pbVar20 = pbVar4;\n            pbVar32 = (byte *)"COMMON";\n            do {\n              if (lVar16 == 0) break;\n              lVar16 = lVar16 + -1;\n              bVar38 = *pbVar20 < *pbVar32;\n              bVar39 = *pbVar20 == *pbVar32;\n              pbVar20 = pbVar20 + (ulong)bVar40 * -2 + 1;\n              pbVar32 = pbVar32 + (ulong)bVar40 * -2 + 1;\n            } while (bVar39);\n            if ((!bVar38 && !bVar39) == bVar38) {\n              if (((DAT_0017fac0 & 3) != 2) || (DAT_0017fbc0 != 0)) {\n                lVar16 = DAT_0017f458;\n                if (DAT_0017f458 == 0) {\n                  lVar16 = FUN_00116e20(".bss",0,1);\n                  DAT_0017f458 = lVar16;\n                }\nLAB_0011c659:\n                FUN_00117b90(lVar16 + 0x10,puVar21,0);\n              }\n            }\n            else {\n              if (DAT_0017fc5c == 1) {\n                lVar16 = FUN_00116e20("/DISCARD/",0,1);\n                if ((*(long *)(lVar16 + 0x58) == 0) &&\n                   (((DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0)))) {\n                  uVar11 = FUN_00123030(0);\n                  *(undefined8 *)(lVar16 + 0x58) = uVar11;\n                }\n                goto LAB_0011c659;\n              }\n              if (DAT_0017fc5c == 3) {\n                uVar11 = puVar21[0x1e];\n                uVar14 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_001251f0(uVar14,puVar21,uVar11);\n              }\n              if ((DAT_0017fc78 == 0) && (iVar9 = FUN_001150a0(puVar21,0), iVar9 == 0)) {\n                uVar10 = 0;\n              }\n              else {\n                uVar10 = 0x17e;\n              }\n              lVar16 = FUN_00123c60(puVar21,pbVar4,uVar10);\n              if (lVar16 == 0) {\n                lVar16 = FUN_00116e20(pbVar4,uVar10,1);\n                if ((*(long *)(lVar16 + 0x58) == 0) &&\n                   (((DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0)))) {\n                  uVar11 = FUN_00123030(0);\n                  *(undefined8 *)(lVar16 + 0x58) = uVar11;\n                }\n                FUN_00117b90(lVar16 + 0x10,puVar21,0);\n              }\n              if (DAT_0017fc5c == 2) {\n                uVar11 = puVar21[0x1e];\n                uVar14 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_001251f0(uVar14,puVar21,uVar11);\n              }\n            }\n          }\n          else {\n            puVar21[0xd] = 0x17ed50;\n          }\n        }\n        puVar21 = (undefined8 *)puVar21[2];\n        if (puVar21 == (undefined8 *)0x0) break;\n      } while( true );" do (compound_statement "{\n        if (puVar21[0xd] == 0) {\n          if ((*(byte *)(plVar17 + 9) & 0x10) != 0) goto code_r0x0011c493;\n          iVar9 = FUN_00113350(*(undefined4 *)(puVar21 + 4));\n          bVar38 = false;\n          bVar39 = iVar9 == 0;\n          if (bVar39) {\n            pbVar4 = (byte *)*puVar21;\n            lVar16 = 7;\n            pbVar20 = pbVar4;\n            pbVar32 = (byte *)"COMMON";\n            do {\n              if (lVar16 == 0) break;\n              lVar16 = lVar16 + -1;\n              bVar38 = *pbVar20 < *pbVar32;\n              bVar39 = *pbVar20 == *pbVar32;\n              pbVar20 = pbVar20 + (ulong)bVar40 * -2 + 1;\n              pbVar32 = pbVar32 + (ulong)bVar40 * -2 + 1;\n            } while (bVar39);\n            if ((!bVar38 && !bVar39) == bVar38) {\n              if (((DAT_0017fac0 & 3) != 2) || (DAT_0017fbc0 != 0)) {\n                lVar16 = DAT_0017f458;\n                if (DAT_0017f458 == 0) {\n                  lVar16 = FUN_00116e20(".bss",0,1);\n                  DAT_0017f458 = lVar16;\n                }\nLAB_0011c659:\n                FUN_00117b90(lVar16 + 0x10,puVar21,0);\n              }\n            }\n            else {\n              if (DAT_0017fc5c == 1) {\n                lVar16 = FUN_00116e20("/DISCARD/",0,1);\n                if ((*(long *)(lVar16 + 0x58) == 0) &&\n                   (((DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0)))) {\n                  uVar11 = FUN_00123030(0);\n                  *(undefined8 *)(lVar16 + 0x58) = uVar11;\n                }\n                goto LAB_0011c659;\n              }\n              if (DAT_0017fc5c == 3) {\n                uVar11 = puVar21[0x1e];\n                uVar14 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_001251f0(uVar14,puVar21,uVar11);\n              }\n              if ((DAT_0017fc78 == 0) && (iVar9 = FUN_001150a0(puVar21,0), iVar9 == 0)) {\n                uVar10 = 0;\n              }\n              else {\n                uVar10 = 0x17e;\n              }\n              lVar16 = FUN_00123c60(puVar21,pbVar4,uVar10);\n              if (lVar16 == 0) {\n                lVar16 = FUN_00116e20(pbVar4,uVar10,1);\n                if ((*(long *)(lVar16 + 0x58) == 0) &&\n                   (((DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0)))) {\n                  uVar11 = FUN_00123030(0);\n                  *(undefined8 *)(lVar16 + 0x58) = uVar11;\n                }\n                FUN_00117b90(lVar16 + 0x10,puVar21,0);\n              }\n              if (DAT_0017fc5c == 2) {\n                uVar11 = puVar21[0x1e];\n                uVar14 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_001251f0(uVar14,puVar21,uVar11);\n              }\n            }\n          }\n          else {\n            puVar21[0xd] = 0x17ed50;\n          }\n        }\n        puVar21 = (undefined8 *)puVar21[2];\n        if (puVar21 == (undefined8 *)0x0) break;\n      }" { (if_statement "if (puVar21[0xd] == 0) {\n          if ((*(byte *)(plVar17 + 9) & 0x10) != 0) goto code_r0x0011c493;\n          iVar9 = FUN_00113350(*(undefined4 *)(puVar21 + 4));\n          bVar38 = false;\n          bVar39 = iVar9 == 0;\n          if (bVar39) {\n            pbVar4 = (byte *)*puVar21;\n            lVar16 = 7;\n            pbVar20 = pbVar4;\n            pbVar32 = (byte *)"COMMON";\n            do {\n              if (lVar16 == 0) break;\n              lVar16 = lVar16 + -1;\n              bVar38 = *pbVar20 < *pbVar32;\n              bVar39 = *pbVar20 == *pbVar32;\n              pbVar20 = pbVar20 + (ulong)bVar40 * -2 + 1;\n              pbVar32 = pbVar32 + (ulong)bVar40 * -2 + 1;\n            } while (bVar39);\n            if ((!bVar38 && !bVar39) == bVar38) {\n              if (((DAT_0017fac0 & 3) != 2) || (DAT_0017fbc0 != 0)) {\n                lVar16 = DAT_0017f458;\n                if (DAT_0017f458 == 0) {\n                  lVar16 = FUN_00116e20(".bss",0,1);\n                  DAT_0017f458 = lVar16;\n                }\nLAB_0011c659:\n                FUN_00117b90(lVar16 + 0x10,puVar21,0);\n              }\n            }\n            else {\n              if (DAT_0017fc5c == 1) {\n                lVar16 = FUN_00116e20("/DISCARD/",0,1);\n                if ((*(long *)(lVar16 + 0x58) == 0) &&\n                   (((DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0)))) {\n                  uVar11 = FUN_00123030(0);\n                  *(undefined8 *)(lVar16 + 0x58) = uVar11;\n                }\n                goto LAB_0011c659;\n              }\n              if (DAT_0017fc5c == 3) {\n                uVar11 = puVar21[0x1e];\n                uVar14 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_001251f0(uVar14,puVar21,uVar11);\n              }\n              if ((DAT_0017fc78 == 0) && (iVar9 = FUN_001150a0(puVar21,0), iVar9 == 0)) {\n                uVar10 = 0;\n              }\n              else {\n                uVar10 = 0x17e;\n              }\n              lVar16 = FUN_00123c60(puVar21,pbVar4,uVar10);\n              if (lVar16 == 0) {\n                lVar16 = FUN_00116e20(pbVar4,uVar10,1);\n                if ((*(long *)(lVar16 + 0x58) == 0) &&\n                   (((DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0)))) {\n                  uVar11 = FUN_00123030(0);\n                  *(undefined8 *)(lVar16 + 0x58) = uVar11;\n                }\n                FUN_00117b90(lVar16 + 0x10,puVar21,0);\n              }\n              if (DAT_0017fc5c == 2) {\n                uVar11 = puVar21[0x1e];\n                uVar14 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_001251f0(uVar14,puVar21,uVar11);\n              }\n            }\n          }\n          else {\n            puVar21[0xd] = 0x17ed50;\n          }\n        }" if (parenthesized_expression "(puVar21[0xd] == 0)" ( (binary_expression "puVar21[0xd] == 0" (subscript_expression "puVar21[0xd]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n          if ((*(byte *)(plVar17 + 9) & 0x10) != 0) goto code_r0x0011c493;\n          iVar9 = FUN_00113350(*(undefined4 *)(puVar21 + 4));\n          bVar38 = false;\n          bVar39 = iVar9 == 0;\n          if (bVar39) {\n            pbVar4 = (byte *)*puVar21;\n            lVar16 = 7;\n            pbVar20 = pbVar4;\n            pbVar32 = (byte *)"COMMON";\n            do {\n              if (lVar16 == 0) break;\n              lVar16 = lVar16 + -1;\n              bVar38 = *pbVar20 < *pbVar32;\n              bVar39 = *pbVar20 == *pbVar32;\n              pbVar20 = pbVar20 + (ulong)bVar40 * -2 + 1;\n              pbVar32 = pbVar32 + (ulong)bVar40 * -2 + 1;\n            } while (bVar39);\n            if ((!bVar38 && !bVar39) == bVar38) {\n              if (((DAT_0017fac0 & 3) != 2) || (DAT_0017fbc0 != 0)) {\n                lVar16 = DAT_0017f458;\n                if (DAT_0017f458 == 0) {\n                  lVar16 = FUN_00116e20(".bss",0,1);\n                  DAT_0017f458 = lVar16;\n                }\nLAB_0011c659:\n                FUN_00117b90(lVar16 + 0x10,puVar21,0);\n              }\n            }\n            else {\n              if (DAT_0017fc5c == 1) {\n                lVar16 = FUN_00116e20("/DISCARD/",0,1);\n                if ((*(long *)(lVar16 + 0x58) == 0) &&\n                   (((DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0)))) {\n                  uVar11 = FUN_00123030(0);\n                  *(undefined8 *)(lVar16 + 0x58) = uVar11;\n                }\n                goto LAB_0011c659;\n              }\n              if (DAT_0017fc5c == 3) {\n                uVar11 = puVar21[0x1e];\n                uVar14 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_001251f0(uVar14,puVar21,uVar11);\n              }\n              if ((DAT_0017fc78 == 0) && (iVar9 = FUN_001150a0(puVar21,0), iVar9 == 0)) {\n                uVar10 = 0;\n              }\n              else {\n                uVar10 = 0x17e;\n              }\n              lVar16 = FUN_00123c60(puVar21,pbVar4,uVar10);\n              if (lVar16 == 0) {\n                lVar16 = FUN_00116e20(pbVar4,uVar10,1);\n                if ((*(long *)(lVar16 + 0x58) == 0) &&\n                   (((DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0)))) {\n                  uVar11 = FUN_00123030(0);\n                  *(undefined8 *)(lVar16 + 0x58) = uVar11;\n                }\n                FUN_00117b90(lVar16 + 0x10,puVar21,0);\n              }\n              if (DAT_0017fc5c == 2) {\n                uVar11 = puVar21[0x1e];\n                uVar14 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_001251f0(uVar14,puVar21,uVar11);\n              }\n            }\n          }\n          else {\n            puVar21[0xd] = 0x17ed50;\n          }\n        }" { (if_statement "if ((*(byte *)(plVar17 + 9) & 0x10) != 0) goto code_r0x0011c493;" if (parenthesized_expression "((*(byte *)(plVar17 + 9) & 0x10) != 0)" ( (binary_expression "(*(byte *)(plVar17 + 9) & 0x10) != 0" (parenthesized_expression "(*(byte *)(plVar17 + 9) & 0x10)" ( (binary_expression "*(byte *)(plVar17 + 9) & 0x10" (pointer_expression "*(byte *)(plVar17 + 9)" * (cast_expression "(byte *)(plVar17 + 9)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar17 + 9)" ( (binary_expression "plVar17 + 9" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (goto_statement "goto code_r0x0011c493;" goto statement_identifier ;)) (expression_statement "iVar9 = FUN_00113350(*(undefined4 *)(puVar21 + 4));" (assignment_expression "iVar9 = FUN_00113350(*(undefined4 *)(puVar21 + 4))" identifier = (call_expression "FUN_00113350(*(undefined4 *)(puVar21 + 4))" identifier (argument_list "(*(undefined4 *)(puVar21 + 4))" ( (pointer_expression "*(undefined4 *)(puVar21 + 4)" * (cast_expression "(undefined4 *)(puVar21 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + 4)" ( (binary_expression "puVar21 + 4" identifier + number_literal) )))) )))) ;) (expression_statement "bVar38 = false;" (assignment_expression "bVar38 = false" identifier = false) ;) (expression_statement "bVar39 = iVar9 == 0;" (assignment_expression "bVar39 = iVar9 == 0" identifier = (binary_expression "iVar9 == 0" identifier == number_literal)) ;) (if_statement "if (bVar39) {\n            pbVar4 = (byte *)*puVar21;\n            lVar16 = 7;\n            pbVar20 = pbVar4;\n            pbVar32 = (byte *)"COMMON";\n            do {\n              if (lVar16 == 0) break;\n              lVar16 = lVar16 + -1;\n              bVar38 = *pbVar20 < *pbVar32;\n              bVar39 = *pbVar20 == *pbVar32;\n              pbVar20 = pbVar20 + (ulong)bVar40 * -2 + 1;\n              pbVar32 = pbVar32 + (ulong)bVar40 * -2 + 1;\n            } while (bVar39);\n            if ((!bVar38 && !bVar39) == bVar38) {\n              if (((DAT_0017fac0 & 3) != 2) || (DAT_0017fbc0 != 0)) {\n                lVar16 = DAT_0017f458;\n                if (DAT_0017f458 == 0) {\n                  lVar16 = FUN_00116e20(".bss",0,1);\n                  DAT_0017f458 = lVar16;\n                }\nLAB_0011c659:\n                FUN_00117b90(lVar16 + 0x10,puVar21,0);\n              }\n            }\n            else {\n              if (DAT_0017fc5c == 1) {\n                lVar16 = FUN_00116e20("/DISCARD/",0,1);\n                if ((*(long *)(lVar16 + 0x58) == 0) &&\n                   (((DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0)))) {\n                  uVar11 = FUN_00123030(0);\n                  *(undefined8 *)(lVar16 + 0x58) = uVar11;\n                }\n                goto LAB_0011c659;\n              }\n              if (DAT_0017fc5c == 3) {\n                uVar11 = puVar21[0x1e];\n                uVar14 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_001251f0(uVar14,puVar21,uVar11);\n              }\n              if ((DAT_0017fc78 == 0) && (iVar9 = FUN_001150a0(puVar21,0), iVar9 == 0)) {\n                uVar10 = 0;\n              }\n              else {\n                uVar10 = 0x17e;\n              }\n              lVar16 = FUN_00123c60(puVar21,pbVar4,uVar10);\n              if (lVar16 == 0) {\n                lVar16 = FUN_00116e20(pbVar4,uVar10,1);\n                if ((*(long *)(lVar16 + 0x58) == 0) &&\n                   (((DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0)))) {\n                  uVar11 = FUN_00123030(0);\n                  *(undefined8 *)(lVar16 + 0x58) = uVar11;\n                }\n                FUN_00117b90(lVar16 + 0x10,puVar21,0);\n              }\n              if (DAT_0017fc5c == 2) {\n                uVar11 = puVar21[0x1e];\n                uVar14 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_001251f0(uVar14,puVar21,uVar11);\n              }\n            }\n          }\n          else {\n            puVar21[0xd] = 0x17ed50;\n          }" if (parenthesized_expression "(bVar39)" ( identifier )) (compound_statement "{\n            pbVar4 = (byte *)*puVar21;\n            lVar16 = 7;\n            pbVar20 = pbVar4;\n            pbVar32 = (byte *)"COMMON";\n            do {\n              if (lVar16 == 0) break;\n              lVar16 = lVar16 + -1;\n              bVar38 = *pbVar20 < *pbVar32;\n              bVar39 = *pbVar20 == *pbVar32;\n              pbVar20 = pbVar20 + (ulong)bVar40 * -2 + 1;\n              pbVar32 = pbVar32 + (ulong)bVar40 * -2 + 1;\n            } while (bVar39);\n            if ((!bVar38 && !bVar39) == bVar38) {\n              if (((DAT_0017fac0 & 3) != 2) || (DAT_0017fbc0 != 0)) {\n                lVar16 = DAT_0017f458;\n                if (DAT_0017f458 == 0) {\n                  lVar16 = FUN_00116e20(".bss",0,1);\n                  DAT_0017f458 = lVar16;\n                }\nLAB_0011c659:\n                FUN_00117b90(lVar16 + 0x10,puVar21,0);\n              }\n            }\n            else {\n              if (DAT_0017fc5c == 1) {\n                lVar16 = FUN_00116e20("/DISCARD/",0,1);\n                if ((*(long *)(lVar16 + 0x58) == 0) &&\n                   (((DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0)))) {\n                  uVar11 = FUN_00123030(0);\n                  *(undefined8 *)(lVar16 + 0x58) = uVar11;\n                }\n                goto LAB_0011c659;\n              }\n              if (DAT_0017fc5c == 3) {\n                uVar11 = puVar21[0x1e];\n                uVar14 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_001251f0(uVar14,puVar21,uVar11);\n              }\n              if ((DAT_0017fc78 == 0) && (iVar9 = FUN_001150a0(puVar21,0), iVar9 == 0)) {\n                uVar10 = 0;\n              }\n              else {\n                uVar10 = 0x17e;\n              }\n              lVar16 = FUN_00123c60(puVar21,pbVar4,uVar10);\n              if (lVar16 == 0) {\n                lVar16 = FUN_00116e20(pbVar4,uVar10,1);\n                if ((*(long *)(lVar16 + 0x58) == 0) &&\n                   (((DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0)))) {\n                  uVar11 = FUN_00123030(0);\n                  *(undefined8 *)(lVar16 + 0x58) = uVar11;\n                }\n                FUN_00117b90(lVar16 + 0x10,puVar21,0);\n              }\n              if (DAT_0017fc5c == 2) {\n                uVar11 = puVar21[0x1e];\n                uVar14 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_001251f0(uVar14,puVar21,uVar11);\n              }\n            }\n          }" { (expression_statement "pbVar4 = (byte *)*puVar21;" (assignment_expression "pbVar4 = (byte *)*puVar21" identifier = (cast_expression "(byte *)*puVar21" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar21" * identifier))) ;) (expression_statement "lVar16 = 7;" (assignment_expression "lVar16 = 7" identifier = number_literal) ;) (expression_statement "pbVar20 = pbVar4;" (assignment_expression "pbVar20 = pbVar4" identifier = identifier) ;) (expression_statement "pbVar32 = (byte *)"COMMON";" (assignment_expression "pbVar32 = (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 (lVar16 == 0) break;\n              lVar16 = lVar16 + -1;\n              bVar38 = *pbVar20 < *pbVar32;\n              bVar39 = *pbVar20 == *pbVar32;\n              pbVar20 = pbVar20 + (ulong)bVar40 * -2 + 1;\n              pbVar32 = pbVar32 + (ulong)bVar40 * -2 + 1;\n            } while (bVar39);" do (compound_statement "{\n              if (lVar16 == 0) break;\n              lVar16 = lVar16 + -1;\n              bVar38 = *pbVar20 < *pbVar32;\n              bVar39 = *pbVar20 == *pbVar32;\n              pbVar20 = pbVar20 + (ulong)bVar40 * -2 + 1;\n              pbVar32 = pbVar32 + (ulong)bVar40 * -2 + 1;\n            }" { (if_statement "if (lVar16 == 0) break;" if (parenthesized_expression "(lVar16 == 0)" ( (binary_expression "lVar16 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar16 = lVar16 + -1;" (assignment_expression "lVar16 = lVar16 + -1" identifier = (binary_expression "lVar16 + -1" identifier + number_literal)) ;) (expression_statement "bVar38 = *pbVar20 < *pbVar32;" (assignment_expression "bVar38 = *pbVar20 < *pbVar32" identifier = (binary_expression "*pbVar20 < *pbVar32" (pointer_expression "*pbVar20" * identifier) < (pointer_expression "*pbVar32" * identifier))) ;) (expression_statement "bVar39 = *pbVar20 == *pbVar32;" (assignment_expression "bVar39 = *pbVar20 == *pbVar32" identifier = (binary_expression "*pbVar20 == *pbVar32" (pointer_expression "*pbVar20" * identifier) == (pointer_expression "*pbVar32" * identifier))) ;) (expression_statement "pbVar20 = pbVar20 + (ulong)bVar40 * -2 + 1;" (assignment_expression "pbVar20 = pbVar20 + (ulong)bVar40 * -2 + 1" identifier = (binary_expression "pbVar20 + (ulong)bVar40 * -2 + 1" (binary_expression "pbVar20 + (ulong)bVar40 * -2" identifier + (binary_expression "(ulong)bVar40 * -2" (cast_expression "(ulong)bVar40" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar32 = pbVar32 + (ulong)bVar40 * -2 + 1;" (assignment_expression "pbVar32 = pbVar32 + (ulong)bVar40 * -2 + 1" identifier = (binary_expression "pbVar32 + (ulong)bVar40 * -2 + 1" (binary_expression "pbVar32 + (ulong)bVar40 * -2" identifier + (binary_expression "(ulong)bVar40 * -2" (cast_expression "(ulong)bVar40" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar39)" ( identifier )) ;) (if_statement "if ((!bVar38 && !bVar39) == bVar38) {\n              if (((DAT_0017fac0 & 3) != 2) || (DAT_0017fbc0 != 0)) {\n                lVar16 = DAT_0017f458;\n                if (DAT_0017f458 == 0) {\n                  lVar16 = FUN_00116e20(".bss",0,1);\n                  DAT_0017f458 = lVar16;\n                }\nLAB_0011c659:\n                FUN_00117b90(lVar16 + 0x10,puVar21,0);\n              }\n            }\n            else {\n              if (DAT_0017fc5c == 1) {\n                lVar16 = FUN_00116e20("/DISCARD/",0,1);\n                if ((*(long *)(lVar16 + 0x58) == 0) &&\n                   (((DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0)))) {\n                  uVar11 = FUN_00123030(0);\n                  *(undefined8 *)(lVar16 + 0x58) = uVar11;\n                }\n                goto LAB_0011c659;\n              }\n              if (DAT_0017fc5c == 3) {\n                uVar11 = puVar21[0x1e];\n                uVar14 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_001251f0(uVar14,puVar21,uVar11);\n              }\n              if ((DAT_0017fc78 == 0) && (iVar9 = FUN_001150a0(puVar21,0), iVar9 == 0)) {\n                uVar10 = 0;\n              }\n              else {\n                uVar10 = 0x17e;\n              }\n              lVar16 = FUN_00123c60(puVar21,pbVar4,uVar10);\n              if (lVar16 == 0) {\n                lVar16 = FUN_00116e20(pbVar4,uVar10,1);\n                if ((*(long *)(lVar16 + 0x58) == 0) &&\n                   (((DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0)))) {\n                  uVar11 = FUN_00123030(0);\n                  *(undefined8 *)(lVar16 + 0x58) = uVar11;\n                }\n                FUN_00117b90(lVar16 + 0x10,puVar21,0);\n              }\n              if (DAT_0017fc5c == 2) {\n                uVar11 = puVar21[0x1e];\n                uVar14 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_001251f0(uVar14,puVar21,uVar11);\n              }\n            }" if (parenthesized_expression "((!bVar38 && !bVar39) == bVar38)" ( (binary_expression "(!bVar38 && !bVar39) == bVar38" (parenthesized_expression "(!bVar38 && !bVar39)" ( (binary_expression "!bVar38 && !bVar39" (unary_expression "!bVar38" ! identifier) && (unary_expression "!bVar39" ! identifier)) )) == identifier) )) (compound_statement "{\n              if (((DAT_0017fac0 & 3) != 2) || (DAT_0017fbc0 != 0)) {\n                lVar16 = DAT_0017f458;\n                if (DAT_0017f458 == 0) {\n                  lVar16 = FUN_00116e20(".bss",0,1);\n                  DAT_0017f458 = lVar16;\n                }\nLAB_0011c659:\n                FUN_00117b90(lVar16 + 0x10,puVar21,0);\n              }\n            }" { (if_statement "if (((DAT_0017fac0 & 3) != 2) || (DAT_0017fbc0 != 0)) {\n                lVar16 = DAT_0017f458;\n                if (DAT_0017f458 == 0) {\n                  lVar16 = FUN_00116e20(".bss",0,1);\n                  DAT_0017f458 = lVar16;\n                }\nLAB_0011c659:\n                FUN_00117b90(lVar16 + 0x10,puVar21,0);\n              }" if (parenthesized_expression "(((DAT_0017fac0 & 3) != 2) || (DAT_0017fbc0 != 0))" ( (binary_expression "((DAT_0017fac0 & 3) != 2) || (DAT_0017fbc0 != 0)" (parenthesized_expression "((DAT_0017fac0 & 3) != 2)" ( (binary_expression "(DAT_0017fac0 & 3) != 2" (parenthesized_expression "(DAT_0017fac0 & 3)" ( (binary_expression "DAT_0017fac0 & 3" identifier & number_literal) )) != number_literal) )) || (parenthesized_expression "(DAT_0017fbc0 != 0)" ( (binary_expression "DAT_0017fbc0 != 0" identifier != number_literal) ))) )) (compound_statement "{\n                lVar16 = DAT_0017f458;\n                if (DAT_0017f458 == 0) {\n                  lVar16 = FUN_00116e20(".bss",0,1);\n                  DAT_0017f458 = lVar16;\n                }\nLAB_0011c659:\n                FUN_00117b90(lVar16 + 0x10,puVar21,0);\n              }" { (expression_statement "lVar16 = DAT_0017f458;" (assignment_expression "lVar16 = DAT_0017f458" identifier = identifier) ;) (if_statement "if (DAT_0017f458 == 0) {\n                  lVar16 = FUN_00116e20(".bss",0,1);\n                  DAT_0017f458 = lVar16;\n                }" if (parenthesized_expression "(DAT_0017f458 == 0)" ( (binary_expression "DAT_0017f458 == 0" identifier == number_literal) )) (compound_statement "{\n                  lVar16 = FUN_00116e20(".bss",0,1);\n                  DAT_0017f458 = lVar16;\n                }" { (expression_statement "lVar16 = FUN_00116e20(".bss",0,1);" (assignment_expression "lVar16 = FUN_00116e20(".bss",0,1)" identifier = (call_expression "FUN_00116e20(".bss",0,1)" identifier (argument_list "(".bss",0,1)" ( (string_literal "".bss"" " string_content ") , number_literal , number_literal )))) ;) (expression_statement "DAT_0017f458 = lVar16;" (assignment_expression "DAT_0017f458 = lVar16" identifier = identifier) ;) })) (labeled_statement "LAB_0011c659:\n                FUN_00117b90(lVar16 + 0x10,puVar21,0);" statement_identifier : (expression_statement "FUN_00117b90(lVar16 + 0x10,puVar21,0);" (call_expression "FUN_00117b90(lVar16 + 0x10,puVar21,0)" identifier (argument_list "(lVar16 + 0x10,puVar21,0)" ( (binary_expression "lVar16 + 0x10" identifier + number_literal) , identifier , number_literal ))) ;)) })) }) (else_clause "else {\n              if (DAT_0017fc5c == 1) {\n                lVar16 = FUN_00116e20("/DISCARD/",0,1);\n                if ((*(long *)(lVar16 + 0x58) == 0) &&\n                   (((DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0)))) {\n                  uVar11 = FUN_00123030(0);\n                  *(undefined8 *)(lVar16 + 0x58) = uVar11;\n                }\n                goto LAB_0011c659;\n              }\n              if (DAT_0017fc5c == 3) {\n                uVar11 = puVar21[0x1e];\n                uVar14 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_001251f0(uVar14,puVar21,uVar11);\n              }\n              if ((DAT_0017fc78 == 0) && (iVar9 = FUN_001150a0(puVar21,0), iVar9 == 0)) {\n                uVar10 = 0;\n              }\n              else {\n                uVar10 = 0x17e;\n              }\n              lVar16 = FUN_00123c60(puVar21,pbVar4,uVar10);\n              if (lVar16 == 0) {\n                lVar16 = FUN_00116e20(pbVar4,uVar10,1);\n                if ((*(long *)(lVar16 + 0x58) == 0) &&\n                   (((DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0)))) {\n                  uVar11 = FUN_00123030(0);\n                  *(undefined8 *)(lVar16 + 0x58) = uVar11;\n                }\n                FUN_00117b90(lVar16 + 0x10,puVar21,0);\n              }\n              if (DAT_0017fc5c == 2) {\n                uVar11 = puVar21[0x1e];\n                uVar14 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_001251f0(uVar14,puVar21,uVar11);\n              }\n            }" else (compound_statement "{\n              if (DAT_0017fc5c == 1) {\n                lVar16 = FUN_00116e20("/DISCARD/",0,1);\n                if ((*(long *)(lVar16 + 0x58) == 0) &&\n                   (((DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0)))) {\n                  uVar11 = FUN_00123030(0);\n                  *(undefined8 *)(lVar16 + 0x58) = uVar11;\n                }\n                goto LAB_0011c659;\n              }\n              if (DAT_0017fc5c == 3) {\n                uVar11 = puVar21[0x1e];\n                uVar14 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_001251f0(uVar14,puVar21,uVar11);\n              }\n              if ((DAT_0017fc78 == 0) && (iVar9 = FUN_001150a0(puVar21,0), iVar9 == 0)) {\n                uVar10 = 0;\n              }\n              else {\n                uVar10 = 0x17e;\n              }\n              lVar16 = FUN_00123c60(puVar21,pbVar4,uVar10);\n              if (lVar16 == 0) {\n                lVar16 = FUN_00116e20(pbVar4,uVar10,1);\n                if ((*(long *)(lVar16 + 0x58) == 0) &&\n                   (((DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0)))) {\n                  uVar11 = FUN_00123030(0);\n                  *(undefined8 *)(lVar16 + 0x58) = uVar11;\n                }\n                FUN_00117b90(lVar16 + 0x10,puVar21,0);\n              }\n              if (DAT_0017fc5c == 2) {\n                uVar11 = puVar21[0x1e];\n                uVar14 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_001251f0(uVar14,puVar21,uVar11);\n              }\n            }" { (if_statement "if (DAT_0017fc5c == 1) {\n                lVar16 = FUN_00116e20("/DISCARD/",0,1);\n                if ((*(long *)(lVar16 + 0x58) == 0) &&\n                   (((DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0)))) {\n                  uVar11 = FUN_00123030(0);\n                  *(undefined8 *)(lVar16 + 0x58) = uVar11;\n                }\n                goto LAB_0011c659;\n              }" if (parenthesized_expression "(DAT_0017fc5c == 1)" ( (binary_expression "DAT_0017fc5c == 1" identifier == number_literal) )) (compound_statement "{\n                lVar16 = FUN_00116e20("/DISCARD/",0,1);\n                if ((*(long *)(lVar16 + 0x58) == 0) &&\n                   (((DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0)))) {\n                  uVar11 = FUN_00123030(0);\n                  *(undefined8 *)(lVar16 + 0x58) = uVar11;\n                }\n                goto LAB_0011c659;\n              }" { (expression_statement "lVar16 = FUN_00116e20("/DISCARD/",0,1);" (assignment_expression "lVar16 = FUN_00116e20("/DISCARD/",0,1)" identifier = (call_expression "FUN_00116e20("/DISCARD/",0,1)" identifier (argument_list "("/DISCARD/",0,1)" ( (string_literal ""/DISCARD/"" " string_content ") , number_literal , number_literal )))) ;) (if_statement "if ((*(long *)(lVar16 + 0x58) == 0) &&\n                   (((DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0)))) {\n                  uVar11 = FUN_00123030(0);\n                  *(undefined8 *)(lVar16 + 0x58) = uVar11;\n                }" if (parenthesized_expression "((*(long *)(lVar16 + 0x58) == 0) &&\n                   (((DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0))))" ( (binary_expression "(*(long *)(lVar16 + 0x58) == 0) &&\n                   (((DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0)))" (parenthesized_expression "(*(long *)(lVar16 + 0x58) == 0)" ( (binary_expression "*(long *)(lVar16 + 0x58) == 0" (pointer_expression "*(long *)(lVar16 + 0x58)" * (cast_expression "(long *)(lVar16 + 0x58)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar16 + 0x58)" ( (binary_expression "lVar16 + 0x58" identifier + number_literal) )))) == number_literal) )) && (parenthesized_expression "(((DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0)))" ( (parenthesized_expression "((DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0))" ( (binary_expression "(DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0)" (binary_expression "(DAT_0017fac0 & 3) == 2" (parenthesized_expression "(DAT_0017fac0 & 3)" ( (binary_expression "DAT_0017fac0 & 3" identifier & number_literal) )) == number_literal) || (parenthesized_expression "((*(byte *)(puVar21 + 4) & 3) == 0)" ( (binary_expression "(*(byte *)(puVar21 + 4) & 3) == 0" (parenthesized_expression "(*(byte *)(puVar21 + 4) & 3)" ( (binary_expression "*(byte *)(puVar21 + 4) & 3" (pointer_expression "*(byte *)(puVar21 + 4)" * (cast_expression "(byte *)(puVar21 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + 4)" ( (binary_expression "puVar21 + 4" identifier + number_literal) )))) & number_literal) )) == number_literal) ))) )) ))) )) (compound_statement "{\n                  uVar11 = FUN_00123030(0);\n                  *(undefined8 *)(lVar16 + 0x58) = uVar11;\n                }" { (expression_statement "uVar11 = FUN_00123030(0);" (assignment_expression "uVar11 = FUN_00123030(0)" identifier = (call_expression "FUN_00123030(0)" identifier (argument_list "(0)" ( number_literal )))) ;) (expression_statement "*(undefined8 *)(lVar16 + 0x58) = uVar11;" (assignment_expression "*(undefined8 *)(lVar16 + 0x58) = uVar11" (pointer_expression "*(undefined8 *)(lVar16 + 0x58)" * (cast_expression "(undefined8 *)(lVar16 + 0x58)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar16 + 0x58)" ( (binary_expression "lVar16 + 0x58" identifier + number_literal) )))) = identifier) ;) })) (goto_statement "goto LAB_0011c659;" goto statement_identifier ;) })) (if_statement "if (DAT_0017fc5c == 3) {\n                uVar11 = puVar21[0x1e];\n                uVar14 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_001251f0(uVar14,puVar21,uVar11);\n              }" if (parenthesized_expression "(DAT_0017fc5c == 3)" ( (binary_expression "DAT_0017fc5c == 3" identifier == number_literal) )) (compound_statement "{\n                uVar11 = puVar21[0x1e];\n                uVar14 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_001251f0(uVar14,puVar21,uVar11);\n              }" { (expression_statement "uVar11 = puVar21[0x1e];" (assignment_expression "uVar11 = puVar21[0x1e]" identifier = (subscript_expression "puVar21[0x1e]" 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_001251f0(uVar14,puVar21,uVar11);" (call_expression "FUN_001251f0(uVar14,puVar21,uVar11)" identifier (argument_list "(uVar14,puVar21,uVar11)" ( identifier , identifier , identifier ))) ;) })) (if_statement "if ((DAT_0017fc78 == 0) && (iVar9 = FUN_001150a0(puVar21,0), iVar9 == 0)) {\n                uVar10 = 0;\n              }\n              else {\n                uVar10 = 0x17e;\n              }" if (parenthesized_expression "((DAT_0017fc78 == 0) && (iVar9 = FUN_001150a0(puVar21,0), iVar9 == 0))" ( (binary_expression "(DAT_0017fc78 == 0) && (iVar9 = FUN_001150a0(puVar21,0), iVar9 == 0)" (parenthesized_expression "(DAT_0017fc78 == 0)" ( (binary_expression "DAT_0017fc78 == 0" identifier == number_literal) )) && (parenthesized_expression "(iVar9 = FUN_001150a0(puVar21,0), iVar9 == 0)" ( (comma_expression "iVar9 = FUN_001150a0(puVar21,0), iVar9 == 0" (assignment_expression "iVar9 = FUN_001150a0(puVar21,0)" identifier = (call_expression "FUN_001150a0(puVar21,0)" identifier (argument_list "(puVar21,0)" ( identifier , number_literal )))) , (binary_expression "iVar9 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n                uVar10 = 0;\n              }" { (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" identifier = number_literal) ;) }) (else_clause "else {\n                uVar10 = 0x17e;\n              }" else (compound_statement "{\n                uVar10 = 0x17e;\n              }" { (expression_statement "uVar10 = 0x17e;" (assignment_expression "uVar10 = 0x17e" identifier = number_literal) ;) }))) (expression_statement "lVar16 = FUN_00123c60(puVar21,pbVar4,uVar10);" (assignment_expression "lVar16 = FUN_00123c60(puVar21,pbVar4,uVar10)" identifier = (call_expression "FUN_00123c60(puVar21,pbVar4,uVar10)" identifier (argument_list "(puVar21,pbVar4,uVar10)" ( identifier , identifier , identifier )))) ;) (if_statement "if (lVar16 == 0) {\n                lVar16 = FUN_00116e20(pbVar4,uVar10,1);\n                if ((*(long *)(lVar16 + 0x58) == 0) &&\n                   (((DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0)))) {\n                  uVar11 = FUN_00123030(0);\n                  *(undefined8 *)(lVar16 + 0x58) = uVar11;\n                }\n                FUN_00117b90(lVar16 + 0x10,puVar21,0);\n              }" if (parenthesized_expression "(lVar16 == 0)" ( (binary_expression "lVar16 == 0" identifier == number_literal) )) (compound_statement "{\n                lVar16 = FUN_00116e20(pbVar4,uVar10,1);\n                if ((*(long *)(lVar16 + 0x58) == 0) &&\n                   (((DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0)))) {\n                  uVar11 = FUN_00123030(0);\n                  *(undefined8 *)(lVar16 + 0x58) = uVar11;\n                }\n                FUN_00117b90(lVar16 + 0x10,puVar21,0);\n              }" { (expression_statement "lVar16 = FUN_00116e20(pbVar4,uVar10,1);" (assignment_expression "lVar16 = FUN_00116e20(pbVar4,uVar10,1)" identifier = (call_expression "FUN_00116e20(pbVar4,uVar10,1)" identifier (argument_list "(pbVar4,uVar10,1)" ( identifier , identifier , number_literal )))) ;) (if_statement "if ((*(long *)(lVar16 + 0x58) == 0) &&\n                   (((DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0)))) {\n                  uVar11 = FUN_00123030(0);\n                  *(undefined8 *)(lVar16 + 0x58) = uVar11;\n                }" if (parenthesized_expression "((*(long *)(lVar16 + 0x58) == 0) &&\n                   (((DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0))))" ( (binary_expression "(*(long *)(lVar16 + 0x58) == 0) &&\n                   (((DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0)))" (parenthesized_expression "(*(long *)(lVar16 + 0x58) == 0)" ( (binary_expression "*(long *)(lVar16 + 0x58) == 0" (pointer_expression "*(long *)(lVar16 + 0x58)" * (cast_expression "(long *)(lVar16 + 0x58)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar16 + 0x58)" ( (binary_expression "lVar16 + 0x58" identifier + number_literal) )))) == number_literal) )) && (parenthesized_expression "(((DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0)))" ( (parenthesized_expression "((DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0))" ( (binary_expression "(DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0)" (binary_expression "(DAT_0017fac0 & 3) == 2" (parenthesized_expression "(DAT_0017fac0 & 3)" ( (binary_expression "DAT_0017fac0 & 3" identifier & number_literal) )) == number_literal) || (parenthesized_expression "((*(byte *)(puVar21 + 4) & 3) == 0)" ( (binary_expression "(*(byte *)(puVar21 + 4) & 3) == 0" (parenthesized_expression "(*(byte *)(puVar21 + 4) & 3)" ( (binary_expression "*(byte *)(puVar21 + 4) & 3" (pointer_expression "*(byte *)(puVar21 + 4)" * (cast_expression "(byte *)(puVar21 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + 4)" ( (binary_expression "puVar21 + 4" identifier + number_literal) )))) & number_literal) )) == number_literal) ))) )) ))) )) (compound_statement "{\n                  uVar11 = FUN_00123030(0);\n                  *(undefined8 *)(lVar16 + 0x58) = uVar11;\n                }" { (expression_statement "uVar11 = FUN_00123030(0);" (assignment_expression "uVar11 = FUN_00123030(0)" identifier = (call_expression "FUN_00123030(0)" identifier (argument_list "(0)" ( number_literal )))) ;) (expression_statement "*(undefined8 *)(lVar16 + 0x58) = uVar11;" (assignment_expression "*(undefined8 *)(lVar16 + 0x58) = uVar11" (pointer_expression "*(undefined8 *)(lVar16 + 0x58)" * (cast_expression "(undefined8 *)(lVar16 + 0x58)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar16 + 0x58)" ( (binary_expression "lVar16 + 0x58" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "FUN_00117b90(lVar16 + 0x10,puVar21,0);" (call_expression "FUN_00117b90(lVar16 + 0x10,puVar21,0)" identifier (argument_list "(lVar16 + 0x10,puVar21,0)" ( (binary_expression "lVar16 + 0x10" identifier + number_literal) , identifier , number_literal ))) ;) })) (if_statement "if (DAT_0017fc5c == 2) {\n                uVar11 = puVar21[0x1e];\n                uVar14 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_001251f0(uVar14,puVar21,uVar11);\n              }" if (parenthesized_expression "(DAT_0017fc5c == 2)" ( (binary_expression "DAT_0017fc5c == 2" identifier == number_literal) )) (compound_statement "{\n                uVar11 = puVar21[0x1e];\n                uVar14 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_001251f0(uVar14,puVar21,uVar11);\n              }" { (expression_statement "uVar11 = puVar21[0x1e];" (assignment_expression "uVar11 = puVar21[0x1e]" identifier = (subscript_expression "puVar21[0x1e]" identifier [ number_literal ])) ;) (expression_statement "uVar14 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);" (assignment_expression "uVar14 = 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_001251f0(uVar14,puVar21,uVar11);" (call_expression "FUN_001251f0(uVar14,puVar21,uVar11)" identifier (argument_list "(uVar14,puVar21,uVar11)" ( identifier , identifier , identifier ))) ;) })) }))) }) (else_clause "else {\n            puVar21[0xd] = 0x17ed50;\n          }" else (compound_statement "{\n            puVar21[0xd] = 0x17ed50;\n          }" { (expression_statement "puVar21[0xd] = 0x17ed50;" (assignment_expression "puVar21[0xd] = 0x17ed50" (subscript_expression "puVar21[0xd]" identifier [ number_literal ]) = number_literal) ;) }))) })) (expression_statement "puVar21 = (undefined8 *)puVar21[2];" (assignment_expression "puVar21 = (undefined8 *)puVar21[2]" identifier = (cast_expression "(undefined8 *)puVar21[2]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar21[2]" identifier [ number_literal ]))) ;) (if_statement "if (puVar21 == (undefined8 *)0x0) break;" if (parenthesized_expression "(puVar21 == (undefined8 *)0x0)" ( (binary_expression "puVar21 == (undefined8 *)0x0" identifier == (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) }) while (parenthesized_expression "( true )" ( true )) ;) }))) }))) (expression_statement "bVar35 = DAT_0017fac0 & 3;" (assignment_expression "bVar35 = DAT_0017fac0 & 3" identifier = (binary_expression "DAT_0017fac0 & 3" identifier & number_literal)) ;) (expression_statement "plVar17 = DAT_0017f358;" (assignment_expression "plVar17 = DAT_0017f358" identifier = identifier) ;) (expression_statement "plVar18 = DAT_0017fa60;" (assignment_expression "plVar18 = DAT_0017fa60" identifier = identifier) ;) (expression_statement "lVar16 = DAT_0017fb10;" (assignment_expression "lVar16 = DAT_0017fb10" identifier = identifier) ;) (if_statement "if (bVar35 != 2) {\n    (**(code **)(*(long *)(DAT_0017fb10 + 8) + 0x300))(DAT_0017fb10,&DAT_0017fac0);\n    lVar16 = bfd_get_section_by_name(DAT_0017fb10,".text");\n    if (lVar16 == 0) {\n      bVar35 = DAT_0017fac0 & 3;\n      plVar17 = DAT_0017f358;\n      plVar18 = DAT_0017fa60;\n      lVar16 = DAT_0017fb10;\n    }\n    else {\n      bVar35 = DAT_0017fac0 & 3;\n      if (DAT_0017fc70 == 0) {\n        *(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) & 0xfffffff7;\n        plVar17 = DAT_0017f358;\n        plVar18 = DAT_0017fa60;\n        lVar16 = DAT_0017fb10;\n      }\n      else {\n        *(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) | 8;\n        plVar17 = DAT_0017f358;\n        plVar18 = DAT_0017fa60;\n        lVar16 = DAT_0017fb10;\n      }\n    }\n  }" if (parenthesized_expression "(bVar35 != 2)" ( (binary_expression "bVar35 != 2" identifier != number_literal) )) (compound_statement "{\n    (**(code **)(*(long *)(DAT_0017fb10 + 8) + 0x300))(DAT_0017fb10,&DAT_0017fac0);\n    lVar16 = bfd_get_section_by_name(DAT_0017fb10,".text");\n    if (lVar16 == 0) {\n      bVar35 = DAT_0017fac0 & 3;\n      plVar17 = DAT_0017f358;\n      plVar18 = DAT_0017fa60;\n      lVar16 = DAT_0017fb10;\n    }\n    else {\n      bVar35 = DAT_0017fac0 & 3;\n      if (DAT_0017fc70 == 0) {\n        *(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) & 0xfffffff7;\n        plVar17 = DAT_0017f358;\n        plVar18 = DAT_0017fa60;\n        lVar16 = DAT_0017fb10;\n      }\n      else {\n        *(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) | 8;\n        plVar17 = DAT_0017f358;\n        plVar18 = DAT_0017fa60;\n        lVar16 = DAT_0017fb10;\n      }\n    }\n  }" { (expression_statement "(**(code **)(*(long *)(DAT_0017fb10 + 8) + 0x300))(DAT_0017fb10,&DAT_0017fac0);" (call_expression "(**(code **)(*(long *)(DAT_0017fb10 + 8) + 0x300))(DAT_0017fb10,&DAT_0017fac0)" (parenthesized_expression "(**(code **)(*(long *)(DAT_0017fb10 + 8) + 0x300))" ( (pointer_expression "**(code **)(*(long *)(DAT_0017fb10 + 8) + 0x300)" * (pointer_expression "*(code **)(*(long *)(DAT_0017fb10 + 8) + 0x300)" * (cast_expression "(code **)(*(long *)(DAT_0017fb10 + 8) + 0x300)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)(DAT_0017fb10 + 8) + 0x300)" ( (binary_expression "*(long *)(DAT_0017fb10 + 8) + 0x300" (pointer_expression "*(long *)(DAT_0017fb10 + 8)" * (cast_expression "(long *)(DAT_0017fb10 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0017fb10 + 8)" ( (binary_expression "DAT_0017fb10 + 8" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(DAT_0017fb10,&DAT_0017fac0)" ( identifier , (pointer_expression "&DAT_0017fac0" & identifier) ))) ;) (expression_statement "lVar16 = bfd_get_section_by_name(DAT_0017fb10,".text");" (assignment_expression "lVar16 = bfd_get_section_by_name(DAT_0017fb10,".text")" identifier = (call_expression "bfd_get_section_by_name(DAT_0017fb10,".text")" identifier (argument_list "(DAT_0017fb10,".text")" ( identifier , (string_literal "".text"" " string_content ") )))) ;) (if_statement "if (lVar16 == 0) {\n      bVar35 = DAT_0017fac0 & 3;\n      plVar17 = DAT_0017f358;\n      plVar18 = DAT_0017fa60;\n      lVar16 = DAT_0017fb10;\n    }\n    else {\n      bVar35 = DAT_0017fac0 & 3;\n      if (DAT_0017fc70 == 0) {\n        *(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) & 0xfffffff7;\n        plVar17 = DAT_0017f358;\n        plVar18 = DAT_0017fa60;\n        lVar16 = DAT_0017fb10;\n      }\n      else {\n        *(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) | 8;\n        plVar17 = DAT_0017f358;\n        plVar18 = DAT_0017fa60;\n        lVar16 = DAT_0017fb10;\n      }\n    }" if (parenthesized_expression "(lVar16 == 0)" ( (binary_expression "lVar16 == 0" identifier == number_literal) )) (compound_statement "{\n      bVar35 = DAT_0017fac0 & 3;\n      plVar17 = DAT_0017f358;\n      plVar18 = DAT_0017fa60;\n      lVar16 = DAT_0017fb10;\n    }" { (expression_statement "bVar35 = DAT_0017fac0 & 3;" (assignment_expression "bVar35 = DAT_0017fac0 & 3" identifier = (binary_expression "DAT_0017fac0 & 3" identifier & number_literal)) ;) (expression_statement "plVar17 = DAT_0017f358;" (assignment_expression "plVar17 = DAT_0017f358" identifier = identifier) ;) (expression_statement "plVar18 = DAT_0017fa60;" (assignment_expression "plVar18 = DAT_0017fa60" identifier = identifier) ;) (expression_statement "lVar16 = DAT_0017fb10;" (assignment_expression "lVar16 = DAT_0017fb10" identifier = identifier) ;) }) (else_clause "else {\n      bVar35 = DAT_0017fac0 & 3;\n      if (DAT_0017fc70 == 0) {\n        *(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) & 0xfffffff7;\n        plVar17 = DAT_0017f358;\n        plVar18 = DAT_0017fa60;\n        lVar16 = DAT_0017fb10;\n      }\n      else {\n        *(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) | 8;\n        plVar17 = DAT_0017f358;\n        plVar18 = DAT_0017fa60;\n        lVar16 = DAT_0017fb10;\n      }\n    }" else (compound_statement "{\n      bVar35 = DAT_0017fac0 & 3;\n      if (DAT_0017fc70 == 0) {\n        *(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) & 0xfffffff7;\n        plVar17 = DAT_0017f358;\n        plVar18 = DAT_0017fa60;\n        lVar16 = DAT_0017fb10;\n      }\n      else {\n        *(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) | 8;\n        plVar17 = DAT_0017f358;\n        plVar18 = DAT_0017fa60;\n        lVar16 = DAT_0017fb10;\n      }\n    }" { (expression_statement "bVar35 = DAT_0017fac0 & 3;" (assignment_expression "bVar35 = DAT_0017fac0 & 3" identifier = (binary_expression "DAT_0017fac0 & 3" identifier & number_literal)) ;) (if_statement "if (DAT_0017fc70 == 0) {\n        *(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) & 0xfffffff7;\n        plVar17 = DAT_0017f358;\n        plVar18 = DAT_0017fa60;\n        lVar16 = DAT_0017fb10;\n      }\n      else {\n        *(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) | 8;\n        plVar17 = DAT_0017f358;\n        plVar18 = DAT_0017fa60;\n        lVar16 = DAT_0017fb10;\n      }" if (parenthesized_expression "(DAT_0017fc70 == 0)" ( (binary_expression "DAT_0017fc70 == 0" identifier == number_literal) )) (compound_statement "{\n        *(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) & 0xfffffff7;\n        plVar17 = DAT_0017f358;\n        plVar18 = DAT_0017fa60;\n        lVar16 = DAT_0017fb10;\n      }" { (expression_statement "*(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) & 0xfffffff7;" (assignment_expression "*(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) & 0xfffffff7" (pointer_expression "*(uint *)(lVar16 + 0x20)" * (cast_expression "(uint *)(lVar16 + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar16 + 0x20)" ( (binary_expression "lVar16 + 0x20" identifier + number_literal) )))) = (binary_expression "*(uint *)(lVar16 + 0x20) & 0xfffffff7" (pointer_expression "*(uint *)(lVar16 + 0x20)" * (cast_expression "(uint *)(lVar16 + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar16 + 0x20)" ( (binary_expression "lVar16 + 0x20" identifier + number_literal) )))) & number_literal)) ;) (expression_statement "plVar17 = DAT_0017f358;" (assignment_expression "plVar17 = DAT_0017f358" identifier = identifier) ;) (expression_statement "plVar18 = DAT_0017fa60;" (assignment_expression "plVar18 = DAT_0017fa60" identifier = identifier) ;) (expression_statement "lVar16 = DAT_0017fb10;" (assignment_expression "lVar16 = DAT_0017fb10" identifier = identifier) ;) }) (else_clause "else {\n        *(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) | 8;\n        plVar17 = DAT_0017f358;\n        plVar18 = DAT_0017fa60;\n        lVar16 = DAT_0017fb10;\n      }" else (compound_statement "{\n        *(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) | 8;\n        plVar17 = DAT_0017f358;\n        plVar18 = DAT_0017fa60;\n        lVar16 = DAT_0017fb10;\n      }" { (expression_statement "*(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) | 8;" (assignment_expression "*(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) | 8" (pointer_expression "*(uint *)(lVar16 + 0x20)" * (cast_expression "(uint *)(lVar16 + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar16 + 0x20)" ( (binary_expression "lVar16 + 0x20" identifier + number_literal) )))) = (binary_expression "*(uint *)(lVar16 + 0x20) | 8" (pointer_expression "*(uint *)(lVar16 + 0x20)" * (cast_expression "(uint *)(lVar16 + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar16 + 0x20)" ( (binary_expression "lVar16 + 0x20" identifier + number_literal) )))) | number_literal)) ;) (expression_statement "plVar17 = DAT_0017f358;" (assignment_expression "plVar17 = DAT_0017f358" identifier = identifier) ;) (expression_statement "plVar18 = DAT_0017fa60;" (assignment_expression "plVar18 = DAT_0017fa60" identifier = identifier) ;) (expression_statement "lVar16 = DAT_0017fb10;" (assignment_expression "lVar16 = DAT_0017fb10" identifier = identifier) ;) }))) }))) })) (for_statement "for (; DAT_0017f358 = plVar17, DAT_0017fb10 = lVar16, plVar18 != (long *)0x0;\n      plVar18 = (long *)plVar18[4]) {\n    lVar16 = plVar18[5];\n    if ((((lVar16 != 0) && (plVar18[9] == 0)) && (plVar18[0xc] == 0)) &&\n       ((plVar18[0xb] == 0 && (plVar18[8] == *(long *)(lVar16 + 0x40))))) {\n      plVar18[9] = *(long *)(lVar16 + 0x48);\n    }\n    plVar17 = DAT_0017f358;\n    lVar16 = DAT_0017fb10;\n  }" for ( ; (comma_expression "DAT_0017f358 = plVar17, DAT_0017fb10 = lVar16, plVar18 != (long *)0x0" (assignment_expression "DAT_0017f358 = plVar17" identifier = identifier) , (comma_expression "DAT_0017fb10 = lVar16, plVar18 != (long *)0x0" (assignment_expression "DAT_0017fb10 = lVar16" identifier = identifier) , (binary_expression "plVar18 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)))) ; (assignment_expression "plVar18 = (long *)plVar18[4]" identifier = (cast_expression "(long *)plVar18[4]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar18[4]" identifier [ number_literal ]))) ) (compound_statement "{\n    lVar16 = plVar18[5];\n    if ((((lVar16 != 0) && (plVar18[9] == 0)) && (plVar18[0xc] == 0)) &&\n       ((plVar18[0xb] == 0 && (plVar18[8] == *(long *)(lVar16 + 0x40))))) {\n      plVar18[9] = *(long *)(lVar16 + 0x48);\n    }\n    plVar17 = DAT_0017f358;\n    lVar16 = DAT_0017fb10;\n  }" { (expression_statement "lVar16 = plVar18[5];" (assignment_expression "lVar16 = plVar18[5]" identifier = (subscript_expression "plVar18[5]" identifier [ number_literal ])) ;) (if_statement "if ((((lVar16 != 0) && (plVar18[9] == 0)) && (plVar18[0xc] == 0)) &&\n       ((plVar18[0xb] == 0 && (plVar18[8] == *(long *)(lVar16 + 0x40))))) {\n      plVar18[9] = *(long *)(lVar16 + 0x48);\n    }" if (parenthesized_expression "((((lVar16 != 0) && (plVar18[9] == 0)) && (plVar18[0xc] == 0)) &&\n       ((plVar18[0xb] == 0 && (plVar18[8] == *(long *)(lVar16 + 0x40)))))" ( (binary_expression "(((lVar16 != 0) && (plVar18[9] == 0)) && (plVar18[0xc] == 0)) &&\n       ((plVar18[0xb] == 0 && (plVar18[8] == *(long *)(lVar16 + 0x40))))" (parenthesized_expression "(((lVar16 != 0) && (plVar18[9] == 0)) && (plVar18[0xc] == 0))" ( (binary_expression "((lVar16 != 0) && (plVar18[9] == 0)) && (plVar18[0xc] == 0)" (parenthesized_expression "((lVar16 != 0) && (plVar18[9] == 0))" ( (binary_expression "(lVar16 != 0) && (plVar18[9] == 0)" (parenthesized_expression "(lVar16 != 0)" ( (binary_expression "lVar16 != 0" identifier != number_literal) )) && (parenthesized_expression "(plVar18[9] == 0)" ( (binary_expression "plVar18[9] == 0" (subscript_expression "plVar18[9]" identifier [ number_literal ]) == number_literal) ))) )) && (parenthesized_expression "(plVar18[0xc] == 0)" ( (binary_expression "plVar18[0xc] == 0" (subscript_expression "plVar18[0xc]" identifier [ number_literal ]) == number_literal) ))) )) && (parenthesized_expression "((plVar18[0xb] == 0 && (plVar18[8] == *(long *)(lVar16 + 0x40))))" ( (parenthesized_expression "(plVar18[0xb] == 0 && (plVar18[8] == *(long *)(lVar16 + 0x40)))" ( (binary_expression "plVar18[0xb] == 0 && (plVar18[8] == *(long *)(lVar16 + 0x40))" (binary_expression "plVar18[0xb] == 0" (subscript_expression "plVar18[0xb]" identifier [ number_literal ]) == number_literal) && (parenthesized_expression "(plVar18[8] == *(long *)(lVar16 + 0x40))" ( (binary_expression "plVar18[8] == *(long *)(lVar16 + 0x40)" (subscript_expression "plVar18[8]" identifier [ number_literal ]) == (pointer_expression "*(long *)(lVar16 + 0x40)" * (cast_expression "(long *)(lVar16 + 0x40)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar16 + 0x40)" ( (binary_expression "lVar16 + 0x40" identifier + number_literal) ))))) ))) )) ))) )) (compound_statement "{\n      plVar18[9] = *(long *)(lVar16 + 0x48);\n    }" { (expression_statement "plVar18[9] = *(long *)(lVar16 + 0x48);" (assignment_expression "plVar18[9] = *(long *)(lVar16 + 0x48)" (subscript_expression "plVar18[9]" identifier [ number_literal ]) = (pointer_expression "*(long *)(lVar16 + 0x48)" * (cast_expression "(long *)(lVar16 + 0x48)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar16 + 0x48)" ( (binary_expression "lVar16 + 0x48" identifier + number_literal) ))))) ;) })) (expression_statement "plVar17 = DAT_0017f358;" (assignment_expression "plVar17 = DAT_0017f358" identifier = identifier) ;) (expression_statement "lVar16 = DAT_0017fb10;" (assignment_expression "lVar16 = DAT_0017fb10" identifier = identifier) ;) })) (if_statement "if ((DAT_0017fc4c != 0) && (DAT_0017f350 != 0)) {\n    plVar18 = plVar17 + DAT_0017f350;\n    do {\n      lVar15 = *plVar17;\n      if ((*(byte *)(lVar15 + 0x19) & 8) == 0) {\n        puVar21 = (undefined8 *)(*(undefined8 **)(lVar15 + 0x28))[0xd];\n        if (((puVar21 == (undefined8 *)0x0) || (puVar21[0x1e] != lVar16)) ||\n           (iVar9 = strcmp((char *)**(undefined8 **)(lVar15 + 0x28),(char *)*puVar21), iVar9 != 0))\n        {\n          *(undefined1 *)(lVar15 + 0x18) = 1;\n          *(undefined8 *)(lVar15 + 0x28) = 0;\n        }\n      }\n      plVar17 = plVar17 + 1;\n    } while (plVar18 != plVar17);\n  }" if (parenthesized_expression "((DAT_0017fc4c != 0) && (DAT_0017f350 != 0))" ( (binary_expression "(DAT_0017fc4c != 0) && (DAT_0017f350 != 0)" (parenthesized_expression "(DAT_0017fc4c != 0)" ( (binary_expression "DAT_0017fc4c != 0" identifier != number_literal) )) && (parenthesized_expression "(DAT_0017f350 != 0)" ( (binary_expression "DAT_0017f350 != 0" identifier != number_literal) ))) )) (compound_statement "{\n    plVar18 = plVar17 + DAT_0017f350;\n    do {\n      lVar15 = *plVar17;\n      if ((*(byte *)(lVar15 + 0x19) & 8) == 0) {\n        puVar21 = (undefined8 *)(*(undefined8 **)(lVar15 + 0x28))[0xd];\n        if (((puVar21 == (undefined8 *)0x0) || (puVar21[0x1e] != lVar16)) ||\n           (iVar9 = strcmp((char *)**(undefined8 **)(lVar15 + 0x28),(char *)*puVar21), iVar9 != 0))\n        {\n          *(undefined1 *)(lVar15 + 0x18) = 1;\n          *(undefined8 *)(lVar15 + 0x28) = 0;\n        }\n      }\n      plVar17 = plVar17 + 1;\n    } while (plVar18 != plVar17);\n  }" { (expression_statement "plVar18 = plVar17 + DAT_0017f350;" (assignment_expression "plVar18 = plVar17 + DAT_0017f350" identifier = (binary_expression "plVar17 + DAT_0017f350" identifier + identifier)) ;) (do_statement "do {\n      lVar15 = *plVar17;\n      if ((*(byte *)(lVar15 + 0x19) & 8) == 0) {\n        puVar21 = (undefined8 *)(*(undefined8 **)(lVar15 + 0x28))[0xd];\n        if (((puVar21 == (undefined8 *)0x0) || (puVar21[0x1e] != lVar16)) ||\n           (iVar9 = strcmp((char *)**(undefined8 **)(lVar15 + 0x28),(char *)*puVar21), iVar9 != 0))\n        {\n          *(undefined1 *)(lVar15 + 0x18) = 1;\n          *(undefined8 *)(lVar15 + 0x28) = 0;\n        }\n      }\n      plVar17 = plVar17 + 1;\n    } while (plVar18 != plVar17);" do (compound_statement "{\n      lVar15 = *plVar17;\n      if ((*(byte *)(lVar15 + 0x19) & 8) == 0) {\n        puVar21 = (undefined8 *)(*(undefined8 **)(lVar15 + 0x28))[0xd];\n        if (((puVar21 == (undefined8 *)0x0) || (puVar21[0x1e] != lVar16)) ||\n           (iVar9 = strcmp((char *)**(undefined8 **)(lVar15 + 0x28),(char *)*puVar21), iVar9 != 0))\n        {\n          *(undefined1 *)(lVar15 + 0x18) = 1;\n          *(undefined8 *)(lVar15 + 0x28) = 0;\n        }\n      }\n      plVar17 = plVar17 + 1;\n    }" { (expression_statement "lVar15 = *plVar17;" (assignment_expression "lVar15 = *plVar17" identifier = (pointer_expression "*plVar17" * identifier)) ;) (if_statement "if ((*(byte *)(lVar15 + 0x19) & 8) == 0) {\n        puVar21 = (undefined8 *)(*(undefined8 **)(lVar15 + 0x28))[0xd];\n        if (((puVar21 == (undefined8 *)0x0) || (puVar21[0x1e] != lVar16)) ||\n           (iVar9 = strcmp((char *)**(undefined8 **)(lVar15 + 0x28),(char *)*puVar21), iVar9 != 0))\n        {\n          *(undefined1 *)(lVar15 + 0x18) = 1;\n          *(undefined8 *)(lVar15 + 0x28) = 0;\n        }\n      }" if (parenthesized_expression "((*(byte *)(lVar15 + 0x19) & 8) == 0)" ( (binary_expression "(*(byte *)(lVar15 + 0x19) & 8) == 0" (parenthesized_expression "(*(byte *)(lVar15 + 0x19) & 8)" ( (binary_expression "*(byte *)(lVar15 + 0x19) & 8" (pointer_expression "*(byte *)(lVar15 + 0x19)" * (cast_expression "(byte *)(lVar15 + 0x19)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar15 + 0x19)" ( (binary_expression "lVar15 + 0x19" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n        puVar21 = (undefined8 *)(*(undefined8 **)(lVar15 + 0x28))[0xd];\n        if (((puVar21 == (undefined8 *)0x0) || (puVar21[0x1e] != lVar16)) ||\n           (iVar9 = strcmp((char *)**(undefined8 **)(lVar15 + 0x28),(char *)*puVar21), iVar9 != 0))\n        {\n          *(undefined1 *)(lVar15 + 0x18) = 1;\n          *(undefined8 *)(lVar15 + 0x28) = 0;\n        }\n      }" { (expression_statement "puVar21 = (undefined8 *)(*(undefined8 **)(lVar15 + 0x28))[0xd];" (assignment_expression "puVar21 = (undefined8 *)(*(undefined8 **)(lVar15 + 0x28))[0xd]" identifier = (cast_expression "(undefined8 *)(*(undefined8 **)(lVar15 + 0x28))[0xd]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "(*(undefined8 **)(lVar15 + 0x28))[0xd]" (parenthesized_expression "(*(undefined8 **)(lVar15 + 0x28))" ( (pointer_expression "*(undefined8 **)(lVar15 + 0x28)" * (cast_expression "(undefined8 **)(lVar15 + 0x28)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar15 + 0x28)" ( (binary_expression "lVar15 + 0x28" identifier + number_literal) )))) )) [ number_literal ]))) ;) (if_statement "if (((puVar21 == (undefined8 *)0x0) || (puVar21[0x1e] != lVar16)) ||\n           (iVar9 = strcmp((char *)**(undefined8 **)(lVar15 + 0x28),(char *)*puVar21), iVar9 != 0))\n        {\n          *(undefined1 *)(lVar15 + 0x18) = 1;\n          *(undefined8 *)(lVar15 + 0x28) = 0;\n        }" if (parenthesized_expression "(((puVar21 == (undefined8 *)0x0) || (puVar21[0x1e] != lVar16)) ||\n           (iVar9 = strcmp((char *)**(undefined8 **)(lVar15 + 0x28),(char *)*puVar21), iVar9 != 0))" ( (binary_expression "((puVar21 == (undefined8 *)0x0) || (puVar21[0x1e] != lVar16)) ||\n           (iVar9 = strcmp((char *)**(undefined8 **)(lVar15 + 0x28),(char *)*puVar21), iVar9 != 0)" (parenthesized_expression "((puVar21 == (undefined8 *)0x0) || (puVar21[0x1e] != lVar16))" ( (binary_expression "(puVar21 == (undefined8 *)0x0) || (puVar21[0x1e] != lVar16)" (parenthesized_expression "(puVar21 == (undefined8 *)0x0)" ( (binary_expression "puVar21 == (undefined8 *)0x0" identifier == (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(puVar21[0x1e] != lVar16)" ( (binary_expression "puVar21[0x1e] != lVar16" (subscript_expression "puVar21[0x1e]" identifier [ number_literal ]) != identifier) ))) )) || (parenthesized_expression "(iVar9 = strcmp((char *)**(undefined8 **)(lVar15 + 0x28),(char *)*puVar21), iVar9 != 0)" ( (comma_expression "iVar9 = strcmp((char *)**(undefined8 **)(lVar15 + 0x28),(char *)*puVar21), iVar9 != 0" (assignment_expression "iVar9 = strcmp((char *)**(undefined8 **)(lVar15 + 0x28),(char *)*puVar21)" identifier = (call_expression "strcmp((char *)**(undefined8 **)(lVar15 + 0x28),(char *)*puVar21)" identifier (argument_list "((char *)**(undefined8 **)(lVar15 + 0x28),(char *)*puVar21)" ( (cast_expression "(char *)**(undefined8 **)(lVar15 + 0x28)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined8 **)(lVar15 + 0x28)" * (pointer_expression "*(undefined8 **)(lVar15 + 0x28)" * (cast_expression "(undefined8 **)(lVar15 + 0x28)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar15 + 0x28)" ( (binary_expression "lVar15 + 0x28" identifier + number_literal) )))))) , (cast_expression "(char *)*puVar21" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar21" * identifier)) )))) , (binary_expression "iVar9 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n          *(undefined1 *)(lVar15 + 0x18) = 1;\n          *(undefined8 *)(lVar15 + 0x28) = 0;\n        }" { (expression_statement "*(undefined1 *)(lVar15 + 0x18) = 1;" (assignment_expression "*(undefined1 *)(lVar15 + 0x18) = 1" (pointer_expression "*(undefined1 *)(lVar15 + 0x18)" * (cast_expression "(undefined1 *)(lVar15 + 0x18)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar15 + 0x18)" ( (binary_expression "lVar15 + 0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined8 *)(lVar15 + 0x28) = 0;" (assignment_expression "*(undefined8 *)(lVar15 + 0x28) = 0" (pointer_expression "*(undefined8 *)(lVar15 + 0x28)" * (cast_expression "(undefined8 *)(lVar15 + 0x28)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar15 + 0x28)" ( (binary_expression "lVar15 + 0x28" identifier + number_literal) )))) = number_literal) ;) })) })) (expression_statement "plVar17 = plVar17 + 1;" (assignment_expression "plVar17 = plVar17 + 1" identifier = (binary_expression "plVar17 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(plVar18 != plVar17)" ( (binary_expression "plVar18 != plVar17" identifier != identifier) )) ;) })) (if_statement "if (bVar35 != 2) {\n    for (puVar21 = *(undefined8 **)(DAT_0017fb10 + 0x90); puVar21 != (undefined8 *)0x0;\n        puVar21 = (undefined8 *)puVar21[2]) {\n      pcVar31 = (char *)*puVar21;\n      sVar12 = strlen(pcVar31);\n      pcVar19 = (char *)xmalloc(sVar12 + 10);\n      sprintf(pcVar19,".startof.%s",pcVar31);\n      FUN_00112ee0(pcVar19,puVar21);\n      builtin_strncpy(pcVar19 + 1,".size",5);\n      FUN_00112ee0(pcVar19 + 1,puVar21);\n      free(pcVar19);\n    }\n  }" if (parenthesized_expression "(bVar35 != 2)" ( (binary_expression "bVar35 != 2" identifier != number_literal) )) (compound_statement "{\n    for (puVar21 = *(undefined8 **)(DAT_0017fb10 + 0x90); puVar21 != (undefined8 *)0x0;\n        puVar21 = (undefined8 *)puVar21[2]) {\n      pcVar31 = (char *)*puVar21;\n      sVar12 = strlen(pcVar31);\n      pcVar19 = (char *)xmalloc(sVar12 + 10);\n      sprintf(pcVar19,".startof.%s",pcVar31);\n      FUN_00112ee0(pcVar19,puVar21);\n      builtin_strncpy(pcVar19 + 1,".size",5);\n      FUN_00112ee0(pcVar19 + 1,puVar21);\n      free(pcVar19);\n    }\n  }" { (for_statement "for (puVar21 = *(undefined8 **)(DAT_0017fb10 + 0x90); puVar21 != (undefined8 *)0x0;\n        puVar21 = (undefined8 *)puVar21[2]) {\n      pcVar31 = (char *)*puVar21;\n      sVar12 = strlen(pcVar31);\n      pcVar19 = (char *)xmalloc(sVar12 + 10);\n      sprintf(pcVar19,".startof.%s",pcVar31);\n      FUN_00112ee0(pcVar19,puVar21);\n      builtin_strncpy(pcVar19 + 1,".size",5);\n      FUN_00112ee0(pcVar19 + 1,puVar21);\n      free(pcVar19);\n    }" for ( (assignment_expression "puVar21 = *(undefined8 **)(DAT_0017fb10 + 0x90)" identifier = (pointer_expression "*(undefined8 **)(DAT_0017fb10 + 0x90)" * (cast_expression "(undefined8 **)(DAT_0017fb10 + 0x90)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(DAT_0017fb10 + 0x90)" ( (binary_expression "DAT_0017fb10 + 0x90" identifier + number_literal) ))))) ; (binary_expression "puVar21 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "puVar21 = (undefined8 *)puVar21[2]" identifier = (cast_expression "(undefined8 *)puVar21[2]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar21[2]" identifier [ number_literal ]))) ) (compound_statement "{\n      pcVar31 = (char *)*puVar21;\n      sVar12 = strlen(pcVar31);\n      pcVar19 = (char *)xmalloc(sVar12 + 10);\n      sprintf(pcVar19,".startof.%s",pcVar31);\n      FUN_00112ee0(pcVar19,puVar21);\n      builtin_strncpy(pcVar19 + 1,".size",5);\n      FUN_00112ee0(pcVar19 + 1,puVar21);\n      free(pcVar19);\n    }" { (expression_statement "pcVar31 = (char *)*puVar21;" (assignment_expression "pcVar31 = (char *)*puVar21" identifier = (cast_expression "(char *)*puVar21" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar21" * identifier))) ;) (expression_statement "sVar12 = strlen(pcVar31);" (assignment_expression "sVar12 = strlen(pcVar31)" identifier = (call_expression "strlen(pcVar31)" identifier (argument_list "(pcVar31)" ( identifier )))) ;) (expression_statement "pcVar19 = (char *)xmalloc(sVar12 + 10);" (assignment_expression "pcVar19 = (char *)xmalloc(sVar12 + 10)" identifier = (cast_expression "(char *)xmalloc(sVar12 + 10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(sVar12 + 10)" identifier (argument_list "(sVar12 + 10)" ( (binary_expression "sVar12 + 10" identifier + number_literal) ))))) ;) (expression_statement "sprintf(pcVar19,".startof.%s",pcVar31);" (call_expression "sprintf(pcVar19,".startof.%s",pcVar31)" identifier (argument_list "(pcVar19,".startof.%s",pcVar31)" ( identifier , (string_literal "".startof.%s"" " string_content ") , identifier ))) ;) (expression_statement "FUN_00112ee0(pcVar19,puVar21);" (call_expression "FUN_00112ee0(pcVar19,puVar21)" identifier (argument_list "(pcVar19,puVar21)" ( identifier , identifier ))) ;) (expression_statement "builtin_strncpy(pcVar19 + 1,".size",5);" (call_expression "builtin_strncpy(pcVar19 + 1,".size",5)" identifier (argument_list "(pcVar19 + 1,".size",5)" ( (binary_expression "pcVar19 + 1" identifier + number_literal) , (string_literal "".size"" " string_content ") , number_literal ))) ;) (expression_statement "FUN_00112ee0(pcVar19 + 1,puVar21);" (call_expression "FUN_00112ee0(pcVar19 + 1,puVar21)" identifier (argument_list "(pcVar19 + 1,puVar21)" ( (binary_expression "pcVar19 + 1" identifier + number_literal) , identifier ))) ;) (expression_statement "free(pcVar19);" (call_expression "free(pcVar19)" identifier (argument_list "(pcVar19)" ( identifier ))) ;) })) })) (expression_statement "FUN_00123bc0();" (call_expression "FUN_00123bc0()" identifier (argument_list "()" ( ))) ;) (expression_statement "plVar17 = (long *)0x0;" (assignment_expression "plVar17 = (long *)0x0" identifier = (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "__ptr = (void *)xmalloc(0x50);" (assignment_expression "__ptr = (void *)xmalloc(0x50)" identifier = (cast_expression "(void *)xmalloc(0x50)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(0x50)" identifier (argument_list "(0x50)" ( number_literal ))))) ;) (expression_statement "uVar2 = 10;" (assignment_expression "uVar2 = 10" identifier = number_literal) ;) (for_statement "for (puVar21 = DAT_0017fa50; puVar21 != (undefined8 *)0x0; puVar21 = (undefined8 *)*puVar21) {\n    uVar30 = 0;\n    for (plVar18 = DAT_0017fa60; plVar18 != (long *)0x0; plVar18 = (long *)plVar18[4]) {\n      if (-1 < *(int *)((long)plVar18 + 0x84)) {\n        plVar26 = (long *)plVar18[0xe];\n        if (plVar26 == (long *)0x0) {\n          if (((*(int *)((long)plVar18 + 0x8c) != 2) && (plVar18[7] != 0)) &&\n             (((*(byte *)(plVar18[7] + 0x20) & 1) != 0 &&\n              (plVar26 = plVar17, plVar3 = plVar18, puVar21[2] != 3)))) {\n            while( true ) {\n              plVar17 = plVar26;\n              if (plVar26 != (long *)0x0) goto LAB_0011c7fd;\n              plVar3 = (long *)plVar3[4];\n              if (plVar3 == (long *)0x0) break;\n              plVar26 = (long *)plVar3[0xe];\n            }\n            plVar17 = (long *)0x0;\n            dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            FUN_001251f0();\n          }\n        }\n        else {\n          plVar17 = plVar26;\n          plVar3 = (long *)plVar18[7];\n          while (plVar3 != (long *)0x0) {\nLAB_0011c7fd:\n            iVar9 = strcmp((char *)plVar26[1],(char *)puVar21[1]);\n            uVar29 = uVar30;\n            if (iVar9 == 0) {\n              if (uVar2 <= (uint)uVar30) {\n                uVar2 = uVar2 << 1;\n                __ptr = (void *)xrealloc(__ptr,(ulong)uVar2 << 3);\n              }\n              uVar29 = (ulong)((uint)uVar30 + 1);\n              *(long *)((long)__ptr + uVar30 * 8) = plVar18[7];\n              *(undefined4 *)(plVar26 + 2) = 1;\n            }\n            plVar26 = (long *)*plVar26;\n            uVar30 = uVar29;\n            plVar3 = plVar26;\n          }\n        }\n      }\n    }\n    uVar10 = 0;\n    if (puVar21[5] != 0) {\n      uVar10 = FUN_00123800(puVar21[5],0,"phdr flags");\n    }\n    lVar16 = puVar21[4];\n    uVar11 = 0;\n    if (lVar16 != 0) {\n      uVar11 = FUN_00123800(lVar16,0,"phdr load address");\n      lVar16 = puVar21[4];\n    }\n    iVar9 = bfd_record_phdr(DAT_0017fb10,puVar21[2],puVar21[5] != 0,uVar10,lVar16 != 0,uVar11,\n                            *(undefined4 *)(puVar21 + 3),*(undefined4 *)((long)puVar21 + 0x1c),\n                            uVar30,__ptr);\n    if (iVar9 == 0) {\n      dcgettext(0,"%F%P: bfd_record_phdr failed: %E\n",5);\n      FUN_001251f0();\n    }\n  }" for ( (assignment_expression "puVar21 = DAT_0017fa50" identifier = identifier) ; (binary_expression "puVar21 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "puVar21 = (undefined8 *)*puVar21" identifier = (cast_expression "(undefined8 *)*puVar21" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar21" * identifier))) ) (compound_statement "{\n    uVar30 = 0;\n    for (plVar18 = DAT_0017fa60; plVar18 != (long *)0x0; plVar18 = (long *)plVar18[4]) {\n      if (-1 < *(int *)((long)plVar18 + 0x84)) {\n        plVar26 = (long *)plVar18[0xe];\n        if (plVar26 == (long *)0x0) {\n          if (((*(int *)((long)plVar18 + 0x8c) != 2) && (plVar18[7] != 0)) &&\n             (((*(byte *)(plVar18[7] + 0x20) & 1) != 0 &&\n              (plVar26 = plVar17, plVar3 = plVar18, puVar21[2] != 3)))) {\n            while( true ) {\n              plVar17 = plVar26;\n              if (plVar26 != (long *)0x0) goto LAB_0011c7fd;\n              plVar3 = (long *)plVar3[4];\n              if (plVar3 == (long *)0x0) break;\n              plVar26 = (long *)plVar3[0xe];\n            }\n            plVar17 = (long *)0x0;\n            dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            FUN_001251f0();\n          }\n        }\n        else {\n          plVar17 = plVar26;\n          plVar3 = (long *)plVar18[7];\n          while (plVar3 != (long *)0x0) {\nLAB_0011c7fd:\n            iVar9 = strcmp((char *)plVar26[1],(char *)puVar21[1]);\n            uVar29 = uVar30;\n            if (iVar9 == 0) {\n              if (uVar2 <= (uint)uVar30) {\n                uVar2 = uVar2 << 1;\n                __ptr = (void *)xrealloc(__ptr,(ulong)uVar2 << 3);\n              }\n              uVar29 = (ulong)((uint)uVar30 + 1);\n              *(long *)((long)__ptr + uVar30 * 8) = plVar18[7];\n              *(undefined4 *)(plVar26 + 2) = 1;\n            }\n            plVar26 = (long *)*plVar26;\n            uVar30 = uVar29;\n            plVar3 = plVar26;\n          }\n        }\n      }\n    }\n    uVar10 = 0;\n    if (puVar21[5] != 0) {\n      uVar10 = FUN_00123800(puVar21[5],0,"phdr flags");\n    }\n    lVar16 = puVar21[4];\n    uVar11 = 0;\n    if (lVar16 != 0) {\n      uVar11 = FUN_00123800(lVar16,0,"phdr load address");\n      lVar16 = puVar21[4];\n    }\n    iVar9 = bfd_record_phdr(DAT_0017fb10,puVar21[2],puVar21[5] != 0,uVar10,lVar16 != 0,uVar11,\n                            *(undefined4 *)(puVar21 + 3),*(undefined4 *)((long)puVar21 + 0x1c),\n                            uVar30,__ptr);\n    if (iVar9 == 0) {\n      dcgettext(0,"%F%P: bfd_record_phdr failed: %E\n",5);\n      FUN_001251f0();\n    }\n  }" { (expression_statement "uVar30 = 0;" (assignment_expression "uVar30 = 0" identifier = number_literal) ;) (for_statement "for (plVar18 = DAT_0017fa60; plVar18 != (long *)0x0; plVar18 = (long *)plVar18[4]) {\n      if (-1 < *(int *)((long)plVar18 + 0x84)) {\n        plVar26 = (long *)plVar18[0xe];\n        if (plVar26 == (long *)0x0) {\n          if (((*(int *)((long)plVar18 + 0x8c) != 2) && (plVar18[7] != 0)) &&\n             (((*(byte *)(plVar18[7] + 0x20) & 1) != 0 &&\n              (plVar26 = plVar17, plVar3 = plVar18, puVar21[2] != 3)))) {\n            while( true ) {\n              plVar17 = plVar26;\n              if (plVar26 != (long *)0x0) goto LAB_0011c7fd;\n              plVar3 = (long *)plVar3[4];\n              if (plVar3 == (long *)0x0) break;\n              plVar26 = (long *)plVar3[0xe];\n            }\n            plVar17 = (long *)0x0;\n            dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            FUN_001251f0();\n          }\n        }\n        else {\n          plVar17 = plVar26;\n          plVar3 = (long *)plVar18[7];\n          while (plVar3 != (long *)0x0) {\nLAB_0011c7fd:\n            iVar9 = strcmp((char *)plVar26[1],(char *)puVar21[1]);\n            uVar29 = uVar30;\n            if (iVar9 == 0) {\n              if (uVar2 <= (uint)uVar30) {\n                uVar2 = uVar2 << 1;\n                __ptr = (void *)xrealloc(__ptr,(ulong)uVar2 << 3);\n              }\n              uVar29 = (ulong)((uint)uVar30 + 1);\n              *(long *)((long)__ptr + uVar30 * 8) = plVar18[7];\n              *(undefined4 *)(plVar26 + 2) = 1;\n            }\n            plVar26 = (long *)*plVar26;\n            uVar30 = uVar29;\n            plVar3 = plVar26;\n          }\n        }\n      }\n    }" for ( (assignment_expression "plVar18 = DAT_0017fa60" identifier = identifier) ; (binary_expression "plVar18 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "plVar18 = (long *)plVar18[4]" identifier = (cast_expression "(long *)plVar18[4]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar18[4]" identifier [ number_literal ]))) ) (compound_statement "{\n      if (-1 < *(int *)((long)plVar18 + 0x84)) {\n        plVar26 = (long *)plVar18[0xe];\n        if (plVar26 == (long *)0x0) {\n          if (((*(int *)((long)plVar18 + 0x8c) != 2) && (plVar18[7] != 0)) &&\n             (((*(byte *)(plVar18[7] + 0x20) & 1) != 0 &&\n              (plVar26 = plVar17, plVar3 = plVar18, puVar21[2] != 3)))) {\n            while( true ) {\n              plVar17 = plVar26;\n              if (plVar26 != (long *)0x0) goto LAB_0011c7fd;\n              plVar3 = (long *)plVar3[4];\n              if (plVar3 == (long *)0x0) break;\n              plVar26 = (long *)plVar3[0xe];\n            }\n            plVar17 = (long *)0x0;\n            dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            FUN_001251f0();\n          }\n        }\n        else {\n          plVar17 = plVar26;\n          plVar3 = (long *)plVar18[7];\n          while (plVar3 != (long *)0x0) {\nLAB_0011c7fd:\n            iVar9 = strcmp((char *)plVar26[1],(char *)puVar21[1]);\n            uVar29 = uVar30;\n            if (iVar9 == 0) {\n              if (uVar2 <= (uint)uVar30) {\n                uVar2 = uVar2 << 1;\n                __ptr = (void *)xrealloc(__ptr,(ulong)uVar2 << 3);\n              }\n              uVar29 = (ulong)((uint)uVar30 + 1);\n              *(long *)((long)__ptr + uVar30 * 8) = plVar18[7];\n              *(undefined4 *)(plVar26 + 2) = 1;\n            }\n            plVar26 = (long *)*plVar26;\n            uVar30 = uVar29;\n            plVar3 = plVar26;\n          }\n        }\n      }\n    }" { (if_statement "if (-1 < *(int *)((long)plVar18 + 0x84)) {\n        plVar26 = (long *)plVar18[0xe];\n        if (plVar26 == (long *)0x0) {\n          if (((*(int *)((long)plVar18 + 0x8c) != 2) && (plVar18[7] != 0)) &&\n             (((*(byte *)(plVar18[7] + 0x20) & 1) != 0 &&\n              (plVar26 = plVar17, plVar3 = plVar18, puVar21[2] != 3)))) {\n            while( true ) {\n              plVar17 = plVar26;\n              if (plVar26 != (long *)0x0) goto LAB_0011c7fd;\n              plVar3 = (long *)plVar3[4];\n              if (plVar3 == (long *)0x0) break;\n              plVar26 = (long *)plVar3[0xe];\n            }\n            plVar17 = (long *)0x0;\n            dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            FUN_001251f0();\n          }\n        }\n        else {\n          plVar17 = plVar26;\n          plVar3 = (long *)plVar18[7];\n          while (plVar3 != (long *)0x0) {\nLAB_0011c7fd:\n            iVar9 = strcmp((char *)plVar26[1],(char *)puVar21[1]);\n            uVar29 = uVar30;\n            if (iVar9 == 0) {\n              if (uVar2 <= (uint)uVar30) {\n                uVar2 = uVar2 << 1;\n                __ptr = (void *)xrealloc(__ptr,(ulong)uVar2 << 3);\n              }\n              uVar29 = (ulong)((uint)uVar30 + 1);\n              *(long *)((long)__ptr + uVar30 * 8) = plVar18[7];\n              *(undefined4 *)(plVar26 + 2) = 1;\n            }\n            plVar26 = (long *)*plVar26;\n            uVar30 = uVar29;\n            plVar3 = plVar26;\n          }\n        }\n      }" if (parenthesized_expression "(-1 < *(int *)((long)plVar18 + 0x84))" ( (binary_expression "-1 < *(int *)((long)plVar18 + 0x84)" number_literal < (pointer_expression "*(int *)((long)plVar18 + 0x84)" * (cast_expression "(int *)((long)plVar18 + 0x84)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar18 + 0x84)" ( (binary_expression "(long)plVar18 + 0x84" (cast_expression "(long)plVar18" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) )) (compound_statement "{\n        plVar26 = (long *)plVar18[0xe];\n        if (plVar26 == (long *)0x0) {\n          if (((*(int *)((long)plVar18 + 0x8c) != 2) && (plVar18[7] != 0)) &&\n             (((*(byte *)(plVar18[7] + 0x20) & 1) != 0 &&\n              (plVar26 = plVar17, plVar3 = plVar18, puVar21[2] != 3)))) {\n            while( true ) {\n              plVar17 = plVar26;\n              if (plVar26 != (long *)0x0) goto LAB_0011c7fd;\n              plVar3 = (long *)plVar3[4];\n              if (plVar3 == (long *)0x0) break;\n              plVar26 = (long *)plVar3[0xe];\n            }\n            plVar17 = (long *)0x0;\n            dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            FUN_001251f0();\n          }\n        }\n        else {\n          plVar17 = plVar26;\n          plVar3 = (long *)plVar18[7];\n          while (plVar3 != (long *)0x0) {\nLAB_0011c7fd:\n            iVar9 = strcmp((char *)plVar26[1],(char *)puVar21[1]);\n            uVar29 = uVar30;\n            if (iVar9 == 0) {\n              if (uVar2 <= (uint)uVar30) {\n                uVar2 = uVar2 << 1;\n                __ptr = (void *)xrealloc(__ptr,(ulong)uVar2 << 3);\n              }\n              uVar29 = (ulong)((uint)uVar30 + 1);\n              *(long *)((long)__ptr + uVar30 * 8) = plVar18[7];\n              *(undefined4 *)(plVar26 + 2) = 1;\n            }\n            plVar26 = (long *)*plVar26;\n            uVar30 = uVar29;\n            plVar3 = plVar26;\n          }\n        }\n      }" { (expression_statement "plVar26 = (long *)plVar18[0xe];" (assignment_expression "plVar26 = (long *)plVar18[0xe]" identifier = (cast_expression "(long *)plVar18[0xe]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar18[0xe]" identifier [ number_literal ]))) ;) (if_statement "if (plVar26 == (long *)0x0) {\n          if (((*(int *)((long)plVar18 + 0x8c) != 2) && (plVar18[7] != 0)) &&\n             (((*(byte *)(plVar18[7] + 0x20) & 1) != 0 &&\n              (plVar26 = plVar17, plVar3 = plVar18, puVar21[2] != 3)))) {\n            while( true ) {\n              plVar17 = plVar26;\n              if (plVar26 != (long *)0x0) goto LAB_0011c7fd;\n              plVar3 = (long *)plVar3[4];\n              if (plVar3 == (long *)0x0) break;\n              plVar26 = (long *)plVar3[0xe];\n            }\n            plVar17 = (long *)0x0;\n            dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            FUN_001251f0();\n          }\n        }\n        else {\n          plVar17 = plVar26;\n          plVar3 = (long *)plVar18[7];\n          while (plVar3 != (long *)0x0) {\nLAB_0011c7fd:\n            iVar9 = strcmp((char *)plVar26[1],(char *)puVar21[1]);\n            uVar29 = uVar30;\n            if (iVar9 == 0) {\n              if (uVar2 <= (uint)uVar30) {\n                uVar2 = uVar2 << 1;\n                __ptr = (void *)xrealloc(__ptr,(ulong)uVar2 << 3);\n              }\n              uVar29 = (ulong)((uint)uVar30 + 1);\n              *(long *)((long)__ptr + uVar30 * 8) = plVar18[7];\n              *(undefined4 *)(plVar26 + 2) = 1;\n            }\n            plVar26 = (long *)*plVar26;\n            uVar30 = uVar29;\n            plVar3 = plVar26;\n          }\n        }" if (parenthesized_expression "(plVar26 == (long *)0x0)" ( (binary_expression "plVar26 == (long *)0x0" identifier == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          if (((*(int *)((long)plVar18 + 0x8c) != 2) && (plVar18[7] != 0)) &&\n             (((*(byte *)(plVar18[7] + 0x20) & 1) != 0 &&\n              (plVar26 = plVar17, plVar3 = plVar18, puVar21[2] != 3)))) {\n            while( true ) {\n              plVar17 = plVar26;\n              if (plVar26 != (long *)0x0) goto LAB_0011c7fd;\n              plVar3 = (long *)plVar3[4];\n              if (plVar3 == (long *)0x0) break;\n              plVar26 = (long *)plVar3[0xe];\n            }\n            plVar17 = (long *)0x0;\n            dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            FUN_001251f0();\n          }\n        }" { (if_statement "if (((*(int *)((long)plVar18 + 0x8c) != 2) && (plVar18[7] != 0)) &&\n             (((*(byte *)(plVar18[7] + 0x20) & 1) != 0 &&\n              (plVar26 = plVar17, plVar3 = plVar18, puVar21[2] != 3)))) {\n            while( true ) {\n              plVar17 = plVar26;\n              if (plVar26 != (long *)0x0) goto LAB_0011c7fd;\n              plVar3 = (long *)plVar3[4];\n              if (plVar3 == (long *)0x0) break;\n              plVar26 = (long *)plVar3[0xe];\n            }\n            plVar17 = (long *)0x0;\n            dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            FUN_001251f0();\n          }" if (parenthesized_expression "(((*(int *)((long)plVar18 + 0x8c) != 2) && (plVar18[7] != 0)) &&\n             (((*(byte *)(plVar18[7] + 0x20) & 1) != 0 &&\n              (plVar26 = plVar17, plVar3 = plVar18, puVar21[2] != 3))))" ( (binary_expression "((*(int *)((long)plVar18 + 0x8c) != 2) && (plVar18[7] != 0)) &&\n             (((*(byte *)(plVar18[7] + 0x20) & 1) != 0 &&\n              (plVar26 = plVar17, plVar3 = plVar18, puVar21[2] != 3)))" (parenthesized_expression "((*(int *)((long)plVar18 + 0x8c) != 2) && (plVar18[7] != 0))" ( (binary_expression "(*(int *)((long)plVar18 + 0x8c) != 2) && (plVar18[7] != 0)" (parenthesized_expression "(*(int *)((long)plVar18 + 0x8c) != 2)" ( (binary_expression "*(int *)((long)plVar18 + 0x8c) != 2" (pointer_expression "*(int *)((long)plVar18 + 0x8c)" * (cast_expression "(int *)((long)plVar18 + 0x8c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar18 + 0x8c)" ( (binary_expression "(long)plVar18 + 0x8c" (cast_expression "(long)plVar18" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) != number_literal) )) && (parenthesized_expression "(plVar18[7] != 0)" ( (binary_expression "plVar18[7] != 0" (subscript_expression "plVar18[7]" identifier [ number_literal ]) != number_literal) ))) )) && (parenthesized_expression "(((*(byte *)(plVar18[7] + 0x20) & 1) != 0 &&\n              (plVar26 = plVar17, plVar3 = plVar18, puVar21[2] != 3)))" ( (parenthesized_expression "((*(byte *)(plVar18[7] + 0x20) & 1) != 0 &&\n              (plVar26 = plVar17, plVar3 = plVar18, puVar21[2] != 3))" ( (binary_expression "(*(byte *)(plVar18[7] + 0x20) & 1) != 0 &&\n              (plVar26 = plVar17, plVar3 = plVar18, puVar21[2] != 3)" (binary_expression "(*(byte *)(plVar18[7] + 0x20) & 1) != 0" (parenthesized_expression "(*(byte *)(plVar18[7] + 0x20) & 1)" ( (binary_expression "*(byte *)(plVar18[7] + 0x20) & 1" (pointer_expression "*(byte *)(plVar18[7] + 0x20)" * (cast_expression "(byte *)(plVar18[7] + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar18[7] + 0x20)" ( (binary_expression "plVar18[7] + 0x20" (subscript_expression "plVar18[7]" identifier [ number_literal ]) + number_literal) )))) & number_literal) )) != number_literal) && (parenthesized_expression "(plVar26 = plVar17, plVar3 = plVar18, puVar21[2] != 3)" ( (comma_expression "plVar26 = plVar17, plVar3 = plVar18, puVar21[2] != 3" (assignment_expression "plVar26 = plVar17" identifier = identifier) , (comma_expression "plVar3 = plVar18, puVar21[2] != 3" (assignment_expression "plVar3 = plVar18" identifier = identifier) , (binary_expression "puVar21[2] != 3" (subscript_expression "puVar21[2]" identifier [ number_literal ]) != number_literal))) ))) )) ))) )) (compound_statement "{\n            while( true ) {\n              plVar17 = plVar26;\n              if (plVar26 != (long *)0x0) goto LAB_0011c7fd;\n              plVar3 = (long *)plVar3[4];\n              if (plVar3 == (long *)0x0) break;\n              plVar26 = (long *)plVar3[0xe];\n            }\n            plVar17 = (long *)0x0;\n            dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            FUN_001251f0();\n          }" { (while_statement "while( true ) {\n              plVar17 = plVar26;\n              if (plVar26 != (long *)0x0) goto LAB_0011c7fd;\n              plVar3 = (long *)plVar3[4];\n              if (plVar3 == (long *)0x0) break;\n              plVar26 = (long *)plVar3[0xe];\n            }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n              plVar17 = plVar26;\n              if (plVar26 != (long *)0x0) goto LAB_0011c7fd;\n              plVar3 = (long *)plVar3[4];\n              if (plVar3 == (long *)0x0) break;\n              plVar26 = (long *)plVar3[0xe];\n            }" { (expression_statement "plVar17 = plVar26;" (assignment_expression "plVar17 = plVar26" identifier = identifier) ;) (if_statement "if (plVar26 != (long *)0x0) goto LAB_0011c7fd;" if (parenthesized_expression "(plVar26 != (long *)0x0)" ( (binary_expression "plVar26 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0011c7fd;" goto statement_identifier ;)) (expression_statement "plVar3 = (long *)plVar3[4];" (assignment_expression "plVar3 = (long *)plVar3[4]" identifier = (cast_expression "(long *)plVar3[4]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar3[4]" identifier [ number_literal ]))) ;) (if_statement "if (plVar3 == (long *)0x0) break;" if (parenthesized_expression "(plVar3 == (long *)0x0)" ( (binary_expression "plVar3 == (long *)0x0" identifier == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "plVar26 = (long *)plVar3[0xe];" (assignment_expression "plVar26 = (long *)plVar3[0xe]" identifier = (cast_expression "(long *)plVar3[0xe]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar3[0xe]" identifier [ number_literal ]))) ;) })) (expression_statement "plVar17 = (long *)0x0;" (assignment_expression "plVar17 = (long *)0x0" identifier = (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);" (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_001251f0();" (call_expression "FUN_001251f0()" identifier (argument_list "()" ( ))) ;) })) }) (else_clause "else {\n          plVar17 = plVar26;\n          plVar3 = (long *)plVar18[7];\n          while (plVar3 != (long *)0x0) {\nLAB_0011c7fd:\n            iVar9 = strcmp((char *)plVar26[1],(char *)puVar21[1]);\n            uVar29 = uVar30;\n            if (iVar9 == 0) {\n              if (uVar2 <= (uint)uVar30) {\n                uVar2 = uVar2 << 1;\n                __ptr = (void *)xrealloc(__ptr,(ulong)uVar2 << 3);\n              }\n              uVar29 = (ulong)((uint)uVar30 + 1);\n              *(long *)((long)__ptr + uVar30 * 8) = plVar18[7];\n              *(undefined4 *)(plVar26 + 2) = 1;\n            }\n            plVar26 = (long *)*plVar26;\n            uVar30 = uVar29;\n            plVar3 = plVar26;\n          }\n        }" else (compound_statement "{\n          plVar17 = plVar26;\n          plVar3 = (long *)plVar18[7];\n          while (plVar3 != (long *)0x0) {\nLAB_0011c7fd:\n            iVar9 = strcmp((char *)plVar26[1],(char *)puVar21[1]);\n            uVar29 = uVar30;\n            if (iVar9 == 0) {\n              if (uVar2 <= (uint)uVar30) {\n                uVar2 = uVar2 << 1;\n                __ptr = (void *)xrealloc(__ptr,(ulong)uVar2 << 3);\n              }\n              uVar29 = (ulong)((uint)uVar30 + 1);\n              *(long *)((long)__ptr + uVar30 * 8) = plVar18[7];\n              *(undefined4 *)(plVar26 + 2) = 1;\n            }\n            plVar26 = (long *)*plVar26;\n            uVar30 = uVar29;\n            plVar3 = plVar26;\n          }\n        }" { (expression_statement "plVar17 = plVar26;" (assignment_expression "plVar17 = plVar26" identifier = identifier) ;) (expression_statement "plVar3 = (long *)plVar18[7];" (assignment_expression "plVar3 = (long *)plVar18[7]" identifier = (cast_expression "(long *)plVar18[7]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar18[7]" identifier [ number_literal ]))) ;) (while_statement "while (plVar3 != (long *)0x0) {\nLAB_0011c7fd:\n            iVar9 = strcmp((char *)plVar26[1],(char *)puVar21[1]);\n            uVar29 = uVar30;\n            if (iVar9 == 0) {\n              if (uVar2 <= (uint)uVar30) {\n                uVar2 = uVar2 << 1;\n                __ptr = (void *)xrealloc(__ptr,(ulong)uVar2 << 3);\n              }\n              uVar29 = (ulong)((uint)uVar30 + 1);\n              *(long *)((long)__ptr + uVar30 * 8) = plVar18[7];\n              *(undefined4 *)(plVar26 + 2) = 1;\n            }\n            plVar26 = (long *)*plVar26;\n            uVar30 = uVar29;\n            plVar3 = plVar26;\n          }" while (parenthesized_expression "(plVar3 != (long *)0x0)" ( (binary_expression "plVar3 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_0011c7fd:\n            iVar9 = strcmp((char *)plVar26[1],(char *)puVar21[1]);\n            uVar29 = uVar30;\n            if (iVar9 == 0) {\n              if (uVar2 <= (uint)uVar30) {\n                uVar2 = uVar2 << 1;\n                __ptr = (void *)xrealloc(__ptr,(ulong)uVar2 << 3);\n              }\n              uVar29 = (ulong)((uint)uVar30 + 1);\n              *(long *)((long)__ptr + uVar30 * 8) = plVar18[7];\n              *(undefined4 *)(plVar26 + 2) = 1;\n            }\n            plVar26 = (long *)*plVar26;\n            uVar30 = uVar29;\n            plVar3 = plVar26;\n          }" { (labeled_statement "LAB_0011c7fd:\n            iVar9 = strcmp((char *)plVar26[1],(char *)puVar21[1]);" statement_identifier : (expression_statement "iVar9 = strcmp((char *)plVar26[1],(char *)puVar21[1]);" (assignment_expression "iVar9 = strcmp((char *)plVar26[1],(char *)puVar21[1])" identifier = (call_expression "strcmp((char *)plVar26[1],(char *)puVar21[1])" identifier (argument_list "((char *)plVar26[1],(char *)puVar21[1])" ( (cast_expression "(char *)plVar26[1]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar26[1]" identifier [ number_literal ])) , (cast_expression "(char *)puVar21[1]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar21[1]" identifier [ number_literal ])) )))) ;)) (expression_statement "uVar29 = uVar30;" (assignment_expression "uVar29 = uVar30" identifier = identifier) ;) (if_statement "if (iVar9 == 0) {\n              if (uVar2 <= (uint)uVar30) {\n                uVar2 = uVar2 << 1;\n                __ptr = (void *)xrealloc(__ptr,(ulong)uVar2 << 3);\n              }\n              uVar29 = (ulong)((uint)uVar30 + 1);\n              *(long *)((long)__ptr + uVar30 * 8) = plVar18[7];\n              *(undefined4 *)(plVar26 + 2) = 1;\n            }" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (compound_statement "{\n              if (uVar2 <= (uint)uVar30) {\n                uVar2 = uVar2 << 1;\n                __ptr = (void *)xrealloc(__ptr,(ulong)uVar2 << 3);\n              }\n              uVar29 = (ulong)((uint)uVar30 + 1);\n              *(long *)((long)__ptr + uVar30 * 8) = plVar18[7];\n              *(undefined4 *)(plVar26 + 2) = 1;\n            }" { (if_statement "if (uVar2 <= (uint)uVar30) {\n                uVar2 = uVar2 << 1;\n                __ptr = (void *)xrealloc(__ptr,(ulong)uVar2 << 3);\n              }" if (parenthesized_expression "(uVar2 <= (uint)uVar30)" ( (binary_expression "uVar2 <= (uint)uVar30" identifier <= (cast_expression "(uint)uVar30" ( (type_descriptor "uint" type_identifier) ) identifier)) )) (compound_statement "{\n                uVar2 = uVar2 << 1;\n                __ptr = (void *)xrealloc(__ptr,(ulong)uVar2 << 3);\n              }" { (expression_statement "uVar2 = uVar2 << 1;" (assignment_expression "uVar2 = uVar2 << 1" identifier = (binary_expression "uVar2 << 1" identifier << number_literal)) ;) (expression_statement "__ptr = (void *)xrealloc(__ptr,(ulong)uVar2 << 3);" (assignment_expression "__ptr = (void *)xrealloc(__ptr,(ulong)uVar2 << 3)" identifier = (cast_expression "(void *)xrealloc(__ptr,(ulong)uVar2 << 3)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xrealloc(__ptr,(ulong)uVar2 << 3)" identifier (argument_list "(__ptr,(ulong)uVar2 << 3)" ( identifier , (binary_expression "(ulong)uVar2 << 3" (cast_expression "(ulong)uVar2" ( (type_descriptor "ulong" type_identifier) ) identifier) << number_literal) ))))) ;) })) (expression_statement "uVar29 = (ulong)((uint)uVar30 + 1);" (assignment_expression "uVar29 = (ulong)((uint)uVar30 + 1)" identifier = (call_expression "(ulong)((uint)uVar30 + 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((uint)uVar30 + 1)" ( (binary_expression "(uint)uVar30 + 1" (cast_expression "(uint)uVar30" ( (type_descriptor "uint" type_identifier) ) identifier) + number_literal) )))) ;) (expression_statement "*(long *)((long)__ptr + uVar30 * 8) = plVar18[7];" (assignment_expression "*(long *)((long)__ptr + uVar30 * 8) = plVar18[7]" (pointer_expression "*(long *)((long)__ptr + uVar30 * 8)" * (cast_expression "(long *)((long)__ptr + uVar30 * 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__ptr + uVar30 * 8)" ( (binary_expression "(long)__ptr + uVar30 * 8" (cast_expression "(long)__ptr" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (binary_expression "uVar30 * 8" identifier * number_literal)) )))) = (subscript_expression "plVar18[7]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(plVar26 + 2) = 1;" (assignment_expression "*(undefined4 *)(plVar26 + 2) = 1" (pointer_expression "*(undefined4 *)(plVar26 + 2)" * (cast_expression "(undefined4 *)(plVar26 + 2)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar26 + 2)" ( (binary_expression "plVar26 + 2" identifier + number_literal) )))) = number_literal) ;) })) (expression_statement "plVar26 = (long *)*plVar26;" (assignment_expression "plVar26 = (long *)*plVar26" identifier = (cast_expression "(long *)*plVar26" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar26" * identifier))) ;) (expression_statement "uVar30 = uVar29;" (assignment_expression "uVar30 = uVar29" identifier = identifier) ;) (expression_statement "plVar3 = plVar26;" (assignment_expression "plVar3 = plVar26" identifier = identifier) ;) })) }))) })) })) (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" identifier = number_literal) ;) (if_statement "if (puVar21[5] != 0) {\n      uVar10 = FUN_00123800(puVar21[5],0,"phdr flags");\n    }" if (parenthesized_expression "(puVar21[5] != 0)" ( (binary_expression "puVar21[5] != 0" (subscript_expression "puVar21[5]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n      uVar10 = FUN_00123800(puVar21[5],0,"phdr flags");\n    }" { (expression_statement "uVar10 = FUN_00123800(puVar21[5],0,"phdr flags");" (assignment_expression "uVar10 = FUN_00123800(puVar21[5],0,"phdr flags")" identifier = (call_expression "FUN_00123800(puVar21[5],0,"phdr flags")" identifier (argument_list "(puVar21[5],0,"phdr flags")" ( (subscript_expression "puVar21[5]" identifier [ number_literal ]) , number_literal , (string_literal ""phdr flags"" " string_content ") )))) ;) })) (expression_statement "lVar16 = puVar21[4];" (assignment_expression "lVar16 = puVar21[4]" identifier = (subscript_expression "puVar21[4]" identifier [ number_literal ])) ;) (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" identifier = number_literal) ;) (if_statement "if (lVar16 != 0) {\n      uVar11 = FUN_00123800(lVar16,0,"phdr load address");\n      lVar16 = puVar21[4];\n    }" if (parenthesized_expression "(lVar16 != 0)" ( (binary_expression "lVar16 != 0" identifier != number_literal) )) (compound_statement "{\n      uVar11 = FUN_00123800(lVar16,0,"phdr load address");\n      lVar16 = puVar21[4];\n    }" { (expression_statement "uVar11 = FUN_00123800(lVar16,0,"phdr load address");" (assignment_expression "uVar11 = FUN_00123800(lVar16,0,"phdr load address")" identifier = (call_expression "FUN_00123800(lVar16,0,"phdr load address")" identifier (argument_list "(lVar16,0,"phdr load address")" ( identifier , number_literal , (string_literal ""phdr load address"" " string_content ") )))) ;) (expression_statement "lVar16 = puVar21[4];" (assignment_expression "lVar16 = puVar21[4]" identifier = (subscript_expression "puVar21[4]" identifier [ number_literal ])) ;) })) (expression_statement "iVar9 = bfd_record_phdr(DAT_0017fb10,puVar21[2],puVar21[5] != 0,uVar10,lVar16 != 0,uVar11,\n                            *(undefined4 *)(puVar21 + 3),*(undefined4 *)((long)puVar21 + 0x1c),\n                            uVar30,__ptr);" (assignment_expression "iVar9 = bfd_record_phdr(DAT_0017fb10,puVar21[2],puVar21[5] != 0,uVar10,lVar16 != 0,uVar11,\n                            *(undefined4 *)(puVar21 + 3),*(undefined4 *)((long)puVar21 + 0x1c),\n                            uVar30,__ptr)" identifier = (call_expression "bfd_record_phdr(DAT_0017fb10,puVar21[2],puVar21[5] != 0,uVar10,lVar16 != 0,uVar11,\n                            *(undefined4 *)(puVar21 + 3),*(undefined4 *)((long)puVar21 + 0x1c),\n                            uVar30,__ptr)" identifier (argument_list "(DAT_0017fb10,puVar21[2],puVar21[5] != 0,uVar10,lVar16 != 0,uVar11,\n                            *(undefined4 *)(puVar21 + 3),*(undefined4 *)((long)puVar21 + 0x1c),\n                            uVar30,__ptr)" ( identifier , (subscript_expression "puVar21[2]" identifier [ number_literal ]) , (binary_expression "puVar21[5] != 0" (subscript_expression "puVar21[5]" identifier [ number_literal ]) != number_literal) , identifier , (binary_expression "lVar16 != 0" identifier != number_literal) , identifier , (pointer_expression "*(undefined4 *)(puVar21 + 3)" * (cast_expression "(undefined4 *)(puVar21 + 3)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + 3)" ( (binary_expression "puVar21 + 3" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)((long)puVar21 + 0x1c)" * (cast_expression "(undefined4 *)((long)puVar21 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar21 + 0x1c)" ( (binary_expression "(long)puVar21 + 0x1c" (cast_expression "(long)puVar21" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) , identifier , identifier )))) ;) (if_statement "if (iVar9 == 0) {\n      dcgettext(0,"%F%P: bfd_record_phdr failed: %E\n",5);\n      FUN_001251f0();\n    }" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (compound_statement "{\n      dcgettext(0,"%F%P: bfd_record_phdr failed: %E\n",5);\n      FUN_001251f0();\n    }" { (expression_statement "dcgettext(0,"%F%P: bfd_record_phdr failed: %E\n",5);" (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_001251f0();" (call_expression "FUN_001251f0()" identifier (argument_list "()" ( ))) ;) })) })) (expression_statement "free(__ptr);" (call_expression "free(__ptr)" identifier (argument_list "(__ptr)" ( identifier ))) ;) (for_statement "for (plVar17 = DAT_0017fa60; plVar17 != (long *)0x0; plVar17 = (long *)plVar17[4]) {\n    if ((-1 < *(int *)((long)plVar17 + 0x84)) && (plVar17[7] != 0)) {\n      plVar18 = (long *)plVar17[0xe];\njoined_r0x0011c90a:\n      if (plVar18 != (long *)0x0) {\n        do {\n          bVar38 = false;\n          bVar39 = (int)plVar18[2] == 0;\n          if (bVar39) {\n            pbVar4 = (byte *)plVar18[1];\n            lVar16 = 5;\n            pbVar20 = pbVar4;\n            pbVar32 = (byte *)0x130359;\n            do {\n              if (lVar16 == 0) break;\n              lVar16 = lVar16 + -1;\n              bVar38 = *pbVar20 < *pbVar32;\n              bVar39 = *pbVar20 == *pbVar32;\n              pbVar20 = pbVar20 + (ulong)bVar40 * -2 + 1;\n              pbVar32 = pbVar32 + (ulong)bVar40 * -2 + 1;\n            } while (bVar39);\n            if ((!bVar38 && !bVar39) != bVar38) goto code_r0x0011c93b;\n          }\n          plVar18 = (long *)*plVar18;\n          if (plVar18 == (long *)0x0) break;\n        } while( true );\n      }\n    }\n  }" for ( (assignment_expression "plVar17 = DAT_0017fa60" identifier = identifier) ; (binary_expression "plVar17 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "plVar17 = (long *)plVar17[4]" identifier = (cast_expression "(long *)plVar17[4]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar17[4]" identifier [ number_literal ]))) ) (compound_statement "{\n    if ((-1 < *(int *)((long)plVar17 + 0x84)) && (plVar17[7] != 0)) {\n      plVar18 = (long *)plVar17[0xe];\njoined_r0x0011c90a:\n      if (plVar18 != (long *)0x0) {\n        do {\n          bVar38 = false;\n          bVar39 = (int)plVar18[2] == 0;\n          if (bVar39) {\n            pbVar4 = (byte *)plVar18[1];\n            lVar16 = 5;\n            pbVar20 = pbVar4;\n            pbVar32 = (byte *)0x130359;\n            do {\n              if (lVar16 == 0) break;\n              lVar16 = lVar16 + -1;\n              bVar38 = *pbVar20 < *pbVar32;\n              bVar39 = *pbVar20 == *pbVar32;\n              pbVar20 = pbVar20 + (ulong)bVar40 * -2 + 1;\n              pbVar32 = pbVar32 + (ulong)bVar40 * -2 + 1;\n            } while (bVar39);\n            if ((!bVar38 && !bVar39) != bVar38) goto code_r0x0011c93b;\n          }\n          plVar18 = (long *)*plVar18;\n          if (plVar18 == (long *)0x0) break;\n        } while( true );\n      }\n    }\n  }" { (if_statement "if ((-1 < *(int *)((long)plVar17 + 0x84)) && (plVar17[7] != 0)) {\n      plVar18 = (long *)plVar17[0xe];\njoined_r0x0011c90a:\n      if (plVar18 != (long *)0x0) {\n        do {\n          bVar38 = false;\n          bVar39 = (int)plVar18[2] == 0;\n          if (bVar39) {\n            pbVar4 = (byte *)plVar18[1];\n            lVar16 = 5;\n            pbVar20 = pbVar4;\n            pbVar32 = (byte *)0x130359;\n            do {\n              if (lVar16 == 0) break;\n              lVar16 = lVar16 + -1;\n              bVar38 = *pbVar20 < *pbVar32;\n              bVar39 = *pbVar20 == *pbVar32;\n              pbVar20 = pbVar20 + (ulong)bVar40 * -2 + 1;\n              pbVar32 = pbVar32 + (ulong)bVar40 * -2 + 1;\n            } while (bVar39);\n            if ((!bVar38 && !bVar39) != bVar38) goto code_r0x0011c93b;\n          }\n          plVar18 = (long *)*plVar18;\n          if (plVar18 == (long *)0x0) break;\n        } while( true );\n      }\n    }" if (parenthesized_expression "((-1 < *(int *)((long)plVar17 + 0x84)) && (plVar17[7] != 0))" ( (binary_expression "(-1 < *(int *)((long)plVar17 + 0x84)) && (plVar17[7] != 0)" (parenthesized_expression "(-1 < *(int *)((long)plVar17 + 0x84))" ( (binary_expression "-1 < *(int *)((long)plVar17 + 0x84)" number_literal < (pointer_expression "*(int *)((long)plVar17 + 0x84)" * (cast_expression "(int *)((long)plVar17 + 0x84)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar17 + 0x84)" ( (binary_expression "(long)plVar17 + 0x84" (cast_expression "(long)plVar17" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) )) && (parenthesized_expression "(plVar17[7] != 0)" ( (binary_expression "plVar17[7] != 0" (subscript_expression "plVar17[7]" identifier [ number_literal ]) != number_literal) ))) )) (compound_statement "{\n      plVar18 = (long *)plVar17[0xe];\njoined_r0x0011c90a:\n      if (plVar18 != (long *)0x0) {\n        do {\n          bVar38 = false;\n          bVar39 = (int)plVar18[2] == 0;\n          if (bVar39) {\n            pbVar4 = (byte *)plVar18[1];\n            lVar16 = 5;\n            pbVar20 = pbVar4;\n            pbVar32 = (byte *)0x130359;\n            do {\n              if (lVar16 == 0) break;\n              lVar16 = lVar16 + -1;\n              bVar38 = *pbVar20 < *pbVar32;\n              bVar39 = *pbVar20 == *pbVar32;\n              pbVar20 = pbVar20 + (ulong)bVar40 * -2 + 1;\n              pbVar32 = pbVar32 + (ulong)bVar40 * -2 + 1;\n            } while (bVar39);\n            if ((!bVar38 && !bVar39) != bVar38) goto code_r0x0011c93b;\n          }\n          plVar18 = (long *)*plVar18;\n          if (plVar18 == (long *)0x0) break;\n        } while( true );\n      }\n    }" { (expression_statement "plVar18 = (long *)plVar17[0xe];" (assignment_expression "plVar18 = (long *)plVar17[0xe]" identifier = (cast_expression "(long *)plVar17[0xe]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar17[0xe]" identifier [ number_literal ]))) ;) (labeled_statement "joined_r0x0011c90a:\n      if (plVar18 != (long *)0x0) {\n        do {\n          bVar38 = false;\n          bVar39 = (int)plVar18[2] == 0;\n          if (bVar39) {\n            pbVar4 = (byte *)plVar18[1];\n            lVar16 = 5;\n            pbVar20 = pbVar4;\n            pbVar32 = (byte *)0x130359;\n            do {\n              if (lVar16 == 0) break;\n              lVar16 = lVar16 + -1;\n              bVar38 = *pbVar20 < *pbVar32;\n              bVar39 = *pbVar20 == *pbVar32;\n              pbVar20 = pbVar20 + (ulong)bVar40 * -2 + 1;\n              pbVar32 = pbVar32 + (ulong)bVar40 * -2 + 1;\n            } while (bVar39);\n            if ((!bVar38 && !bVar39) != bVar38) goto code_r0x0011c93b;\n          }\n          plVar18 = (long *)*plVar18;\n          if (plVar18 == (long *)0x0) break;\n        } while( true );\n      }" statement_identifier : (if_statement "if (plVar18 != (long *)0x0) {\n        do {\n          bVar38 = false;\n          bVar39 = (int)plVar18[2] == 0;\n          if (bVar39) {\n            pbVar4 = (byte *)plVar18[1];\n            lVar16 = 5;\n            pbVar20 = pbVar4;\n            pbVar32 = (byte *)0x130359;\n            do {\n              if (lVar16 == 0) break;\n              lVar16 = lVar16 + -1;\n              bVar38 = *pbVar20 < *pbVar32;\n              bVar39 = *pbVar20 == *pbVar32;\n              pbVar20 = pbVar20 + (ulong)bVar40 * -2 + 1;\n              pbVar32 = pbVar32 + (ulong)bVar40 * -2 + 1;\n            } while (bVar39);\n            if ((!bVar38 && !bVar39) != bVar38) goto code_r0x0011c93b;\n          }\n          plVar18 = (long *)*plVar18;\n          if (plVar18 == (long *)0x0) break;\n        } while( true );\n      }" if (parenthesized_expression "(plVar18 != (long *)0x0)" ( (binary_expression "plVar18 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        do {\n          bVar38 = false;\n          bVar39 = (int)plVar18[2] == 0;\n          if (bVar39) {\n            pbVar4 = (byte *)plVar18[1];\n            lVar16 = 5;\n            pbVar20 = pbVar4;\n            pbVar32 = (byte *)0x130359;\n            do {\n              if (lVar16 == 0) break;\n              lVar16 = lVar16 + -1;\n              bVar38 = *pbVar20 < *pbVar32;\n              bVar39 = *pbVar20 == *pbVar32;\n              pbVar20 = pbVar20 + (ulong)bVar40 * -2 + 1;\n              pbVar32 = pbVar32 + (ulong)bVar40 * -2 + 1;\n            } while (bVar39);\n            if ((!bVar38 && !bVar39) != bVar38) goto code_r0x0011c93b;\n          }\n          plVar18 = (long *)*plVar18;\n          if (plVar18 == (long *)0x0) break;\n        } while( true );\n      }" { (do_statement "do {\n          bVar38 = false;\n          bVar39 = (int)plVar18[2] == 0;\n          if (bVar39) {\n            pbVar4 = (byte *)plVar18[1];\n            lVar16 = 5;\n            pbVar20 = pbVar4;\n            pbVar32 = (byte *)0x130359;\n            do {\n              if (lVar16 == 0) break;\n              lVar16 = lVar16 + -1;\n              bVar38 = *pbVar20 < *pbVar32;\n              bVar39 = *pbVar20 == *pbVar32;\n              pbVar20 = pbVar20 + (ulong)bVar40 * -2 + 1;\n              pbVar32 = pbVar32 + (ulong)bVar40 * -2 + 1;\n            } while (bVar39);\n            if ((!bVar38 && !bVar39) != bVar38) goto code_r0x0011c93b;\n          }\n          plVar18 = (long *)*plVar18;\n          if (plVar18 == (long *)0x0) break;\n        } while( true );" do (compound_statement "{\n          bVar38 = false;\n          bVar39 = (int)plVar18[2] == 0;\n          if (bVar39) {\n            pbVar4 = (byte *)plVar18[1];\n            lVar16 = 5;\n            pbVar20 = pbVar4;\n            pbVar32 = (byte *)0x130359;\n            do {\n              if (lVar16 == 0) break;\n              lVar16 = lVar16 + -1;\n              bVar38 = *pbVar20 < *pbVar32;\n              bVar39 = *pbVar20 == *pbVar32;\n              pbVar20 = pbVar20 + (ulong)bVar40 * -2 + 1;\n              pbVar32 = pbVar32 + (ulong)bVar40 * -2 + 1;\n            } while (bVar39);\n            if ((!bVar38 && !bVar39) != bVar38) goto code_r0x0011c93b;\n          }\n          plVar18 = (long *)*plVar18;\n          if (plVar18 == (long *)0x0) break;\n        }" { (expression_statement "bVar38 = false;" (assignment_expression "bVar38 = false" identifier = false) ;) (expression_statement "bVar39 = (int)plVar18[2] == 0;" (assignment_expression "bVar39 = (int)plVar18[2] == 0" identifier = (binary_expression "(int)plVar18[2] == 0" (cast_expression "(int)plVar18[2]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "plVar18[2]" identifier [ number_literal ])) == number_literal)) ;) (if_statement "if (bVar39) {\n            pbVar4 = (byte *)plVar18[1];\n            lVar16 = 5;\n            pbVar20 = pbVar4;\n            pbVar32 = (byte *)0x130359;\n            do {\n              if (lVar16 == 0) break;\n              lVar16 = lVar16 + -1;\n              bVar38 = *pbVar20 < *pbVar32;\n              bVar39 = *pbVar20 == *pbVar32;\n              pbVar20 = pbVar20 + (ulong)bVar40 * -2 + 1;\n              pbVar32 = pbVar32 + (ulong)bVar40 * -2 + 1;\n            } while (bVar39);\n            if ((!bVar38 && !bVar39) != bVar38) goto code_r0x0011c93b;\n          }" if (parenthesized_expression "(bVar39)" ( identifier )) (compound_statement "{\n            pbVar4 = (byte *)plVar18[1];\n            lVar16 = 5;\n            pbVar20 = pbVar4;\n            pbVar32 = (byte *)0x130359;\n            do {\n              if (lVar16 == 0) break;\n              lVar16 = lVar16 + -1;\n              bVar38 = *pbVar20 < *pbVar32;\n              bVar39 = *pbVar20 == *pbVar32;\n              pbVar20 = pbVar20 + (ulong)bVar40 * -2 + 1;\n              pbVar32 = pbVar32 + (ulong)bVar40 * -2 + 1;\n            } while (bVar39);\n            if ((!bVar38 && !bVar39) != bVar38) goto code_r0x0011c93b;\n          }" { (expression_statement "pbVar4 = (byte *)plVar18[1];" (assignment_expression "pbVar4 = (byte *)plVar18[1]" identifier = (cast_expression "(byte *)plVar18[1]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar18[1]" identifier [ number_literal ]))) ;) (expression_statement "lVar16 = 5;" (assignment_expression "lVar16 = 5" identifier = number_literal) ;) (expression_statement "pbVar20 = pbVar4;" (assignment_expression "pbVar20 = pbVar4" identifier = identifier) ;) (expression_statement "pbVar32 = (byte *)0x130359;" (assignment_expression "pbVar32 = (byte *)0x130359" identifier = (cast_expression "(byte *)0x130359" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n              if (lVar16 == 0) break;\n              lVar16 = lVar16 + -1;\n              bVar38 = *pbVar20 < *pbVar32;\n              bVar39 = *pbVar20 == *pbVar32;\n              pbVar20 = pbVar20 + (ulong)bVar40 * -2 + 1;\n              pbVar32 = pbVar32 + (ulong)bVar40 * -2 + 1;\n            } while (bVar39);" do (compound_statement "{\n              if (lVar16 == 0) break;\n              lVar16 = lVar16 + -1;\n              bVar38 = *pbVar20 < *pbVar32;\n              bVar39 = *pbVar20 == *pbVar32;\n              pbVar20 = pbVar20 + (ulong)bVar40 * -2 + 1;\n              pbVar32 = pbVar32 + (ulong)bVar40 * -2 + 1;\n            }" { (if_statement "if (lVar16 == 0) break;" if (parenthesized_expression "(lVar16 == 0)" ( (binary_expression "lVar16 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar16 = lVar16 + -1;" (assignment_expression "lVar16 = lVar16 + -1" identifier = (binary_expression "lVar16 + -1" identifier + number_literal)) ;) (expression_statement "bVar38 = *pbVar20 < *pbVar32;" (assignment_expression "bVar38 = *pbVar20 < *pbVar32" identifier = (binary_expression "*pbVar20 < *pbVar32" (pointer_expression "*pbVar20" * identifier) < (pointer_expression "*pbVar32" * identifier))) ;) (expression_statement "bVar39 = *pbVar20 == *pbVar32;" (assignment_expression "bVar39 = *pbVar20 == *pbVar32" identifier = (binary_expression "*pbVar20 == *pbVar32" (pointer_expression "*pbVar20" * identifier) == (pointer_expression "*pbVar32" * identifier))) ;) (expression_statement "pbVar20 = pbVar20 + (ulong)bVar40 * -2 + 1;" (assignment_expression "pbVar20 = pbVar20 + (ulong)bVar40 * -2 + 1" identifier = (binary_expression "pbVar20 + (ulong)bVar40 * -2 + 1" (binary_expression "pbVar20 + (ulong)bVar40 * -2" identifier + (binary_expression "(ulong)bVar40 * -2" (cast_expression "(ulong)bVar40" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar32 = pbVar32 + (ulong)bVar40 * -2 + 1;" (assignment_expression "pbVar32 = pbVar32 + (ulong)bVar40 * -2 + 1" identifier = (binary_expression "pbVar32 + (ulong)bVar40 * -2 + 1" (binary_expression "pbVar32 + (ulong)bVar40 * -2" identifier + (binary_expression "(ulong)bVar40 * -2" (cast_expression "(ulong)bVar40" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar39)" ( identifier )) ;) (if_statement "if ((!bVar38 && !bVar39) != bVar38) goto code_r0x0011c93b;" if (parenthesized_expression "((!bVar38 && !bVar39) != bVar38)" ( (binary_expression "(!bVar38 && !bVar39) != bVar38" (parenthesized_expression "(!bVar38 && !bVar39)" ( (binary_expression "!bVar38 && !bVar39" (unary_expression "!bVar38" ! identifier) && (unary_expression "!bVar39" ! identifier)) )) != identifier) )) (goto_statement "goto code_r0x0011c93b;" goto statement_identifier ;)) })) (expression_statement "plVar18 = (long *)*plVar18;" (assignment_expression "plVar18 = (long *)*plVar18" identifier = (cast_expression "(long *)*plVar18" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar18" * identifier))) ;) (if_statement "if (plVar18 == (long *)0x0) break;" if (parenthesized_expression "(plVar18 == (long *)0x0)" ( (binary_expression "plVar18 == (long *)0x0" identifier == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) }) while (parenthesized_expression "( true )" ( true )) ;) }))) })) })) (if_statement "if (((DAT_0017fac3 & 0x10) != 0) && ((DAT_0017fac0 & 3) != 2)) {\n    local_40 = 0;\n    FUN_00119860(DAT_0017fd98,&local_40);\n    if (local_40 == 0) {\n      DAT_0017fac3 = DAT_0017fac3 & 0xef;\n    }\n  }" if (parenthesized_expression "(((DAT_0017fac3 & 0x10) != 0) && ((DAT_0017fac0 & 3) != 2))" ( (binary_expression "((DAT_0017fac3 & 0x10) != 0) && ((DAT_0017fac0 & 3) != 2)" (parenthesized_expression "((DAT_0017fac3 & 0x10) != 0)" ( (binary_expression "(DAT_0017fac3 & 0x10) != 0" (parenthesized_expression "(DAT_0017fac3 & 0x10)" ( (binary_expression "DAT_0017fac3 & 0x10" identifier & number_literal) )) != number_literal) )) && (parenthesized_expression "((DAT_0017fac0 & 3) != 2)" ( (binary_expression "(DAT_0017fac0 & 3) != 2" (parenthesized_expression "(DAT_0017fac0 & 3)" ( (binary_expression "DAT_0017fac0 & 3" identifier & number_literal) )) != number_literal) ))) )) (compound_statement "{\n    local_40 = 0;\n    FUN_00119860(DAT_0017fd98,&local_40);\n    if (local_40 == 0) {\n      DAT_0017fac3 = DAT_0017fac3 & 0xef;\n    }\n  }" { (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" identifier = number_literal) ;) (expression_statement "FUN_00119860(DAT_0017fd98,&local_40);" (call_expression "FUN_00119860(DAT_0017fd98,&local_40)" identifier (argument_list "(DAT_0017fd98,&local_40)" ( identifier , (pointer_expression "&local_40" & identifier) ))) ;) (if_statement "if (local_40 == 0) {\n      DAT_0017fac3 = DAT_0017fac3 & 0xef;\n    }" if (parenthesized_expression "(local_40 == 0)" ( (binary_expression "local_40 == 0" identifier == number_literal) )) (compound_statement "{\n      DAT_0017fac3 = DAT_0017fac3 & 0xef;\n    }" { (expression_statement "DAT_0017fac3 = DAT_0017fac3 & 0xef;" (assignment_expression "DAT_0017fac3 = DAT_0017fac3 & 0xef" identifier = (binary_expression "DAT_0017fac3 & 0xef" identifier & number_literal)) ;) })) })) (expression_statement "FUN_0011a050(0,1 < DAT_0017fad8);" (call_expression "FUN_0011a050(0,1 < DAT_0017fad8)" identifier (argument_list "(0,1 < DAT_0017fad8)" ( number_literal , (binary_expression "1 < DAT_0017fad8" number_literal < identifier) ))) ;) (expression_statement "FUN_00123bb0();" (call_expression "FUN_00123bb0()" identifier (argument_list "()" ( ))) ;) (expression_statement "lVar16 = DAT_0017fb10;" (assignment_expression "lVar16 = DAT_0017fb10" identifier = identifier) ;) (expression_statement "uVar10 = DAT_0017f3c8;" (assignment_expression "uVar10 = DAT_0017f3c8" identifier = identifier) ;) (if_statement "if (DAT_0017f350 != 0) {\n    plVar17 = DAT_0017f358 + DAT_0017f350;\n    plVar18 = DAT_0017f358;\n    do {\n      while (lVar15 = *plVar18, (*(ushort *)(lVar15 + 0x18) & 0x8ff) == 3) {\n        pcVar31 = *(char **)(lVar15 + 8);\n        if (*pcVar31 != '.') {\n          cVar8 = *(char *)(*(long *)(lVar16 + 8) + 0x1c);\n          lVar13 = *(long *)(*(long *)(lVar15 + 0x28) + 0x68);\n          *(long *)(lVar15 + 0x28) = lVar13;\n          if (pcVar31[(int)((cVar8 != '\0') + 4)] == 'o') {\n            *(ulong *)(lVar15 + 0x30) = *(ulong *)(lVar13 + 0x38) >> ((byte)uVar10 & 0x3f);\n          }\n          break;\n        }\n        if (pcVar31[2] != 'i') break;\n        plVar18 = plVar18 + 1;\n        uVar30 = *(ulong *)(*(long *)(lVar15 + 0x28) + 0x38);\n        *(undefined8 *)(lVar15 + 0x28) = 0x17ed50;\n        *(ulong *)(lVar15 + 0x30) = uVar30 >> ((byte)uVar10 & 0x3f);\n        if (plVar18 == plVar17) goto LAB_0011ca60;\n      }\n      plVar18 = plVar18 + 1;\n    } while (plVar18 != plVar17);\n  }" if (parenthesized_expression "(DAT_0017f350 != 0)" ( (binary_expression "DAT_0017f350 != 0" identifier != number_literal) )) (compound_statement "{\n    plVar17 = DAT_0017f358 + DAT_0017f350;\n    plVar18 = DAT_0017f358;\n    do {\n      while (lVar15 = *plVar18, (*(ushort *)(lVar15 + 0x18) & 0x8ff) == 3) {\n        pcVar31 = *(char **)(lVar15 + 8);\n        if (*pcVar31 != '.') {\n          cVar8 = *(char *)(*(long *)(lVar16 + 8) + 0x1c);\n          lVar13 = *(long *)(*(long *)(lVar15 + 0x28) + 0x68);\n          *(long *)(lVar15 + 0x28) = lVar13;\n          if (pcVar31[(int)((cVar8 != '\0') + 4)] == 'o') {\n            *(ulong *)(lVar15 + 0x30) = *(ulong *)(lVar13 + 0x38) >> ((byte)uVar10 & 0x3f);\n          }\n          break;\n        }\n        if (pcVar31[2] != 'i') break;\n        plVar18 = plVar18 + 1;\n        uVar30 = *(ulong *)(*(long *)(lVar15 + 0x28) + 0x38);\n        *(undefined8 *)(lVar15 + 0x28) = 0x17ed50;\n        *(ulong *)(lVar15 + 0x30) = uVar30 >> ((byte)uVar10 & 0x3f);\n        if (plVar18 == plVar17) goto LAB_0011ca60;\n      }\n      plVar18 = plVar18 + 1;\n    } while (plVar18 != plVar17);\n  }" { (expression_statement "plVar17 = DAT_0017f358 + DAT_0017f350;" (assignment_expression "plVar17 = DAT_0017f358 + DAT_0017f350" identifier = (binary_expression "DAT_0017f358 + DAT_0017f350" identifier + identifier)) ;) (expression_statement "plVar18 = DAT_0017f358;" (assignment_expression "plVar18 = DAT_0017f358" identifier = identifier) ;) (do_statement "do {\n      while (lVar15 = *plVar18, (*(ushort *)(lVar15 + 0x18) & 0x8ff) == 3) {\n        pcVar31 = *(char **)(lVar15 + 8);\n        if (*pcVar31 != '.') {\n          cVar8 = *(char *)(*(long *)(lVar16 + 8) + 0x1c);\n          lVar13 = *(long *)(*(long *)(lVar15 + 0x28) + 0x68);\n          *(long *)(lVar15 + 0x28) = lVar13;\n          if (pcVar31[(int)((cVar8 != '\0') + 4)] == 'o') {\n            *(ulong *)(lVar15 + 0x30) = *(ulong *)(lVar13 + 0x38) >> ((byte)uVar10 & 0x3f);\n          }\n          break;\n        }\n        if (pcVar31[2] != 'i') break;\n        plVar18 = plVar18 + 1;\n        uVar30 = *(ulong *)(*(long *)(lVar15 + 0x28) + 0x38);\n        *(undefined8 *)(lVar15 + 0x28) = 0x17ed50;\n        *(ulong *)(lVar15 + 0x30) = uVar30 >> ((byte)uVar10 & 0x3f);\n        if (plVar18 == plVar17) goto LAB_0011ca60;\n      }\n      plVar18 = plVar18 + 1;\n    } while (plVar18 != plVar17);" do (compound_statement "{\n      while (lVar15 = *plVar18, (*(ushort *)(lVar15 + 0x18) & 0x8ff) == 3) {\n        pcVar31 = *(char **)(lVar15 + 8);\n        if (*pcVar31 != '.') {\n          cVar8 = *(char *)(*(long *)(lVar16 + 8) + 0x1c);\n          lVar13 = *(long *)(*(long *)(lVar15 + 0x28) + 0x68);\n          *(long *)(lVar15 + 0x28) = lVar13;\n          if (pcVar31[(int)((cVar8 != '\0') + 4)] == 'o') {\n            *(ulong *)(lVar15 + 0x30) = *(ulong *)(lVar13 + 0x38) >> ((byte)uVar10 & 0x3f);\n          }\n          break;\n        }\n        if (pcVar31[2] != 'i') break;\n        plVar18 = plVar18 + 1;\n        uVar30 = *(ulong *)(*(long *)(lVar15 + 0x28) + 0x38);\n        *(undefined8 *)(lVar15 + 0x28) = 0x17ed50;\n        *(ulong *)(lVar15 + 0x30) = uVar30 >> ((byte)uVar10 & 0x3f);\n        if (plVar18 == plVar17) goto LAB_0011ca60;\n      }\n      plVar18 = plVar18 + 1;\n    }" { (while_statement "while (lVar15 = *plVar18, (*(ushort *)(lVar15 + 0x18) & 0x8ff) == 3) {\n        pcVar31 = *(char **)(lVar15 + 8);\n        if (*pcVar31 != '.') {\n          cVar8 = *(char *)(*(long *)(lVar16 + 8) + 0x1c);\n          lVar13 = *(long *)(*(long *)(lVar15 + 0x28) + 0x68);\n          *(long *)(lVar15 + 0x28) = lVar13;\n          if (pcVar31[(int)((cVar8 != '\0') + 4)] == 'o') {\n            *(ulong *)(lVar15 + 0x30) = *(ulong *)(lVar13 + 0x38) >> ((byte)uVar10 & 0x3f);\n          }\n          break;\n        }\n        if (pcVar31[2] != 'i') break;\n        plVar18 = plVar18 + 1;\n        uVar30 = *(ulong *)(*(long *)(lVar15 + 0x28) + 0x38);\n        *(undefined8 *)(lVar15 + 0x28) = 0x17ed50;\n        *(ulong *)(lVar15 + 0x30) = uVar30 >> ((byte)uVar10 & 0x3f);\n        if (plVar18 == plVar17) goto LAB_0011ca60;\n      }" while (parenthesized_expression "(lVar15 = *plVar18, (*(ushort *)(lVar15 + 0x18) & 0x8ff) == 3)" ( (comma_expression "lVar15 = *plVar18, (*(ushort *)(lVar15 + 0x18) & 0x8ff) == 3" (assignment_expression "lVar15 = *plVar18" identifier = (pointer_expression "*plVar18" * identifier)) , (binary_expression "(*(ushort *)(lVar15 + 0x18) & 0x8ff) == 3" (parenthesized_expression "(*(ushort *)(lVar15 + 0x18) & 0x8ff)" ( (binary_expression "*(ushort *)(lVar15 + 0x18) & 0x8ff" (pointer_expression "*(ushort *)(lVar15 + 0x18)" * (cast_expression "(ushort *)(lVar15 + 0x18)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar15 + 0x18)" ( (binary_expression "lVar15 + 0x18" identifier + number_literal) )))) & number_literal) )) == number_literal)) )) (compound_statement "{\n        pcVar31 = *(char **)(lVar15 + 8);\n        if (*pcVar31 != '.') {\n          cVar8 = *(char *)(*(long *)(lVar16 + 8) + 0x1c);\n          lVar13 = *(long *)(*(long *)(lVar15 + 0x28) + 0x68);\n          *(long *)(lVar15 + 0x28) = lVar13;\n          if (pcVar31[(int)((cVar8 != '\0') + 4)] == 'o') {\n            *(ulong *)(lVar15 + 0x30) = *(ulong *)(lVar13 + 0x38) >> ((byte)uVar10 & 0x3f);\n          }\n          break;\n        }\n        if (pcVar31[2] != 'i') break;\n        plVar18 = plVar18 + 1;\n        uVar30 = *(ulong *)(*(long *)(lVar15 + 0x28) + 0x38);\n        *(undefined8 *)(lVar15 + 0x28) = 0x17ed50;\n        *(ulong *)(lVar15 + 0x30) = uVar30 >> ((byte)uVar10 & 0x3f);\n        if (plVar18 == plVar17) goto LAB_0011ca60;\n      }" { (expression_statement "pcVar31 = *(char **)(lVar15 + 8);" (assignment_expression "pcVar31 = *(char **)(lVar15 + 8)" identifier = (pointer_expression "*(char **)(lVar15 + 8)" * (cast_expression "(char **)(lVar15 + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar15 + 8)" ( (binary_expression "lVar15 + 8" identifier + number_literal) ))))) ;) (if_statement "if (*pcVar31 != '.') {\n          cVar8 = *(char *)(*(long *)(lVar16 + 8) + 0x1c);\n          lVar13 = *(long *)(*(long *)(lVar15 + 0x28) + 0x68);\n          *(long *)(lVar15 + 0x28) = lVar13;\n          if (pcVar31[(int)((cVar8 != '\0') + 4)] == 'o') {\n            *(ulong *)(lVar15 + 0x30) = *(ulong *)(lVar13 + 0x38) >> ((byte)uVar10 & 0x3f);\n          }\n          break;\n        }" if (parenthesized_expression "(*pcVar31 != '.')" ( (binary_expression "*pcVar31 != '.'" (pointer_expression "*pcVar31" * identifier) != (char_literal "'.'" ' character ')) )) (compound_statement "{\n          cVar8 = *(char *)(*(long *)(lVar16 + 8) + 0x1c);\n          lVar13 = *(long *)(*(long *)(lVar15 + 0x28) + 0x68);\n          *(long *)(lVar15 + 0x28) = lVar13;\n          if (pcVar31[(int)((cVar8 != '\0') + 4)] == 'o') {\n            *(ulong *)(lVar15 + 0x30) = *(ulong *)(lVar13 + 0x38) >> ((byte)uVar10 & 0x3f);\n          }\n          break;\n        }" { (expression_statement "cVar8 = *(char *)(*(long *)(lVar16 + 8) + 0x1c);" (assignment_expression "cVar8 = *(char *)(*(long *)(lVar16 + 8) + 0x1c)" identifier = (pointer_expression "*(char *)(*(long *)(lVar16 + 8) + 0x1c)" * (cast_expression "(char *)(*(long *)(lVar16 + 8) + 0x1c)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(lVar16 + 8) + 0x1c)" ( (binary_expression "*(long *)(lVar16 + 8) + 0x1c" (pointer_expression "*(long *)(lVar16 + 8)" * (cast_expression "(long *)(lVar16 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar16 + 8)" ( (binary_expression "lVar16 + 8" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "lVar13 = *(long *)(*(long *)(lVar15 + 0x28) + 0x68);" (assignment_expression "lVar13 = *(long *)(*(long *)(lVar15 + 0x28) + 0x68)" identifier = (pointer_expression "*(long *)(*(long *)(lVar15 + 0x28) + 0x68)" * (cast_expression "(long *)(*(long *)(lVar15 + 0x28) + 0x68)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(lVar15 + 0x28) + 0x68)" ( (binary_expression "*(long *)(lVar15 + 0x28) + 0x68" (pointer_expression "*(long *)(lVar15 + 0x28)" * (cast_expression "(long *)(lVar15 + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar15 + 0x28)" ( (binary_expression "lVar15 + 0x28" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "*(long *)(lVar15 + 0x28) = lVar13;" (assignment_expression "*(long *)(lVar15 + 0x28) = lVar13" (pointer_expression "*(long *)(lVar15 + 0x28)" * (cast_expression "(long *)(lVar15 + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar15 + 0x28)" ( (binary_expression "lVar15 + 0x28" identifier + number_literal) )))) = identifier) ;) (if_statement "if (pcVar31[(int)((cVar8 != '\0') + 4)] == 'o') {\n            *(ulong *)(lVar15 + 0x30) = *(ulong *)(lVar13 + 0x38) >> ((byte)uVar10 & 0x3f);\n          }" if (parenthesized_expression "(pcVar31[(int)((cVar8 != '\0') + 4)] == 'o')" ( (binary_expression "pcVar31[(int)((cVar8 != '\0') + 4)] == 'o'" (subscript_expression "pcVar31[(int)((cVar8 != '\0') + 4)]" identifier [ (cast_expression "(int)((cVar8 != '\0') + 4)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((cVar8 != '\0') + 4)" ( (binary_expression "(cVar8 != '\0') + 4" (parenthesized_expression "(cVar8 != '\0')" ( (binary_expression "cVar8 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) + number_literal) ))) ]) == (char_literal "'o'" ' character ')) )) (compound_statement "{\n            *(ulong *)(lVar15 + 0x30) = *(ulong *)(lVar13 + 0x38) >> ((byte)uVar10 & 0x3f);\n          }" { (expression_statement "*(ulong *)(lVar15 + 0x30) = *(ulong *)(lVar13 + 0x38) >> ((byte)uVar10 & 0x3f);" (assignment_expression "*(ulong *)(lVar15 + 0x30) = *(ulong *)(lVar13 + 0x38) >> ((byte)uVar10 & 0x3f)" (pointer_expression "*(ulong *)(lVar15 + 0x30)" * (cast_expression "(ulong *)(lVar15 + 0x30)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar15 + 0x30)" ( (binary_expression "lVar15 + 0x30" identifier + number_literal) )))) = (binary_expression "*(ulong *)(lVar13 + 0x38) >> ((byte)uVar10 & 0x3f)" (pointer_expression "*(ulong *)(lVar13 + 0x38)" * (cast_expression "(ulong *)(lVar13 + 0x38)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar13 + 0x38)" ( (binary_expression "lVar13 + 0x38" identifier + number_literal) )))) >> (parenthesized_expression "((byte)uVar10 & 0x3f)" ( (binary_expression "(byte)uVar10 & 0x3f" (cast_expression "(byte)uVar10" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )))) ;) })) (break_statement "break;" break ;) })) (if_statement "if (pcVar31[2] != 'i') break;" if (parenthesized_expression "(pcVar31[2] != 'i')" ( (binary_expression "pcVar31[2] != 'i'" (subscript_expression "pcVar31[2]" identifier [ number_literal ]) != (char_literal "'i'" ' character ')) )) (break_statement "break;" break ;)) (expression_statement "plVar18 = plVar18 + 1;" (assignment_expression "plVar18 = plVar18 + 1" identifier = (binary_expression "plVar18 + 1" identifier + number_literal)) ;) (expression_statement "uVar30 = *(ulong *)(*(long *)(lVar15 + 0x28) + 0x38);" (assignment_expression "uVar30 = *(ulong *)(*(long *)(lVar15 + 0x28) + 0x38)" identifier = (pointer_expression "*(ulong *)(*(long *)(lVar15 + 0x28) + 0x38)" * (cast_expression "(ulong *)(*(long *)(lVar15 + 0x28) + 0x38)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(lVar15 + 0x28) + 0x38)" ( (binary_expression "*(long *)(lVar15 + 0x28) + 0x38" (pointer_expression "*(long *)(lVar15 + 0x28)" * (cast_expression "(long *)(lVar15 + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar15 + 0x28)" ( (binary_expression "lVar15 + 0x28" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "*(undefined8 *)(lVar15 + 0x28) = 0x17ed50;" (assignment_expression "*(undefined8 *)(lVar15 + 0x28) = 0x17ed50" (pointer_expression "*(undefined8 *)(lVar15 + 0x28)" * (cast_expression "(undefined8 *)(lVar15 + 0x28)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar15 + 0x28)" ( (binary_expression "lVar15 + 0x28" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(ulong *)(lVar15 + 0x30) = uVar30 >> ((byte)uVar10 & 0x3f);" (assignment_expression "*(ulong *)(lVar15 + 0x30) = uVar30 >> ((byte)uVar10 & 0x3f)" (pointer_expression "*(ulong *)(lVar15 + 0x30)" * (cast_expression "(ulong *)(lVar15 + 0x30)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar15 + 0x30)" ( (binary_expression "lVar15 + 0x30" identifier + number_literal) )))) = (binary_expression "uVar30 >> ((byte)uVar10 & 0x3f)" identifier >> (parenthesized_expression "((byte)uVar10 & 0x3f)" ( (binary_expression "(byte)uVar10 & 0x3f" (cast_expression "(byte)uVar10" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )))) ;) (if_statement "if (plVar18 == plVar17) goto LAB_0011ca60;" if (parenthesized_expression "(plVar18 == plVar17)" ( (binary_expression "plVar18 == plVar17" identifier == identifier) )) (goto_statement "goto LAB_0011ca60;" goto statement_identifier ;)) })) (expression_statement "plVar18 = plVar18 + 1;" (assignment_expression "plVar18 = plVar18 + 1" identifier = (binary_expression "plVar18 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(plVar18 != plVar17)" ( (binary_expression "plVar18 != plVar17" identifier != identifier) )) ;) })) (labeled_statement "LAB_0011ca60:\n  FUN_001188a0(4);" statement_identifier : (expression_statement "FUN_001188a0(4);" (call_expression "FUN_001188a0(4)" identifier (argument_list "(4)" ( number_literal ))) ;)) (expression_statement "FUN_00123be0();" (call_expression "FUN_00123be0()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00123b20();" (call_expression "FUN_00123b20()" identifier (argument_list "()" ( ))) ;) (expression_statement "puVar21 = DAT_0017f378;" (assignment_expression "puVar21 = DAT_0017f378" identifier = identifier) ;) (if_statement "if (DAT_0017fbd8 != '\0') {\n    cVar8 = bfd_arch_bits_per_address(DAT_0017fb10);\n    puVar21 = *(undefined8 **)(DAT_0017fb10 + 0x90);\n    uVar30 = (1L << (cVar8 - 1U & 0x3f)) * 2 - 1;\n    if (puVar21 != (undefined8 *)0x0) {\n      do {\n        if ((*(byte *)(puVar21 + 4) & 1) != 0) {\n          uVar29 = puVar21[5] + puVar21[7] & uVar30;\n          if ((uVar29 == 0) || ((puVar21[5] & uVar30) <= uVar29)) {\n            uVar29 = puVar21[7] + puVar21[6] & uVar30;\n            if ((uVar29 == 0) || ((puVar21[6] & uVar30) <= uVar29)) goto LAB_0011d2f0;\n            uVar11 = *puVar21;\n            pcVar31 = "%X%P: section %s LMA wraps around address space\n";\n          }\n          else {\n            uVar11 = *puVar21;\n            pcVar31 = "%X%P: section %s VMA wraps around address space\n";\n          }\n          uVar14 = dcgettext(0,pcVar31,5);\n          FUN_001251f0(uVar14,uVar11);\n        }\nLAB_0011d2f0:\n        puVar21 = (undefined8 *)puVar21[2];\n      } while (puVar21 != (undefined8 *)0x0);\n    }\n    puVar21 = DAT_0017f378;\n    if (1 < *(uint *)(DAT_0017fb10 + 0xa0)) {\n      uVar30 = 0;\n      plVar17 = (long *)xmalloc((ulong)*(uint *)(DAT_0017fb10 + 0xa0) << 4);\n      lVar16 = *(long *)(DAT_0017fb10 + 0x90);\n      if (lVar16 != 0) {\n        do {\n          uVar29 = uVar30;\n          if ((((*(uint *)(lVar16 + 0x20) & 1) != 0) &&\n              ((*(uint *)(lVar16 + 0x20) & 0x402) != 0x400)) && (*(long *)(lVar16 + 0x38) != 0)) {\n            uVar29 = uVar30 + 1;\n            plVar17[uVar30 * 2] = lVar16;\n            *(undefined4 *)(plVar17 + uVar30 * 2 + 1) = 0;\n          }\n          lVar16 = *(long *)(lVar16 + 0x10);\n          uVar30 = uVar29;\n        } while (lVar16 != 0);\n        if (1 < uVar29) {\n          qsort(plVar17,uVar29,0x10,FUN_00112320);\n          puVar21 = (undefined8 *)0x0;\n          plVar18 = plVar17;\n          uVar30 = 0;\n          uVar25 = 0;\n          do {\n            puVar27 = (undefined8 *)*plVar18;\n            puVar22 = puVar21;\n            uVar34 = uVar30;\n            uVar23 = uVar25;\n            if ((*(byte *)(puVar27 + 4) & 2) != 0) {\n              uVar34 = puVar27[6];\n              uVar23 = (uVar34 - 1) + ((ulong)puVar27[7] >> ((byte)DAT_0017f3c8 & 0x3f));\n              puVar22 = puVar27;\n              if ((puVar21 != (undefined8 *)0x0) && ((uVar34 <= uVar25 || (uVar25 < uVar30)))) {\n                uVar11 = *puVar21;\n                uVar14 = *puVar27;\n                uVar24 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);\n                FUN_001251f0(uVar24,uVar14,uVar34,uVar23,uVar11,uVar30,uVar25);\n                *(undefined4 *)(plVar18 + 1) = 1;\n              }\n            }\n            plVar18 = plVar18 + 2;\n            puVar21 = puVar22;\n            uVar30 = uVar34;\n            uVar25 = uVar23;\n          } while (plVar18 != plVar17 + uVar29 * 2);\n          qsort(plVar17,uVar29,0x10,FUN_00112350);\n          puVar21 = (undefined8 *)*plVar17;\n          uVar23 = 1;\n          uVar30 = puVar21[5];\n          uVar25 = uVar30;\n          do {\n            lVar16 = uVar23 * 2;\n            if (*(ulong *)(plVar17[lVar16] + 0x28) == uVar25) goto LAB_0011d4c4;\n            uVar23 = uVar23 + 1;\n            uVar25 = *(ulong *)(plVar17[lVar16] + 0x28);\n          } while (uVar23 != uVar29);\n          uVar23 = 0;\n          uVar25 = (uVar30 - 1) + ((ulong)puVar21[7] >> ((byte)DAT_0017f3c8 & 0x3f));\n          plVar18 = plVar17;\n          while( true ) {\n            uVar37 = uVar25;\n            uVar34 = uVar30;\n            puVar27 = puVar21;\n            plVar26 = plVar18 + 2;\n            uVar23 = uVar23 + 1;\n            if (uVar23 == uVar29) break;\n            puVar21 = (undefined8 *)*plVar26;\n            plVar3 = plVar18 + 3;\n            uVar30 = puVar21[5];\n            uVar25 = (uVar30 - 1) + ((ulong)puVar21[7] >> ((byte)DAT_0017f3c8 & 0x3f));\n            plVar18 = plVar26;\n            if (((int)*plVar3 == 0) && ((uVar30 <= uVar37 || (uVar37 < uVar34)))) {\n              uVar11 = *puVar27;\n              uVar14 = *puVar21;\n              uVar24 = dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",\n                                 5);\n              FUN_001251f0(uVar24,uVar14,uVar30,uVar25,uVar11,uVar34,uVar37);\n            }\n          }\nLAB_0011d4c4:\n          free(plVar17);\n          for (puVar27 = DAT_0017f398; puVar21 = DAT_0017f378, puVar27 != (undefined8 *)0x0;\n              puVar27 = (undefined8 *)puVar27[2]) {\n            if (*(int *)(puVar27 + 10) != 0) {\n              uVar11 = *puVar27;\n              lVar16 = puVar27[7] - (puVar27[5] + puVar27[4]);\n              uVar14 = dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",lVar16,5);\n              FUN_001251f0(uVar14,uVar11,lVar16);\n            }\n          }\n          goto joined_r0x0011ca92;\n        }\n      }\n      free(plVar17);\n      puVar21 = DAT_0017f378;\n    }\n  }" if (parenthesized_expression "(DAT_0017fbd8 != '\0')" ( (binary_expression "DAT_0017fbd8 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    cVar8 = bfd_arch_bits_per_address(DAT_0017fb10);\n    puVar21 = *(undefined8 **)(DAT_0017fb10 + 0x90);\n    uVar30 = (1L << (cVar8 - 1U & 0x3f)) * 2 - 1;\n    if (puVar21 != (undefined8 *)0x0) {\n      do {\n        if ((*(byte *)(puVar21 + 4) & 1) != 0) {\n          uVar29 = puVar21[5] + puVar21[7] & uVar30;\n          if ((uVar29 == 0) || ((puVar21[5] & uVar30) <= uVar29)) {\n            uVar29 = puVar21[7] + puVar21[6] & uVar30;\n            if ((uVar29 == 0) || ((puVar21[6] & uVar30) <= uVar29)) goto LAB_0011d2f0;\n            uVar11 = *puVar21;\n            pcVar31 = "%X%P: section %s LMA wraps around address space\n";\n          }\n          else {\n            uVar11 = *puVar21;\n            pcVar31 = "%X%P: section %s VMA wraps around address space\n";\n          }\n          uVar14 = dcgettext(0,pcVar31,5);\n          FUN_001251f0(uVar14,uVar11);\n        }\nLAB_0011d2f0:\n        puVar21 = (undefined8 *)puVar21[2];\n      } while (puVar21 != (undefined8 *)0x0);\n    }\n    puVar21 = DAT_0017f378;\n    if (1 < *(uint *)(DAT_0017fb10 + 0xa0)) {\n      uVar30 = 0;\n      plVar17 = (long *)xmalloc((ulong)*(uint *)(DAT_0017fb10 + 0xa0) << 4);\n      lVar16 = *(long *)(DAT_0017fb10 + 0x90);\n      if (lVar16 != 0) {\n        do {\n          uVar29 = uVar30;\n          if ((((*(uint *)(lVar16 + 0x20) & 1) != 0) &&\n              ((*(uint *)(lVar16 + 0x20) & 0x402) != 0x400)) && (*(long *)(lVar16 + 0x38) != 0)) {\n            uVar29 = uVar30 + 1;\n            plVar17[uVar30 * 2] = lVar16;\n            *(undefined4 *)(plVar17 + uVar30 * 2 + 1) = 0;\n          }\n          lVar16 = *(long *)(lVar16 + 0x10);\n          uVar30 = uVar29;\n        } while (lVar16 != 0);\n        if (1 < uVar29) {\n          qsort(plVar17,uVar29,0x10,FUN_00112320);\n          puVar21 = (undefined8 *)0x0;\n          plVar18 = plVar17;\n          uVar30 = 0;\n          uVar25 = 0;\n          do {\n            puVar27 = (undefined8 *)*plVar18;\n            puVar22 = puVar21;\n            uVar34 = uVar30;\n            uVar23 = uVar25;\n            if ((*(byte *)(puVar27 + 4) & 2) != 0) {\n              uVar34 = puVar27[6];\n              uVar23 = (uVar34 - 1) + ((ulong)puVar27[7] >> ((byte)DAT_0017f3c8 & 0x3f));\n              puVar22 = puVar27;\n              if ((puVar21 != (undefined8 *)0x0) && ((uVar34 <= uVar25 || (uVar25 < uVar30)))) {\n                uVar11 = *puVar21;\n                uVar14 = *puVar27;\n                uVar24 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);\n                FUN_001251f0(uVar24,uVar14,uVar34,uVar23,uVar11,uVar30,uVar25);\n                *(undefined4 *)(plVar18 + 1) = 1;\n              }\n            }\n            plVar18 = plVar18 + 2;\n            puVar21 = puVar22;\n            uVar30 = uVar34;\n            uVar25 = uVar23;\n          } while (plVar18 != plVar17 + uVar29 * 2);\n          qsort(plVar17,uVar29,0x10,FUN_00112350);\n          puVar21 = (undefined8 *)*plVar17;\n          uVar23 = 1;\n          uVar30 = puVar21[5];\n          uVar25 = uVar30;\n          do {\n            lVar16 = uVar23 * 2;\n            if (*(ulong *)(plVar17[lVar16] + 0x28) == uVar25) goto LAB_0011d4c4;\n            uVar23 = uVar23 + 1;\n            uVar25 = *(ulong *)(plVar17[lVar16] + 0x28);\n          } while (uVar23 != uVar29);\n          uVar23 = 0;\n          uVar25 = (uVar30 - 1) + ((ulong)puVar21[7] >> ((byte)DAT_0017f3c8 & 0x3f));\n          plVar18 = plVar17;\n          while( true ) {\n            uVar37 = uVar25;\n            uVar34 = uVar30;\n            puVar27 = puVar21;\n            plVar26 = plVar18 + 2;\n            uVar23 = uVar23 + 1;\n            if (uVar23 == uVar29) break;\n            puVar21 = (undefined8 *)*plVar26;\n            plVar3 = plVar18 + 3;\n            uVar30 = puVar21[5];\n            uVar25 = (uVar30 - 1) + ((ulong)puVar21[7] >> ((byte)DAT_0017f3c8 & 0x3f));\n            plVar18 = plVar26;\n            if (((int)*plVar3 == 0) && ((uVar30 <= uVar37 || (uVar37 < uVar34)))) {\n              uVar11 = *puVar27;\n              uVar14 = *puVar21;\n              uVar24 = dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",\n                                 5);\n              FUN_001251f0(uVar24,uVar14,uVar30,uVar25,uVar11,uVar34,uVar37);\n            }\n          }\nLAB_0011d4c4:\n          free(plVar17);\n          for (puVar27 = DAT_0017f398; puVar21 = DAT_0017f378, puVar27 != (undefined8 *)0x0;\n              puVar27 = (undefined8 *)puVar27[2]) {\n            if (*(int *)(puVar27 + 10) != 0) {\n              uVar11 = *puVar27;\n              lVar16 = puVar27[7] - (puVar27[5] + puVar27[4]);\n              uVar14 = dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",lVar16,5);\n              FUN_001251f0(uVar14,uVar11,lVar16);\n            }\n          }\n          goto joined_r0x0011ca92;\n        }\n      }\n      free(plVar17);\n      puVar21 = DAT_0017f378;\n    }\n  }" { (expression_statement "cVar8 = bfd_arch_bits_per_address(DAT_0017fb10);" (assignment_expression "cVar8 = bfd_arch_bits_per_address(DAT_0017fb10)" identifier = (call_expression "bfd_arch_bits_per_address(DAT_0017fb10)" identifier (argument_list "(DAT_0017fb10)" ( identifier )))) ;) (expression_statement "puVar21 = *(undefined8 **)(DAT_0017fb10 + 0x90);" (assignment_expression "puVar21 = *(undefined8 **)(DAT_0017fb10 + 0x90)" identifier = (pointer_expression "*(undefined8 **)(DAT_0017fb10 + 0x90)" * (cast_expression "(undefined8 **)(DAT_0017fb10 + 0x90)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(DAT_0017fb10 + 0x90)" ( (binary_expression "DAT_0017fb10 + 0x90" identifier + number_literal) ))))) ;) (expression_statement "uVar30 = (1L << (cVar8 - 1U & 0x3f)) * 2 - 1;" (assignment_expression "uVar30 = (1L << (cVar8 - 1U & 0x3f)) * 2 - 1" identifier = (binary_expression "(1L << (cVar8 - 1U & 0x3f)) * 2 - 1" (binary_expression "(1L << (cVar8 - 1U & 0x3f)) * 2" (parenthesized_expression "(1L << (cVar8 - 1U & 0x3f))" ( (binary_expression "1L << (cVar8 - 1U & 0x3f)" number_literal << (parenthesized_expression "(cVar8 - 1U & 0x3f)" ( (binary_expression "cVar8 - 1U & 0x3f" (binary_expression "cVar8 - 1U" identifier - number_literal) & number_literal) ))) )) * number_literal) - number_literal)) ;) (if_statement "if (puVar21 != (undefined8 *)0x0) {\n      do {\n        if ((*(byte *)(puVar21 + 4) & 1) != 0) {\n          uVar29 = puVar21[5] + puVar21[7] & uVar30;\n          if ((uVar29 == 0) || ((puVar21[5] & uVar30) <= uVar29)) {\n            uVar29 = puVar21[7] + puVar21[6] & uVar30;\n            if ((uVar29 == 0) || ((puVar21[6] & uVar30) <= uVar29)) goto LAB_0011d2f0;\n            uVar11 = *puVar21;\n            pcVar31 = "%X%P: section %s LMA wraps around address space\n";\n          }\n          else {\n            uVar11 = *puVar21;\n            pcVar31 = "%X%P: section %s VMA wraps around address space\n";\n          }\n          uVar14 = dcgettext(0,pcVar31,5);\n          FUN_001251f0(uVar14,uVar11);\n        }\nLAB_0011d2f0:\n        puVar21 = (undefined8 *)puVar21[2];\n      } while (puVar21 != (undefined8 *)0x0);\n    }" if (parenthesized_expression "(puVar21 != (undefined8 *)0x0)" ( (binary_expression "puVar21 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      do {\n        if ((*(byte *)(puVar21 + 4) & 1) != 0) {\n          uVar29 = puVar21[5] + puVar21[7] & uVar30;\n          if ((uVar29 == 0) || ((puVar21[5] & uVar30) <= uVar29)) {\n            uVar29 = puVar21[7] + puVar21[6] & uVar30;\n            if ((uVar29 == 0) || ((puVar21[6] & uVar30) <= uVar29)) goto LAB_0011d2f0;\n            uVar11 = *puVar21;\n            pcVar31 = "%X%P: section %s LMA wraps around address space\n";\n          }\n          else {\n            uVar11 = *puVar21;\n            pcVar31 = "%X%P: section %s VMA wraps around address space\n";\n          }\n          uVar14 = dcgettext(0,pcVar31,5);\n          FUN_001251f0(uVar14,uVar11);\n        }\nLAB_0011d2f0:\n        puVar21 = (undefined8 *)puVar21[2];\n      } while (puVar21 != (undefined8 *)0x0);\n    }" { (do_statement "do {\n        if ((*(byte *)(puVar21 + 4) & 1) != 0) {\n          uVar29 = puVar21[5] + puVar21[7] & uVar30;\n          if ((uVar29 == 0) || ((puVar21[5] & uVar30) <= uVar29)) {\n            uVar29 = puVar21[7] + puVar21[6] & uVar30;\n            if ((uVar29 == 0) || ((puVar21[6] & uVar30) <= uVar29)) goto LAB_0011d2f0;\n            uVar11 = *puVar21;\n            pcVar31 = "%X%P: section %s LMA wraps around address space\n";\n          }\n          else {\n            uVar11 = *puVar21;\n            pcVar31 = "%X%P: section %s VMA wraps around address space\n";\n          }\n          uVar14 = dcgettext(0,pcVar31,5);\n          FUN_001251f0(uVar14,uVar11);\n        }\nLAB_0011d2f0:\n        puVar21 = (undefined8 *)puVar21[2];\n      } while (puVar21 != (undefined8 *)0x0);" do (compound_statement "{\n        if ((*(byte *)(puVar21 + 4) & 1) != 0) {\n          uVar29 = puVar21[5] + puVar21[7] & uVar30;\n          if ((uVar29 == 0) || ((puVar21[5] & uVar30) <= uVar29)) {\n            uVar29 = puVar21[7] + puVar21[6] & uVar30;\n            if ((uVar29 == 0) || ((puVar21[6] & uVar30) <= uVar29)) goto LAB_0011d2f0;\n            uVar11 = *puVar21;\n            pcVar31 = "%X%P: section %s LMA wraps around address space\n";\n          }\n          else {\n            uVar11 = *puVar21;\n            pcVar31 = "%X%P: section %s VMA wraps around address space\n";\n          }\n          uVar14 = dcgettext(0,pcVar31,5);\n          FUN_001251f0(uVar14,uVar11);\n        }\nLAB_0011d2f0:\n        puVar21 = (undefined8 *)puVar21[2];\n      }" { (if_statement "if ((*(byte *)(puVar21 + 4) & 1) != 0) {\n          uVar29 = puVar21[5] + puVar21[7] & uVar30;\n          if ((uVar29 == 0) || ((puVar21[5] & uVar30) <= uVar29)) {\n            uVar29 = puVar21[7] + puVar21[6] & uVar30;\n            if ((uVar29 == 0) || ((puVar21[6] & uVar30) <= uVar29)) goto LAB_0011d2f0;\n            uVar11 = *puVar21;\n            pcVar31 = "%X%P: section %s LMA wraps around address space\n";\n          }\n          else {\n            uVar11 = *puVar21;\n            pcVar31 = "%X%P: section %s VMA wraps around address space\n";\n          }\n          uVar14 = dcgettext(0,pcVar31,5);\n          FUN_001251f0(uVar14,uVar11);\n        }" if (parenthesized_expression "((*(byte *)(puVar21 + 4) & 1) != 0)" ( (binary_expression "(*(byte *)(puVar21 + 4) & 1) != 0" (parenthesized_expression "(*(byte *)(puVar21 + 4) & 1)" ( (binary_expression "*(byte *)(puVar21 + 4) & 1" (pointer_expression "*(byte *)(puVar21 + 4)" * (cast_expression "(byte *)(puVar21 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + 4)" ( (binary_expression "puVar21 + 4" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n          uVar29 = puVar21[5] + puVar21[7] & uVar30;\n          if ((uVar29 == 0) || ((puVar21[5] & uVar30) <= uVar29)) {\n            uVar29 = puVar21[7] + puVar21[6] & uVar30;\n            if ((uVar29 == 0) || ((puVar21[6] & uVar30) <= uVar29)) goto LAB_0011d2f0;\n            uVar11 = *puVar21;\n            pcVar31 = "%X%P: section %s LMA wraps around address space\n";\n          }\n          else {\n            uVar11 = *puVar21;\n            pcVar31 = "%X%P: section %s VMA wraps around address space\n";\n          }\n          uVar14 = dcgettext(0,pcVar31,5);\n          FUN_001251f0(uVar14,uVar11);\n        }" { (expression_statement "uVar29 = puVar21[5] + puVar21[7] & uVar30;" (assignment_expression "uVar29 = puVar21[5] + puVar21[7] & uVar30" identifier = (binary_expression "puVar21[5] + puVar21[7] & uVar30" (binary_expression "puVar21[5] + puVar21[7]" (subscript_expression "puVar21[5]" identifier [ number_literal ]) + (subscript_expression "puVar21[7]" identifier [ number_literal ])) & identifier)) ;) (if_statement "if ((uVar29 == 0) || ((puVar21[5] & uVar30) <= uVar29)) {\n            uVar29 = puVar21[7] + puVar21[6] & uVar30;\n            if ((uVar29 == 0) || ((puVar21[6] & uVar30) <= uVar29)) goto LAB_0011d2f0;\n            uVar11 = *puVar21;\n            pcVar31 = "%X%P: section %s LMA wraps around address space\n";\n          }\n          else {\n            uVar11 = *puVar21;\n            pcVar31 = "%X%P: section %s VMA wraps around address space\n";\n          }" if (parenthesized_expression "((uVar29 == 0) || ((puVar21[5] & uVar30) <= uVar29))" ( (binary_expression "(uVar29 == 0) || ((puVar21[5] & uVar30) <= uVar29)" (parenthesized_expression "(uVar29 == 0)" ( (binary_expression "uVar29 == 0" identifier == number_literal) )) || (parenthesized_expression "((puVar21[5] & uVar30) <= uVar29)" ( (binary_expression "(puVar21[5] & uVar30) <= uVar29" (parenthesized_expression "(puVar21[5] & uVar30)" ( (binary_expression "puVar21[5] & uVar30" (subscript_expression "puVar21[5]" identifier [ number_literal ]) & identifier) )) <= identifier) ))) )) (compound_statement "{\n            uVar29 = puVar21[7] + puVar21[6] & uVar30;\n            if ((uVar29 == 0) || ((puVar21[6] & uVar30) <= uVar29)) goto LAB_0011d2f0;\n            uVar11 = *puVar21;\n            pcVar31 = "%X%P: section %s LMA wraps around address space\n";\n          }" { (expression_statement "uVar29 = puVar21[7] + puVar21[6] & uVar30;" (assignment_expression "uVar29 = puVar21[7] + puVar21[6] & uVar30" identifier = (binary_expression "puVar21[7] + puVar21[6] & uVar30" (binary_expression "puVar21[7] + puVar21[6]" (subscript_expression "puVar21[7]" identifier [ number_literal ]) + (subscript_expression "puVar21[6]" identifier [ number_literal ])) & identifier)) ;) (if_statement "if ((uVar29 == 0) || ((puVar21[6] & uVar30) <= uVar29)) goto LAB_0011d2f0;" if (parenthesized_expression "((uVar29 == 0) || ((puVar21[6] & uVar30) <= uVar29))" ( (binary_expression "(uVar29 == 0) || ((puVar21[6] & uVar30) <= uVar29)" (parenthesized_expression "(uVar29 == 0)" ( (binary_expression "uVar29 == 0" identifier == number_literal) )) || (parenthesized_expression "((puVar21[6] & uVar30) <= uVar29)" ( (binary_expression "(puVar21[6] & uVar30) <= uVar29" (parenthesized_expression "(puVar21[6] & uVar30)" ( (binary_expression "puVar21[6] & uVar30" (subscript_expression "puVar21[6]" identifier [ number_literal ]) & identifier) )) <= identifier) ))) )) (goto_statement "goto LAB_0011d2f0;" goto statement_identifier ;)) (expression_statement "uVar11 = *puVar21;" (assignment_expression "uVar11 = *puVar21" identifier = (pointer_expression "*puVar21" * identifier)) ;) (expression_statement "pcVar31 = "%X%P: section %s LMA wraps around address space\n";" (assignment_expression "pcVar31 = "%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            uVar11 = *puVar21;\n            pcVar31 = "%X%P: section %s VMA wraps around address space\n";\n          }" else (compound_statement "{\n            uVar11 = *puVar21;\n            pcVar31 = "%X%P: section %s VMA wraps around address space\n";\n          }" { (expression_statement "uVar11 = *puVar21;" (assignment_expression "uVar11 = *puVar21" identifier = (pointer_expression "*puVar21" * identifier)) ;) (expression_statement "pcVar31 = "%X%P: section %s VMA wraps around address space\n";" (assignment_expression "pcVar31 = "%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,pcVar31,5);" (assignment_expression "uVar14 = dcgettext(0,pcVar31,5)" identifier = (call_expression "dcgettext(0,pcVar31,5)" identifier (argument_list "(0,pcVar31,5)" ( number_literal , identifier , number_literal )))) ;) (expression_statement "FUN_001251f0(uVar14,uVar11);" (call_expression "FUN_001251f0(uVar14,uVar11)" identifier (argument_list "(uVar14,uVar11)" ( identifier , identifier ))) ;) })) (labeled_statement "LAB_0011d2f0:\n        puVar21 = (undefined8 *)puVar21[2];" statement_identifier : (expression_statement "puVar21 = (undefined8 *)puVar21[2];" (assignment_expression "puVar21 = (undefined8 *)puVar21[2]" identifier = (cast_expression "(undefined8 *)puVar21[2]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar21[2]" identifier [ number_literal ]))) ;)) }) while (parenthesized_expression "(puVar21 != (undefined8 *)0x0)" ( (binary_expression "puVar21 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) (expression_statement "puVar21 = DAT_0017f378;" (assignment_expression "puVar21 = DAT_0017f378" identifier = identifier) ;) (if_statement "if (1 < *(uint *)(DAT_0017fb10 + 0xa0)) {\n      uVar30 = 0;\n      plVar17 = (long *)xmalloc((ulong)*(uint *)(DAT_0017fb10 + 0xa0) << 4);\n      lVar16 = *(long *)(DAT_0017fb10 + 0x90);\n      if (lVar16 != 0) {\n        do {\n          uVar29 = uVar30;\n          if ((((*(uint *)(lVar16 + 0x20) & 1) != 0) &&\n              ((*(uint *)(lVar16 + 0x20) & 0x402) != 0x400)) && (*(long *)(lVar16 + 0x38) != 0)) {\n            uVar29 = uVar30 + 1;\n            plVar17[uVar30 * 2] = lVar16;\n            *(undefined4 *)(plVar17 + uVar30 * 2 + 1) = 0;\n          }\n          lVar16 = *(long *)(lVar16 + 0x10);\n          uVar30 = uVar29;\n        } while (lVar16 != 0);\n        if (1 < uVar29) {\n          qsort(plVar17,uVar29,0x10,FUN_00112320);\n          puVar21 = (undefined8 *)0x0;\n          plVar18 = plVar17;\n          uVar30 = 0;\n          uVar25 = 0;\n          do {\n            puVar27 = (undefined8 *)*plVar18;\n            puVar22 = puVar21;\n            uVar34 = uVar30;\n            uVar23 = uVar25;\n            if ((*(byte *)(puVar27 + 4) & 2) != 0) {\n              uVar34 = puVar27[6];\n              uVar23 = (uVar34 - 1) + ((ulong)puVar27[7] >> ((byte)DAT_0017f3c8 & 0x3f));\n              puVar22 = puVar27;\n              if ((puVar21 != (undefined8 *)0x0) && ((uVar34 <= uVar25 || (uVar25 < uVar30)))) {\n                uVar11 = *puVar21;\n                uVar14 = *puVar27;\n                uVar24 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);\n                FUN_001251f0(uVar24,uVar14,uVar34,uVar23,uVar11,uVar30,uVar25);\n                *(undefined4 *)(plVar18 + 1) = 1;\n              }\n            }\n            plVar18 = plVar18 + 2;\n            puVar21 = puVar22;\n            uVar30 = uVar34;\n            uVar25 = uVar23;\n          } while (plVar18 != plVar17 + uVar29 * 2);\n          qsort(plVar17,uVar29,0x10,FUN_00112350);\n          puVar21 = (undefined8 *)*plVar17;\n          uVar23 = 1;\n          uVar30 = puVar21[5];\n          uVar25 = uVar30;\n          do {\n            lVar16 = uVar23 * 2;\n            if (*(ulong *)(plVar17[lVar16] + 0x28) == uVar25) goto LAB_0011d4c4;\n            uVar23 = uVar23 + 1;\n            uVar25 = *(ulong *)(plVar17[lVar16] + 0x28);\n          } while (uVar23 != uVar29);\n          uVar23 = 0;\n          uVar25 = (uVar30 - 1) + ((ulong)puVar21[7] >> ((byte)DAT_0017f3c8 & 0x3f));\n          plVar18 = plVar17;\n          while( true ) {\n            uVar37 = uVar25;\n            uVar34 = uVar30;\n            puVar27 = puVar21;\n            plVar26 = plVar18 + 2;\n            uVar23 = uVar23 + 1;\n            if (uVar23 == uVar29) break;\n            puVar21 = (undefined8 *)*plVar26;\n            plVar3 = plVar18 + 3;\n            uVar30 = puVar21[5];\n            uVar25 = (uVar30 - 1) + ((ulong)puVar21[7] >> ((byte)DAT_0017f3c8 & 0x3f));\n            plVar18 = plVar26;\n            if (((int)*plVar3 == 0) && ((uVar30 <= uVar37 || (uVar37 < uVar34)))) {\n              uVar11 = *puVar27;\n              uVar14 = *puVar21;\n              uVar24 = dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",\n                                 5);\n              FUN_001251f0(uVar24,uVar14,uVar30,uVar25,uVar11,uVar34,uVar37);\n            }\n          }\nLAB_0011d4c4:\n          free(plVar17);\n          for (puVar27 = DAT_0017f398; puVar21 = DAT_0017f378, puVar27 != (undefined8 *)0x0;\n              puVar27 = (undefined8 *)puVar27[2]) {\n            if (*(int *)(puVar27 + 10) != 0) {\n              uVar11 = *puVar27;\n              lVar16 = puVar27[7] - (puVar27[5] + puVar27[4]);\n              uVar14 = dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",lVar16,5);\n              FUN_001251f0(uVar14,uVar11,lVar16);\n            }\n          }\n          goto joined_r0x0011ca92;\n        }\n      }\n      free(plVar17);\n      puVar21 = DAT_0017f378;\n    }" if (parenthesized_expression "(1 < *(uint *)(DAT_0017fb10 + 0xa0))" ( (binary_expression "1 < *(uint *)(DAT_0017fb10 + 0xa0)" number_literal < (pointer_expression "*(uint *)(DAT_0017fb10 + 0xa0)" * (cast_expression "(uint *)(DAT_0017fb10 + 0xa0)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0017fb10 + 0xa0)" ( (binary_expression "DAT_0017fb10 + 0xa0" identifier + number_literal) ))))) )) (compound_statement "{\n      uVar30 = 0;\n      plVar17 = (long *)xmalloc((ulong)*(uint *)(DAT_0017fb10 + 0xa0) << 4);\n      lVar16 = *(long *)(DAT_0017fb10 + 0x90);\n      if (lVar16 != 0) {\n        do {\n          uVar29 = uVar30;\n          if ((((*(uint *)(lVar16 + 0x20) & 1) != 0) &&\n              ((*(uint *)(lVar16 + 0x20) & 0x402) != 0x400)) && (*(long *)(lVar16 + 0x38) != 0)) {\n            uVar29 = uVar30 + 1;\n            plVar17[uVar30 * 2] = lVar16;\n            *(undefined4 *)(plVar17 + uVar30 * 2 + 1) = 0;\n          }\n          lVar16 = *(long *)(lVar16 + 0x10);\n          uVar30 = uVar29;\n        } while (lVar16 != 0);\n        if (1 < uVar29) {\n          qsort(plVar17,uVar29,0x10,FUN_00112320);\n          puVar21 = (undefined8 *)0x0;\n          plVar18 = plVar17;\n          uVar30 = 0;\n          uVar25 = 0;\n          do {\n            puVar27 = (undefined8 *)*plVar18;\n            puVar22 = puVar21;\n            uVar34 = uVar30;\n            uVar23 = uVar25;\n            if ((*(byte *)(puVar27 + 4) & 2) != 0) {\n              uVar34 = puVar27[6];\n              uVar23 = (uVar34 - 1) + ((ulong)puVar27[7] >> ((byte)DAT_0017f3c8 & 0x3f));\n              puVar22 = puVar27;\n              if ((puVar21 != (undefined8 *)0x0) && ((uVar34 <= uVar25 || (uVar25 < uVar30)))) {\n                uVar11 = *puVar21;\n                uVar14 = *puVar27;\n                uVar24 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);\n                FUN_001251f0(uVar24,uVar14,uVar34,uVar23,uVar11,uVar30,uVar25);\n                *(undefined4 *)(plVar18 + 1) = 1;\n              }\n            }\n            plVar18 = plVar18 + 2;\n            puVar21 = puVar22;\n            uVar30 = uVar34;\n            uVar25 = uVar23;\n          } while (plVar18 != plVar17 + uVar29 * 2);\n          qsort(plVar17,uVar29,0x10,FUN_00112350);\n          puVar21 = (undefined8 *)*plVar17;\n          uVar23 = 1;\n          uVar30 = puVar21[5];\n          uVar25 = uVar30;\n          do {\n            lVar16 = uVar23 * 2;\n            if (*(ulong *)(plVar17[lVar16] + 0x28) == uVar25) goto LAB_0011d4c4;\n            uVar23 = uVar23 + 1;\n            uVar25 = *(ulong *)(plVar17[lVar16] + 0x28);\n          } while (uVar23 != uVar29);\n          uVar23 = 0;\n          uVar25 = (uVar30 - 1) + ((ulong)puVar21[7] >> ((byte)DAT_0017f3c8 & 0x3f));\n          plVar18 = plVar17;\n          while( true ) {\n            uVar37 = uVar25;\n            uVar34 = uVar30;\n            puVar27 = puVar21;\n            plVar26 = plVar18 + 2;\n            uVar23 = uVar23 + 1;\n            if (uVar23 == uVar29) break;\n            puVar21 = (undefined8 *)*plVar26;\n            plVar3 = plVar18 + 3;\n            uVar30 = puVar21[5];\n            uVar25 = (uVar30 - 1) + ((ulong)puVar21[7] >> ((byte)DAT_0017f3c8 & 0x3f));\n            plVar18 = plVar26;\n            if (((int)*plVar3 == 0) && ((uVar30 <= uVar37 || (uVar37 < uVar34)))) {\n              uVar11 = *puVar27;\n              uVar14 = *puVar21;\n              uVar24 = dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",\n                                 5);\n              FUN_001251f0(uVar24,uVar14,uVar30,uVar25,uVar11,uVar34,uVar37);\n            }\n          }\nLAB_0011d4c4:\n          free(plVar17);\n          for (puVar27 = DAT_0017f398; puVar21 = DAT_0017f378, puVar27 != (undefined8 *)0x0;\n              puVar27 = (undefined8 *)puVar27[2]) {\n            if (*(int *)(puVar27 + 10) != 0) {\n              uVar11 = *puVar27;\n              lVar16 = puVar27[7] - (puVar27[5] + puVar27[4]);\n              uVar14 = dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",lVar16,5);\n              FUN_001251f0(uVar14,uVar11,lVar16);\n            }\n          }\n          goto joined_r0x0011ca92;\n        }\n      }\n      free(plVar17);\n      puVar21 = DAT_0017f378;\n    }" { (expression_statement "uVar30 = 0;" (assignment_expression "uVar30 = 0" identifier = number_literal) ;) (expression_statement "plVar17 = (long *)xmalloc((ulong)*(uint *)(DAT_0017fb10 + 0xa0) << 4);" (assignment_expression "plVar17 = (long *)xmalloc((ulong)*(uint *)(DAT_0017fb10 + 0xa0) << 4)" identifier = (cast_expression "(long *)xmalloc((ulong)*(uint *)(DAT_0017fb10 + 0xa0) << 4)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc((ulong)*(uint *)(DAT_0017fb10 + 0xa0) << 4)" identifier (argument_list "((ulong)*(uint *)(DAT_0017fb10 + 0xa0) << 4)" ( (binary_expression "(ulong)*(uint *)(DAT_0017fb10 + 0xa0) << 4" (binary_expression "(ulong)*(uint *)(DAT_0017fb10 + 0xa0)" (parenthesized_expression "(ulong)" ( identifier )) * (cast_expression "(uint *)(DAT_0017fb10 + 0xa0)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0017fb10 + 0xa0)" ( (binary_expression "DAT_0017fb10 + 0xa0" identifier + number_literal) )))) << number_literal) ))))) ;) (expression_statement "lVar16 = *(long *)(DAT_0017fb10 + 0x90);" (assignment_expression "lVar16 = *(long *)(DAT_0017fb10 + 0x90)" identifier = (pointer_expression "*(long *)(DAT_0017fb10 + 0x90)" * (cast_expression "(long *)(DAT_0017fb10 + 0x90)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0017fb10 + 0x90)" ( (binary_expression "DAT_0017fb10 + 0x90" identifier + number_literal) ))))) ;) (if_statement "if (lVar16 != 0) {\n        do {\n          uVar29 = uVar30;\n          if ((((*(uint *)(lVar16 + 0x20) & 1) != 0) &&\n              ((*(uint *)(lVar16 + 0x20) & 0x402) != 0x400)) && (*(long *)(lVar16 + 0x38) != 0)) {\n            uVar29 = uVar30 + 1;\n            plVar17[uVar30 * 2] = lVar16;\n            *(undefined4 *)(plVar17 + uVar30 * 2 + 1) = 0;\n          }\n          lVar16 = *(long *)(lVar16 + 0x10);\n          uVar30 = uVar29;\n        } while (lVar16 != 0);\n        if (1 < uVar29) {\n          qsort(plVar17,uVar29,0x10,FUN_00112320);\n          puVar21 = (undefined8 *)0x0;\n          plVar18 = plVar17;\n          uVar30 = 0;\n          uVar25 = 0;\n          do {\n            puVar27 = (undefined8 *)*plVar18;\n            puVar22 = puVar21;\n            uVar34 = uVar30;\n            uVar23 = uVar25;\n            if ((*(byte *)(puVar27 + 4) & 2) != 0) {\n              uVar34 = puVar27[6];\n              uVar23 = (uVar34 - 1) + ((ulong)puVar27[7] >> ((byte)DAT_0017f3c8 & 0x3f));\n              puVar22 = puVar27;\n              if ((puVar21 != (undefined8 *)0x0) && ((uVar34 <= uVar25 || (uVar25 < uVar30)))) {\n                uVar11 = *puVar21;\n                uVar14 = *puVar27;\n                uVar24 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);\n                FUN_001251f0(uVar24,uVar14,uVar34,uVar23,uVar11,uVar30,uVar25);\n                *(undefined4 *)(plVar18 + 1) = 1;\n              }\n            }\n            plVar18 = plVar18 + 2;\n            puVar21 = puVar22;\n            uVar30 = uVar34;\n            uVar25 = uVar23;\n          } while (plVar18 != plVar17 + uVar29 * 2);\n          qsort(plVar17,uVar29,0x10,FUN_00112350);\n          puVar21 = (undefined8 *)*plVar17;\n          uVar23 = 1;\n          uVar30 = puVar21[5];\n          uVar25 = uVar30;\n          do {\n            lVar16 = uVar23 * 2;\n            if (*(ulong *)(plVar17[lVar16] + 0x28) == uVar25) goto LAB_0011d4c4;\n            uVar23 = uVar23 + 1;\n            uVar25 = *(ulong *)(plVar17[lVar16] + 0x28);\n          } while (uVar23 != uVar29);\n          uVar23 = 0;\n          uVar25 = (uVar30 - 1) + ((ulong)puVar21[7] >> ((byte)DAT_0017f3c8 & 0x3f));\n          plVar18 = plVar17;\n          while( true ) {\n            uVar37 = uVar25;\n            uVar34 = uVar30;\n            puVar27 = puVar21;\n            plVar26 = plVar18 + 2;\n            uVar23 = uVar23 + 1;\n            if (uVar23 == uVar29) break;\n            puVar21 = (undefined8 *)*plVar26;\n            plVar3 = plVar18 + 3;\n            uVar30 = puVar21[5];\n            uVar25 = (uVar30 - 1) + ((ulong)puVar21[7] >> ((byte)DAT_0017f3c8 & 0x3f));\n            plVar18 = plVar26;\n            if (((int)*plVar3 == 0) && ((uVar30 <= uVar37 || (uVar37 < uVar34)))) {\n              uVar11 = *puVar27;\n              uVar14 = *puVar21;\n              uVar24 = dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",\n                                 5);\n              FUN_001251f0(uVar24,uVar14,uVar30,uVar25,uVar11,uVar34,uVar37);\n            }\n          }\nLAB_0011d4c4:\n          free(plVar17);\n          for (puVar27 = DAT_0017f398; puVar21 = DAT_0017f378, puVar27 != (undefined8 *)0x0;\n              puVar27 = (undefined8 *)puVar27[2]) {\n            if (*(int *)(puVar27 + 10) != 0) {\n              uVar11 = *puVar27;\n              lVar16 = puVar27[7] - (puVar27[5] + puVar27[4]);\n              uVar14 = dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",lVar16,5);\n              FUN_001251f0(uVar14,uVar11,lVar16);\n            }\n          }\n          goto joined_r0x0011ca92;\n        }\n      }" if (parenthesized_expression "(lVar16 != 0)" ( (binary_expression "lVar16 != 0" identifier != number_literal) )) (compound_statement "{\n        do {\n          uVar29 = uVar30;\n          if ((((*(uint *)(lVar16 + 0x20) & 1) != 0) &&\n              ((*(uint *)(lVar16 + 0x20) & 0x402) != 0x400)) && (*(long *)(lVar16 + 0x38) != 0)) {\n            uVar29 = uVar30 + 1;\n            plVar17[uVar30 * 2] = lVar16;\n            *(undefined4 *)(plVar17 + uVar30 * 2 + 1) = 0;\n          }\n          lVar16 = *(long *)(lVar16 + 0x10);\n          uVar30 = uVar29;\n        } while (lVar16 != 0);\n        if (1 < uVar29) {\n          qsort(plVar17,uVar29,0x10,FUN_00112320);\n          puVar21 = (undefined8 *)0x0;\n          plVar18 = plVar17;\n          uVar30 = 0;\n          uVar25 = 0;\n          do {\n            puVar27 = (undefined8 *)*plVar18;\n            puVar22 = puVar21;\n            uVar34 = uVar30;\n            uVar23 = uVar25;\n            if ((*(byte *)(puVar27 + 4) & 2) != 0) {\n              uVar34 = puVar27[6];\n              uVar23 = (uVar34 - 1) + ((ulong)puVar27[7] >> ((byte)DAT_0017f3c8 & 0x3f));\n              puVar22 = puVar27;\n              if ((puVar21 != (undefined8 *)0x0) && ((uVar34 <= uVar25 || (uVar25 < uVar30)))) {\n                uVar11 = *puVar21;\n                uVar14 = *puVar27;\n                uVar24 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);\n                FUN_001251f0(uVar24,uVar14,uVar34,uVar23,uVar11,uVar30,uVar25);\n                *(undefined4 *)(plVar18 + 1) = 1;\n              }\n            }\n            plVar18 = plVar18 + 2;\n            puVar21 = puVar22;\n            uVar30 = uVar34;\n            uVar25 = uVar23;\n          } while (plVar18 != plVar17 + uVar29 * 2);\n          qsort(plVar17,uVar29,0x10,FUN_00112350);\n          puVar21 = (undefined8 *)*plVar17;\n          uVar23 = 1;\n          uVar30 = puVar21[5];\n          uVar25 = uVar30;\n          do {\n            lVar16 = uVar23 * 2;\n            if (*(ulong *)(plVar17[lVar16] + 0x28) == uVar25) goto LAB_0011d4c4;\n            uVar23 = uVar23 + 1;\n            uVar25 = *(ulong *)(plVar17[lVar16] + 0x28);\n          } while (uVar23 != uVar29);\n          uVar23 = 0;\n          uVar25 = (uVar30 - 1) + ((ulong)puVar21[7] >> ((byte)DAT_0017f3c8 & 0x3f));\n          plVar18 = plVar17;\n          while( true ) {\n            uVar37 = uVar25;\n            uVar34 = uVar30;\n            puVar27 = puVar21;\n            plVar26 = plVar18 + 2;\n            uVar23 = uVar23 + 1;\n            if (uVar23 == uVar29) break;\n            puVar21 = (undefined8 *)*plVar26;\n            plVar3 = plVar18 + 3;\n            uVar30 = puVar21[5];\n            uVar25 = (uVar30 - 1) + ((ulong)puVar21[7] >> ((byte)DAT_0017f3c8 & 0x3f));\n            plVar18 = plVar26;\n            if (((int)*plVar3 == 0) && ((uVar30 <= uVar37 || (uVar37 < uVar34)))) {\n              uVar11 = *puVar27;\n              uVar14 = *puVar21;\n              uVar24 = dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",\n                                 5);\n              FUN_001251f0(uVar24,uVar14,uVar30,uVar25,uVar11,uVar34,uVar37);\n            }\n          }\nLAB_0011d4c4:\n          free(plVar17);\n          for (puVar27 = DAT_0017f398; puVar21 = DAT_0017f378, puVar27 != (undefined8 *)0x0;\n              puVar27 = (undefined8 *)puVar27[2]) {\n            if (*(int *)(puVar27 + 10) != 0) {\n              uVar11 = *puVar27;\n              lVar16 = puVar27[7] - (puVar27[5] + puVar27[4]);\n              uVar14 = dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",lVar16,5);\n              FUN_001251f0(uVar14,uVar11,lVar16);\n            }\n          }\n          goto joined_r0x0011ca92;\n        }\n      }" { (do_statement "do {\n          uVar29 = uVar30;\n          if ((((*(uint *)(lVar16 + 0x20) & 1) != 0) &&\n              ((*(uint *)(lVar16 + 0x20) & 0x402) != 0x400)) && (*(long *)(lVar16 + 0x38) != 0)) {\n            uVar29 = uVar30 + 1;\n            plVar17[uVar30 * 2] = lVar16;\n            *(undefined4 *)(plVar17 + uVar30 * 2 + 1) = 0;\n          }\n          lVar16 = *(long *)(lVar16 + 0x10);\n          uVar30 = uVar29;\n        } while (lVar16 != 0);" do (compound_statement "{\n          uVar29 = uVar30;\n          if ((((*(uint *)(lVar16 + 0x20) & 1) != 0) &&\n              ((*(uint *)(lVar16 + 0x20) & 0x402) != 0x400)) && (*(long *)(lVar16 + 0x38) != 0)) {\n            uVar29 = uVar30 + 1;\n            plVar17[uVar30 * 2] = lVar16;\n            *(undefined4 *)(plVar17 + uVar30 * 2 + 1) = 0;\n          }\n          lVar16 = *(long *)(lVar16 + 0x10);\n          uVar30 = uVar29;\n        }" { (expression_statement "uVar29 = uVar30;" (assignment_expression "uVar29 = uVar30" identifier = identifier) ;) (if_statement "if ((((*(uint *)(lVar16 + 0x20) & 1) != 0) &&\n              ((*(uint *)(lVar16 + 0x20) & 0x402) != 0x400)) && (*(long *)(lVar16 + 0x38) != 0)) {\n            uVar29 = uVar30 + 1;\n            plVar17[uVar30 * 2] = lVar16;\n            *(undefined4 *)(plVar17 + uVar30 * 2 + 1) = 0;\n          }" if (parenthesized_expression "((((*(uint *)(lVar16 + 0x20) & 1) != 0) &&\n              ((*(uint *)(lVar16 + 0x20) & 0x402) != 0x400)) && (*(long *)(lVar16 + 0x38) != 0))" ( (binary_expression "(((*(uint *)(lVar16 + 0x20) & 1) != 0) &&\n              ((*(uint *)(lVar16 + 0x20) & 0x402) != 0x400)) && (*(long *)(lVar16 + 0x38) != 0)" (parenthesized_expression "(((*(uint *)(lVar16 + 0x20) & 1) != 0) &&\n              ((*(uint *)(lVar16 + 0x20) & 0x402) != 0x400))" ( (binary_expression "((*(uint *)(lVar16 + 0x20) & 1) != 0) &&\n              ((*(uint *)(lVar16 + 0x20) & 0x402) != 0x400)" (parenthesized_expression "((*(uint *)(lVar16 + 0x20) & 1) != 0)" ( (binary_expression "(*(uint *)(lVar16 + 0x20) & 1) != 0" (parenthesized_expression "(*(uint *)(lVar16 + 0x20) & 1)" ( (binary_expression "*(uint *)(lVar16 + 0x20) & 1" (pointer_expression "*(uint *)(lVar16 + 0x20)" * (cast_expression "(uint *)(lVar16 + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar16 + 0x20)" ( (binary_expression "lVar16 + 0x20" identifier + number_literal) )))) & number_literal) )) != number_literal) )) && (parenthesized_expression "((*(uint *)(lVar16 + 0x20) & 0x402) != 0x400)" ( (binary_expression "(*(uint *)(lVar16 + 0x20) & 0x402) != 0x400" (parenthesized_expression "(*(uint *)(lVar16 + 0x20) & 0x402)" ( (binary_expression "*(uint *)(lVar16 + 0x20) & 0x402" (pointer_expression "*(uint *)(lVar16 + 0x20)" * (cast_expression "(uint *)(lVar16 + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar16 + 0x20)" ( (binary_expression "lVar16 + 0x20" identifier + number_literal) )))) & number_literal) )) != number_literal) ))) )) && (parenthesized_expression "(*(long *)(lVar16 + 0x38) != 0)" ( (binary_expression "*(long *)(lVar16 + 0x38) != 0" (pointer_expression "*(long *)(lVar16 + 0x38)" * (cast_expression "(long *)(lVar16 + 0x38)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar16 + 0x38)" ( (binary_expression "lVar16 + 0x38" identifier + number_literal) )))) != number_literal) ))) )) (compound_statement "{\n            uVar29 = uVar30 + 1;\n            plVar17[uVar30 * 2] = lVar16;\n            *(undefined4 *)(plVar17 + uVar30 * 2 + 1) = 0;\n          }" { (expression_statement "uVar29 = uVar30 + 1;" (assignment_expression "uVar29 = uVar30 + 1" identifier = (binary_expression "uVar30 + 1" identifier + number_literal)) ;) (expression_statement "plVar17[uVar30 * 2] = lVar16;" (assignment_expression "plVar17[uVar30 * 2] = lVar16" (subscript_expression "plVar17[uVar30 * 2]" identifier [ (binary_expression "uVar30 * 2" identifier * number_literal) ]) = identifier) ;) (expression_statement "*(undefined4 *)(plVar17 + uVar30 * 2 + 1) = 0;" (assignment_expression "*(undefined4 *)(plVar17 + uVar30 * 2 + 1) = 0" (pointer_expression "*(undefined4 *)(plVar17 + uVar30 * 2 + 1)" * (cast_expression "(undefined4 *)(plVar17 + uVar30 * 2 + 1)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar17 + uVar30 * 2 + 1)" ( (binary_expression "plVar17 + uVar30 * 2 + 1" (binary_expression "plVar17 + uVar30 * 2" identifier + (binary_expression "uVar30 * 2" identifier * number_literal)) + number_literal) )))) = number_literal) ;) })) (expression_statement "lVar16 = *(long *)(lVar16 + 0x10);" (assignment_expression "lVar16 = *(long *)(lVar16 + 0x10)" identifier = (pointer_expression "*(long *)(lVar16 + 0x10)" * (cast_expression "(long *)(lVar16 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar16 + 0x10)" ( (binary_expression "lVar16 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "uVar30 = uVar29;" (assignment_expression "uVar30 = uVar29" identifier = identifier) ;) }) while (parenthesized_expression "(lVar16 != 0)" ( (binary_expression "lVar16 != 0" identifier != number_literal) )) ;) (if_statement "if (1 < uVar29) {\n          qsort(plVar17,uVar29,0x10,FUN_00112320);\n          puVar21 = (undefined8 *)0x0;\n          plVar18 = plVar17;\n          uVar30 = 0;\n          uVar25 = 0;\n          do {\n            puVar27 = (undefined8 *)*plVar18;\n            puVar22 = puVar21;\n            uVar34 = uVar30;\n            uVar23 = uVar25;\n            if ((*(byte *)(puVar27 + 4) & 2) != 0) {\n              uVar34 = puVar27[6];\n              uVar23 = (uVar34 - 1) + ((ulong)puVar27[7] >> ((byte)DAT_0017f3c8 & 0x3f));\n              puVar22 = puVar27;\n              if ((puVar21 != (undefined8 *)0x0) && ((uVar34 <= uVar25 || (uVar25 < uVar30)))) {\n                uVar11 = *puVar21;\n                uVar14 = *puVar27;\n                uVar24 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);\n                FUN_001251f0(uVar24,uVar14,uVar34,uVar23,uVar11,uVar30,uVar25);\n                *(undefined4 *)(plVar18 + 1) = 1;\n              }\n            }\n            plVar18 = plVar18 + 2;\n            puVar21 = puVar22;\n            uVar30 = uVar34;\n            uVar25 = uVar23;\n          } while (plVar18 != plVar17 + uVar29 * 2);\n          qsort(plVar17,uVar29,0x10,FUN_00112350);\n          puVar21 = (undefined8 *)*plVar17;\n          uVar23 = 1;\n          uVar30 = puVar21[5];\n          uVar25 = uVar30;\n          do {\n            lVar16 = uVar23 * 2;\n            if (*(ulong *)(plVar17[lVar16] + 0x28) == uVar25) goto LAB_0011d4c4;\n            uVar23 = uVar23 + 1;\n            uVar25 = *(ulong *)(plVar17[lVar16] + 0x28);\n          } while (uVar23 != uVar29);\n          uVar23 = 0;\n          uVar25 = (uVar30 - 1) + ((ulong)puVar21[7] >> ((byte)DAT_0017f3c8 & 0x3f));\n          plVar18 = plVar17;\n          while( true ) {\n            uVar37 = uVar25;\n            uVar34 = uVar30;\n            puVar27 = puVar21;\n            plVar26 = plVar18 + 2;\n            uVar23 = uVar23 + 1;\n            if (uVar23 == uVar29) break;\n            puVar21 = (undefined8 *)*plVar26;\n            plVar3 = plVar18 + 3;\n            uVar30 = puVar21[5];\n            uVar25 = (uVar30 - 1) + ((ulong)puVar21[7] >> ((byte)DAT_0017f3c8 & 0x3f));\n            plVar18 = plVar26;\n            if (((int)*plVar3 == 0) && ((uVar30 <= uVar37 || (uVar37 < uVar34)))) {\n              uVar11 = *puVar27;\n              uVar14 = *puVar21;\n              uVar24 = dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",\n                                 5);\n              FUN_001251f0(uVar24,uVar14,uVar30,uVar25,uVar11,uVar34,uVar37);\n            }\n          }\nLAB_0011d4c4:\n          free(plVar17);\n          for (puVar27 = DAT_0017f398; puVar21 = DAT_0017f378, puVar27 != (undefined8 *)0x0;\n              puVar27 = (undefined8 *)puVar27[2]) {\n            if (*(int *)(puVar27 + 10) != 0) {\n              uVar11 = *puVar27;\n              lVar16 = puVar27[7] - (puVar27[5] + puVar27[4]);\n              uVar14 = dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",lVar16,5);\n              FUN_001251f0(uVar14,uVar11,lVar16);\n            }\n          }\n          goto joined_r0x0011ca92;\n        }" if (parenthesized_expression "(1 < uVar29)" ( (binary_expression "1 < uVar29" number_literal < identifier) )) (compound_statement "{\n          qsort(plVar17,uVar29,0x10,FUN_00112320);\n          puVar21 = (undefined8 *)0x0;\n          plVar18 = plVar17;\n          uVar30 = 0;\n          uVar25 = 0;\n          do {\n            puVar27 = (undefined8 *)*plVar18;\n            puVar22 = puVar21;\n            uVar34 = uVar30;\n            uVar23 = uVar25;\n            if ((*(byte *)(puVar27 + 4) & 2) != 0) {\n              uVar34 = puVar27[6];\n              uVar23 = (uVar34 - 1) + ((ulong)puVar27[7] >> ((byte)DAT_0017f3c8 & 0x3f));\n              puVar22 = puVar27;\n              if ((puVar21 != (undefined8 *)0x0) && ((uVar34 <= uVar25 || (uVar25 < uVar30)))) {\n                uVar11 = *puVar21;\n                uVar14 = *puVar27;\n                uVar24 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);\n                FUN_001251f0(uVar24,uVar14,uVar34,uVar23,uVar11,uVar30,uVar25);\n                *(undefined4 *)(plVar18 + 1) = 1;\n              }\n            }\n            plVar18 = plVar18 + 2;\n            puVar21 = puVar22;\n            uVar30 = uVar34;\n            uVar25 = uVar23;\n          } while (plVar18 != plVar17 + uVar29 * 2);\n          qsort(plVar17,uVar29,0x10,FUN_00112350);\n          puVar21 = (undefined8 *)*plVar17;\n          uVar23 = 1;\n          uVar30 = puVar21[5];\n          uVar25 = uVar30;\n          do {\n            lVar16 = uVar23 * 2;\n            if (*(ulong *)(plVar17[lVar16] + 0x28) == uVar25) goto LAB_0011d4c4;\n            uVar23 = uVar23 + 1;\n            uVar25 = *(ulong *)(plVar17[lVar16] + 0x28);\n          } while (uVar23 != uVar29);\n          uVar23 = 0;\n          uVar25 = (uVar30 - 1) + ((ulong)puVar21[7] >> ((byte)DAT_0017f3c8 & 0x3f));\n          plVar18 = plVar17;\n          while( true ) {\n            uVar37 = uVar25;\n            uVar34 = uVar30;\n            puVar27 = puVar21;\n            plVar26 = plVar18 + 2;\n            uVar23 = uVar23 + 1;\n            if (uVar23 == uVar29) break;\n            puVar21 = (undefined8 *)*plVar26;\n            plVar3 = plVar18 + 3;\n            uVar30 = puVar21[5];\n            uVar25 = (uVar30 - 1) + ((ulong)puVar21[7] >> ((byte)DAT_0017f3c8 & 0x3f));\n            plVar18 = plVar26;\n            if (((int)*plVar3 == 0) && ((uVar30 <= uVar37 || (uVar37 < uVar34)))) {\n              uVar11 = *puVar27;\n              uVar14 = *puVar21;\n              uVar24 = dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",\n                                 5);\n              FUN_001251f0(uVar24,uVar14,uVar30,uVar25,uVar11,uVar34,uVar37);\n            }\n          }\nLAB_0011d4c4:\n          free(plVar17);\n          for (puVar27 = DAT_0017f398; puVar21 = DAT_0017f378, puVar27 != (undefined8 *)0x0;\n              puVar27 = (undefined8 *)puVar27[2]) {\n            if (*(int *)(puVar27 + 10) != 0) {\n              uVar11 = *puVar27;\n              lVar16 = puVar27[7] - (puVar27[5] + puVar27[4]);\n              uVar14 = dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",lVar16,5);\n              FUN_001251f0(uVar14,uVar11,lVar16);\n            }\n          }\n          goto joined_r0x0011ca92;\n        }" { (expression_statement "qsort(plVar17,uVar29,0x10,FUN_00112320);" (call_expression "qsort(plVar17,uVar29,0x10,FUN_00112320)" identifier (argument_list "(plVar17,uVar29,0x10,FUN_00112320)" ( identifier , identifier , number_literal , identifier ))) ;) (expression_statement "puVar21 = (undefined8 *)0x0;" (assignment_expression "puVar21 = (undefined8 *)0x0" identifier = (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "plVar18 = plVar17;" (assignment_expression "plVar18 = plVar17" identifier = identifier) ;) (expression_statement "uVar30 = 0;" (assignment_expression "uVar30 = 0" identifier = number_literal) ;) (expression_statement "uVar25 = 0;" (assignment_expression "uVar25 = 0" identifier = number_literal) ;) (do_statement "do {\n            puVar27 = (undefined8 *)*plVar18;\n            puVar22 = puVar21;\n            uVar34 = uVar30;\n            uVar23 = uVar25;\n            if ((*(byte *)(puVar27 + 4) & 2) != 0) {\n              uVar34 = puVar27[6];\n              uVar23 = (uVar34 - 1) + ((ulong)puVar27[7] >> ((byte)DAT_0017f3c8 & 0x3f));\n              puVar22 = puVar27;\n              if ((puVar21 != (undefined8 *)0x0) && ((uVar34 <= uVar25 || (uVar25 < uVar30)))) {\n                uVar11 = *puVar21;\n                uVar14 = *puVar27;\n                uVar24 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);\n                FUN_001251f0(uVar24,uVar14,uVar34,uVar23,uVar11,uVar30,uVar25);\n                *(undefined4 *)(plVar18 + 1) = 1;\n              }\n            }\n            plVar18 = plVar18 + 2;\n            puVar21 = puVar22;\n            uVar30 = uVar34;\n            uVar25 = uVar23;\n          } while (plVar18 != plVar17 + uVar29 * 2);" do (compound_statement "{\n            puVar27 = (undefined8 *)*plVar18;\n            puVar22 = puVar21;\n            uVar34 = uVar30;\n            uVar23 = uVar25;\n            if ((*(byte *)(puVar27 + 4) & 2) != 0) {\n              uVar34 = puVar27[6];\n              uVar23 = (uVar34 - 1) + ((ulong)puVar27[7] >> ((byte)DAT_0017f3c8 & 0x3f));\n              puVar22 = puVar27;\n              if ((puVar21 != (undefined8 *)0x0) && ((uVar34 <= uVar25 || (uVar25 < uVar30)))) {\n                uVar11 = *puVar21;\n                uVar14 = *puVar27;\n                uVar24 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);\n                FUN_001251f0(uVar24,uVar14,uVar34,uVar23,uVar11,uVar30,uVar25);\n                *(undefined4 *)(plVar18 + 1) = 1;\n              }\n            }\n            plVar18 = plVar18 + 2;\n            puVar21 = puVar22;\n            uVar30 = uVar34;\n            uVar25 = uVar23;\n          }" { (expression_statement "puVar27 = (undefined8 *)*plVar18;" (assignment_expression "puVar27 = (undefined8 *)*plVar18" identifier = (cast_expression "(undefined8 *)*plVar18" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar18" * identifier))) ;) (expression_statement "puVar22 = puVar21;" (assignment_expression "puVar22 = puVar21" identifier = identifier) ;) (expression_statement "uVar34 = uVar30;" (assignment_expression "uVar34 = uVar30" identifier = identifier) ;) (expression_statement "uVar23 = uVar25;" (assignment_expression "uVar23 = uVar25" identifier = identifier) ;) (if_statement "if ((*(byte *)(puVar27 + 4) & 2) != 0) {\n              uVar34 = puVar27[6];\n              uVar23 = (uVar34 - 1) + ((ulong)puVar27[7] >> ((byte)DAT_0017f3c8 & 0x3f));\n              puVar22 = puVar27;\n              if ((puVar21 != (undefined8 *)0x0) && ((uVar34 <= uVar25 || (uVar25 < uVar30)))) {\n                uVar11 = *puVar21;\n                uVar14 = *puVar27;\n                uVar24 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);\n                FUN_001251f0(uVar24,uVar14,uVar34,uVar23,uVar11,uVar30,uVar25);\n                *(undefined4 *)(plVar18 + 1) = 1;\n              }\n            }" if (parenthesized_expression "((*(byte *)(puVar27 + 4) & 2) != 0)" ( (binary_expression "(*(byte *)(puVar27 + 4) & 2) != 0" (parenthesized_expression "(*(byte *)(puVar27 + 4) & 2)" ( (binary_expression "*(byte *)(puVar27 + 4) & 2" (pointer_expression "*(byte *)(puVar27 + 4)" * (cast_expression "(byte *)(puVar27 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + 4)" ( (binary_expression "puVar27 + 4" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n              uVar34 = puVar27[6];\n              uVar23 = (uVar34 - 1) + ((ulong)puVar27[7] >> ((byte)DAT_0017f3c8 & 0x3f));\n              puVar22 = puVar27;\n              if ((puVar21 != (undefined8 *)0x0) && ((uVar34 <= uVar25 || (uVar25 < uVar30)))) {\n                uVar11 = *puVar21;\n                uVar14 = *puVar27;\n                uVar24 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);\n                FUN_001251f0(uVar24,uVar14,uVar34,uVar23,uVar11,uVar30,uVar25);\n                *(undefined4 *)(plVar18 + 1) = 1;\n              }\n            }" { (expression_statement "uVar34 = puVar27[6];" (assignment_expression "uVar34 = puVar27[6]" identifier = (subscript_expression "puVar27[6]" identifier [ number_literal ])) ;) (expression_statement "uVar23 = (uVar34 - 1) + ((ulong)puVar27[7] >> ((byte)DAT_0017f3c8 & 0x3f));" (assignment_expression "uVar23 = (uVar34 - 1) + ((ulong)puVar27[7] >> ((byte)DAT_0017f3c8 & 0x3f))" identifier = (binary_expression "(uVar34 - 1) + ((ulong)puVar27[7] >> ((byte)DAT_0017f3c8 & 0x3f))" (parenthesized_expression "(uVar34 - 1)" ( (binary_expression "uVar34 - 1" identifier - number_literal) )) + (parenthesized_expression "((ulong)puVar27[7] >> ((byte)DAT_0017f3c8 & 0x3f))" ( (binary_expression "(ulong)puVar27[7] >> ((byte)DAT_0017f3c8 & 0x3f)" (cast_expression "(ulong)puVar27[7]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "puVar27[7]" identifier [ number_literal ])) >> (parenthesized_expression "((byte)DAT_0017f3c8 & 0x3f)" ( (binary_expression "(byte)DAT_0017f3c8 & 0x3f" (cast_expression "(byte)DAT_0017f3c8" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) )))) ;) (expression_statement "puVar22 = puVar27;" (assignment_expression "puVar22 = puVar27" identifier = identifier) ;) (if_statement "if ((puVar21 != (undefined8 *)0x0) && ((uVar34 <= uVar25 || (uVar25 < uVar30)))) {\n                uVar11 = *puVar21;\n                uVar14 = *puVar27;\n                uVar24 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);\n                FUN_001251f0(uVar24,uVar14,uVar34,uVar23,uVar11,uVar30,uVar25);\n                *(undefined4 *)(plVar18 + 1) = 1;\n              }" if (parenthesized_expression "((puVar21 != (undefined8 *)0x0) && ((uVar34 <= uVar25 || (uVar25 < uVar30))))" ( (binary_expression "(puVar21 != (undefined8 *)0x0) && ((uVar34 <= uVar25 || (uVar25 < uVar30)))" (parenthesized_expression "(puVar21 != (undefined8 *)0x0)" ( (binary_expression "puVar21 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "((uVar34 <= uVar25 || (uVar25 < uVar30)))" ( (parenthesized_expression "(uVar34 <= uVar25 || (uVar25 < uVar30))" ( (binary_expression "uVar34 <= uVar25 || (uVar25 < uVar30)" (binary_expression "uVar34 <= uVar25" identifier <= identifier) || (parenthesized_expression "(uVar25 < uVar30)" ( (binary_expression "uVar25 < uVar30" identifier < identifier) ))) )) ))) )) (compound_statement "{\n                uVar11 = *puVar21;\n                uVar14 = *puVar27;\n                uVar24 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);\n                FUN_001251f0(uVar24,uVar14,uVar34,uVar23,uVar11,uVar30,uVar25);\n                *(undefined4 *)(plVar18 + 1) = 1;\n              }" { (expression_statement "uVar11 = *puVar21;" (assignment_expression "uVar11 = *puVar21" identifier = (pointer_expression "*puVar21" * identifier)) ;) (expression_statement "uVar14 = *puVar27;" (assignment_expression "uVar14 = *puVar27" identifier = (pointer_expression "*puVar27" * identifier)) ;) (expression_statement "uVar24 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);" (assignment_expression "uVar24 = 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_001251f0(uVar24,uVar14,uVar34,uVar23,uVar11,uVar30,uVar25);" (call_expression "FUN_001251f0(uVar24,uVar14,uVar34,uVar23,uVar11,uVar30,uVar25)" identifier (argument_list "(uVar24,uVar14,uVar34,uVar23,uVar11,uVar30,uVar25)" ( identifier , identifier , identifier , identifier , identifier , identifier , identifier ))) ;) (expression_statement "*(undefined4 *)(plVar18 + 1) = 1;" (assignment_expression "*(undefined4 *)(plVar18 + 1) = 1" (pointer_expression "*(undefined4 *)(plVar18 + 1)" * (cast_expression "(undefined4 *)(plVar18 + 1)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar18 + 1)" ( (binary_expression "plVar18 + 1" identifier + number_literal) )))) = number_literal) ;) })) })) (expression_statement "plVar18 = plVar18 + 2;" (assignment_expression "plVar18 = plVar18 + 2" identifier = (binary_expression "plVar18 + 2" identifier + number_literal)) ;) (expression_statement "puVar21 = puVar22;" (assignment_expression "puVar21 = puVar22" identifier = identifier) ;) (expression_statement "uVar30 = uVar34;" (assignment_expression "uVar30 = uVar34" identifier = identifier) ;) (expression_statement "uVar25 = uVar23;" (assignment_expression "uVar25 = uVar23" identifier = identifier) ;) }) while (parenthesized_expression "(plVar18 != plVar17 + uVar29 * 2)" ( (binary_expression "plVar18 != plVar17 + uVar29 * 2" identifier != (binary_expression "plVar17 + uVar29 * 2" identifier + (binary_expression "uVar29 * 2" identifier * number_literal))) )) ;) (expression_statement "qsort(plVar17,uVar29,0x10,FUN_00112350);" (call_expression "qsort(plVar17,uVar29,0x10,FUN_00112350)" identifier (argument_list "(plVar17,uVar29,0x10,FUN_00112350)" ( identifier , identifier , number_literal , identifier ))) ;) (expression_statement "puVar21 = (undefined8 *)*plVar17;" (assignment_expression "puVar21 = (undefined8 *)*plVar17" identifier = (cast_expression "(undefined8 *)*plVar17" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar17" * identifier))) ;) (expression_statement "uVar23 = 1;" (assignment_expression "uVar23 = 1" identifier = number_literal) ;) (expression_statement "uVar30 = puVar21[5];" (assignment_expression "uVar30 = puVar21[5]" identifier = (subscript_expression "puVar21[5]" identifier [ number_literal ])) ;) (expression_statement "uVar25 = uVar30;" (assignment_expression "uVar25 = uVar30" identifier = identifier) ;) (do_statement "do {\n            lVar16 = uVar23 * 2;\n            if (*(ulong *)(plVar17[lVar16] + 0x28) == uVar25) goto LAB_0011d4c4;\n            uVar23 = uVar23 + 1;\n            uVar25 = *(ulong *)(plVar17[lVar16] + 0x28);\n          } while (uVar23 != uVar29);" do (compound_statement "{\n            lVar16 = uVar23 * 2;\n            if (*(ulong *)(plVar17[lVar16] + 0x28) == uVar25) goto LAB_0011d4c4;\n            uVar23 = uVar23 + 1;\n            uVar25 = *(ulong *)(plVar17[lVar16] + 0x28);\n          }" { (expression_statement "lVar16 = uVar23 * 2;" (assignment_expression "lVar16 = uVar23 * 2" identifier = (binary_expression "uVar23 * 2" identifier * number_literal)) ;) (if_statement "if (*(ulong *)(plVar17[lVar16] + 0x28) == uVar25) goto LAB_0011d4c4;" if (parenthesized_expression "(*(ulong *)(plVar17[lVar16] + 0x28) == uVar25)" ( (binary_expression "*(ulong *)(plVar17[lVar16] + 0x28) == uVar25" (pointer_expression "*(ulong *)(plVar17[lVar16] + 0x28)" * (cast_expression "(ulong *)(plVar17[lVar16] + 0x28)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar17[lVar16] + 0x28)" ( (binary_expression "plVar17[lVar16] + 0x28" (subscript_expression "plVar17[lVar16]" identifier [ identifier ]) + number_literal) )))) == identifier) )) (goto_statement "goto LAB_0011d4c4;" goto statement_identifier ;)) (expression_statement "uVar23 = uVar23 + 1;" (assignment_expression "uVar23 = uVar23 + 1" identifier = (binary_expression "uVar23 + 1" identifier + number_literal)) ;) (expression_statement "uVar25 = *(ulong *)(plVar17[lVar16] + 0x28);" (assignment_expression "uVar25 = *(ulong *)(plVar17[lVar16] + 0x28)" identifier = (pointer_expression "*(ulong *)(plVar17[lVar16] + 0x28)" * (cast_expression "(ulong *)(plVar17[lVar16] + 0x28)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar17[lVar16] + 0x28)" ( (binary_expression "plVar17[lVar16] + 0x28" (subscript_expression "plVar17[lVar16]" identifier [ identifier ]) + number_literal) ))))) ;) }) while (parenthesized_expression "(uVar23 != uVar29)" ( (binary_expression "uVar23 != uVar29" identifier != identifier) )) ;) (expression_statement "uVar23 = 0;" (assignment_expression "uVar23 = 0" identifier = number_literal) ;) (expression_statement "uVar25 = (uVar30 - 1) + ((ulong)puVar21[7] >> ((byte)DAT_0017f3c8 & 0x3f));" (assignment_expression "uVar25 = (uVar30 - 1) + ((ulong)puVar21[7] >> ((byte)DAT_0017f3c8 & 0x3f))" identifier = (binary_expression "(uVar30 - 1) + ((ulong)puVar21[7] >> ((byte)DAT_0017f3c8 & 0x3f))" (parenthesized_expression "(uVar30 - 1)" ( (binary_expression "uVar30 - 1" identifier - number_literal) )) + (parenthesized_expression "((ulong)puVar21[7] >> ((byte)DAT_0017f3c8 & 0x3f))" ( (binary_expression "(ulong)puVar21[7] >> ((byte)DAT_0017f3c8 & 0x3f)" (cast_expression "(ulong)puVar21[7]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "puVar21[7]" identifier [ number_literal ])) >> (parenthesized_expression "((byte)DAT_0017f3c8 & 0x3f)" ( (binary_expression "(byte)DAT_0017f3c8 & 0x3f" (cast_expression "(byte)DAT_0017f3c8" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) )))) ;) (expression_statement "plVar18 = plVar17;" (assignment_expression "plVar18 = plVar17" identifier = identifier) ;) (while_statement "while( true ) {\n            uVar37 = uVar25;\n            uVar34 = uVar30;\n            puVar27 = puVar21;\n            plVar26 = plVar18 + 2;\n            uVar23 = uVar23 + 1;\n            if (uVar23 == uVar29) break;\n            puVar21 = (undefined8 *)*plVar26;\n            plVar3 = plVar18 + 3;\n            uVar30 = puVar21[5];\n            uVar25 = (uVar30 - 1) + ((ulong)puVar21[7] >> ((byte)DAT_0017f3c8 & 0x3f));\n            plVar18 = plVar26;\n            if (((int)*plVar3 == 0) && ((uVar30 <= uVar37 || (uVar37 < uVar34)))) {\n              uVar11 = *puVar27;\n              uVar14 = *puVar21;\n              uVar24 = dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",\n                                 5);\n              FUN_001251f0(uVar24,uVar14,uVar30,uVar25,uVar11,uVar34,uVar37);\n            }\n          }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n            uVar37 = uVar25;\n            uVar34 = uVar30;\n            puVar27 = puVar21;\n            plVar26 = plVar18 + 2;\n            uVar23 = uVar23 + 1;\n            if (uVar23 == uVar29) break;\n            puVar21 = (undefined8 *)*plVar26;\n            plVar3 = plVar18 + 3;\n            uVar30 = puVar21[5];\n            uVar25 = (uVar30 - 1) + ((ulong)puVar21[7] >> ((byte)DAT_0017f3c8 & 0x3f));\n            plVar18 = plVar26;\n            if (((int)*plVar3 == 0) && ((uVar30 <= uVar37 || (uVar37 < uVar34)))) {\n              uVar11 = *puVar27;\n              uVar14 = *puVar21;\n              uVar24 = dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",\n                                 5);\n              FUN_001251f0(uVar24,uVar14,uVar30,uVar25,uVar11,uVar34,uVar37);\n            }\n          }" { (expression_statement "uVar37 = uVar25;" (assignment_expression "uVar37 = uVar25" identifier = identifier) ;) (expression_statement "uVar34 = uVar30;" (assignment_expression "uVar34 = uVar30" identifier = identifier) ;) (expression_statement "puVar27 = puVar21;" (assignment_expression "puVar27 = puVar21" identifier = identifier) ;) (expression_statement "plVar26 = plVar18 + 2;" (assignment_expression "plVar26 = plVar18 + 2" identifier = (binary_expression "plVar18 + 2" identifier + number_literal)) ;) (expression_statement "uVar23 = uVar23 + 1;" (assignment_expression "uVar23 = uVar23 + 1" identifier = (binary_expression "uVar23 + 1" identifier + number_literal)) ;) (if_statement "if (uVar23 == uVar29) break;" if (parenthesized_expression "(uVar23 == uVar29)" ( (binary_expression "uVar23 == uVar29" identifier == identifier) )) (break_statement "break;" break ;)) (expression_statement "puVar21 = (undefined8 *)*plVar26;" (assignment_expression "puVar21 = (undefined8 *)*plVar26" identifier = (cast_expression "(undefined8 *)*plVar26" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar26" * identifier))) ;) (expression_statement "plVar3 = plVar18 + 3;" (assignment_expression "plVar3 = plVar18 + 3" identifier = (binary_expression "plVar18 + 3" identifier + number_literal)) ;) (expression_statement "uVar30 = puVar21[5];" (assignment_expression "uVar30 = puVar21[5]" identifier = (subscript_expression "puVar21[5]" identifier [ number_literal ])) ;) (expression_statement "uVar25 = (uVar30 - 1) + ((ulong)puVar21[7] >> ((byte)DAT_0017f3c8 & 0x3f));" (assignment_expression "uVar25 = (uVar30 - 1) + ((ulong)puVar21[7] >> ((byte)DAT_0017f3c8 & 0x3f))" identifier = (binary_expression "(uVar30 - 1) + ((ulong)puVar21[7] >> ((byte)DAT_0017f3c8 & 0x3f))" (parenthesized_expression "(uVar30 - 1)" ( (binary_expression "uVar30 - 1" identifier - number_literal) )) + (parenthesized_expression "((ulong)puVar21[7] >> ((byte)DAT_0017f3c8 & 0x3f))" ( (binary_expression "(ulong)puVar21[7] >> ((byte)DAT_0017f3c8 & 0x3f)" (cast_expression "(ulong)puVar21[7]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "puVar21[7]" identifier [ number_literal ])) >> (parenthesized_expression "((byte)DAT_0017f3c8 & 0x3f)" ( (binary_expression "(byte)DAT_0017f3c8 & 0x3f" (cast_expression "(byte)DAT_0017f3c8" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) )))) ;) (expression_statement "plVar18 = plVar26;" (assignment_expression "plVar18 = plVar26" identifier = identifier) ;) (if_statement "if (((int)*plVar3 == 0) && ((uVar30 <= uVar37 || (uVar37 < uVar34)))) {\n              uVar11 = *puVar27;\n              uVar14 = *puVar21;\n              uVar24 = dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",\n                                 5);\n              FUN_001251f0(uVar24,uVar14,uVar30,uVar25,uVar11,uVar34,uVar37);\n            }" if (parenthesized_expression "(((int)*plVar3 == 0) && ((uVar30 <= uVar37 || (uVar37 < uVar34))))" ( (binary_expression "((int)*plVar3 == 0) && ((uVar30 <= uVar37 || (uVar37 < uVar34)))" (parenthesized_expression "((int)*plVar3 == 0)" ( (binary_expression "(int)*plVar3 == 0" (cast_expression "(int)*plVar3" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*plVar3" * identifier)) == number_literal) )) && (parenthesized_expression "((uVar30 <= uVar37 || (uVar37 < uVar34)))" ( (parenthesized_expression "(uVar30 <= uVar37 || (uVar37 < uVar34))" ( (binary_expression "uVar30 <= uVar37 || (uVar37 < uVar34)" (binary_expression "uVar30 <= uVar37" identifier <= identifier) || (parenthesized_expression "(uVar37 < uVar34)" ( (binary_expression "uVar37 < uVar34" identifier < identifier) ))) )) ))) )) (compound_statement "{\n              uVar11 = *puVar27;\n              uVar14 = *puVar21;\n              uVar24 = dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",\n                                 5);\n              FUN_001251f0(uVar24,uVar14,uVar30,uVar25,uVar11,uVar34,uVar37);\n            }" { (expression_statement "uVar11 = *puVar27;" (assignment_expression "uVar11 = *puVar27" identifier = (pointer_expression "*puVar27" * identifier)) ;) (expression_statement "uVar14 = *puVar21;" (assignment_expression "uVar14 = *puVar21" identifier = (pointer_expression "*puVar21" * identifier)) ;) (expression_statement "uVar24 = dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",\n                                 5);" (assignment_expression "uVar24 = 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_001251f0(uVar24,uVar14,uVar30,uVar25,uVar11,uVar34,uVar37);" (call_expression "FUN_001251f0(uVar24,uVar14,uVar30,uVar25,uVar11,uVar34,uVar37)" identifier (argument_list "(uVar24,uVar14,uVar30,uVar25,uVar11,uVar34,uVar37)" ( identifier , identifier , identifier , identifier , identifier , identifier , identifier ))) ;) })) })) (labeled_statement "LAB_0011d4c4:\n          free(plVar17);" statement_identifier : (expression_statement "free(plVar17);" (call_expression "free(plVar17)" identifier (argument_list "(plVar17)" ( identifier ))) ;)) (for_statement "for (puVar27 = DAT_0017f398; puVar21 = DAT_0017f378, puVar27 != (undefined8 *)0x0;\n              puVar27 = (undefined8 *)puVar27[2]) {\n            if (*(int *)(puVar27 + 10) != 0) {\n              uVar11 = *puVar27;\n              lVar16 = puVar27[7] - (puVar27[5] + puVar27[4]);\n              uVar14 = dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",lVar16,5);\n              FUN_001251f0(uVar14,uVar11,lVar16);\n            }\n          }" for ( (assignment_expression "puVar27 = DAT_0017f398" identifier = identifier) ; (comma_expression "puVar21 = DAT_0017f378, puVar27 != (undefined8 *)0x0" (assignment_expression "puVar21 = DAT_0017f378" identifier = identifier) , (binary_expression "puVar27 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ; (assignment_expression "puVar27 = (undefined8 *)puVar27[2]" identifier = (cast_expression "(undefined8 *)puVar27[2]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar27[2]" identifier [ number_literal ]))) ) (compound_statement "{\n            if (*(int *)(puVar27 + 10) != 0) {\n              uVar11 = *puVar27;\n              lVar16 = puVar27[7] - (puVar27[5] + puVar27[4]);\n              uVar14 = dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",lVar16,5);\n              FUN_001251f0(uVar14,uVar11,lVar16);\n            }\n          }" { (if_statement "if (*(int *)(puVar27 + 10) != 0) {\n              uVar11 = *puVar27;\n              lVar16 = puVar27[7] - (puVar27[5] + puVar27[4]);\n              uVar14 = dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",lVar16,5);\n              FUN_001251f0(uVar14,uVar11,lVar16);\n            }" if (parenthesized_expression "(*(int *)(puVar27 + 10) != 0)" ( (binary_expression "*(int *)(puVar27 + 10) != 0" (pointer_expression "*(int *)(puVar27 + 10)" * (cast_expression "(int *)(puVar27 + 10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + 10)" ( (binary_expression "puVar27 + 10" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n              uVar11 = *puVar27;\n              lVar16 = puVar27[7] - (puVar27[5] + puVar27[4]);\n              uVar14 = dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",lVar16,5);\n              FUN_001251f0(uVar14,uVar11,lVar16);\n            }" { (expression_statement "uVar11 = *puVar27;" (assignment_expression "uVar11 = *puVar27" identifier = (pointer_expression "*puVar27" * identifier)) ;) (expression_statement "lVar16 = puVar27[7] - (puVar27[5] + puVar27[4]);" (assignment_expression "lVar16 = puVar27[7] - (puVar27[5] + puVar27[4])" identifier = (binary_expression "puVar27[7] - (puVar27[5] + puVar27[4])" (subscript_expression "puVar27[7]" identifier [ number_literal ]) - (parenthesized_expression "(puVar27[5] + puVar27[4])" ( (binary_expression "puVar27[5] + puVar27[4]" (subscript_expression "puVar27[5]" identifier [ number_literal ]) + (subscript_expression "puVar27[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",lVar16,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",lVar16,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",lVar16,5)" identifier (argument_list "(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",lVar16,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_001251f0(uVar14,uVar11,lVar16);" (call_expression "FUN_001251f0(uVar14,uVar11,lVar16)" identifier (argument_list "(uVar14,uVar11,lVar16)" ( identifier , identifier , identifier ))) ;) })) })) (goto_statement "goto joined_r0x0011ca92;" goto statement_identifier ;) })) })) (expression_statement "free(plVar17);" (call_expression "free(plVar17)" identifier (argument_list "(plVar17)" ( identifier ))) ;) (expression_statement "puVar21 = DAT_0017f378;" (assignment_expression "puVar21 = DAT_0017f378" identifier = identifier) ;) })) })) (labeled_statement "joined_r0x0011ca92:\n  for (; puVar21 != (undefined8 *)0x0; puVar21 = (undefined8 *)puVar21[1]) {\n    lVar16 = bfd_link_hash_lookup(DAT_0017fae8,*puVar21,0,0,1);\n    if ((lVar16 == 0) || (1 < (byte)(*(char *)(lVar16 + 0x18) - 3U))) {\n      uVar11 = *puVar21;\n      uVar14 = dcgettext(0,"%X%P: required symbol `%s\' not defined\n",5);\n      FUN_001251f0(uVar14,uVar11);\n    }\n  }" statement_identifier : (for_statement "for (; puVar21 != (undefined8 *)0x0; puVar21 = (undefined8 *)puVar21[1]) {\n    lVar16 = bfd_link_hash_lookup(DAT_0017fae8,*puVar21,0,0,1);\n    if ((lVar16 == 0) || (1 < (byte)(*(char *)(lVar16 + 0x18) - 3U))) {\n      uVar11 = *puVar21;\n      uVar14 = dcgettext(0,"%X%P: required symbol `%s\' not defined\n",5);\n      FUN_001251f0(uVar14,uVar11);\n    }\n  }" for ( ; (binary_expression "puVar21 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "puVar21 = (undefined8 *)puVar21[1]" identifier = (cast_expression "(undefined8 *)puVar21[1]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar21[1]" identifier [ number_literal ]))) ) (compound_statement "{\n    lVar16 = bfd_link_hash_lookup(DAT_0017fae8,*puVar21,0,0,1);\n    if ((lVar16 == 0) || (1 < (byte)(*(char *)(lVar16 + 0x18) - 3U))) {\n      uVar11 = *puVar21;\n      uVar14 = dcgettext(0,"%X%P: required symbol `%s\' not defined\n",5);\n      FUN_001251f0(uVar14,uVar11);\n    }\n  }" { (expression_statement "lVar16 = bfd_link_hash_lookup(DAT_0017fae8,*puVar21,0,0,1);" (assignment_expression "lVar16 = bfd_link_hash_lookup(DAT_0017fae8,*puVar21,0,0,1)" identifier = (call_expression "bfd_link_hash_lookup(DAT_0017fae8,*puVar21,0,0,1)" identifier (argument_list "(DAT_0017fae8,*puVar21,0,0,1)" ( identifier , (pointer_expression "*puVar21" * identifier) , number_literal , number_literal , number_literal )))) ;) (if_statement "if ((lVar16 == 0) || (1 < (byte)(*(char *)(lVar16 + 0x18) - 3U))) {\n      uVar11 = *puVar21;\n      uVar14 = dcgettext(0,"%X%P: required symbol `%s\' not defined\n",5);\n      FUN_001251f0(uVar14,uVar11);\n    }" if (parenthesized_expression "((lVar16 == 0) || (1 < (byte)(*(char *)(lVar16 + 0x18) - 3U)))" ( (binary_expression "(lVar16 == 0) || (1 < (byte)(*(char *)(lVar16 + 0x18) - 3U))" (parenthesized_expression "(lVar16 == 0)" ( (binary_expression "lVar16 == 0" identifier == number_literal) )) || (parenthesized_expression "(1 < (byte)(*(char *)(lVar16 + 0x18) - 3U))" ( (binary_expression "1 < (byte)(*(char *)(lVar16 + 0x18) - 3U)" number_literal < (call_expression "(byte)(*(char *)(lVar16 + 0x18) - 3U)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(*(char *)(lVar16 + 0x18) - 3U)" ( (binary_expression "*(char *)(lVar16 + 0x18) - 3U" (pointer_expression "*(char *)(lVar16 + 0x18)" * (cast_expression "(char *)(lVar16 + 0x18)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar16 + 0x18)" ( (binary_expression "lVar16 + 0x18" identifier + number_literal) )))) - number_literal) )))) ))) )) (compound_statement "{\n      uVar11 = *puVar21;\n      uVar14 = dcgettext(0,"%X%P: required symbol `%s\' not defined\n",5);\n      FUN_001251f0(uVar14,uVar11);\n    }" { (expression_statement "uVar11 = *puVar21;" (assignment_expression "uVar11 = *puVar21" identifier = (pointer_expression "*puVar21" * 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_001251f0(uVar14,uVar11);" (call_expression "FUN_001251f0(uVar14,uVar11)" identifier (argument_list "(uVar14,uVar11)" ( identifier , identifier ))) ;) })) }))) (expression_statement "iVar9 = DAT_0017fa0c;" (assignment_expression "iVar9 = DAT_0017fa0c" identifier = identifier) ;) (if_statement "if (((DAT_0017fac0 & 0x43) != 2) && ((DAT_0017fac0 & 3) != 3)) {\n    iVar9 = 1;\n  }" if (parenthesized_expression "(((DAT_0017fac0 & 0x43) != 2) && ((DAT_0017fac0 & 3) != 3))" ( (binary_expression "((DAT_0017fac0 & 0x43) != 2) && ((DAT_0017fac0 & 3) != 3)" (parenthesized_expression "((DAT_0017fac0 & 0x43) != 2)" ( (binary_expression "(DAT_0017fac0 & 0x43) != 2" (parenthesized_expression "(DAT_0017fac0 & 0x43)" ( (binary_expression "DAT_0017fac0 & 0x43" identifier & number_literal) )) != number_literal) )) && (parenthesized_expression "((DAT_0017fac0 & 3) != 3)" ( (binary_expression "(DAT_0017fac0 & 3) != 3" (parenthesized_expression "(DAT_0017fac0 & 3)" ( (binary_expression "DAT_0017fac0 & 3" identifier & number_literal) )) != number_literal) ))) )) (compound_statement "{\n    iVar9 = 1;\n  }" { (expression_statement "iVar9 = 1;" (assignment_expression "iVar9 = 1" identifier = number_literal) ;) })) (if_statement "if (((DAT_0017fac0 & 0x43) == 0x42) && (DAT_0017fa0c == 0 && _DAT_0017fa08 == 0)) {\n    uVar11 = dcgettext(0,"%F%P: gc-sections requires either an entry or an undefined symbol\n",5);\n    FUN_001251f0(uVar11);\n  }" if (parenthesized_expression "(((DAT_0017fac0 & 0x43) == 0x42) && (DAT_0017fa0c == 0 && _DAT_0017fa08 == 0))" ( (binary_expression "((DAT_0017fac0 & 0x43) == 0x42) && (DAT_0017fa0c == 0 && _DAT_0017fa08 == 0)" (parenthesized_expression "((DAT_0017fac0 & 0x43) == 0x42)" ( (binary_expression "(DAT_0017fac0 & 0x43) == 0x42" (parenthesized_expression "(DAT_0017fac0 & 0x43)" ( (binary_expression "DAT_0017fac0 & 0x43" identifier & number_literal) )) == number_literal) )) && (parenthesized_expression "(DAT_0017fa0c == 0 && _DAT_0017fa08 == 0)" ( (binary_expression "DAT_0017fa0c == 0 && _DAT_0017fa08 == 0" (binary_expression "DAT_0017fa0c == 0" identifier == number_literal) && (binary_expression "_DAT_0017fa08 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n    uVar11 = dcgettext(0,"%F%P: gc-sections requires either an entry or an undefined symbol\n",5);\n    FUN_001251f0(uVar11);\n  }" { (expression_statement "uVar11 = dcgettext(0,"%F%P: gc-sections requires either an entry or an undefined symbol\n",5);" (assignment_expression "uVar11 = 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_001251f0(uVar11);" (call_expression "FUN_001251f0(uVar11)" identifier (argument_list "(uVar11)" ( identifier ))) ;) })) (if_statement "if (DAT_0017f2e8 == (undefined *)0x0) {\n    DAT_0017f2e8 = PTR_s_start_0017e660;\n    iVar9 = 0;\n  }" if (parenthesized_expression "(DAT_0017f2e8 == (undefined *)0x0)" ( (binary_expression "DAT_0017f2e8 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    DAT_0017f2e8 = PTR_s_start_0017e660;\n    iVar9 = 0;\n  }" { (expression_statement "DAT_0017f2e8 = PTR_s_start_0017e660;" (assignment_expression "DAT_0017f2e8 = PTR_s_start_0017e660" identifier = identifier) ;) (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" identifier = number_literal) ;) })) (expression_statement "lVar16 = bfd_link_hash_lookup(DAT_0017fae8,DAT_0017f2e8,0,0,1);" (assignment_expression "lVar16 = bfd_link_hash_lookup(DAT_0017fae8,DAT_0017f2e8,0,0,1)" identifier = (call_expression "bfd_link_hash_lookup(DAT_0017fae8,DAT_0017f2e8,0,0,1)" identifier (argument_list "(DAT_0017fae8,DAT_0017f2e8,0,0,1)" ( identifier , identifier , number_literal , number_literal , number_literal )))) ;) (if_statement "if ((lVar16 != 0) && ((byte)(*(char *)(lVar16 + 0x18) - 3U) < 2)) {\n    lVar15 = *(long *)(*(long *)(lVar16 + 0x28) + 0x68);\n    if (lVar15 != 0) {\n      iVar9 = bfd_set_start_address\n                        (DAT_0017fb10,\n                         *(long *)(lVar15 + 0x28) +\n                         *(long *)(*(long *)(lVar16 + 0x28) + 0x60) + *(long *)(lVar16 + 0x30));\n      if (iVar9 != 0) {\n        return;\n      }\n      pcVar31 = "%F%P: %s: can\'t set start address\n";\n      goto LAB_0011cf37;\n    }\n  }" if (parenthesized_expression "((lVar16 != 0) && ((byte)(*(char *)(lVar16 + 0x18) - 3U) < 2))" ( (binary_expression "(lVar16 != 0) && ((byte)(*(char *)(lVar16 + 0x18) - 3U) < 2)" (parenthesized_expression "(lVar16 != 0)" ( (binary_expression "lVar16 != 0" identifier != number_literal) )) && (parenthesized_expression "((byte)(*(char *)(lVar16 + 0x18) - 3U) < 2)" ( (binary_expression "(byte)(*(char *)(lVar16 + 0x18) - 3U) < 2" (call_expression "(byte)(*(char *)(lVar16 + 0x18) - 3U)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(*(char *)(lVar16 + 0x18) - 3U)" ( (binary_expression "*(char *)(lVar16 + 0x18) - 3U" (pointer_expression "*(char *)(lVar16 + 0x18)" * (cast_expression "(char *)(lVar16 + 0x18)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar16 + 0x18)" ( (binary_expression "lVar16 + 0x18" identifier + number_literal) )))) - number_literal) ))) < number_literal) ))) )) (compound_statement "{\n    lVar15 = *(long *)(*(long *)(lVar16 + 0x28) + 0x68);\n    if (lVar15 != 0) {\n      iVar9 = bfd_set_start_address\n                        (DAT_0017fb10,\n                         *(long *)(lVar15 + 0x28) +\n                         *(long *)(*(long *)(lVar16 + 0x28) + 0x60) + *(long *)(lVar16 + 0x30));\n      if (iVar9 != 0) {\n        return;\n      }\n      pcVar31 = "%F%P: %s: can\'t set start address\n";\n      goto LAB_0011cf37;\n    }\n  }" { (expression_statement "lVar15 = *(long *)(*(long *)(lVar16 + 0x28) + 0x68);" (assignment_expression "lVar15 = *(long *)(*(long *)(lVar16 + 0x28) + 0x68)" identifier = (pointer_expression "*(long *)(*(long *)(lVar16 + 0x28) + 0x68)" * (cast_expression "(long *)(*(long *)(lVar16 + 0x28) + 0x68)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(lVar16 + 0x28) + 0x68)" ( (binary_expression "*(long *)(lVar16 + 0x28) + 0x68" (pointer_expression "*(long *)(lVar16 + 0x28)" * (cast_expression "(long *)(lVar16 + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar16 + 0x28)" ( (binary_expression "lVar16 + 0x28" identifier + number_literal) )))) + number_literal) ))))) ;) (if_statement "if (lVar15 != 0) {\n      iVar9 = bfd_set_start_address\n                        (DAT_0017fb10,\n                         *(long *)(lVar15 + 0x28) +\n                         *(long *)(*(long *)(lVar16 + 0x28) + 0x60) + *(long *)(lVar16 + 0x30));\n      if (iVar9 != 0) {\n        return;\n      }\n      pcVar31 = "%F%P: %s: can\'t set start address\n";\n      goto LAB_0011cf37;\n    }" if (parenthesized_expression "(lVar15 != 0)" ( (binary_expression "lVar15 != 0" identifier != number_literal) )) (compound_statement "{\n      iVar9 = bfd_set_start_address\n                        (DAT_0017fb10,\n                         *(long *)(lVar15 + 0x28) +\n                         *(long *)(*(long *)(lVar16 + 0x28) + 0x60) + *(long *)(lVar16 + 0x30));\n      if (iVar9 != 0) {\n        return;\n      }\n      pcVar31 = "%F%P: %s: can\'t set start address\n";\n      goto LAB_0011cf37;\n    }" { (expression_statement "iVar9 = bfd_set_start_address\n                        (DAT_0017fb10,\n                         *(long *)(lVar15 + 0x28) +\n                         *(long *)(*(long *)(lVar16 + 0x28) + 0x60) + *(long *)(lVar16 + 0x30));" (assignment_expression "iVar9 = bfd_set_start_address\n                        (DAT_0017fb10,\n                         *(long *)(lVar15 + 0x28) +\n                         *(long *)(*(long *)(lVar16 + 0x28) + 0x60) + *(long *)(lVar16 + 0x30))" identifier = (call_expression "bfd_set_start_address\n                        (DAT_0017fb10,\n                         *(long *)(lVar15 + 0x28) +\n                         *(long *)(*(long *)(lVar16 + 0x28) + 0x60) + *(long *)(lVar16 + 0x30))" identifier (argument_list "(DAT_0017fb10,\n                         *(long *)(lVar15 + 0x28) +\n                         *(long *)(*(long *)(lVar16 + 0x28) + 0x60) + *(long *)(lVar16 + 0x30))" ( identifier , (binary_expression "*(long *)(lVar15 + 0x28) +\n                         *(long *)(*(long *)(lVar16 + 0x28) + 0x60) + *(long *)(lVar16 + 0x30)" (binary_expression "*(long *)(lVar15 + 0x28) +\n                         *(long *)(*(long *)(lVar16 + 0x28) + 0x60)" (pointer_expression "*(long *)(lVar15 + 0x28)" * (cast_expression "(long *)(lVar15 + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar15 + 0x28)" ( (binary_expression "lVar15 + 0x28" identifier + number_literal) )))) + (pointer_expression "*(long *)(*(long *)(lVar16 + 0x28) + 0x60)" * (cast_expression "(long *)(*(long *)(lVar16 + 0x28) + 0x60)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(lVar16 + 0x28) + 0x60)" ( (binary_expression "*(long *)(lVar16 + 0x28) + 0x60" (pointer_expression "*(long *)(lVar16 + 0x28)" * (cast_expression "(long *)(lVar16 + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar16 + 0x28)" ( (binary_expression "lVar16 + 0x28" identifier + number_literal) )))) + number_literal) ))))) + (pointer_expression "*(long *)(lVar16 + 0x30)" * (cast_expression "(long *)(lVar16 + 0x30)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar16 + 0x30)" ( (binary_expression "lVar16 + 0x30" identifier + number_literal) ))))) )))) ;) (if_statement "if (iVar9 != 0) {\n        return;\n      }" if (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) (compound_statement "{\n        return;\n      }" { (return_statement "return;" return ;) })) (expression_statement "pcVar31 = "%F%P: %s: can\'t set start address\n";" (assignment_expression "pcVar31 = "%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_0011cf37;" goto statement_identifier ;) })) })) (expression_statement "uVar11 = bfd_scan_vma(DAT_0017f2e8,&local_40,0);" (assignment_expression "uVar11 = bfd_scan_vma(DAT_0017f2e8,&local_40,0)" identifier = (call_expression "bfd_scan_vma(DAT_0017f2e8,&local_40,0)" identifier (argument_list "(DAT_0017f2e8,&local_40,0)" ( identifier , (pointer_expression "&local_40" & identifier) , number_literal )))) ;) (if_statement "if (*(char *)CONCAT44(uStack_3c,local_40) == '\0') {\n    iVar9 = bfd_set_start_address(DAT_0017fb10,uVar11);\n  }\n  else {\n    lVar16 = bfd_get_section_by_name(DAT_0017fb10,PTR_s__text_0017e648);\n    puVar7 = DAT_0017f2e8;\n    if (lVar16 == 0) {\n      if (iVar9 == 0) {\n        return;\n      }\n      pcVar31 = "%P: warning: cannot find entry symbol %s; not setting start address\n";\nLAB_0011cf37:\n      puVar7 = DAT_0017f2e8;\n      uVar11 = dcgettext(0,pcVar31,5);\n      FUN_001251f0(uVar11,puVar7);\n      return;\n    }\n    uVar11 = *(undefined8 *)(lVar16 + 0x28);\n    if (iVar9 != 0) {\n      uVar14 = dcgettext(0,"%P: warning: cannot find entry symbol %s; defaulting to %V\n",5);\n      FUN_001251f0(uVar14,puVar7,uVar11);\n      uVar11 = *(undefined8 *)(lVar16 + 0x28);\n    }\n    iVar9 = bfd_set_start_address(DAT_0017fb10,uVar11);\n  }" if (parenthesized_expression "(*(char *)CONCAT44(uStack_3c,local_40) == '\0')" ( (binary_expression "*(char *)CONCAT44(uStack_3c,local_40) == '\0'" (pointer_expression "*(char *)CONCAT44(uStack_3c,local_40)" * (cast_expression "(char *)CONCAT44(uStack_3c,local_40)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "CONCAT44(uStack_3c,local_40)" identifier (argument_list "(uStack_3c,local_40)" ( identifier , identifier ))))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    iVar9 = bfd_set_start_address(DAT_0017fb10,uVar11);\n  }" { (expression_statement "iVar9 = bfd_set_start_address(DAT_0017fb10,uVar11);" (assignment_expression "iVar9 = bfd_set_start_address(DAT_0017fb10,uVar11)" identifier = (call_expression "bfd_set_start_address(DAT_0017fb10,uVar11)" identifier (argument_list "(DAT_0017fb10,uVar11)" ( identifier , identifier )))) ;) }) (else_clause "else {\n    lVar16 = bfd_get_section_by_name(DAT_0017fb10,PTR_s__text_0017e648);\n    puVar7 = DAT_0017f2e8;\n    if (lVar16 == 0) {\n      if (iVar9 == 0) {\n        return;\n      }\n      pcVar31 = "%P: warning: cannot find entry symbol %s; not setting start address\n";\nLAB_0011cf37:\n      puVar7 = DAT_0017f2e8;\n      uVar11 = dcgettext(0,pcVar31,5);\n      FUN_001251f0(uVar11,puVar7);\n      return;\n    }\n    uVar11 = *(undefined8 *)(lVar16 + 0x28);\n    if (iVar9 != 0) {\n      uVar14 = dcgettext(0,"%P: warning: cannot find entry symbol %s; defaulting to %V\n",5);\n      FUN_001251f0(uVar14,puVar7,uVar11);\n      uVar11 = *(undefined8 *)(lVar16 + 0x28);\n    }\n    iVar9 = bfd_set_start_address(DAT_0017fb10,uVar11);\n  }" else (compound_statement "{\n    lVar16 = bfd_get_section_by_name(DAT_0017fb10,PTR_s__text_0017e648);\n    puVar7 = DAT_0017f2e8;\n    if (lVar16 == 0) {\n      if (iVar9 == 0) {\n        return;\n      }\n      pcVar31 = "%P: warning: cannot find entry symbol %s; not setting start address\n";\nLAB_0011cf37:\n      puVar7 = DAT_0017f2e8;\n      uVar11 = dcgettext(0,pcVar31,5);\n      FUN_001251f0(uVar11,puVar7);\n      return;\n    }\n    uVar11 = *(undefined8 *)(lVar16 + 0x28);\n    if (iVar9 != 0) {\n      uVar14 = dcgettext(0,"%P: warning: cannot find entry symbol %s; defaulting to %V\n",5);\n      FUN_001251f0(uVar14,puVar7,uVar11);\n      uVar11 = *(undefined8 *)(lVar16 + 0x28);\n    }\n    iVar9 = bfd_set_start_address(DAT_0017fb10,uVar11);\n  }" { (expression_statement "lVar16 = bfd_get_section_by_name(DAT_0017fb10,PTR_s__text_0017e648);" (assignment_expression "lVar16 = bfd_get_section_by_name(DAT_0017fb10,PTR_s__text_0017e648)" identifier = (call_expression "bfd_get_section_by_name(DAT_0017fb10,PTR_s__text_0017e648)" identifier (argument_list "(DAT_0017fb10,PTR_s__text_0017e648)" ( identifier , identifier )))) ;) (expression_statement "puVar7 = DAT_0017f2e8;" (assignment_expression "puVar7 = DAT_0017f2e8" identifier = identifier) ;) (if_statement "if (lVar16 == 0) {\n      if (iVar9 == 0) {\n        return;\n      }\n      pcVar31 = "%P: warning: cannot find entry symbol %s; not setting start address\n";\nLAB_0011cf37:\n      puVar7 = DAT_0017f2e8;\n      uVar11 = dcgettext(0,pcVar31,5);\n      FUN_001251f0(uVar11,puVar7);\n      return;\n    }" if (parenthesized_expression "(lVar16 == 0)" ( (binary_expression "lVar16 == 0" identifier == number_literal) )) (compound_statement "{\n      if (iVar9 == 0) {\n        return;\n      }\n      pcVar31 = "%P: warning: cannot find entry symbol %s; not setting start address\n";\nLAB_0011cf37:\n      puVar7 = DAT_0017f2e8;\n      uVar11 = dcgettext(0,pcVar31,5);\n      FUN_001251f0(uVar11,puVar7);\n      return;\n    }" { (if_statement "if (iVar9 == 0) {\n        return;\n      }" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (compound_statement "{\n        return;\n      }" { (return_statement "return;" return ;) })) (expression_statement "pcVar31 = "%P: warning: cannot find entry symbol %s; not setting start address\n";" (assignment_expression "pcVar31 = "%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_0011cf37:\n      puVar7 = DAT_0017f2e8;" statement_identifier : (expression_statement "puVar7 = DAT_0017f2e8;" (assignment_expression "puVar7 = DAT_0017f2e8" identifier = identifier) ;)) (expression_statement "uVar11 = dcgettext(0,pcVar31,5);" (assignment_expression "uVar11 = dcgettext(0,pcVar31,5)" identifier = (call_expression "dcgettext(0,pcVar31,5)" identifier (argument_list "(0,pcVar31,5)" ( number_literal , identifier , number_literal )))) ;) (expression_statement "FUN_001251f0(uVar11,puVar7);" (call_expression "FUN_001251f0(uVar11,puVar7)" identifier (argument_list "(uVar11,puVar7)" ( identifier , identifier ))) ;) (return_statement "return;" return ;) })) (expression_statement "uVar11 = *(undefined8 *)(lVar16 + 0x28);" (assignment_expression "uVar11 = *(undefined8 *)(lVar16 + 0x28)" identifier = (pointer_expression "*(undefined8 *)(lVar16 + 0x28)" * (cast_expression "(undefined8 *)(lVar16 + 0x28)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar16 + 0x28)" ( (binary_expression "lVar16 + 0x28" identifier + number_literal) ))))) ;) (if_statement "if (iVar9 != 0) {\n      uVar14 = dcgettext(0,"%P: warning: cannot find entry symbol %s; defaulting to %V\n",5);\n      FUN_001251f0(uVar14,puVar7,uVar11);\n      uVar11 = *(undefined8 *)(lVar16 + 0x28);\n    }" if (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) (compound_statement "{\n      uVar14 = dcgettext(0,"%P: warning: cannot find entry symbol %s; defaulting to %V\n",5);\n      FUN_001251f0(uVar14,puVar7,uVar11);\n      uVar11 = *(undefined8 *)(lVar16 + 0x28);\n    }" { (expression_statement "uVar14 = dcgettext(0,"%P: warning: cannot find entry symbol %s; defaulting to %V\n",5);" (assignment_expression "uVar14 = 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_001251f0(uVar14,puVar7,uVar11);" (call_expression "FUN_001251f0(uVar14,puVar7,uVar11)" identifier (argument_list "(uVar14,puVar7,uVar11)" ( identifier , identifier , identifier ))) ;) (expression_statement "uVar11 = *(undefined8 *)(lVar16 + 0x28);" (assignment_expression "uVar11 = *(undefined8 *)(lVar16 + 0x28)" identifier = (pointer_expression "*(undefined8 *)(lVar16 + 0x28)" * (cast_expression "(undefined8 *)(lVar16 + 0x28)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar16 + 0x28)" ( (binary_expression "lVar16 + 0x28" identifier + number_literal) ))))) ;) })) (expression_statement "iVar9 = bfd_set_start_address(DAT_0017fb10,uVar11);" (assignment_expression "iVar9 = bfd_set_start_address(DAT_0017fb10,uVar11)" identifier = (call_expression "bfd_set_start_address(DAT_0017fb10,uVar11)" identifier (argument_list "(DAT_0017fb10,uVar11)" ( identifier , identifier )))) ;) }))) (if_statement "if (iVar9 != 0) {\n    return;\n  }" if (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "uVar11 = dcgettext(0,"%F%P: can\'t set start address\n",5);" (assignment_expression "uVar11 = 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_001251f0(uVar11);" (call_expression "FUN_001251f0(uVar11)" identifier (argument_list "(uVar11)" ( identifier ))) ;) (return_statement "return;" return ;) (labeled_statement "code_r0x0011c5be:\n  plVar17 = (long *)plVar17[6];" statement_identifier : (expression_statement "plVar17 = (long *)plVar17[6];" (assignment_expression "plVar17 = (long *)plVar17[6]" identifier = (cast_expression "(long *)plVar17[6]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar17[6]" identifier [ number_literal ]))) ;)) (goto_statement "goto joined_r0x0011be7f;" goto statement_identifier ;) (labeled_statement "LAB_0011c1d0:\n  uVar11 = *puVar21;" statement_identifier : (expression_statement "uVar11 = *puVar21;" (assignment_expression "uVar11 = *puVar21" identifier = (pointer_expression "*puVar21" * 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_001251f0(uVar14,uVar11);" (call_expression "FUN_001251f0(uVar14,uVar11)" identifier (argument_list "(uVar14,uVar11)" ( identifier , identifier ))) ;) (expression_statement "puVar21 = (undefined8 *)puVar21[2];" (assignment_expression "puVar21 = (undefined8 *)puVar21[2]" identifier = (cast_expression "(undefined8 *)puVar21[2]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar21[2]" identifier [ number_literal ]))) ;) (goto_statement "goto joined_r0x0011bfdf;" goto statement_identifier ;) (labeled_statement "code_r0x0011c493:\n  (**(code **)(*(long *)(plVar17[4] + 8) + 0x2c8))(puVar21,&DAT_0017fac0);" statement_identifier : (expression_statement "(**(code **)(*(long *)(plVar17[4] + 8) + 0x2c8))(puVar21,&DAT_0017fac0);" (call_expression "(**(code **)(*(long *)(plVar17[4] + 8) + 0x2c8))(puVar21,&DAT_0017fac0)" (parenthesized_expression "(**(code **)(*(long *)(plVar17[4] + 8) + 0x2c8))" ( (pointer_expression "**(code **)(*(long *)(plVar17[4] + 8) + 0x2c8)" * (pointer_expression "*(code **)(*(long *)(plVar17[4] + 8) + 0x2c8)" * (cast_expression "(code **)(*(long *)(plVar17[4] + 8) + 0x2c8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)(plVar17[4] + 8) + 0x2c8)" ( (binary_expression "*(long *)(plVar17[4] + 8) + 0x2c8" (pointer_expression "*(long *)(plVar17[4] + 8)" * (cast_expression "(long *)(plVar17[4] + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar17[4] + 8)" ( (binary_expression "plVar17[4] + 8" (subscript_expression "plVar17[4]" identifier [ number_literal ]) + number_literal) )))) + number_literal) ))))) )) (argument_list "(puVar21,&DAT_0017fac0)" ( identifier , (pointer_expression "&DAT_0017fac0" & identifier) ))) ;)) (expression_statement "puVar21 = (undefined8 *)puVar21[2];" (assignment_expression "puVar21 = (undefined8 *)puVar21[2]" identifier = (cast_expression "(undefined8 *)puVar21[2]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar21[2]" identifier [ number_literal ]))) ;) (goto_statement "goto joined_r0x0011c46e;" goto statement_identifier ;) (labeled_statement "code_r0x0011c93b:\n  lVar16 = plVar17[6];" statement_identifier : (expression_statement "lVar16 = plVar17[6];" (assignment_expression "lVar16 = plVar17[6]" identifier = (subscript_expression "plVar17[6]" identifier [ number_literal ])) ;)) (expression_statement "uVar11 = dcgettext(0,"%X%P: section `%s\' assigned to non-existent phdr `%s\'\n",5);" (assignment_expression "uVar11 = 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_001251f0(uVar11,lVar16,pbVar4);" (call_expression "FUN_001251f0(uVar11,lVar16,pbVar4)" identifier (argument_list "(uVar11,lVar16,pbVar4)" ( identifier , identifier , identifier ))) ;) (expression_statement "plVar18 = (long *)*plVar18;" (assignment_expression "plVar18 = (long *)*plVar18" identifier = (cast_expression "(long *)*plVar18" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar18" * identifier))) ;) (goto_statement "goto joined_r0x0011c90a;" goto statement_identifier ;) })))
(translation_unit "/* WARNING: Type propagation algorithm not settling */\n/* WARNING: Unknown calling convention -- yet parameter storage is locked */\n\nvoid lang_process(void)\n\n{\n  long *plVar1;\n  byte bVar2;\n  uint uVar3;\n  bfd_sym_chain *pbVar4;\n  asneeded_minfo *paVar5;\n  lang_phdr *plVar6;\n  byte *pbVar7;\n  bfd_link_hash_entry *pbVar8;\n  lang_output_section_statement_struct *plVar9;\n  lang_output_section_statement_struct *plVar10;\n  long lVar11;\n  bfd_hash_entry **ppbVar12;\n  lang_statement_union **pplVar13;\n  lang_statement_union **pplVar14;\n  bfd_vma bVar15;\n  undefined8 uVar16;\n  require_defined_symbol *prVar17;\n  lang_output_section_phdr_list *plVar18;\n  lang_statement_list_type *plVar19;\n  lang_statement_union **pplVar20;\n  lang_statement_union **pplVar21;\n  lang_input_statement_type *plVar22;\n  undefined1 uVar23;\n  char cVar24;\n  int iVar25;\n  bfd_boolean bVar26;\n  char *pcVar27;\n  size_t sVar28;\n  long lVar29;\n  bfd_elf_version_expr *pbVar30;\n  bfd_elf_version_tree *version;\n  bfd_elf_version_expr *orig;\n  bfd_target *pbVar31;\n  char *fmt;\n  lang_output_section_statement_struct *after;\n  lang_statement_union_type **pplVar32;\n  lang_output_section_statement_type *plVar33;\n  void *__ptr;\n  bfd_vma bVar34;\n  bfd_link_hash_entry **ppbVar35;\n  char *pcVar36;\n  undefined8 uVar37;\n  byte *pbVar38;\n  long *__ptr_00;\n  bfd_section *pbVar39;\n  undefined8 *puVar40;\n  undefined8 *puVar41;\n  ulong uVar42;\n  lang_statement_union *plVar43;\n  etree_type *peVar44;\n  ulong uVar45;\n  lang_statement_union *plVar46;\n  bfd_vma *pbVar47;\n  bfd_target *pbVar48;\n  bfd_boolean *extraout_RDX;\n  bfd_boolean *extraout_RDX_00;\n  bfd_boolean *has_relro_section;\n  asection *paVar49;\n  ulong uVar50;\n  lang_statement_union *plVar51;\n  memory_region_struct *pmVar52;\n  ulong uVar53;\n  lang_output_section_phdr_list *plVar54;\n  bfd_link_hash_entry **ppbVar55;\n  long *plVar56;\n  long *plVar57;\n  lang_output_section_phdr_list *plVar58;\n  asection *paVar59;\n  undefined8 *puVar60;\n  lang_statement_union *plVar61;\n  bfd_vma *pbVar62;\n  byte *pbVar63;\n  asection *paVar64;\n  bfd *pbVar65;\n  bfd_section *pbVar66;\n  ulong uVar67;\n  byte bVar68;\n  bfd *pbVar69;\n  lang_statement_union *plVar70;\n  ulong uVar71;\n  bool bVar72;\n  bool bVar73;\n  byte bVar74;\n  uint power;\n  undefined4 uStack_3c;\n  \n  bVar74 = 0;\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    pcVar27 = (char *)dcgettext(0,"%F%P: can not create hash table: %E\n",5);\n    einfo(pcVar27);\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  plVar43 = input_file_chain.head;\n  pplVar20 = file_chain.tail;\n  plVar51 = file_chain.head;\n  if ((link_info._1_1_ & 2) != 0) {\n    plVar61 = stat_ptr->head;\n    pplVar13 = stat_ptr->tail;\n    iVar25 = plugin_call_all_symbols_read();\n    if (iVar25 != 0) {\n      plugin_error_plugin();\n      pcVar27 = (char *)dcgettext(0,"%F%P: %s: plugin reported error after all symbols read\n",5);\n      einfo(pcVar27);\n    }\n    open_input_bfds(*pplVar13,OPEN_BFD_NORMAL);\n    plVar19 = stat_ptr;\n    if (stat_ptr->head != plVar61) {\n      info_assert("../../ld/ldlang.c",0x1baf);\n    }\n    pplVar14 = plVar19->tail;\n    plVar61 = *pplVar13;\n    plVar19->tail = pplVar13;\n    *pplVar13 = (lang_statement_union *)0x0;\n    if (file_chain.head != plVar51) {\n      info_assert("../../ld/ldlang.c",0x1baf);\n    }\n    pplVar13 = file_chain.tail;\n    plVar51 = *pplVar20;\n    file_chain.tail = pplVar20;\n    *pplVar20 = (lang_statement_union *)0x0;\n    if (input_file_chain.head != plVar43) {\n      info_assert("../../ld/ldlang.c",0x1baf);\n    }\n    pplVar20 = input_file_chain.tail;\n    plVar43 = *pplVar21;\n    input_file_chain.tail = pplVar21;\n    *pplVar21 = (lang_statement_union *)0x0;\n    plVar46 = file_chain.head;\n    plVar70 = input_file_chain.head;\n    if (plVar61 != (lang_statement_union *)0x0) {\n      for (; plugin_insert = (lang_input_statement_type *)plVar70,\n          plVar46 != (lang_statement_union *)0x0; plVar46 = (plVar46->wild_statement).children.head)\n      {\n        if (((ulong)(plVar46->wild_statement).walk_wild_section_handler & 0x2000) != 0) {\n          if (((ulong)(plVar46->wild_statement).walk_wild_section_handler & 0x4000) == 0)\n          goto LAB_0011d6c0;\n          break;\n        }\n        if (((plVar46->reloc_statement).section != (asection *)0x0) &&\n           (((plVar46->reloc_statement).section)->moving_line_filepos == 0)) {\n          plugin_insert = (lang_input_statement_type *)plVar46;\n        }\n        plVar70 = (lang_statement_union *)plugin_insert;\n      }\n      plVar46 = (lang_statement_union *)plugin_insert;\n      if ((lang_statement_union *)plugin_insert == (lang_statement_union *)0x0) {\n        info_assert("../../ld/ldlang.c",0x1c32);\n        plVar46 = (lang_statement_union *)plugin_insert;\n      }\nLAB_0011d6c0:\n      plugin_insert = &plVar46->input_statement;\n      plVar22 = plugin_insert;\n      plVar19 = stat_ptr;\n      *pplVar14 = (plugin_insert->header).next;\n      (plVar22->header).next = plVar61;\n      if (plVar22 == (lang_input_statement_type *)plVar19->tail) {\n        plVar19->tail = pplVar14;\n      }\n      *pplVar20 = plVar22->next_real_file;\n      bVar72 = input_file_chain.tail == &plVar22->next_real_file;\n      plVar22->next_real_file = plVar43;\n      pplVar21 = file_chain.tail;\n      if (bVar72) {\n        input_file_chain.tail = pplVar20;\n      }\n      if (plVar22->filename == (char *)0x0) {\n        *pplVar13 = file_chain.head;\n        file_chain.head = plVar51;\n        if ((lang_statement_list_type *)pplVar21 != &file_chain) {\n          pplVar13 = file_chain.tail;\n        }\n      }\n      else {\n        *pplVar13 = plVar22->next;\n        plVar22->next = plVar51;\n        if (pplVar21 != &plVar22->next) {\n          pplVar13 = file_chain.tail;\n        }\n      }\n      file_chain.tail = pplVar13;\n      pplVar20 = file_chain.tail;\n      plVar51 = 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 != plVar51) {\n        info_assert("../../ld/ldlang.c",0x1baf);\n      }\n      plVar51 = *pplVar20;\n      file_chain.tail = pplVar20;\n      *pplVar20 = (lang_statement_union *)0x0;\n      while (plVar51 != (lang_statement_union *)0x0) {\n        pbVar69 = ((plVar51->input_statement).the_bfd)->my_archive;\n        pbVar65 = (plVar51->input_statement).the_bfd;\n        if (pbVar69 != (bfd *)0x0) {\n          pbVar65 = pbVar69;\n        }\n        if (input_file_chain.head == (lang_statement_union *)0x0) {\nLAB_0011dad0:\n          plVar61 = file_chain.head;\n        }\n        else {\n          plVar46 = (lang_statement_union *)0x0;\n          plVar43 = input_file_chain.head;\n          plVar61 = (lang_statement_union *)0x0;\n          do {\n            while ((bfd *)(plVar43->wild_statement).section_list != pbVar65) {\n              if (((bfd *)(plVar43->wild_statement).section_list != (bfd *)0x0) &&\n                 ((plVar43->wild_statement).children.head != (lang_statement_union *)0x0)) {\n                plVar46 = plVar43;\n              }\n              plVar43 = (lang_statement_union *)(plVar43->wild_statement).children.tail;\n              if (plVar43 == (lang_statement_union *)0x0) goto LAB_0011d7f1;\n            }\n            bVar34 = (plVar43->data_statement).output_offset;\n            if (bVar34 != 0) {\n              pbVar47 = (bfd_vma *)(bVar34 + 0x30);\n              bVar34 = *(bfd_vma *)(bVar34 + 0x30);\n              goto LAB_0011d835;\n            }\n            plVar43 = (lang_statement_union *)(plVar43->wild_statement).children.tail;\n            plVar61 = plVar46;\n          } while (plVar43 != (lang_statement_union *)0x0);\nLAB_0011d7f1:\n          if (plVar61 == (lang_statement_union *)0x0) goto LAB_0011dad0;\n        }\n        pbVar47 = &(plVar61->data_statement).output_offset;\n        for (bVar34 = *pbVar47; bVar34 != 0; bVar34 = *(bfd_vma *)(bVar34 + 0x30)) {\n          if (((*(byte *)(bVar34 + 0x49) & 0x40) == 0) &&\n             (*(long *)(*(long *)(bVar34 + 0x20) + 0xd0) == 0)) {\n            bVar34 = *pbVar47;\n            break;\n          }\n          pbVar47 = (bfd_vma *)(bVar34 + 0x30);\n        }\nLAB_0011d835:\n        pbVar62 = &(plVar51->data_statement).output_offset;\n        if (pbVar69 == (bfd *)0x0) {\n          *pbVar47 = (bfd_vma)plVar51;\n          plVar43 = (plVar51->wild_statement).children.head;\n          (plVar51->data_statement).output_offset = bVar34;\n          plVar51 = plVar43;\n        }\n        else {\n          bVar15 = (plVar51->data_statement).output_offset;\n          if (bVar15 != 0) {\n            pbVar65 = *(bfd **)(*(long *)(bVar15 + 0x20) + 0xd0);\n            while (pbVar69 == pbVar65) {\n              pbVar62 = (bfd_vma *)(bVar15 + 0x30);\n              bVar15 = *(bfd_vma *)(bVar15 + 0x30);\n              if (bVar15 == 0) break;\n              pbVar65 = *(bfd **)(*(long *)(bVar15 + 0x20) + 0xd0);\n            }\n          }\n          *pbVar47 = (bfd_vma)plVar51;\n          plVar51 = (lang_statement_union *)*pbVar62;\n          *pbVar62 = bVar34;\n          if (pbVar69->usrdata != (void *)0x0) {\n            *(lang_data_statement_type **)((long)pbVar69->usrdata + 0x30) =\n                 (lang_data_statement_type *)(pbVar62 + -6);\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    pcVar27 = (char *)dcgettext(0,\n                                "\nAs-needed library included to satisfy reference by file (symbol)\n\n"\n                                ,5);\n    minfo(pcVar27);\n    for (paVar5 = asneeded_list_head; paVar5 != (asneeded_minfo *)0x0; paVar5 = paVar5->next) {\n      minfo("%s",paVar5->soname);\n      sVar28 = strlen(paVar5->soname);\n      if (0x1c < sVar28) {\n        print_nl();\n        sVar28 = 0;\n      }\n      do {\n        print_space();\n        sVar28 = sVar28 + 1;\n      } while (sVar28 != 0x1e);\n      if (paVar5->ref != (bfd *)0x0) {\n        minfo("%pB ");\n      }\n      minfo("(%pT)\n",paVar5->name);\n    }\n  }\n  bfd_section_already_linked_table_free();\n  plVar51 = file_chain.head;\njoined_r0x0011be7f:\n  if (plVar51 != (lang_statement_union *)0x0) {\n    do {\n      if (((ulong)(plVar51->wild_statement).walk_wild_section_handler & 0x2000) == 0) {\n        pbVar69 = (plVar51->input_statement).the_bfd;\n        lVar29 = bfd_arch_get_compatible\n                           (pbVar69,link_info.output_bfd,command_line.accept_unknown_input_arch);\n        pbVar65 = link_info.output_bfd;\n        if (((link_info._0_1_ & 3) == 2) || ((link_info._3_1_ & 8) != 0)) {\n          if (lVar29 != 0) {\n            pbVar31 = pbVar69->xvec;\n            pbVar48 = (link_info.output_bfd)->xvec;\n            if ((pbVar31->flavour != pbVar48->flavour) && ((pbVar69->field_0x44 & 0x20) != 0))\n            goto LAB_0011c12e;\n            goto LAB_0011bed4;\n          }\n          if ((pbVar69->field_0x44 & 0x20) != 0) {\n            pbVar31 = pbVar69->xvec;\n            pbVar48 = (link_info.output_bfd)->xvec;\nLAB_0011c12e:\n            pcVar27 = pbVar48->name;\n            pcVar36 = pbVar31->name;\n            fmt = (char *)dcgettext(0,\n                                    "%F%P: relocatable linking with relocations from format %s (%pB) to format %s (%pB) is not supported\n"\n                                    ,5);\n            einfo(fmt,pcVar36,pbVar69,pcVar27,pbVar65);\n            goto joined_r0x0011c167;\n          }\n        }\n        else {\njoined_r0x0011c167:\n          if (lVar29 != 0) {\nLAB_0011bed4:\n            if (pbVar69->section_count == 0) goto LAB_0011bf30;\n            if (command_line.warn_mismatch == 0) {\n              bfd_set_error_handler(ignore_bfd_errors);\n            }\n            bVar26 = (*(link_info.output_bfd)->xvec->_bfd_merge_private_bfd_data)\n                               (pbVar69,&link_info);\n            if (bVar26 == 0) {\n              if (command_line.warn_mismatch != 0) {\n                pcVar27 = (char *)dcgettext(0,\n                                            "%X%P: failed to merge target specific data of file %pB\n"\n                                            ,5);\n                einfo(pcVar27,pbVar69);\n                goto LAB_0011c5b0;\n              }\n            }\n            else {\nLAB_0011c5b0:\n              if (command_line.warn_mismatch != 0) goto code_r0x0011c5be;\n            }\n            bfd_set_error_handler();\n            goto LAB_0011bf30;\n          }\n        }\n        if (command_line.warn_mismatch == 0) goto LAB_0011bf30;\n        bfd_printable_name(link_info.output_bfd);\n        uVar37 = bfd_printable_name(pbVar69);\n        pcVar27 = (char *)dcgettext(0,\n                                    "%X%P: %s architecture of input file `%pB\' is incompatible with %s output\n"\n                                    ,5);\n        einfo(pcVar27,uVar37,pbVar69);\n        plVar51 = (plVar51->wild_statement).children.head;\n      }\n      else {\nLAB_0011bf30:\n        plVar51 = (plVar51->wild_statement).children.head;\n      }\n      if (plVar51 == (lang_statement_union *)0x0) break;\n    } while( true );\n  }\n  if (command_line.version_exports_section != (char *)0x0) {\n    orig = (bfd_elf_version_expr *)0x0;\n    for (plVar51 = file_chain.head; plVar51 != (lang_statement_union *)0x0;\n        plVar51 = (plVar51->wild_statement).children.head) {\n      lVar29 = bfd_get_section_by_name((plVar51->wild_statement).section_list,".exports");\n      if (lVar29 != 0) {\n        lVar11 = *(long *)(lVar29 + 0x38);\n        pcVar27 = (char *)xmalloc(lVar11);\n        iVar25 = bfd_get_section_contents\n                           ((plVar51->wild_statement).section_list,lVar29,pcVar27,0,lVar11);\n        if (iVar25 == 0) {\n          pcVar36 = (char *)dcgettext(0,"%X%P: unable to read .exports section contents\n",5);\n          einfo(pcVar36,lVar29);\n        }\n        pcVar36 = pcVar27 + lVar11;\n        for (; pcVar27 < pcVar36; pcVar27 = pcVar27 + sVar28 + 1) {\n          orig = lang_new_vers_pattern(orig,pcVar27,(char *)0x0,0);\n          sVar28 = strlen(pcVar27);\n        }\n        *(uint *)(lVar29 + 0x20) = *(uint *)(lVar29 + 0x20) | 0x208000;\n      }\n    }\n    pbVar30 = lang_new_vers_pattern((bfd_elf_version_expr *)0x0,"*",(char *)0x0,0);\n    version = (bfd_elf_version_tree *)xcalloc(1,0x70);\n    pcVar27 = command_line.version_exports_section;\n    (version->globals).list = orig;\n    (version->locals).list = pbVar30;\n    version->match = lang_vers_match;\n    version->name_indx = 0xffffffff;\n    lang_register_vers_node(pcVar27,version,(bfd_elf_version_deps *)0x0);\n  }\n  ldctor_build_sets();\n  if ((config.build_constructors != 0) &&\n     (cVar24 = (link_info.output_bfd)->xvec->symbol_leading_char, link_info.input_bfds != (bfd *)0x0\n     )) {\n    pbVar69 = link_info.input_bfds;\n    do {\n      for (pbVar39 = pbVar69->sections; pbVar39 != (bfd_section *)0x0; pbVar39 = pbVar39->next) {\n        while( true ) {\n          pbVar7 = (byte *)pbVar39->name;\n          bVar68 = *pbVar7;\n          if (bVar68 == 0) break;\n          bVar2 = _sch_istable[(ulong)bVar68 * 2];\n          pbVar38 = pbVar7;\n          while (((bVar2 & 0x8c) != 0 || (bVar68 == 0x5f))) {\n            pbVar38 = pbVar38 + 1;\n            bVar68 = *pbVar38;\n            if (bVar68 == 0) goto LAB_0011d178;\n            bVar2 = _sch_istable[(ulong)bVar68 * 2];\n          }\n          pbVar39 = pbVar39->next;\n          if (pbVar39 == (bfd_section *)0x0) goto LAB_0011d163;\n        }\nLAB_0011d178:\n        sVar28 = strlen((char *)pbVar7);\n        pcVar27 = (char *)xmalloc(sVar28 + 10);\n        *pcVar27 = cVar24;\n        sprintf(pcVar27 + (cVar24 != '\0'),"__start_%s",pbVar7);\n        lang_define_start_stop(pcVar27,pbVar39);\n        pcVar27[1] = cVar24;\n        builtin_strncpy(pcVar27 + (2 - (ulong)(cVar24 == '\0')),"__stop",6);\n        lang_define_start_stop(pcVar27 + 1,pbVar39);\n        free(pcVar27);\n      }\nLAB_0011d163:\n      pbVar69 = (pbVar69->link).next;\n    } while (pbVar69 != (bfd *)0x0);\n  }\n  lang_do_assignments(lang_mark_phase_enum);\n  pmVar52 = lang_memory_region_list;\njoined_r0x0011bfdf:\n  if (pmVar52 != (lang_memory_region_type *)0x0) {\n    do {\n      if (pmVar52->origin_exp != (etree_type *)0x0) {\n        exp_fold_tree_no_dot(pmVar52->origin_exp);\n        bVar34 = expld.result.value;\n        if (expld.result.valid_p == 0) {\n          pcVar27 = (pmVar52->name_list).name;\n          pcVar36 = (char *)dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);\n          einfo(pcVar36,pcVar27);\n        }\n        else {\n          pmVar52->origin = expld.result.value;\n          pmVar52->current = bVar34;\n        }\n      }\n      if (pmVar52->length_exp != (etree_type *)0x0) {\n        exp_fold_tree_no_dot(pmVar52->length_exp);\n        if (expld.result.valid_p == 0) goto LAB_0011c1d0;\n        pmVar52->length = expld.result.value;\n      }\n      pmVar52 = pmVar52->next;\n      if (pmVar52 == (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  plVar51 = file_chain.head;\n  if ((link_info._0_1_ & 3) == 2) {\n    for (; plVar51 != (lang_statement_union *)0x0; plVar51 = (plVar51->wild_statement).children.head\n        ) {\n      if (((ulong)(plVar51->wild_statement).walk_wild_section_handler & 0x2000) == 0) {\n        for (pbVar39 = ((plVar51->input_statement).the_bfd)->sections; pbVar39 != (bfd_section *)0x0\n            ; pbVar39 = pbVar39->next) {\n          if ((pbVar39->flags & 0x2000) == 0) {\n            pbVar39->flags = pbVar39->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  pbVar69 = link_info.input_bfds;\n  if ((link_info._6_1_ & 0x20) != 0) {\n    for (; pbVar69 != (bfd *)0x0; pbVar69 = (pbVar69->link).next) {\n      iVar25 = bfd_link_check_relocs(pbVar69);\n      if (iVar25 == 0) {\n        config.make_executable = 0;\n      }\n    }\n  }\n  ldemul_after_check_relocs();\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  plVar43 = (lang_statement_union *)0x0;\n  plVar61 = (lang_statement_union *)0x0;\n  plVar51 = lang_output_section_statement.head;\n  while (plVar70 = plVar51, plVar46 = (plVar70->header).next, plVar46 != (lang_statement_union *)0x0\n        ) {\n    plVar51 = plVar46;\n    if ((plVar46->header).type == lang_output_section_statement_enum) {\n      if ((plVar61 != (lang_statement_union *)0x0) &&\n         (plVar46 != (lang_statement_union *)(plVar61->wild_statement).section_list)) {\n        info_assert("../../ld/ldlang.c",0xea0);\n        plVar51 = (plVar70->header).next;\n      }\n      (plVar46->output_section_statement).constraint =\n           -2 - (plVar46->output_section_statement).constraint;\n      plVar61 = plVar46;\n      if (plVar43 == (lang_statement_union *)0x0) {\n        plVar43 = plVar46;\n      }\n    }\n    else if ((plVar46->header).type == lang_insert_statement_enum) {\n      after = lang_output_section_statement_lookup((plVar46->wild_statement).filename,0,0);\n      if (after == (lang_output_section_statement_type *)0x0) {\nLAB_0011c415:\n        pcVar27 = (char *)dcgettext(0,"%F%P: %s not found for insert\n",5);\n        einfo(pcVar27);\n        plVar51 = file_chain.head;\n        goto joined_r0x0011c458;\n      }\n      if ((plVar46->wild_statement).filenames_sorted != 0) {\n        do {\n          after = after->prev;\n          if (after == (lang_output_section_statement_struct *)0x0) goto LAB_0011c415;\n        } while (after->constraint < 0);\n      }\n      if (plVar61 != (lang_statement_union *)0x0) {\n        plVar9 = (plVar43->output_section_statement).prev;\n        plVar10 = (plVar61->output_section_statement).next;\n        plVar9->next = plVar10;\n        if (plVar10 == (lang_output_section_statement_struct *)0x0) {\n          lang_output_section_statement.tail = (lang_statement_union **)&plVar9->next;\n        }\n        else {\n          plVar10->prev = plVar9;\n        }\n        (plVar61->wild_statement).section_list = (wildcard_list *)after->next;\n        if (after->next == (lang_output_section_statement_struct *)0x0) {\n          lang_output_section_statement.tail =\n               (lang_statement_union **)&(plVar61->output_section_statement).next;\n        }\n        else {\n          after->next->prev = (lang_output_section_statement_struct *)plVar61;\n        }\n        (plVar43->output_section_statement).prev = after;\n        paVar64 = (asection *)0x0;\n        paVar59 = (asection *)0x0;\n        after->next = (lang_output_section_statement_struct *)plVar43;\n        do {\n          (plVar43->output_section_statement).constraint =\n               -2 - (plVar43->output_section_statement).constraint;\n          paVar49 = (plVar43->output_section_statement).bfd_section;\n          if (((paVar49 != (asection *)0x0) && (paVar49->owner != (bfd *)0x0)) &&\n             (paVar64 = paVar49, paVar59 == (asection *)0x0)) {\n            paVar59 = paVar49;\n          }\n        } while ((plVar61 != plVar43) &&\n                (plVar43 = (lang_statement_union *)(plVar43->wild_statement).section_list,\n                plVar43 != (lang_statement_union *)0x0));\n        plVar43 = (lang_statement_union *)0x0;\n        if (paVar64 != (asection *)0x0) {\n          paVar49 = after->bfd_section;\n          if (paVar49 == (asection *)0x0) {\n            plVar43 = (lang_statement_union *)after->prev;\n            if (plVar43 != (lang_statement_union *)0x0) {\n              do {\n                if (((-1 < (plVar43->output_section_statement).constraint) &&\n                    (paVar49 = (plVar43->output_section_statement).bfd_section,\n                    paVar49 != (asection *)0x0)) && (paVar49->owner != (bfd *)0x0))\n                goto LAB_0011cd61;\n                plVar43 = (lang_statement_union *)(plVar43->data_statement).output_section;\n              } while (plVar43 != (lang_statement_union *)0x0);\n              plVar43 = (lang_statement_union *)0x0;\n            }\n          }\n          else {\nLAB_0011cd61:\n            plVar43 = (lang_statement_union *)0x0;\n            if (paVar49 != paVar64) {\n              pbVar39 = paVar59->prev;\n              pbVar66 = paVar64->next;\n              if (pbVar39 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->sections = pbVar66;\n              }\n              else {\n                pbVar39->next = pbVar66;\n                pbVar66 = paVar64->next;\n              }\n              if (pbVar66 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->section_last = pbVar39;\n              }\n              else {\n                pbVar66->prev = pbVar39;\n              }\n              pbVar39 = paVar49->next;\n              paVar64->next = pbVar39;\n              if (pbVar39 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->section_last = paVar64;\n              }\n              else {\n                pbVar39->prev = paVar64;\n              }\n              paVar59->prev = paVar49;\n              plVar43 = (lang_statement_union *)0x0;\n              paVar49->next = paVar59;\n            }\n          }\n        }\n      }\n      pplVar32 = insert_os_after(after);\n      plVar51 = ((lang_output_section_statement.head)->header).next;\n      ((lang_output_section_statement.head)->header).next = (((plVar70->header).next)->header).next;\n      plVar61 = *pplVar32;\n      (plVar70->header).next = plVar61;\n      if (plVar61 == (lang_statement_union *)0x0) {\n        statement_list.tail = (lang_statement_union **)plVar70;\n      }\n      *pplVar32 = plVar51;\n      plVar61 = (lang_statement_union *)0x0;\n      plVar51 = lang_output_section_statement.head;\n    }\n  }\n  for (; (plVar51 = file_chain.head, plVar43 != (lang_statement_union *)0x0 &&\n         ((plVar43->output_section_statement).constraint =\n               -2 - (plVar43->output_section_statement).constraint, plVar51 = file_chain.head,\n         plVar61 != plVar43));\n      plVar43 = (lang_statement_union *)(plVar43->wild_statement).section_list) {\n  }\njoined_r0x0011c458:\n  for (; plVar51 != (lang_statement_union *)0x0; plVar51 = (plVar51->wild_statement).children.head)\n  {\n    pbVar39 = ((plVar51->input_statement).the_bfd)->sections;\njoined_r0x0011c46e:\n    if (pbVar39 != (bfd_section *)0x0) {\n      do {\n        if (pbVar39->output_section == (bfd_section *)0x0) {\n          if (((ulong)(plVar51->wild_statement).walk_wild_section_handler & 0x10) != 0)\n          goto code_r0x0011c493;\n          bVar26 = lang_discard_section_p((asection *)(ulong)pbVar39->flags);\n          bVar72 = false;\n          bVar73 = bVar26 == 0;\n          if (bVar73) {\n            pbVar7 = (byte *)pbVar39->name;\n            lVar29 = 7;\n            pbVar38 = pbVar7;\n            pbVar63 = (byte *)"COMMON";\n            do {\n              if (lVar29 == 0) break;\n              lVar29 = lVar29 + -1;\n              bVar72 = *pbVar38 < *pbVar63;\n              bVar73 = *pbVar38 == *pbVar63;\n              pbVar38 = pbVar38 + (ulong)bVar74 * -2 + 1;\n              pbVar63 = pbVar63 + (ulong)bVar74 * -2 + 1;\n            } while (bVar73);\n            if ((!bVar72 && !bVar73) == bVar72) {\n              if (((link_info._0_1_ & 3) != 2) || (command_line.force_common_definition != 0)) {\n                plVar33 = default_common_section;\n                if (default_common_section == (lang_output_section_statement_type *)0x0) {\n                  plVar33 = lang_output_section_statement_lookup(".bss",0,1);\n                  default_common_section = plVar33;\n                }\nLAB_0011c659:\n                lang_add_section(&plVar33->children,pbVar39,(flag_info *)0x0,plVar33);\n              }\n            }\n            else {\n              if (config.orphan_handling == orphan_handling_discard) {\n                plVar33 = lang_output_section_statement_lookup("/DISCARD/",0,1);\n                if ((plVar33->addr_tree == (etree_union *)0x0) &&\n                   (((link_info._0_1_ & 3) == 2 || ((pbVar39->flags & 3) == 0)))) {\n                  peVar44 = exp_intop(0);\n                  plVar33->addr_tree = peVar44;\n                }\n                goto LAB_0011c659;\n              }\n              if (config.orphan_handling == orphan_handling_error) {\n                pbVar69 = pbVar39->owner;\n                pcVar27 = (char *)dcgettext(0,\n                                            "%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n"\n                                            ,5);\n                einfo(pcVar27,pbVar39,pbVar69);\n              }\n              if ((config.unique_orphan_sections == 0) &&\n                 (bVar26 = unique_section_p(pbVar39,(lang_output_section_statement_type *)0x0),\n                 bVar26 == 0)) {\n                iVar25 = 0;\n              }\n              else {\n                iVar25 = 0x17e;\n              }\n              plVar33 = ldemul_place_orphan(pbVar39,(char *)pbVar7,iVar25);\n              if (plVar33 == (lang_output_section_statement_type *)0x0) {\n                plVar33 = lang_output_section_statement_lookup((char *)pbVar7,iVar25,1);\n                if ((plVar33->addr_tree == (etree_union *)0x0) &&\n                   (((link_info._0_1_ & 3) == 2 || ((pbVar39->flags & 3) == 0)))) {\n                  peVar44 = exp_intop(0);\n                  plVar33->addr_tree = peVar44;\n                }\n                lang_add_section(&plVar33->children,pbVar39,(flag_info *)0x0,plVar33);\n              }\n              if (config.orphan_handling == orphan_handling_warn) {\n                pbVar69 = pbVar39->owner;\n                pcVar27 = (char *)dcgettext(0,\n                                            "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                            ,5);\n                einfo(pcVar27,pbVar39,pbVar69);\n              }\n            }\n          }\n          else {\n            pbVar39->output_section = (bfd_section *)(_bfd_std_section + 0x230);\n          }\n        }\n        pbVar39 = pbVar39->next;\n        if (pbVar39 == (bfd_section *)0x0) break;\n      } while( true );\n    }\n  }\n  bVar68 = link_info._0_1_ & 3;\n  ppbVar55 = start_stop_syms;\n  plVar51 = lang_output_section_statement.head;\n  pbVar69 = link_info.output_bfd;\n  if (bVar68 != 2) {\n    (*(link_info.output_bfd)->xvec->_bfd_merge_sections)(link_info.output_bfd,&link_info);\n    lVar29 = bfd_get_section_by_name(link_info.output_bfd);\n    if (lVar29 == 0) {\n      bVar68 = link_info._0_1_ & 3;\n      ppbVar55 = start_stop_syms;\n      plVar51 = lang_output_section_statement.head;\n      pbVar69 = link_info.output_bfd;\n    }\n    else {\n      bVar68 = link_info._0_1_ & 3;\n      if (config.text_read_only == 0) {\n        *(uint *)(lVar29 + 0x20) = *(uint *)(lVar29 + 0x20) & 0xfffffff7;\n        ppbVar55 = start_stop_syms;\n        plVar51 = lang_output_section_statement.head;\n        pbVar69 = link_info.output_bfd;\n      }\n      else {\n        *(uint *)(lVar29 + 0x20) = *(uint *)(lVar29 + 0x20) | 8;\n        ppbVar55 = start_stop_syms;\n        plVar51 = lang_output_section_statement.head;\n        pbVar69 = link_info.output_bfd;\n      }\n    }\n  }\n  for (; start_stop_syms = ppbVar55, link_info.output_bfd = pbVar69,\n      plVar51 != (lang_statement_union *)0x0;\n      plVar51 = (lang_statement_union *)(plVar51->wild_statement).section_list) {\n    paVar59 = (plVar51->data_statement).output_section;\n    if ((((paVar59 != (asection *)0x0) &&\n         ((plVar51->wild_statement).walk_wild_section_handler == (walk_wild_section_handler_t)0x0))\n        && ((plVar51->wild_statement).handler_data[2] == (wildcard_list *)0x0)) &&\n       (((plVar51->wild_statement).handler_data[1] == (wildcard_list *)0x0 &&\n        ((plVar51->wild_statement).exclude_name_list == (name_list *)paVar59->rawsize)))) {\n      (plVar51->wild_statement).walk_wild_section_handler =\n           (walk_wild_section_handler_t)paVar59->compressed_size;\n    }\n    ppbVar55 = start_stop_syms;\n    pbVar69 = link_info.output_bfd;\n  }\n  if ((config.build_constructors != 0) && (start_stop_count != 0)) {\n    ppbVar35 = ppbVar55 + start_stop_count;\n    do {\n      pbVar8 = *ppbVar55;\n      if ((pbVar8->field_0x19 & 8) == 0) {\n        pbVar65 = (pbVar8->u).undef.abfd;\n        ppbVar12 = (pbVar65->section_htab).table;\n        if (((ppbVar12 == (bfd_hash_entry **)0x0) || ((bfd *)ppbVar12[0x1e] != pbVar69)) ||\n           (iVar25 = strcmp(pbVar65->filename,(char *)*ppbVar12), iVar25 != 0)) {\n          pbVar8->field_0x18 = 1;\n          (pbVar8->u).undef.abfd = (bfd *)0x0;\n        }\n      }\n      ppbVar55 = ppbVar55 + 1;\n    } while (ppbVar35 != ppbVar55);\n  }\n  if (bVar68 != 2) {\n    for (paVar59 = (link_info.output_bfd)->sections; paVar59 != (asection *)0x0;\n        paVar59 = paVar59->next) {\n      pcVar27 = paVar59->name;\n      sVar28 = strlen(pcVar27);\n      pcVar36 = (char *)xmalloc(sVar28 + 10);\n      sprintf(pcVar36,".startof.%s",pcVar27);\n      lang_define_start_stop(pcVar36,paVar59);\n      builtin_strncpy(pcVar36 + 1,".size",5);\n      lang_define_start_stop(pcVar36 + 1,paVar59);\n      free(pcVar36);\n    }\n  }\n  ldemul_before_allocation();\n  plVar54 = (lang_output_section_phdr_list *)0x0;\n  __ptr = (void *)xmalloc(0x50);\n  uVar3 = 10;\n  for (plVar6 = lang_phdr_list; plVar6 != (lang_phdr *)0x0; plVar6 = plVar6->next) {\n    uVar53 = 0;\n    for (plVar51 = lang_output_section_statement.head; plVar51 != (lang_statement_union *)0x0;\n        plVar51 = (lang_statement_union *)(plVar51->wild_statement).section_list) {\n      if (-1 < (plVar51->output_section_statement).constraint) {\n        plVar58 = (plVar51->output_section_statement).phdrs;\n        if (plVar58 == (lang_output_section_phdr_list *)0x0) {\n          if ((((plVar51->output_section_statement).sectype != noload_section) &&\n              ((plVar51->output_section_statement).bfd_section != (asection *)0x0)) &&\n             (((((plVar51->output_section_statement).bfd_section)->flags & 1) != 0 &&\n              (plVar58 = plVar54, plVar43 = plVar51, plVar6->type != 3)))) {\n            while( true ) {\n              plVar54 = plVar58;\n              if (plVar58 != (lang_output_section_phdr_list *)0x0) goto LAB_0011c7fd;\n              plVar43 = (lang_statement_union *)(plVar43->output_section_statement).next;\n              if (plVar43 == (lang_statement_union *)0x0) break;\n              plVar58 = (plVar43->output_section_statement).phdrs;\n            }\n            plVar54 = (lang_output_section_phdr_list *)0x0;\n            pcVar27 = (char *)dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            einfo(pcVar27);\n          }\n        }\n        else {\n          plVar54 = plVar58;\n          plVar18 = (lang_output_section_phdr_list *)(plVar51->wild_statement).children.tail;\n          while (plVar18 != (lang_output_section_phdr_list *)0x0) {\nLAB_0011c7fd:\n            iVar25 = strcmp(plVar58->name,plVar6->name);\n            uVar50 = uVar53;\n            if (iVar25 == 0) {\n              if (uVar3 <= (uint)uVar53) {\n                uVar3 = uVar3 << 1;\n                __ptr = (void *)xrealloc(__ptr,(ulong)uVar3 << 3);\n              }\n              uVar50 = (ulong)((uint)uVar53 + 1);\n              *(lang_statement_union ***)((long)__ptr + uVar53 * 8) =\n                   (plVar51->wild_statement).children.tail;\n              plVar58->used = 1;\n            }\n            plVar58 = plVar58->next;\n            uVar53 = uVar50;\n            plVar18 = plVar58;\n          }\n        }\n      }\n    }\n    uVar50 = 0;\n    if (plVar6->flags != (etree_type *)0x0) {\n      bVar34 = exp_get_vma(plVar6->flags,0,"phdr flags");\n      uVar50 = bVar34 & 0xffffffff;\n    }\n    peVar44 = plVar6->at;\n    bVar34 = 0;\n    if (peVar44 != (etree_type *)0x0) {\n      bVar34 = exp_get_vma(peVar44,0,"phdr load address");\n      peVar44 = plVar6->at;\n    }\n    iVar25 = bfd_record_phdr(link_info.output_bfd,plVar6->type,plVar6->flags != (etree_type *)0x0,\n                             uVar50,peVar44 != (etree_type *)0x0,bVar34,plVar6->filehdr,\n                             plVar6->phdrs,uVar53,__ptr);\n    if (iVar25 == 0) {\n      pcVar27 = (char *)dcgettext(0,"%F%P: bfd_record_phdr failed: %E\n",5);\n      einfo(pcVar27);\n    }\n  }\n  free(__ptr);\n  has_relro_section = extraout_RDX;\n  for (plVar51 = lang_output_section_statement.head; plVar51 != (lang_statement_union *)0x0;\n      plVar51 = (lang_statement_union *)(plVar51->wild_statement).section_list) {\n    if ((-1 < (plVar51->output_section_statement).constraint) &&\n       ((plVar51->wild_statement).children.tail != (lang_statement_union **)0x0)) {\n      plVar54 = (plVar51->output_section_statement).phdrs;\njoined_r0x0011c90a:\n      if (plVar54 != (lang_output_section_phdr_list *)0x0) {\n        do {\n          bVar72 = false;\n          bVar73 = plVar54->used == 0;\n          if (bVar73) {\n            pbVar7 = (byte *)plVar54->name;\n            lVar29 = 5;\n            pbVar38 = pbVar7;\n            pbVar63 = (byte *)0x130359;\n            do {\n              if (lVar29 == 0) break;\n              lVar29 = lVar29 + -1;\n              bVar72 = *pbVar38 < *pbVar63;\n              bVar73 = *pbVar38 == *pbVar63;\n              pbVar38 = pbVar38 + (ulong)bVar74 * -2 + 1;\n              pbVar63 = pbVar63 + (ulong)bVar74 * -2 + 1;\n            } while (bVar73);\n            if ((!bVar72 && !bVar73) != bVar72) goto code_r0x0011c93b;\n          }\n          plVar54 = plVar54->next;\n          if (plVar54 == (lang_output_section_phdr_list *)0x0) break;\n        } while( true );\n      }\n    }\n  }\n  if (((link_info._3_1_ & 0x10) != 0) && ((link_info._0_1_ & 3) != 2)) {\n    power = 0;\n    lang_find_relro_sections_1\n              (expld.dataseg.relro_start_stat,(seg_align_type *)&power,has_relro_section);\n    if (power == 0) {\n      link_info._3_1_ = link_info._3_1_ & 0xef;\n    }\n  }\n  lang_size_sections((bfd_boolean *)0x0,\n                     (uint)(1 < (uint)link_info.disable_target_specific_optimizations));\n  ldemul_after_allocation();\n  pbVar69 = link_info.output_bfd;\n  uVar3 = opb_shift;\n  if (start_stop_count != 0) {\n    ppbVar55 = start_stop_syms + start_stop_count;\n    ppbVar35 = start_stop_syms;\n    do {\n      while (pbVar8 = *ppbVar35, (*(ushort *)&pbVar8->field_0x18 & 0x8ff) == 3) {\n        pcVar27 = (pbVar8->root).string;\n        if (*pcVar27 != '.') {\n          cVar24 = pbVar69->xvec->symbol_leading_char;\n          pbVar39 = ((pbVar8->u).def.section)->output_section;\n          (pbVar8->u).def.section = pbVar39;\n          if (pcVar27[(int)((cVar24 != '\0') + 4)] == 'o') {\n            (pbVar8->u).def.value = pbVar39->size >> ((byte)uVar3 & 0x3f);\n          }\n          break;\n        }\n        if (pcVar27[2] != 'i') break;\n        ppbVar35 = ppbVar35 + 1;\n        uVar53 = ((pbVar8->u).def.section)->size;\n        (pbVar8->u).undef.abfd = (bfd *)0x17ed50;\n        (pbVar8->u).def.value = uVar53 >> ((byte)uVar3 & 0x3f);\n        if (ppbVar35 == ppbVar55) goto LAB_0011ca60;\n      }\n      ppbVar35 = ppbVar35 + 1;\n    } while (ppbVar35 != ppbVar55);\n  }\nLAB_0011ca60:\n  lang_do_assignments(lang_final_phase_enum);\n  ldemul_finish();\n  ldexp_finalize_syms();\n  prVar17 = require_defined_symbol_list;\n  if (command_line.check_section_addresses != '\0') {\n    cVar24 = bfd_arch_bits_per_address(link_info.output_bfd);\n    pbVar39 = (link_info.output_bfd)->sections;\n    uVar53 = (1L << (cVar24 - 1U & 0x3f)) * 2 - 1;\n    if (pbVar39 != (bfd_section *)0x0) {\n      do {\n        if ((pbVar39->flags & 1) != 0) {\n          uVar50 = pbVar39->vma + pbVar39->size & uVar53;\n          if ((uVar50 == 0) || ((pbVar39->vma & uVar53) <= uVar50)) {\n            uVar50 = pbVar39->size + pbVar39->lma & uVar53;\n            if ((uVar50 == 0) || ((pbVar39->lma & uVar53) <= uVar50)) goto LAB_0011d2f0;\n            pcVar27 = pbVar39->name;\n            pcVar36 = "%X%P: section %s LMA wraps around address space\n";\n          }\n          else {\n            pcVar27 = pbVar39->name;\n            pcVar36 = "%X%P: section %s VMA wraps around address space\n";\n          }\n          pcVar36 = (char *)dcgettext(0,pcVar36,5);\n          einfo(pcVar36,pcVar27);\n        }\nLAB_0011d2f0:\n        pbVar39 = pbVar39->next;\n      } while (pbVar39 != (bfd_section *)0x0);\n    }\n    prVar17 = require_defined_symbol_list;\n    if (1 < (link_info.output_bfd)->section_count) {\n      uVar53 = 0;\n      __ptr_00 = (long *)xmalloc((ulong)(link_info.output_bfd)->section_count << 4);\n      pbVar39 = (link_info.output_bfd)->sections;\n      if (pbVar39 != (bfd_section *)0x0) {\n        do {\n          uVar50 = uVar53;\n          if ((((pbVar39->flags & 1) != 0) && ((pbVar39->flags & 0x402) != 0x400)) &&\n             (pbVar39->size != 0)) {\n            uVar50 = uVar53 + 1;\n            __ptr_00[uVar53 * 2] = (long)pbVar39;\n            *(undefined4 *)(__ptr_00 + uVar53 * 2 + 1) = 0;\n          }\n          pbVar39 = pbVar39->next;\n          uVar53 = uVar50;\n        } while (pbVar39 != (bfd_section *)0x0);\n        if (1 < uVar50) {\n          qsort(__ptr_00,uVar50,0x10,sort_sections_by_lma);\n          puVar40 = (undefined8 *)0x0;\n          plVar56 = __ptr_00;\n          uVar53 = 0;\n          uVar45 = 0;\n          do {\n            puVar60 = (undefined8 *)*plVar56;\n            puVar41 = puVar40;\n            uVar67 = uVar53;\n            uVar42 = uVar45;\n            if ((*(byte *)(puVar60 + 4) & 2) != 0) {\n              uVar67 = puVar60[6];\n              uVar42 = (uVar67 - 1) + ((ulong)puVar60[7] >> ((byte)opb_shift & 0x3f));\n              puVar41 = puVar60;\n              if ((puVar40 != (undefined8 *)0x0) && ((uVar67 <= uVar45 || (uVar45 < uVar53)))) {\n                uVar37 = *puVar40;\n                uVar16 = *puVar60;\n                pcVar27 = (char *)dcgettext(0,\n                                            "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n"\n                                            ,5);\n                einfo(pcVar27,uVar16,uVar67,uVar42,uVar37,uVar53,uVar45);\n                *(undefined4 *)(plVar56 + 1) = 1;\n              }\n            }\n            plVar56 = plVar56 + 2;\n            puVar40 = puVar41;\n            uVar53 = uVar67;\n            uVar45 = uVar42;\n          } while (plVar56 != __ptr_00 + uVar50 * 2);\n          qsort(__ptr_00,uVar50,0x10,sort_sections_by_vma);\n          puVar40 = (undefined8 *)*__ptr_00;\n          uVar42 = 1;\n          uVar53 = puVar40[5];\n          uVar45 = uVar53;\n          do {\n            lVar29 = uVar42 * 2;\n            if (*(ulong *)(__ptr_00[lVar29] + 0x28) == uVar45) goto LAB_0011d4c4;\n            uVar42 = uVar42 + 1;\n            uVar45 = *(ulong *)(__ptr_00[lVar29] + 0x28);\n          } while (uVar42 != uVar50);\n          uVar42 = 0;\n          uVar45 = (uVar53 - 1) + ((ulong)puVar40[7] >> ((byte)opb_shift & 0x3f));\n          plVar56 = __ptr_00;\n          while( true ) {\n            uVar71 = uVar45;\n            uVar67 = uVar53;\n            puVar60 = puVar40;\n            plVar57 = plVar56 + 2;\n            uVar42 = uVar42 + 1;\n            if (uVar42 == uVar50) break;\n            puVar40 = (undefined8 *)*plVar57;\n            plVar1 = plVar56 + 3;\n            uVar53 = puVar40[5];\n            uVar45 = (uVar53 - 1) + ((ulong)puVar40[7] >> ((byte)opb_shift & 0x3f));\n            plVar56 = plVar57;\n            if (((int)*plVar1 == 0) && ((uVar53 <= uVar71 || (uVar71 < uVar67)))) {\n              uVar37 = *puVar60;\n              uVar16 = *puVar40;\n              pcVar27 = (char *)dcgettext(0,\n                                          "%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n"\n                                          ,5);\n              einfo(pcVar27,uVar16,uVar53,uVar45,uVar37,uVar67,uVar71);\n            }\n          }\nLAB_0011d4c4:\n          free(__ptr_00);\n          for (pmVar52 = lang_memory_region_list; prVar17 = require_defined_symbol_list,\n              pmVar52 != (lang_memory_region_type *)0x0; pmVar52 = pmVar52->next) {\n            if (pmVar52->had_full_message != 0) {\n              pcVar27 = (pmVar52->name_list).name;\n              lVar29 = pmVar52->current - (pmVar52->length + pmVar52->origin);\n              pcVar36 = (char *)dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                           "%X%P: region `%s\' overflowed by %lu bytes\n",lVar29,5);\n              einfo(pcVar36,pcVar27,lVar29);\n            }\n          }\n          goto joined_r0x0011ca92;\n        }\n      }\n      free(__ptr_00);\n      prVar17 = require_defined_symbol_list;\n    }\n  }\njoined_r0x0011ca92:\n  for (; prVar17 != (require_defined_symbol *)0x0; prVar17 = prVar17->next) {\n    lVar29 = bfd_link_hash_lookup(link_info.hash,prVar17->name,0,0,1);\n    if ((lVar29 == 0) || (1 < (byte)(*(char *)(lVar29 + 0x18) - 3U))) {\n      pcVar27 = prVar17->name;\n      pcVar36 = (char *)dcgettext(0,"%X%P: required symbol `%s\' not defined\n",5);\n      einfo(pcVar36,pcVar27);\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    pcVar27 = (char *)dcgettext(0,\n                                "%F%P: gc-sections requires either an entry or an undefined symbol\n"\n                                ,5);\n    einfo(pcVar27);\n  }\n  if (entry_symbol.name == (char *)0x0) {\n    entry_symbol.name = entry_symbol_default;\n    iVar25 = 0;\n  }\n  lVar29 = bfd_link_hash_lookup(link_info.hash,entry_symbol.name,0,0,1);\n  if ((lVar29 != 0) && ((byte)(*(char *)(lVar29 + 0x18) - 3U) < 2)) {\n    lVar11 = *(long *)(*(long *)(lVar29 + 0x28) + 0x68);\n    if (lVar11 != 0) {\n      iVar25 = bfd_set_start_address\n                         (link_info.output_bfd,\n                          *(long *)(lVar11 + 0x28) +\n                          *(long *)(*(long *)(lVar29 + 0x28) + 0x60) + *(long *)(lVar29 + 0x30));\n      if (iVar25 != 0) {\n        return;\n      }\n      pcVar27 = "%F%P: %s: can\'t set start address\n";\n      goto LAB_0011cf37;\n    }\n  }\n  uVar37 = bfd_scan_vma(entry_symbol.name,&power,0);\n  if (*(char *)CONCAT44(uStack_3c,power) == '\0') {\n    iVar25 = bfd_set_start_address(link_info.output_bfd,uVar37);\n  }\n  else {\n    lVar29 = bfd_get_section_by_name(link_info.output_bfd,entry_section);\n    pcVar27 = entry_symbol.name;\n    if (lVar29 == 0) {\n      if (iVar25 == 0) {\n        return;\n      }\n      pcVar27 = "%P: warning: cannot find entry symbol %s; not setting start address\n";\nLAB_0011cf37:\n      pcVar36 = entry_symbol.name;\n      pcVar27 = (char *)dcgettext(0,pcVar27,5);\n      einfo(pcVar27,pcVar36);\n      return;\n    }\n    uVar37 = *(undefined8 *)(lVar29 + 0x28);\n    if (iVar25 != 0) {\n      pcVar36 = (char *)dcgettext(0,"%P: warning: cannot find entry symbol %s; defaulting to %V\n",5\n                                 );\n      einfo(pcVar36,pcVar27,uVar37);\n      uVar37 = *(undefined8 *)(lVar29 + 0x28);\n    }\n    iVar25 = bfd_set_start_address(link_info.output_bfd,uVar37);\n  }\n  if (iVar25 != 0) {\n    return;\n  }\n  pcVar27 = (char *)dcgettext(0,"%F%P: can\'t set start address\n",5);\n  einfo(pcVar27);\n  return;\ncode_r0x0011c5be:\n  plVar51 = (plVar51->wild_statement).children.head;\n  goto joined_r0x0011be7f;\nLAB_0011c1d0:\n  pcVar27 = (pmVar52->name_list).name;\n  pcVar36 = (char *)dcgettext(0,"%F%P: invalid length for memory region %s\n",5);\n  einfo(pcVar36,pcVar27);\n  pmVar52 = pmVar52->next;\n  goto joined_r0x0011bfdf;\ncode_r0x0011c493:\n  (*((plVar51->input_statement).the_bfd)->xvec->_bfd_link_just_syms)(pbVar39,&link_info);\n  pbVar39 = pbVar39->next;\n  goto joined_r0x0011c46e;\ncode_r0x0011c93b:\n  plVar43 = (plVar51->wild_statement).children.head;\n  pcVar27 = (char *)dcgettext(0,"%X%P: section `%s\' assigned to non-existent phdr `%s\'\n",5);\n  einfo(pcVar27,plVar43,pbVar7);\n  plVar54 = plVar54->next;\n  has_relro_section = extraout_RDX_00;\n  goto joined_r0x0011c90a;\n}\n\n" comment comment (function_definition "void lang_process(void)\n\n{\n  long *plVar1;\n  byte bVar2;\n  uint uVar3;\n  bfd_sym_chain *pbVar4;\n  asneeded_minfo *paVar5;\n  lang_phdr *plVar6;\n  byte *pbVar7;\n  bfd_link_hash_entry *pbVar8;\n  lang_output_section_statement_struct *plVar9;\n  lang_output_section_statement_struct *plVar10;\n  long lVar11;\n  bfd_hash_entry **ppbVar12;\n  lang_statement_union **pplVar13;\n  lang_statement_union **pplVar14;\n  bfd_vma bVar15;\n  undefined8 uVar16;\n  require_defined_symbol *prVar17;\n  lang_output_section_phdr_list *plVar18;\n  lang_statement_list_type *plVar19;\n  lang_statement_union **pplVar20;\n  lang_statement_union **pplVar21;\n  lang_input_statement_type *plVar22;\n  undefined1 uVar23;\n  char cVar24;\n  int iVar25;\n  bfd_boolean bVar26;\n  char *pcVar27;\n  size_t sVar28;\n  long lVar29;\n  bfd_elf_version_expr *pbVar30;\n  bfd_elf_version_tree *version;\n  bfd_elf_version_expr *orig;\n  bfd_target *pbVar31;\n  char *fmt;\n  lang_output_section_statement_struct *after;\n  lang_statement_union_type **pplVar32;\n  lang_output_section_statement_type *plVar33;\n  void *__ptr;\n  bfd_vma bVar34;\n  bfd_link_hash_entry **ppbVar35;\n  char *pcVar36;\n  undefined8 uVar37;\n  byte *pbVar38;\n  long *__ptr_00;\n  bfd_section *pbVar39;\n  undefined8 *puVar40;\n  undefined8 *puVar41;\n  ulong uVar42;\n  lang_statement_union *plVar43;\n  etree_type *peVar44;\n  ulong uVar45;\n  lang_statement_union *plVar46;\n  bfd_vma *pbVar47;\n  bfd_target *pbVar48;\n  bfd_boolean *extraout_RDX;\n  bfd_boolean *extraout_RDX_00;\n  bfd_boolean *has_relro_section;\n  asection *paVar49;\n  ulong uVar50;\n  lang_statement_union *plVar51;\n  memory_region_struct *pmVar52;\n  ulong uVar53;\n  lang_output_section_phdr_list *plVar54;\n  bfd_link_hash_entry **ppbVar55;\n  long *plVar56;\n  long *plVar57;\n  lang_output_section_phdr_list *plVar58;\n  asection *paVar59;\n  undefined8 *puVar60;\n  lang_statement_union *plVar61;\n  bfd_vma *pbVar62;\n  byte *pbVar63;\n  asection *paVar64;\n  bfd *pbVar65;\n  bfd_section *pbVar66;\n  ulong uVar67;\n  byte bVar68;\n  bfd *pbVar69;\n  lang_statement_union *plVar70;\n  ulong uVar71;\n  bool bVar72;\n  bool bVar73;\n  byte bVar74;\n  uint power;\n  undefined4 uStack_3c;\n  \n  bVar74 = 0;\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    pcVar27 = (char *)dcgettext(0,"%F%P: can not create hash table: %E\n",5);\n    einfo(pcVar27);\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  plVar43 = input_file_chain.head;\n  pplVar20 = file_chain.tail;\n  plVar51 = file_chain.head;\n  if ((link_info._1_1_ & 2) != 0) {\n    plVar61 = stat_ptr->head;\n    pplVar13 = stat_ptr->tail;\n    iVar25 = plugin_call_all_symbols_read();\n    if (iVar25 != 0) {\n      plugin_error_plugin();\n      pcVar27 = (char *)dcgettext(0,"%F%P: %s: plugin reported error after all symbols read\n",5);\n      einfo(pcVar27);\n    }\n    open_input_bfds(*pplVar13,OPEN_BFD_NORMAL);\n    plVar19 = stat_ptr;\n    if (stat_ptr->head != plVar61) {\n      info_assert("../../ld/ldlang.c",0x1baf);\n    }\n    pplVar14 = plVar19->tail;\n    plVar61 = *pplVar13;\n    plVar19->tail = pplVar13;\n    *pplVar13 = (lang_statement_union *)0x0;\n    if (file_chain.head != plVar51) {\n      info_assert("../../ld/ldlang.c",0x1baf);\n    }\n    pplVar13 = file_chain.tail;\n    plVar51 = *pplVar20;\n    file_chain.tail = pplVar20;\n    *pplVar20 = (lang_statement_union *)0x0;\n    if (input_file_chain.head != plVar43) {\n      info_assert("../../ld/ldlang.c",0x1baf);\n    }\n    pplVar20 = input_file_chain.tail;\n    plVar43 = *pplVar21;\n    input_file_chain.tail = pplVar21;\n    *pplVar21 = (lang_statement_union *)0x0;\n    plVar46 = file_chain.head;\n    plVar70 = input_file_chain.head;\n    if (plVar61 != (lang_statement_union *)0x0) {\n      for (; plugin_insert = (lang_input_statement_type *)plVar70,\n          plVar46 != (lang_statement_union *)0x0; plVar46 = (plVar46->wild_statement).children.head)\n      {\n        if (((ulong)(plVar46->wild_statement).walk_wild_section_handler & 0x2000) != 0) {\n          if (((ulong)(plVar46->wild_statement).walk_wild_section_handler & 0x4000) == 0)\n          goto LAB_0011d6c0;\n          break;\n        }\n        if (((plVar46->reloc_statement).section != (asection *)0x0) &&\n           (((plVar46->reloc_statement).section)->moving_line_filepos == 0)) {\n          plugin_insert = (lang_input_statement_type *)plVar46;\n        }\n        plVar70 = (lang_statement_union *)plugin_insert;\n      }\n      plVar46 = (lang_statement_union *)plugin_insert;\n      if ((lang_statement_union *)plugin_insert == (lang_statement_union *)0x0) {\n        info_assert("../../ld/ldlang.c",0x1c32);\n        plVar46 = (lang_statement_union *)plugin_insert;\n      }\nLAB_0011d6c0:\n      plugin_insert = &plVar46->input_statement;\n      plVar22 = plugin_insert;\n      plVar19 = stat_ptr;\n      *pplVar14 = (plugin_insert->header).next;\n      (plVar22->header).next = plVar61;\n      if (plVar22 == (lang_input_statement_type *)plVar19->tail) {\n        plVar19->tail = pplVar14;\n      }\n      *pplVar20 = plVar22->next_real_file;\n      bVar72 = input_file_chain.tail == &plVar22->next_real_file;\n      plVar22->next_real_file = plVar43;\n      pplVar21 = file_chain.tail;\n      if (bVar72) {\n        input_file_chain.tail = pplVar20;\n      }\n      if (plVar22->filename == (char *)0x0) {\n        *pplVar13 = file_chain.head;\n        file_chain.head = plVar51;\n        if ((lang_statement_list_type *)pplVar21 != &file_chain) {\n          pplVar13 = file_chain.tail;\n        }\n      }\n      else {\n        *pplVar13 = plVar22->next;\n        plVar22->next = plVar51;\n        if (pplVar21 != &plVar22->next) {\n          pplVar13 = file_chain.tail;\n        }\n      }\n      file_chain.tail = pplVar13;\n      pplVar20 = file_chain.tail;\n      plVar51 = 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 != plVar51) {\n        info_assert("../../ld/ldlang.c",0x1baf);\n      }\n      plVar51 = *pplVar20;\n      file_chain.tail = pplVar20;\n      *pplVar20 = (lang_statement_union *)0x0;\n      while (plVar51 != (lang_statement_union *)0x0) {\n        pbVar69 = ((plVar51->input_statement).the_bfd)->my_archive;\n        pbVar65 = (plVar51->input_statement).the_bfd;\n        if (pbVar69 != (bfd *)0x0) {\n          pbVar65 = pbVar69;\n        }\n        if (input_file_chain.head == (lang_statement_union *)0x0) {\nLAB_0011dad0:\n          plVar61 = file_chain.head;\n        }\n        else {\n          plVar46 = (lang_statement_union *)0x0;\n          plVar43 = input_file_chain.head;\n          plVar61 = (lang_statement_union *)0x0;\n          do {\n            while ((bfd *)(plVar43->wild_statement).section_list != pbVar65) {\n              if (((bfd *)(plVar43->wild_statement).section_list != (bfd *)0x0) &&\n                 ((plVar43->wild_statement).children.head != (lang_statement_union *)0x0)) {\n                plVar46 = plVar43;\n              }\n              plVar43 = (lang_statement_union *)(plVar43->wild_statement).children.tail;\n              if (plVar43 == (lang_statement_union *)0x0) goto LAB_0011d7f1;\n            }\n            bVar34 = (plVar43->data_statement).output_offset;\n            if (bVar34 != 0) {\n              pbVar47 = (bfd_vma *)(bVar34 + 0x30);\n              bVar34 = *(bfd_vma *)(bVar34 + 0x30);\n              goto LAB_0011d835;\n            }\n            plVar43 = (lang_statement_union *)(plVar43->wild_statement).children.tail;\n            plVar61 = plVar46;\n          } while (plVar43 != (lang_statement_union *)0x0);\nLAB_0011d7f1:\n          if (plVar61 == (lang_statement_union *)0x0) goto LAB_0011dad0;\n        }\n        pbVar47 = &(plVar61->data_statement).output_offset;\n        for (bVar34 = *pbVar47; bVar34 != 0; bVar34 = *(bfd_vma *)(bVar34 + 0x30)) {\n          if (((*(byte *)(bVar34 + 0x49) & 0x40) == 0) &&\n             (*(long *)(*(long *)(bVar34 + 0x20) + 0xd0) == 0)) {\n            bVar34 = *pbVar47;\n            break;\n          }\n          pbVar47 = (bfd_vma *)(bVar34 + 0x30);\n        }\nLAB_0011d835:\n        pbVar62 = &(plVar51->data_statement).output_offset;\n        if (pbVar69 == (bfd *)0x0) {\n          *pbVar47 = (bfd_vma)plVar51;\n          plVar43 = (plVar51->wild_statement).children.head;\n          (plVar51->data_statement).output_offset = bVar34;\n          plVar51 = plVar43;\n        }\n        else {\n          bVar15 = (plVar51->data_statement).output_offset;\n          if (bVar15 != 0) {\n            pbVar65 = *(bfd **)(*(long *)(bVar15 + 0x20) + 0xd0);\n            while (pbVar69 == pbVar65) {\n              pbVar62 = (bfd_vma *)(bVar15 + 0x30);\n              bVar15 = *(bfd_vma *)(bVar15 + 0x30);\n              if (bVar15 == 0) break;\n              pbVar65 = *(bfd **)(*(long *)(bVar15 + 0x20) + 0xd0);\n            }\n          }\n          *pbVar47 = (bfd_vma)plVar51;\n          plVar51 = (lang_statement_union *)*pbVar62;\n          *pbVar62 = bVar34;\n          if (pbVar69->usrdata != (void *)0x0) {\n            *(lang_data_statement_type **)((long)pbVar69->usrdata + 0x30) =\n                 (lang_data_statement_type *)(pbVar62 + -6);\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    pcVar27 = (char *)dcgettext(0,\n                                "\nAs-needed library included to satisfy reference by file (symbol)\n\n"\n                                ,5);\n    minfo(pcVar27);\n    for (paVar5 = asneeded_list_head; paVar5 != (asneeded_minfo *)0x0; paVar5 = paVar5->next) {\n      minfo("%s",paVar5->soname);\n      sVar28 = strlen(paVar5->soname);\n      if (0x1c < sVar28) {\n        print_nl();\n        sVar28 = 0;\n      }\n      do {\n        print_space();\n        sVar28 = sVar28 + 1;\n      } while (sVar28 != 0x1e);\n      if (paVar5->ref != (bfd *)0x0) {\n        minfo("%pB ");\n      }\n      minfo("(%pT)\n",paVar5->name);\n    }\n  }\n  bfd_section_already_linked_table_free();\n  plVar51 = file_chain.head;\njoined_r0x0011be7f:\n  if (plVar51 != (lang_statement_union *)0x0) {\n    do {\n      if (((ulong)(plVar51->wild_statement).walk_wild_section_handler & 0x2000) == 0) {\n        pbVar69 = (plVar51->input_statement).the_bfd;\n        lVar29 = bfd_arch_get_compatible\n                           (pbVar69,link_info.output_bfd,command_line.accept_unknown_input_arch);\n        pbVar65 = link_info.output_bfd;\n        if (((link_info._0_1_ & 3) == 2) || ((link_info._3_1_ & 8) != 0)) {\n          if (lVar29 != 0) {\n            pbVar31 = pbVar69->xvec;\n            pbVar48 = (link_info.output_bfd)->xvec;\n            if ((pbVar31->flavour != pbVar48->flavour) && ((pbVar69->field_0x44 & 0x20) != 0))\n            goto LAB_0011c12e;\n            goto LAB_0011bed4;\n          }\n          if ((pbVar69->field_0x44 & 0x20) != 0) {\n            pbVar31 = pbVar69->xvec;\n            pbVar48 = (link_info.output_bfd)->xvec;\nLAB_0011c12e:\n            pcVar27 = pbVar48->name;\n            pcVar36 = pbVar31->name;\n            fmt = (char *)dcgettext(0,\n                                    "%F%P: relocatable linking with relocations from format %s (%pB) to format %s (%pB) is not supported\n"\n                                    ,5);\n            einfo(fmt,pcVar36,pbVar69,pcVar27,pbVar65);\n            goto joined_r0x0011c167;\n          }\n        }\n        else {\njoined_r0x0011c167:\n          if (lVar29 != 0) {\nLAB_0011bed4:\n            if (pbVar69->section_count == 0) goto LAB_0011bf30;\n            if (command_line.warn_mismatch == 0) {\n              bfd_set_error_handler(ignore_bfd_errors);\n            }\n            bVar26 = (*(link_info.output_bfd)->xvec->_bfd_merge_private_bfd_data)\n                               (pbVar69,&link_info);\n            if (bVar26 == 0) {\n              if (command_line.warn_mismatch != 0) {\n                pcVar27 = (char *)dcgettext(0,\n                                            "%X%P: failed to merge target specific data of file %pB\n"\n                                            ,5);\n                einfo(pcVar27,pbVar69);\n                goto LAB_0011c5b0;\n              }\n            }\n            else {\nLAB_0011c5b0:\n              if (command_line.warn_mismatch != 0) goto code_r0x0011c5be;\n            }\n            bfd_set_error_handler();\n            goto LAB_0011bf30;\n          }\n        }\n        if (command_line.warn_mismatch == 0) goto LAB_0011bf30;\n        bfd_printable_name(link_info.output_bfd);\n        uVar37 = bfd_printable_name(pbVar69);\n        pcVar27 = (char *)dcgettext(0,\n                                    "%X%P: %s architecture of input file `%pB\' is incompatible with %s output\n"\n                                    ,5);\n        einfo(pcVar27,uVar37,pbVar69);\n        plVar51 = (plVar51->wild_statement).children.head;\n      }\n      else {\nLAB_0011bf30:\n        plVar51 = (plVar51->wild_statement).children.head;\n      }\n      if (plVar51 == (lang_statement_union *)0x0) break;\n    } while( true );\n  }\n  if (command_line.version_exports_section != (char *)0x0) {\n    orig = (bfd_elf_version_expr *)0x0;\n    for (plVar51 = file_chain.head; plVar51 != (lang_statement_union *)0x0;\n        plVar51 = (plVar51->wild_statement).children.head) {\n      lVar29 = bfd_get_section_by_name((plVar51->wild_statement).section_list,".exports");\n      if (lVar29 != 0) {\n        lVar11 = *(long *)(lVar29 + 0x38);\n        pcVar27 = (char *)xmalloc(lVar11);\n        iVar25 = bfd_get_section_contents\n                           ((plVar51->wild_statement).section_list,lVar29,pcVar27,0,lVar11);\n        if (iVar25 == 0) {\n          pcVar36 = (char *)dcgettext(0,"%X%P: unable to read .exports section contents\n",5);\n          einfo(pcVar36,lVar29);\n        }\n        pcVar36 = pcVar27 + lVar11;\n        for (; pcVar27 < pcVar36; pcVar27 = pcVar27 + sVar28 + 1) {\n          orig = lang_new_vers_pattern(orig,pcVar27,(char *)0x0,0);\n          sVar28 = strlen(pcVar27);\n        }\n        *(uint *)(lVar29 + 0x20) = *(uint *)(lVar29 + 0x20) | 0x208000;\n      }\n    }\n    pbVar30 = lang_new_vers_pattern((bfd_elf_version_expr *)0x0,"*",(char *)0x0,0);\n    version = (bfd_elf_version_tree *)xcalloc(1,0x70);\n    pcVar27 = command_line.version_exports_section;\n    (version->globals).list = orig;\n    (version->locals).list = pbVar30;\n    version->match = lang_vers_match;\n    version->name_indx = 0xffffffff;\n    lang_register_vers_node(pcVar27,version,(bfd_elf_version_deps *)0x0);\n  }\n  ldctor_build_sets();\n  if ((config.build_constructors != 0) &&\n     (cVar24 = (link_info.output_bfd)->xvec->symbol_leading_char, link_info.input_bfds != (bfd *)0x0\n     )) {\n    pbVar69 = link_info.input_bfds;\n    do {\n      for (pbVar39 = pbVar69->sections; pbVar39 != (bfd_section *)0x0; pbVar39 = pbVar39->next) {\n        while( true ) {\n          pbVar7 = (byte *)pbVar39->name;\n          bVar68 = *pbVar7;\n          if (bVar68 == 0) break;\n          bVar2 = _sch_istable[(ulong)bVar68 * 2];\n          pbVar38 = pbVar7;\n          while (((bVar2 & 0x8c) != 0 || (bVar68 == 0x5f))) {\n            pbVar38 = pbVar38 + 1;\n            bVar68 = *pbVar38;\n            if (bVar68 == 0) goto LAB_0011d178;\n            bVar2 = _sch_istable[(ulong)bVar68 * 2];\n          }\n          pbVar39 = pbVar39->next;\n          if (pbVar39 == (bfd_section *)0x0) goto LAB_0011d163;\n        }\nLAB_0011d178:\n        sVar28 = strlen((char *)pbVar7);\n        pcVar27 = (char *)xmalloc(sVar28 + 10);\n        *pcVar27 = cVar24;\n        sprintf(pcVar27 + (cVar24 != '\0'),"__start_%s",pbVar7);\n        lang_define_start_stop(pcVar27,pbVar39);\n        pcVar27[1] = cVar24;\n        builtin_strncpy(pcVar27 + (2 - (ulong)(cVar24 == '\0')),"__stop",6);\n        lang_define_start_stop(pcVar27 + 1,pbVar39);\n        free(pcVar27);\n      }\nLAB_0011d163:\n      pbVar69 = (pbVar69->link).next;\n    } while (pbVar69 != (bfd *)0x0);\n  }\n  lang_do_assignments(lang_mark_phase_enum);\n  pmVar52 = lang_memory_region_list;\njoined_r0x0011bfdf:\n  if (pmVar52 != (lang_memory_region_type *)0x0) {\n    do {\n      if (pmVar52->origin_exp != (etree_type *)0x0) {\n        exp_fold_tree_no_dot(pmVar52->origin_exp);\n        bVar34 = expld.result.value;\n        if (expld.result.valid_p == 0) {\n          pcVar27 = (pmVar52->name_list).name;\n          pcVar36 = (char *)dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);\n          einfo(pcVar36,pcVar27);\n        }\n        else {\n          pmVar52->origin = expld.result.value;\n          pmVar52->current = bVar34;\n        }\n      }\n      if (pmVar52->length_exp != (etree_type *)0x0) {\n        exp_fold_tree_no_dot(pmVar52->length_exp);\n        if (expld.result.valid_p == 0) goto LAB_0011c1d0;\n        pmVar52->length = expld.result.value;\n      }\n      pmVar52 = pmVar52->next;\n      if (pmVar52 == (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  plVar51 = file_chain.head;\n  if ((link_info._0_1_ & 3) == 2) {\n    for (; plVar51 != (lang_statement_union *)0x0; plVar51 = (plVar51->wild_statement).children.head\n        ) {\n      if (((ulong)(plVar51->wild_statement).walk_wild_section_handler & 0x2000) == 0) {\n        for (pbVar39 = ((plVar51->input_statement).the_bfd)->sections; pbVar39 != (bfd_section *)0x0\n            ; pbVar39 = pbVar39->next) {\n          if ((pbVar39->flags & 0x2000) == 0) {\n            pbVar39->flags = pbVar39->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  pbVar69 = link_info.input_bfds;\n  if ((link_info._6_1_ & 0x20) != 0) {\n    for (; pbVar69 != (bfd *)0x0; pbVar69 = (pbVar69->link).next) {\n      iVar25 = bfd_link_check_relocs(pbVar69);\n      if (iVar25 == 0) {\n        config.make_executable = 0;\n      }\n    }\n  }\n  ldemul_after_check_relocs();\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  plVar43 = (lang_statement_union *)0x0;\n  plVar61 = (lang_statement_union *)0x0;\n  plVar51 = lang_output_section_statement.head;\n  while (plVar70 = plVar51, plVar46 = (plVar70->header).next, plVar46 != (lang_statement_union *)0x0\n        ) {\n    plVar51 = plVar46;\n    if ((plVar46->header).type == lang_output_section_statement_enum) {\n      if ((plVar61 != (lang_statement_union *)0x0) &&\n         (plVar46 != (lang_statement_union *)(plVar61->wild_statement).section_list)) {\n        info_assert("../../ld/ldlang.c",0xea0);\n        plVar51 = (plVar70->header).next;\n      }\n      (plVar46->output_section_statement).constraint =\n           -2 - (plVar46->output_section_statement).constraint;\n      plVar61 = plVar46;\n      if (plVar43 == (lang_statement_union *)0x0) {\n        plVar43 = plVar46;\n      }\n    }\n    else if ((plVar46->header).type == lang_insert_statement_enum) {\n      after = lang_output_section_statement_lookup((plVar46->wild_statement).filename,0,0);\n      if (after == (lang_output_section_statement_type *)0x0) {\nLAB_0011c415:\n        pcVar27 = (char *)dcgettext(0,"%F%P: %s not found for insert\n",5);\n        einfo(pcVar27);\n        plVar51 = file_chain.head;\n        goto joined_r0x0011c458;\n      }\n      if ((plVar46->wild_statement).filenames_sorted != 0) {\n        do {\n          after = after->prev;\n          if (after == (lang_output_section_statement_struct *)0x0) goto LAB_0011c415;\n        } while (after->constraint < 0);\n      }\n      if (plVar61 != (lang_statement_union *)0x0) {\n        plVar9 = (plVar43->output_section_statement).prev;\n        plVar10 = (plVar61->output_section_statement).next;\n        plVar9->next = plVar10;\n        if (plVar10 == (lang_output_section_statement_struct *)0x0) {\n          lang_output_section_statement.tail = (lang_statement_union **)&plVar9->next;\n        }\n        else {\n          plVar10->prev = plVar9;\n        }\n        (plVar61->wild_statement).section_list = (wildcard_list *)after->next;\n        if (after->next == (lang_output_section_statement_struct *)0x0) {\n          lang_output_section_statement.tail =\n               (lang_statement_union **)&(plVar61->output_section_statement).next;\n        }\n        else {\n          after->next->prev = (lang_output_section_statement_struct *)plVar61;\n        }\n        (plVar43->output_section_statement).prev = after;\n        paVar64 = (asection *)0x0;\n        paVar59 = (asection *)0x0;\n        after->next = (lang_output_section_statement_struct *)plVar43;\n        do {\n          (plVar43->output_section_statement).constraint =\n               -2 - (plVar43->output_section_statement).constraint;\n          paVar49 = (plVar43->output_section_statement).bfd_section;\n          if (((paVar49 != (asection *)0x0) && (paVar49->owner != (bfd *)0x0)) &&\n             (paVar64 = paVar49, paVar59 == (asection *)0x0)) {\n            paVar59 = paVar49;\n          }\n        } while ((plVar61 != plVar43) &&\n                (plVar43 = (lang_statement_union *)(plVar43->wild_statement).section_list,\n                plVar43 != (lang_statement_union *)0x0));\n        plVar43 = (lang_statement_union *)0x0;\n        if (paVar64 != (asection *)0x0) {\n          paVar49 = after->bfd_section;\n          if (paVar49 == (asection *)0x0) {\n            plVar43 = (lang_statement_union *)after->prev;\n            if (plVar43 != (lang_statement_union *)0x0) {\n              do {\n                if (((-1 < (plVar43->output_section_statement).constraint) &&\n                    (paVar49 = (plVar43->output_section_statement).bfd_section,\n                    paVar49 != (asection *)0x0)) && (paVar49->owner != (bfd *)0x0))\n                goto LAB_0011cd61;\n                plVar43 = (lang_statement_union *)(plVar43->data_statement).output_section;\n              } while (plVar43 != (lang_statement_union *)0x0);\n              plVar43 = (lang_statement_union *)0x0;\n            }\n          }\n          else {\nLAB_0011cd61:\n            plVar43 = (lang_statement_union *)0x0;\n            if (paVar49 != paVar64) {\n              pbVar39 = paVar59->prev;\n              pbVar66 = paVar64->next;\n              if (pbVar39 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->sections = pbVar66;\n              }\n              else {\n                pbVar39->next = pbVar66;\n                pbVar66 = paVar64->next;\n              }\n              if (pbVar66 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->section_last = pbVar39;\n              }\n              else {\n                pbVar66->prev = pbVar39;\n              }\n              pbVar39 = paVar49->next;\n              paVar64->next = pbVar39;\n              if (pbVar39 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->section_last = paVar64;\n              }\n              else {\n                pbVar39->prev = paVar64;\n              }\n              paVar59->prev = paVar49;\n              plVar43 = (lang_statement_union *)0x0;\n              paVar49->next = paVar59;\n            }\n          }\n        }\n      }\n      pplVar32 = insert_os_after(after);\n      plVar51 = ((lang_output_section_statement.head)->header).next;\n      ((lang_output_section_statement.head)->header).next = (((plVar70->header).next)->header).next;\n      plVar61 = *pplVar32;\n      (plVar70->header).next = plVar61;\n      if (plVar61 == (lang_statement_union *)0x0) {\n        statement_list.tail = (lang_statement_union **)plVar70;\n      }\n      *pplVar32 = plVar51;\n      plVar61 = (lang_statement_union *)0x0;\n      plVar51 = lang_output_section_statement.head;\n    }\n  }\n  for (; (plVar51 = file_chain.head, plVar43 != (lang_statement_union *)0x0 &&\n         ((plVar43->output_section_statement).constraint =\n               -2 - (plVar43->output_section_statement).constraint, plVar51 = file_chain.head,\n         plVar61 != plVar43));\n      plVar43 = (lang_statement_union *)(plVar43->wild_statement).section_list) {\n  }\njoined_r0x0011c458:\n  for (; plVar51 != (lang_statement_union *)0x0; plVar51 = (plVar51->wild_statement).children.head)\n  {\n    pbVar39 = ((plVar51->input_statement).the_bfd)->sections;\njoined_r0x0011c46e:\n    if (pbVar39 != (bfd_section *)0x0) {\n      do {\n        if (pbVar39->output_section == (bfd_section *)0x0) {\n          if (((ulong)(plVar51->wild_statement).walk_wild_section_handler & 0x10) != 0)\n          goto code_r0x0011c493;\n          bVar26 = lang_discard_section_p((asection *)(ulong)pbVar39->flags);\n          bVar72 = false;\n          bVar73 = bVar26 == 0;\n          if (bVar73) {\n            pbVar7 = (byte *)pbVar39->name;\n            lVar29 = 7;\n            pbVar38 = pbVar7;\n            pbVar63 = (byte *)"COMMON";\n            do {\n              if (lVar29 == 0) break;\n              lVar29 = lVar29 + -1;\n              bVar72 = *pbVar38 < *pbVar63;\n              bVar73 = *pbVar38 == *pbVar63;\n              pbVar38 = pbVar38 + (ulong)bVar74 * -2 + 1;\n              pbVar63 = pbVar63 + (ulong)bVar74 * -2 + 1;\n            } while (bVar73);\n            if ((!bVar72 && !bVar73) == bVar72) {\n              if (((link_info._0_1_ & 3) != 2) || (command_line.force_common_definition != 0)) {\n                plVar33 = default_common_section;\n                if (default_common_section == (lang_output_section_statement_type *)0x0) {\n                  plVar33 = lang_output_section_statement_lookup(".bss",0,1);\n                  default_common_section = plVar33;\n                }\nLAB_0011c659:\n                lang_add_section(&plVar33->children,pbVar39,(flag_info *)0x0,plVar33);\n              }\n            }\n            else {\n              if (config.orphan_handling == orphan_handling_discard) {\n                plVar33 = lang_output_section_statement_lookup("/DISCARD/",0,1);\n                if ((plVar33->addr_tree == (etree_union *)0x0) &&\n                   (((link_info._0_1_ & 3) == 2 || ((pbVar39->flags & 3) == 0)))) {\n                  peVar44 = exp_intop(0);\n                  plVar33->addr_tree = peVar44;\n                }\n                goto LAB_0011c659;\n              }\n              if (config.orphan_handling == orphan_handling_error) {\n                pbVar69 = pbVar39->owner;\n                pcVar27 = (char *)dcgettext(0,\n                                            "%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n"\n                                            ,5);\n                einfo(pcVar27,pbVar39,pbVar69);\n              }\n              if ((config.unique_orphan_sections == 0) &&\n                 (bVar26 = unique_section_p(pbVar39,(lang_output_section_statement_type *)0x0),\n                 bVar26 == 0)) {\n                iVar25 = 0;\n              }\n              else {\n                iVar25 = 0x17e;\n              }\n              plVar33 = ldemul_place_orphan(pbVar39,(char *)pbVar7,iVar25);\n              if (plVar33 == (lang_output_section_statement_type *)0x0) {\n                plVar33 = lang_output_section_statement_lookup((char *)pbVar7,iVar25,1);\n                if ((plVar33->addr_tree == (etree_union *)0x0) &&\n                   (((link_info._0_1_ & 3) == 2 || ((pbVar39->flags & 3) == 0)))) {\n                  peVar44 = exp_intop(0);\n                  plVar33->addr_tree = peVar44;\n                }\n                lang_add_section(&plVar33->children,pbVar39,(flag_info *)0x0,plVar33);\n              }\n              if (config.orphan_handling == orphan_handling_warn) {\n                pbVar69 = pbVar39->owner;\n                pcVar27 = (char *)dcgettext(0,\n                                            "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                            ,5);\n                einfo(pcVar27,pbVar39,pbVar69);\n              }\n            }\n          }\n          else {\n            pbVar39->output_section = (bfd_section *)(_bfd_std_section + 0x230);\n          }\n        }\n        pbVar39 = pbVar39->next;\n        if (pbVar39 == (bfd_section *)0x0) break;\n      } while( true );\n    }\n  }\n  bVar68 = link_info._0_1_ & 3;\n  ppbVar55 = start_stop_syms;\n  plVar51 = lang_output_section_statement.head;\n  pbVar69 = link_info.output_bfd;\n  if (bVar68 != 2) {\n    (*(link_info.output_bfd)->xvec->_bfd_merge_sections)(link_info.output_bfd,&link_info);\n    lVar29 = bfd_get_section_by_name(link_info.output_bfd);\n    if (lVar29 == 0) {\n      bVar68 = link_info._0_1_ & 3;\n      ppbVar55 = start_stop_syms;\n      plVar51 = lang_output_section_statement.head;\n      pbVar69 = link_info.output_bfd;\n    }\n    else {\n      bVar68 = link_info._0_1_ & 3;\n      if (config.text_read_only == 0) {\n        *(uint *)(lVar29 + 0x20) = *(uint *)(lVar29 + 0x20) & 0xfffffff7;\n        ppbVar55 = start_stop_syms;\n        plVar51 = lang_output_section_statement.head;\n        pbVar69 = link_info.output_bfd;\n      }\n      else {\n        *(uint *)(lVar29 + 0x20) = *(uint *)(lVar29 + 0x20) | 8;\n        ppbVar55 = start_stop_syms;\n        plVar51 = lang_output_section_statement.head;\n        pbVar69 = link_info.output_bfd;\n      }\n    }\n  }\n  for (; start_stop_syms = ppbVar55, link_info.output_bfd = pbVar69,\n      plVar51 != (lang_statement_union *)0x0;\n      plVar51 = (lang_statement_union *)(plVar51->wild_statement).section_list) {\n    paVar59 = (plVar51->data_statement).output_section;\n    if ((((paVar59 != (asection *)0x0) &&\n         ((plVar51->wild_statement).walk_wild_section_handler == (walk_wild_section_handler_t)0x0))\n        && ((plVar51->wild_statement).handler_data[2] == (wildcard_list *)0x0)) &&\n       (((plVar51->wild_statement).handler_data[1] == (wildcard_list *)0x0 &&\n        ((plVar51->wild_statement).exclude_name_list == (name_list *)paVar59->rawsize)))) {\n      (plVar51->wild_statement).walk_wild_section_handler =\n           (walk_wild_section_handler_t)paVar59->compressed_size;\n    }\n    ppbVar55 = start_stop_syms;\n    pbVar69 = link_info.output_bfd;\n  }\n  if ((config.build_constructors != 0) && (start_stop_count != 0)) {\n    ppbVar35 = ppbVar55 + start_stop_count;\n    do {\n      pbVar8 = *ppbVar55;\n      if ((pbVar8->field_0x19 & 8) == 0) {\n        pbVar65 = (pbVar8->u).undef.abfd;\n        ppbVar12 = (pbVar65->section_htab).table;\n        if (((ppbVar12 == (bfd_hash_entry **)0x0) || ((bfd *)ppbVar12[0x1e] != pbVar69)) ||\n           (iVar25 = strcmp(pbVar65->filename,(char *)*ppbVar12), iVar25 != 0)) {\n          pbVar8->field_0x18 = 1;\n          (pbVar8->u).undef.abfd = (bfd *)0x0;\n        }\n      }\n      ppbVar55 = ppbVar55 + 1;\n    } while (ppbVar35 != ppbVar55);\n  }\n  if (bVar68 != 2) {\n    for (paVar59 = (link_info.output_bfd)->sections; paVar59 != (asection *)0x0;\n        paVar59 = paVar59->next) {\n      pcVar27 = paVar59->name;\n      sVar28 = strlen(pcVar27);\n      pcVar36 = (char *)xmalloc(sVar28 + 10);\n      sprintf(pcVar36,".startof.%s",pcVar27);\n      lang_define_start_stop(pcVar36,paVar59);\n      builtin_strncpy(pcVar36 + 1,".size",5);\n      lang_define_start_stop(pcVar36 + 1,paVar59);\n      free(pcVar36);\n    }\n  }\n  ldemul_before_allocation();\n  plVar54 = (lang_output_section_phdr_list *)0x0;\n  __ptr = (void *)xmalloc(0x50);\n  uVar3 = 10;\n  for (plVar6 = lang_phdr_list; plVar6 != (lang_phdr *)0x0; plVar6 = plVar6->next) {\n    uVar53 = 0;\n    for (plVar51 = lang_output_section_statement.head; plVar51 != (lang_statement_union *)0x0;\n        plVar51 = (lang_statement_union *)(plVar51->wild_statement).section_list) {\n      if (-1 < (plVar51->output_section_statement).constraint) {\n        plVar58 = (plVar51->output_section_statement).phdrs;\n        if (plVar58 == (lang_output_section_phdr_list *)0x0) {\n          if ((((plVar51->output_section_statement).sectype != noload_section) &&\n              ((plVar51->output_section_statement).bfd_section != (asection *)0x0)) &&\n             (((((plVar51->output_section_statement).bfd_section)->flags & 1) != 0 &&\n              (plVar58 = plVar54, plVar43 = plVar51, plVar6->type != 3)))) {\n            while( true ) {\n              plVar54 = plVar58;\n              if (plVar58 != (lang_output_section_phdr_list *)0x0) goto LAB_0011c7fd;\n              plVar43 = (lang_statement_union *)(plVar43->output_section_statement).next;\n              if (plVar43 == (lang_statement_union *)0x0) break;\n              plVar58 = (plVar43->output_section_statement).phdrs;\n            }\n            plVar54 = (lang_output_section_phdr_list *)0x0;\n            pcVar27 = (char *)dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            einfo(pcVar27);\n          }\n        }\n        else {\n          plVar54 = plVar58;\n          plVar18 = (lang_output_section_phdr_list *)(plVar51->wild_statement).children.tail;\n          while (plVar18 != (lang_output_section_phdr_list *)0x0) {\nLAB_0011c7fd:\n            iVar25 = strcmp(plVar58->name,plVar6->name);\n            uVar50 = uVar53;\n            if (iVar25 == 0) {\n              if (uVar3 <= (uint)uVar53) {\n                uVar3 = uVar3 << 1;\n                __ptr = (void *)xrealloc(__ptr,(ulong)uVar3 << 3);\n              }\n              uVar50 = (ulong)((uint)uVar53 + 1);\n              *(lang_statement_union ***)((long)__ptr + uVar53 * 8) =\n                   (plVar51->wild_statement).children.tail;\n              plVar58->used = 1;\n            }\n            plVar58 = plVar58->next;\n            uVar53 = uVar50;\n            plVar18 = plVar58;\n          }\n        }\n      }\n    }\n    uVar50 = 0;\n    if (plVar6->flags != (etree_type *)0x0) {\n      bVar34 = exp_get_vma(plVar6->flags,0,"phdr flags");\n      uVar50 = bVar34 & 0xffffffff;\n    }\n    peVar44 = plVar6->at;\n    bVar34 = 0;\n    if (peVar44 != (etree_type *)0x0) {\n      bVar34 = exp_get_vma(peVar44,0,"phdr load address");\n      peVar44 = plVar6->at;\n    }\n    iVar25 = bfd_record_phdr(link_info.output_bfd,plVar6->type,plVar6->flags != (etree_type *)0x0,\n                             uVar50,peVar44 != (etree_type *)0x0,bVar34,plVar6->filehdr,\n                             plVar6->phdrs,uVar53,__ptr);\n    if (iVar25 == 0) {\n      pcVar27 = (char *)dcgettext(0,"%F%P: bfd_record_phdr failed: %E\n",5);\n      einfo(pcVar27);\n    }\n  }\n  free(__ptr);\n  has_relro_section = extraout_RDX;\n  for (plVar51 = lang_output_section_statement.head; plVar51 != (lang_statement_union *)0x0;\n      plVar51 = (lang_statement_union *)(plVar51->wild_statement).section_list) {\n    if ((-1 < (plVar51->output_section_statement).constraint) &&\n       ((plVar51->wild_statement).children.tail != (lang_statement_union **)0x0)) {\n      plVar54 = (plVar51->output_section_statement).phdrs;\njoined_r0x0011c90a:\n      if (plVar54 != (lang_output_section_phdr_list *)0x0) {\n        do {\n          bVar72 = false;\n          bVar73 = plVar54->used == 0;\n          if (bVar73) {\n            pbVar7 = (byte *)plVar54->name;\n            lVar29 = 5;\n            pbVar38 = pbVar7;\n            pbVar63 = (byte *)0x130359;\n            do {\n              if (lVar29 == 0) break;\n              lVar29 = lVar29 + -1;\n              bVar72 = *pbVar38 < *pbVar63;\n              bVar73 = *pbVar38 == *pbVar63;\n              pbVar38 = pbVar38 + (ulong)bVar74 * -2 + 1;\n              pbVar63 = pbVar63 + (ulong)bVar74 * -2 + 1;\n            } while (bVar73);\n            if ((!bVar72 && !bVar73) != bVar72) goto code_r0x0011c93b;\n          }\n          plVar54 = plVar54->next;\n          if (plVar54 == (lang_output_section_phdr_list *)0x0) break;\n        } while( true );\n      }\n    }\n  }\n  if (((link_info._3_1_ & 0x10) != 0) && ((link_info._0_1_ & 3) != 2)) {\n    power = 0;\n    lang_find_relro_sections_1\n              (expld.dataseg.relro_start_stat,(seg_align_type *)&power,has_relro_section);\n    if (power == 0) {\n      link_info._3_1_ = link_info._3_1_ & 0xef;\n    }\n  }\n  lang_size_sections((bfd_boolean *)0x0,\n                     (uint)(1 < (uint)link_info.disable_target_specific_optimizations));\n  ldemul_after_allocation();\n  pbVar69 = link_info.output_bfd;\n  uVar3 = opb_shift;\n  if (start_stop_count != 0) {\n    ppbVar55 = start_stop_syms + start_stop_count;\n    ppbVar35 = start_stop_syms;\n    do {\n      while (pbVar8 = *ppbVar35, (*(ushort *)&pbVar8->field_0x18 & 0x8ff) == 3) {\n        pcVar27 = (pbVar8->root).string;\n        if (*pcVar27 != '.') {\n          cVar24 = pbVar69->xvec->symbol_leading_char;\n          pbVar39 = ((pbVar8->u).def.section)->output_section;\n          (pbVar8->u).def.section = pbVar39;\n          if (pcVar27[(int)((cVar24 != '\0') + 4)] == 'o') {\n            (pbVar8->u).def.value = pbVar39->size >> ((byte)uVar3 & 0x3f);\n          }\n          break;\n        }\n        if (pcVar27[2] != 'i') break;\n        ppbVar35 = ppbVar35 + 1;\n        uVar53 = ((pbVar8->u).def.section)->size;\n        (pbVar8->u).undef.abfd = (bfd *)0x17ed50;\n        (pbVar8->u).def.value = uVar53 >> ((byte)uVar3 & 0x3f);\n        if (ppbVar35 == ppbVar55) goto LAB_0011ca60;\n      }\n      ppbVar35 = ppbVar35 + 1;\n    } while (ppbVar35 != ppbVar55);\n  }\nLAB_0011ca60:\n  lang_do_assignments(lang_final_phase_enum);\n  ldemul_finish();\n  ldexp_finalize_syms();\n  prVar17 = require_defined_symbol_list;\n  if (command_line.check_section_addresses != '\0') {\n    cVar24 = bfd_arch_bits_per_address(link_info.output_bfd);\n    pbVar39 = (link_info.output_bfd)->sections;\n    uVar53 = (1L << (cVar24 - 1U & 0x3f)) * 2 - 1;\n    if (pbVar39 != (bfd_section *)0x0) {\n      do {\n        if ((pbVar39->flags & 1) != 0) {\n          uVar50 = pbVar39->vma + pbVar39->size & uVar53;\n          if ((uVar50 == 0) || ((pbVar39->vma & uVar53) <= uVar50)) {\n            uVar50 = pbVar39->size + pbVar39->lma & uVar53;\n            if ((uVar50 == 0) || ((pbVar39->lma & uVar53) <= uVar50)) goto LAB_0011d2f0;\n            pcVar27 = pbVar39->name;\n            pcVar36 = "%X%P: section %s LMA wraps around address space\n";\n          }\n          else {\n            pcVar27 = pbVar39->name;\n            pcVar36 = "%X%P: section %s VMA wraps around address space\n";\n          }\n          pcVar36 = (char *)dcgettext(0,pcVar36,5);\n          einfo(pcVar36,pcVar27);\n        }\nLAB_0011d2f0:\n        pbVar39 = pbVar39->next;\n      } while (pbVar39 != (bfd_section *)0x0);\n    }\n    prVar17 = require_defined_symbol_list;\n    if (1 < (link_info.output_bfd)->section_count) {\n      uVar53 = 0;\n      __ptr_00 = (long *)xmalloc((ulong)(link_info.output_bfd)->section_count << 4);\n      pbVar39 = (link_info.output_bfd)->sections;\n      if (pbVar39 != (bfd_section *)0x0) {\n        do {\n          uVar50 = uVar53;\n          if ((((pbVar39->flags & 1) != 0) && ((pbVar39->flags & 0x402) != 0x400)) &&\n             (pbVar39->size != 0)) {\n            uVar50 = uVar53 + 1;\n            __ptr_00[uVar53 * 2] = (long)pbVar39;\n            *(undefined4 *)(__ptr_00 + uVar53 * 2 + 1) = 0;\n          }\n          pbVar39 = pbVar39->next;\n          uVar53 = uVar50;\n        } while (pbVar39 != (bfd_section *)0x0);\n        if (1 < uVar50) {\n          qsort(__ptr_00,uVar50,0x10,sort_sections_by_lma);\n          puVar40 = (undefined8 *)0x0;\n          plVar56 = __ptr_00;\n          uVar53 = 0;\n          uVar45 = 0;\n          do {\n            puVar60 = (undefined8 *)*plVar56;\n            puVar41 = puVar40;\n            uVar67 = uVar53;\n            uVar42 = uVar45;\n            if ((*(byte *)(puVar60 + 4) & 2) != 0) {\n              uVar67 = puVar60[6];\n              uVar42 = (uVar67 - 1) + ((ulong)puVar60[7] >> ((byte)opb_shift & 0x3f));\n              puVar41 = puVar60;\n              if ((puVar40 != (undefined8 *)0x0) && ((uVar67 <= uVar45 || (uVar45 < uVar53)))) {\n                uVar37 = *puVar40;\n                uVar16 = *puVar60;\n                pcVar27 = (char *)dcgettext(0,\n                                            "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n"\n                                            ,5);\n                einfo(pcVar27,uVar16,uVar67,uVar42,uVar37,uVar53,uVar45);\n                *(undefined4 *)(plVar56 + 1) = 1;\n              }\n            }\n            plVar56 = plVar56 + 2;\n            puVar40 = puVar41;\n            uVar53 = uVar67;\n            uVar45 = uVar42;\n          } while (plVar56 != __ptr_00 + uVar50 * 2);\n          qsort(__ptr_00,uVar50,0x10,sort_sections_by_vma);\n          puVar40 = (undefined8 *)*__ptr_00;\n          uVar42 = 1;\n          uVar53 = puVar40[5];\n          uVar45 = uVar53;\n          do {\n            lVar29 = uVar42 * 2;\n            if (*(ulong *)(__ptr_00[lVar29] + 0x28) == uVar45) goto LAB_0011d4c4;\n            uVar42 = uVar42 + 1;\n            uVar45 = *(ulong *)(__ptr_00[lVar29] + 0x28);\n          } while (uVar42 != uVar50);\n          uVar42 = 0;\n          uVar45 = (uVar53 - 1) + ((ulong)puVar40[7] >> ((byte)opb_shift & 0x3f));\n          plVar56 = __ptr_00;\n          while( true ) {\n            uVar71 = uVar45;\n            uVar67 = uVar53;\n            puVar60 = puVar40;\n            plVar57 = plVar56 + 2;\n            uVar42 = uVar42 + 1;\n            if (uVar42 == uVar50) break;\n            puVar40 = (undefined8 *)*plVar57;\n            plVar1 = plVar56 + 3;\n            uVar53 = puVar40[5];\n            uVar45 = (uVar53 - 1) + ((ulong)puVar40[7] >> ((byte)opb_shift & 0x3f));\n            plVar56 = plVar57;\n            if (((int)*plVar1 == 0) && ((uVar53 <= uVar71 || (uVar71 < uVar67)))) {\n              uVar37 = *puVar60;\n              uVar16 = *puVar40;\n              pcVar27 = (char *)dcgettext(0,\n                                          "%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n"\n                                          ,5);\n              einfo(pcVar27,uVar16,uVar53,uVar45,uVar37,uVar67,uVar71);\n            }\n          }\nLAB_0011d4c4:\n          free(__ptr_00);\n          for (pmVar52 = lang_memory_region_list; prVar17 = require_defined_symbol_list,\n              pmVar52 != (lang_memory_region_type *)0x0; pmVar52 = pmVar52->next) {\n            if (pmVar52->had_full_message != 0) {\n              pcVar27 = (pmVar52->name_list).name;\n              lVar29 = pmVar52->current - (pmVar52->length + pmVar52->origin);\n              pcVar36 = (char *)dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                           "%X%P: region `%s\' overflowed by %lu bytes\n",lVar29,5);\n              einfo(pcVar36,pcVar27,lVar29);\n            }\n          }\n          goto joined_r0x0011ca92;\n        }\n      }\n      free(__ptr_00);\n      prVar17 = require_defined_symbol_list;\n    }\n  }\njoined_r0x0011ca92:\n  for (; prVar17 != (require_defined_symbol *)0x0; prVar17 = prVar17->next) {\n    lVar29 = bfd_link_hash_lookup(link_info.hash,prVar17->name,0,0,1);\n    if ((lVar29 == 0) || (1 < (byte)(*(char *)(lVar29 + 0x18) - 3U))) {\n      pcVar27 = prVar17->name;\n      pcVar36 = (char *)dcgettext(0,"%X%P: required symbol `%s\' not defined\n",5);\n      einfo(pcVar36,pcVar27);\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    pcVar27 = (char *)dcgettext(0,\n                                "%F%P: gc-sections requires either an entry or an undefined symbol\n"\n                                ,5);\n    einfo(pcVar27);\n  }\n  if (entry_symbol.name == (char *)0x0) {\n    entry_symbol.name = entry_symbol_default;\n    iVar25 = 0;\n  }\n  lVar29 = bfd_link_hash_lookup(link_info.hash,entry_symbol.name,0,0,1);\n  if ((lVar29 != 0) && ((byte)(*(char *)(lVar29 + 0x18) - 3U) < 2)) {\n    lVar11 = *(long *)(*(long *)(lVar29 + 0x28) + 0x68);\n    if (lVar11 != 0) {\n      iVar25 = bfd_set_start_address\n                         (link_info.output_bfd,\n                          *(long *)(lVar11 + 0x28) +\n                          *(long *)(*(long *)(lVar29 + 0x28) + 0x60) + *(long *)(lVar29 + 0x30));\n      if (iVar25 != 0) {\n        return;\n      }\n      pcVar27 = "%F%P: %s: can\'t set start address\n";\n      goto LAB_0011cf37;\n    }\n  }\n  uVar37 = bfd_scan_vma(entry_symbol.name,&power,0);\n  if (*(char *)CONCAT44(uStack_3c,power) == '\0') {\n    iVar25 = bfd_set_start_address(link_info.output_bfd,uVar37);\n  }\n  else {\n    lVar29 = bfd_get_section_by_name(link_info.output_bfd,entry_section);\n    pcVar27 = entry_symbol.name;\n    if (lVar29 == 0) {\n      if (iVar25 == 0) {\n        return;\n      }\n      pcVar27 = "%P: warning: cannot find entry symbol %s; not setting start address\n";\nLAB_0011cf37:\n      pcVar36 = entry_symbol.name;\n      pcVar27 = (char *)dcgettext(0,pcVar27,5);\n      einfo(pcVar27,pcVar36);\n      return;\n    }\n    uVar37 = *(undefined8 *)(lVar29 + 0x28);\n    if (iVar25 != 0) {\n      pcVar36 = (char *)dcgettext(0,"%P: warning: cannot find entry symbol %s; defaulting to %V\n",5\n                                 );\n      einfo(pcVar36,pcVar27,uVar37);\n      uVar37 = *(undefined8 *)(lVar29 + 0x28);\n    }\n    iVar25 = bfd_set_start_address(link_info.output_bfd,uVar37);\n  }\n  if (iVar25 != 0) {\n    return;\n  }\n  pcVar27 = (char *)dcgettext(0,"%F%P: can\'t set start address\n",5);\n  einfo(pcVar27);\n  return;\ncode_r0x0011c5be:\n  plVar51 = (plVar51->wild_statement).children.head;\n  goto joined_r0x0011be7f;\nLAB_0011c1d0:\n  pcVar27 = (pmVar52->name_list).name;\n  pcVar36 = (char *)dcgettext(0,"%F%P: invalid length for memory region %s\n",5);\n  einfo(pcVar36,pcVar27);\n  pmVar52 = pmVar52->next;\n  goto joined_r0x0011bfdf;\ncode_r0x0011c493:\n  (*((plVar51->input_statement).the_bfd)->xvec->_bfd_link_just_syms)(pbVar39,&link_info);\n  pbVar39 = pbVar39->next;\n  goto joined_r0x0011c46e;\ncode_r0x0011c93b:\n  plVar43 = (plVar51->wild_statement).children.head;\n  pcVar27 = (char *)dcgettext(0,"%X%P: section `%s\' assigned to non-existent phdr `%s\'\n",5);\n  einfo(pcVar27,plVar43,pbVar7);\n  plVar54 = plVar54->next;\n  has_relro_section = extraout_RDX_00;\n  goto joined_r0x0011c90a;\n}" primitive_type (function_declarator "lang_process(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  long *plVar1;\n  byte bVar2;\n  uint uVar3;\n  bfd_sym_chain *pbVar4;\n  asneeded_minfo *paVar5;\n  lang_phdr *plVar6;\n  byte *pbVar7;\n  bfd_link_hash_entry *pbVar8;\n  lang_output_section_statement_struct *plVar9;\n  lang_output_section_statement_struct *plVar10;\n  long lVar11;\n  bfd_hash_entry **ppbVar12;\n  lang_statement_union **pplVar13;\n  lang_statement_union **pplVar14;\n  bfd_vma bVar15;\n  undefined8 uVar16;\n  require_defined_symbol *prVar17;\n  lang_output_section_phdr_list *plVar18;\n  lang_statement_list_type *plVar19;\n  lang_statement_union **pplVar20;\n  lang_statement_union **pplVar21;\n  lang_input_statement_type *plVar22;\n  undefined1 uVar23;\n  char cVar24;\n  int iVar25;\n  bfd_boolean bVar26;\n  char *pcVar27;\n  size_t sVar28;\n  long lVar29;\n  bfd_elf_version_expr *pbVar30;\n  bfd_elf_version_tree *version;\n  bfd_elf_version_expr *orig;\n  bfd_target *pbVar31;\n  char *fmt;\n  lang_output_section_statement_struct *after;\n  lang_statement_union_type **pplVar32;\n  lang_output_section_statement_type *plVar33;\n  void *__ptr;\n  bfd_vma bVar34;\n  bfd_link_hash_entry **ppbVar35;\n  char *pcVar36;\n  undefined8 uVar37;\n  byte *pbVar38;\n  long *__ptr_00;\n  bfd_section *pbVar39;\n  undefined8 *puVar40;\n  undefined8 *puVar41;\n  ulong uVar42;\n  lang_statement_union *plVar43;\n  etree_type *peVar44;\n  ulong uVar45;\n  lang_statement_union *plVar46;\n  bfd_vma *pbVar47;\n  bfd_target *pbVar48;\n  bfd_boolean *extraout_RDX;\n  bfd_boolean *extraout_RDX_00;\n  bfd_boolean *has_relro_section;\n  asection *paVar49;\n  ulong uVar50;\n  lang_statement_union *plVar51;\n  memory_region_struct *pmVar52;\n  ulong uVar53;\n  lang_output_section_phdr_list *plVar54;\n  bfd_link_hash_entry **ppbVar55;\n  long *plVar56;\n  long *plVar57;\n  lang_output_section_phdr_list *plVar58;\n  asection *paVar59;\n  undefined8 *puVar60;\n  lang_statement_union *plVar61;\n  bfd_vma *pbVar62;\n  byte *pbVar63;\n  asection *paVar64;\n  bfd *pbVar65;\n  bfd_section *pbVar66;\n  ulong uVar67;\n  byte bVar68;\n  bfd *pbVar69;\n  lang_statement_union *plVar70;\n  ulong uVar71;\n  bool bVar72;\n  bool bVar73;\n  byte bVar74;\n  uint power;\n  undefined4 uStack_3c;\n  \n  bVar74 = 0;\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    pcVar27 = (char *)dcgettext(0,"%F%P: can not create hash table: %E\n",5);\n    einfo(pcVar27);\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  plVar43 = input_file_chain.head;\n  pplVar20 = file_chain.tail;\n  plVar51 = file_chain.head;\n  if ((link_info._1_1_ & 2) != 0) {\n    plVar61 = stat_ptr->head;\n    pplVar13 = stat_ptr->tail;\n    iVar25 = plugin_call_all_symbols_read();\n    if (iVar25 != 0) {\n      plugin_error_plugin();\n      pcVar27 = (char *)dcgettext(0,"%F%P: %s: plugin reported error after all symbols read\n",5);\n      einfo(pcVar27);\n    }\n    open_input_bfds(*pplVar13,OPEN_BFD_NORMAL);\n    plVar19 = stat_ptr;\n    if (stat_ptr->head != plVar61) {\n      info_assert("../../ld/ldlang.c",0x1baf);\n    }\n    pplVar14 = plVar19->tail;\n    plVar61 = *pplVar13;\n    plVar19->tail = pplVar13;\n    *pplVar13 = (lang_statement_union *)0x0;\n    if (file_chain.head != plVar51) {\n      info_assert("../../ld/ldlang.c",0x1baf);\n    }\n    pplVar13 = file_chain.tail;\n    plVar51 = *pplVar20;\n    file_chain.tail = pplVar20;\n    *pplVar20 = (lang_statement_union *)0x0;\n    if (input_file_chain.head != plVar43) {\n      info_assert("../../ld/ldlang.c",0x1baf);\n    }\n    pplVar20 = input_file_chain.tail;\n    plVar43 = *pplVar21;\n    input_file_chain.tail = pplVar21;\n    *pplVar21 = (lang_statement_union *)0x0;\n    plVar46 = file_chain.head;\n    plVar70 = input_file_chain.head;\n    if (plVar61 != (lang_statement_union *)0x0) {\n      for (; plugin_insert = (lang_input_statement_type *)plVar70,\n          plVar46 != (lang_statement_union *)0x0; plVar46 = (plVar46->wild_statement).children.head)\n      {\n        if (((ulong)(plVar46->wild_statement).walk_wild_section_handler & 0x2000) != 0) {\n          if (((ulong)(plVar46->wild_statement).walk_wild_section_handler & 0x4000) == 0)\n          goto LAB_0011d6c0;\n          break;\n        }\n        if (((plVar46->reloc_statement).section != (asection *)0x0) &&\n           (((plVar46->reloc_statement).section)->moving_line_filepos == 0)) {\n          plugin_insert = (lang_input_statement_type *)plVar46;\n        }\n        plVar70 = (lang_statement_union *)plugin_insert;\n      }\n      plVar46 = (lang_statement_union *)plugin_insert;\n      if ((lang_statement_union *)plugin_insert == (lang_statement_union *)0x0) {\n        info_assert("../../ld/ldlang.c",0x1c32);\n        plVar46 = (lang_statement_union *)plugin_insert;\n      }\nLAB_0011d6c0:\n      plugin_insert = &plVar46->input_statement;\n      plVar22 = plugin_insert;\n      plVar19 = stat_ptr;\n      *pplVar14 = (plugin_insert->header).next;\n      (plVar22->header).next = plVar61;\n      if (plVar22 == (lang_input_statement_type *)plVar19->tail) {\n        plVar19->tail = pplVar14;\n      }\n      *pplVar20 = plVar22->next_real_file;\n      bVar72 = input_file_chain.tail == &plVar22->next_real_file;\n      plVar22->next_real_file = plVar43;\n      pplVar21 = file_chain.tail;\n      if (bVar72) {\n        input_file_chain.tail = pplVar20;\n      }\n      if (plVar22->filename == (char *)0x0) {\n        *pplVar13 = file_chain.head;\n        file_chain.head = plVar51;\n        if ((lang_statement_list_type *)pplVar21 != &file_chain) {\n          pplVar13 = file_chain.tail;\n        }\n      }\n      else {\n        *pplVar13 = plVar22->next;\n        plVar22->next = plVar51;\n        if (pplVar21 != &plVar22->next) {\n          pplVar13 = file_chain.tail;\n        }\n      }\n      file_chain.tail = pplVar13;\n      pplVar20 = file_chain.tail;\n      plVar51 = 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 != plVar51) {\n        info_assert("../../ld/ldlang.c",0x1baf);\n      }\n      plVar51 = *pplVar20;\n      file_chain.tail = pplVar20;\n      *pplVar20 = (lang_statement_union *)0x0;\n      while (plVar51 != (lang_statement_union *)0x0) {\n        pbVar69 = ((plVar51->input_statement).the_bfd)->my_archive;\n        pbVar65 = (plVar51->input_statement).the_bfd;\n        if (pbVar69 != (bfd *)0x0) {\n          pbVar65 = pbVar69;\n        }\n        if (input_file_chain.head == (lang_statement_union *)0x0) {\nLAB_0011dad0:\n          plVar61 = file_chain.head;\n        }\n        else {\n          plVar46 = (lang_statement_union *)0x0;\n          plVar43 = input_file_chain.head;\n          plVar61 = (lang_statement_union *)0x0;\n          do {\n            while ((bfd *)(plVar43->wild_statement).section_list != pbVar65) {\n              if (((bfd *)(plVar43->wild_statement).section_list != (bfd *)0x0) &&\n                 ((plVar43->wild_statement).children.head != (lang_statement_union *)0x0)) {\n                plVar46 = plVar43;\n              }\n              plVar43 = (lang_statement_union *)(plVar43->wild_statement).children.tail;\n              if (plVar43 == (lang_statement_union *)0x0) goto LAB_0011d7f1;\n            }\n            bVar34 = (plVar43->data_statement).output_offset;\n            if (bVar34 != 0) {\n              pbVar47 = (bfd_vma *)(bVar34 + 0x30);\n              bVar34 = *(bfd_vma *)(bVar34 + 0x30);\n              goto LAB_0011d835;\n            }\n            plVar43 = (lang_statement_union *)(plVar43->wild_statement).children.tail;\n            plVar61 = plVar46;\n          } while (plVar43 != (lang_statement_union *)0x0);\nLAB_0011d7f1:\n          if (plVar61 == (lang_statement_union *)0x0) goto LAB_0011dad0;\n        }\n        pbVar47 = &(plVar61->data_statement).output_offset;\n        for (bVar34 = *pbVar47; bVar34 != 0; bVar34 = *(bfd_vma *)(bVar34 + 0x30)) {\n          if (((*(byte *)(bVar34 + 0x49) & 0x40) == 0) &&\n             (*(long *)(*(long *)(bVar34 + 0x20) + 0xd0) == 0)) {\n            bVar34 = *pbVar47;\n            break;\n          }\n          pbVar47 = (bfd_vma *)(bVar34 + 0x30);\n        }\nLAB_0011d835:\n        pbVar62 = &(plVar51->data_statement).output_offset;\n        if (pbVar69 == (bfd *)0x0) {\n          *pbVar47 = (bfd_vma)plVar51;\n          plVar43 = (plVar51->wild_statement).children.head;\n          (plVar51->data_statement).output_offset = bVar34;\n          plVar51 = plVar43;\n        }\n        else {\n          bVar15 = (plVar51->data_statement).output_offset;\n          if (bVar15 != 0) {\n            pbVar65 = *(bfd **)(*(long *)(bVar15 + 0x20) + 0xd0);\n            while (pbVar69 == pbVar65) {\n              pbVar62 = (bfd_vma *)(bVar15 + 0x30);\n              bVar15 = *(bfd_vma *)(bVar15 + 0x30);\n              if (bVar15 == 0) break;\n              pbVar65 = *(bfd **)(*(long *)(bVar15 + 0x20) + 0xd0);\n            }\n          }\n          *pbVar47 = (bfd_vma)plVar51;\n          plVar51 = (lang_statement_union *)*pbVar62;\n          *pbVar62 = bVar34;\n          if (pbVar69->usrdata != (void *)0x0) {\n            *(lang_data_statement_type **)((long)pbVar69->usrdata + 0x30) =\n                 (lang_data_statement_type *)(pbVar62 + -6);\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    pcVar27 = (char *)dcgettext(0,\n                                "\nAs-needed library included to satisfy reference by file (symbol)\n\n"\n                                ,5);\n    minfo(pcVar27);\n    for (paVar5 = asneeded_list_head; paVar5 != (asneeded_minfo *)0x0; paVar5 = paVar5->next) {\n      minfo("%s",paVar5->soname);\n      sVar28 = strlen(paVar5->soname);\n      if (0x1c < sVar28) {\n        print_nl();\n        sVar28 = 0;\n      }\n      do {\n        print_space();\n        sVar28 = sVar28 + 1;\n      } while (sVar28 != 0x1e);\n      if (paVar5->ref != (bfd *)0x0) {\n        minfo("%pB ");\n      }\n      minfo("(%pT)\n",paVar5->name);\n    }\n  }\n  bfd_section_already_linked_table_free();\n  plVar51 = file_chain.head;\njoined_r0x0011be7f:\n  if (plVar51 != (lang_statement_union *)0x0) {\n    do {\n      if (((ulong)(plVar51->wild_statement).walk_wild_section_handler & 0x2000) == 0) {\n        pbVar69 = (plVar51->input_statement).the_bfd;\n        lVar29 = bfd_arch_get_compatible\n                           (pbVar69,link_info.output_bfd,command_line.accept_unknown_input_arch);\n        pbVar65 = link_info.output_bfd;\n        if (((link_info._0_1_ & 3) == 2) || ((link_info._3_1_ & 8) != 0)) {\n          if (lVar29 != 0) {\n            pbVar31 = pbVar69->xvec;\n            pbVar48 = (link_info.output_bfd)->xvec;\n            if ((pbVar31->flavour != pbVar48->flavour) && ((pbVar69->field_0x44 & 0x20) != 0))\n            goto LAB_0011c12e;\n            goto LAB_0011bed4;\n          }\n          if ((pbVar69->field_0x44 & 0x20) != 0) {\n            pbVar31 = pbVar69->xvec;\n            pbVar48 = (link_info.output_bfd)->xvec;\nLAB_0011c12e:\n            pcVar27 = pbVar48->name;\n            pcVar36 = pbVar31->name;\n            fmt = (char *)dcgettext(0,\n                                    "%F%P: relocatable linking with relocations from format %s (%pB) to format %s (%pB) is not supported\n"\n                                    ,5);\n            einfo(fmt,pcVar36,pbVar69,pcVar27,pbVar65);\n            goto joined_r0x0011c167;\n          }\n        }\n        else {\njoined_r0x0011c167:\n          if (lVar29 != 0) {\nLAB_0011bed4:\n            if (pbVar69->section_count == 0) goto LAB_0011bf30;\n            if (command_line.warn_mismatch == 0) {\n              bfd_set_error_handler(ignore_bfd_errors);\n            }\n            bVar26 = (*(link_info.output_bfd)->xvec->_bfd_merge_private_bfd_data)\n                               (pbVar69,&link_info);\n            if (bVar26 == 0) {\n              if (command_line.warn_mismatch != 0) {\n                pcVar27 = (char *)dcgettext(0,\n                                            "%X%P: failed to merge target specific data of file %pB\n"\n                                            ,5);\n                einfo(pcVar27,pbVar69);\n                goto LAB_0011c5b0;\n              }\n            }\n            else {\nLAB_0011c5b0:\n              if (command_line.warn_mismatch != 0) goto code_r0x0011c5be;\n            }\n            bfd_set_error_handler();\n            goto LAB_0011bf30;\n          }\n        }\n        if (command_line.warn_mismatch == 0) goto LAB_0011bf30;\n        bfd_printable_name(link_info.output_bfd);\n        uVar37 = bfd_printable_name(pbVar69);\n        pcVar27 = (char *)dcgettext(0,\n                                    "%X%P: %s architecture of input file `%pB\' is incompatible with %s output\n"\n                                    ,5);\n        einfo(pcVar27,uVar37,pbVar69);\n        plVar51 = (plVar51->wild_statement).children.head;\n      }\n      else {\nLAB_0011bf30:\n        plVar51 = (plVar51->wild_statement).children.head;\n      }\n      if (plVar51 == (lang_statement_union *)0x0) break;\n    } while( true );\n  }\n  if (command_line.version_exports_section != (char *)0x0) {\n    orig = (bfd_elf_version_expr *)0x0;\n    for (plVar51 = file_chain.head; plVar51 != (lang_statement_union *)0x0;\n        plVar51 = (plVar51->wild_statement).children.head) {\n      lVar29 = bfd_get_section_by_name((plVar51->wild_statement).section_list,".exports");\n      if (lVar29 != 0) {\n        lVar11 = *(long *)(lVar29 + 0x38);\n        pcVar27 = (char *)xmalloc(lVar11);\n        iVar25 = bfd_get_section_contents\n                           ((plVar51->wild_statement).section_list,lVar29,pcVar27,0,lVar11);\n        if (iVar25 == 0) {\n          pcVar36 = (char *)dcgettext(0,"%X%P: unable to read .exports section contents\n",5);\n          einfo(pcVar36,lVar29);\n        }\n        pcVar36 = pcVar27 + lVar11;\n        for (; pcVar27 < pcVar36; pcVar27 = pcVar27 + sVar28 + 1) {\n          orig = lang_new_vers_pattern(orig,pcVar27,(char *)0x0,0);\n          sVar28 = strlen(pcVar27);\n        }\n        *(uint *)(lVar29 + 0x20) = *(uint *)(lVar29 + 0x20) | 0x208000;\n      }\n    }\n    pbVar30 = lang_new_vers_pattern((bfd_elf_version_expr *)0x0,"*",(char *)0x0,0);\n    version = (bfd_elf_version_tree *)xcalloc(1,0x70);\n    pcVar27 = command_line.version_exports_section;\n    (version->globals).list = orig;\n    (version->locals).list = pbVar30;\n    version->match = lang_vers_match;\n    version->name_indx = 0xffffffff;\n    lang_register_vers_node(pcVar27,version,(bfd_elf_version_deps *)0x0);\n  }\n  ldctor_build_sets();\n  if ((config.build_constructors != 0) &&\n     (cVar24 = (link_info.output_bfd)->xvec->symbol_leading_char, link_info.input_bfds != (bfd *)0x0\n     )) {\n    pbVar69 = link_info.input_bfds;\n    do {\n      for (pbVar39 = pbVar69->sections; pbVar39 != (bfd_section *)0x0; pbVar39 = pbVar39->next) {\n        while( true ) {\n          pbVar7 = (byte *)pbVar39->name;\n          bVar68 = *pbVar7;\n          if (bVar68 == 0) break;\n          bVar2 = _sch_istable[(ulong)bVar68 * 2];\n          pbVar38 = pbVar7;\n          while (((bVar2 & 0x8c) != 0 || (bVar68 == 0x5f))) {\n            pbVar38 = pbVar38 + 1;\n            bVar68 = *pbVar38;\n            if (bVar68 == 0) goto LAB_0011d178;\n            bVar2 = _sch_istable[(ulong)bVar68 * 2];\n          }\n          pbVar39 = pbVar39->next;\n          if (pbVar39 == (bfd_section *)0x0) goto LAB_0011d163;\n        }\nLAB_0011d178:\n        sVar28 = strlen((char *)pbVar7);\n        pcVar27 = (char *)xmalloc(sVar28 + 10);\n        *pcVar27 = cVar24;\n        sprintf(pcVar27 + (cVar24 != '\0'),"__start_%s",pbVar7);\n        lang_define_start_stop(pcVar27,pbVar39);\n        pcVar27[1] = cVar24;\n        builtin_strncpy(pcVar27 + (2 - (ulong)(cVar24 == '\0')),"__stop",6);\n        lang_define_start_stop(pcVar27 + 1,pbVar39);\n        free(pcVar27);\n      }\nLAB_0011d163:\n      pbVar69 = (pbVar69->link).next;\n    } while (pbVar69 != (bfd *)0x0);\n  }\n  lang_do_assignments(lang_mark_phase_enum);\n  pmVar52 = lang_memory_region_list;\njoined_r0x0011bfdf:\n  if (pmVar52 != (lang_memory_region_type *)0x0) {\n    do {\n      if (pmVar52->origin_exp != (etree_type *)0x0) {\n        exp_fold_tree_no_dot(pmVar52->origin_exp);\n        bVar34 = expld.result.value;\n        if (expld.result.valid_p == 0) {\n          pcVar27 = (pmVar52->name_list).name;\n          pcVar36 = (char *)dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);\n          einfo(pcVar36,pcVar27);\n        }\n        else {\n          pmVar52->origin = expld.result.value;\n          pmVar52->current = bVar34;\n        }\n      }\n      if (pmVar52->length_exp != (etree_type *)0x0) {\n        exp_fold_tree_no_dot(pmVar52->length_exp);\n        if (expld.result.valid_p == 0) goto LAB_0011c1d0;\n        pmVar52->length = expld.result.value;\n      }\n      pmVar52 = pmVar52->next;\n      if (pmVar52 == (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  plVar51 = file_chain.head;\n  if ((link_info._0_1_ & 3) == 2) {\n    for (; plVar51 != (lang_statement_union *)0x0; plVar51 = (plVar51->wild_statement).children.head\n        ) {\n      if (((ulong)(plVar51->wild_statement).walk_wild_section_handler & 0x2000) == 0) {\n        for (pbVar39 = ((plVar51->input_statement).the_bfd)->sections; pbVar39 != (bfd_section *)0x0\n            ; pbVar39 = pbVar39->next) {\n          if ((pbVar39->flags & 0x2000) == 0) {\n            pbVar39->flags = pbVar39->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  pbVar69 = link_info.input_bfds;\n  if ((link_info._6_1_ & 0x20) != 0) {\n    for (; pbVar69 != (bfd *)0x0; pbVar69 = (pbVar69->link).next) {\n      iVar25 = bfd_link_check_relocs(pbVar69);\n      if (iVar25 == 0) {\n        config.make_executable = 0;\n      }\n    }\n  }\n  ldemul_after_check_relocs();\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  plVar43 = (lang_statement_union *)0x0;\n  plVar61 = (lang_statement_union *)0x0;\n  plVar51 = lang_output_section_statement.head;\n  while (plVar70 = plVar51, plVar46 = (plVar70->header).next, plVar46 != (lang_statement_union *)0x0\n        ) {\n    plVar51 = plVar46;\n    if ((plVar46->header).type == lang_output_section_statement_enum) {\n      if ((plVar61 != (lang_statement_union *)0x0) &&\n         (plVar46 != (lang_statement_union *)(plVar61->wild_statement).section_list)) {\n        info_assert("../../ld/ldlang.c",0xea0);\n        plVar51 = (plVar70->header).next;\n      }\n      (plVar46->output_section_statement).constraint =\n           -2 - (plVar46->output_section_statement).constraint;\n      plVar61 = plVar46;\n      if (plVar43 == (lang_statement_union *)0x0) {\n        plVar43 = plVar46;\n      }\n    }\n    else if ((plVar46->header).type == lang_insert_statement_enum) {\n      after = lang_output_section_statement_lookup((plVar46->wild_statement).filename,0,0);\n      if (after == (lang_output_section_statement_type *)0x0) {\nLAB_0011c415:\n        pcVar27 = (char *)dcgettext(0,"%F%P: %s not found for insert\n",5);\n        einfo(pcVar27);\n        plVar51 = file_chain.head;\n        goto joined_r0x0011c458;\n      }\n      if ((plVar46->wild_statement).filenames_sorted != 0) {\n        do {\n          after = after->prev;\n          if (after == (lang_output_section_statement_struct *)0x0) goto LAB_0011c415;\n        } while (after->constraint < 0);\n      }\n      if (plVar61 != (lang_statement_union *)0x0) {\n        plVar9 = (plVar43->output_section_statement).prev;\n        plVar10 = (plVar61->output_section_statement).next;\n        plVar9->next = plVar10;\n        if (plVar10 == (lang_output_section_statement_struct *)0x0) {\n          lang_output_section_statement.tail = (lang_statement_union **)&plVar9->next;\n        }\n        else {\n          plVar10->prev = plVar9;\n        }\n        (plVar61->wild_statement).section_list = (wildcard_list *)after->next;\n        if (after->next == (lang_output_section_statement_struct *)0x0) {\n          lang_output_section_statement.tail =\n               (lang_statement_union **)&(plVar61->output_section_statement).next;\n        }\n        else {\n          after->next->prev = (lang_output_section_statement_struct *)plVar61;\n        }\n        (plVar43->output_section_statement).prev = after;\n        paVar64 = (asection *)0x0;\n        paVar59 = (asection *)0x0;\n        after->next = (lang_output_section_statement_struct *)plVar43;\n        do {\n          (plVar43->output_section_statement).constraint =\n               -2 - (plVar43->output_section_statement).constraint;\n          paVar49 = (plVar43->output_section_statement).bfd_section;\n          if (((paVar49 != (asection *)0x0) && (paVar49->owner != (bfd *)0x0)) &&\n             (paVar64 = paVar49, paVar59 == (asection *)0x0)) {\n            paVar59 = paVar49;\n          }\n        } while ((plVar61 != plVar43) &&\n                (plVar43 = (lang_statement_union *)(plVar43->wild_statement).section_list,\n                plVar43 != (lang_statement_union *)0x0));\n        plVar43 = (lang_statement_union *)0x0;\n        if (paVar64 != (asection *)0x0) {\n          paVar49 = after->bfd_section;\n          if (paVar49 == (asection *)0x0) {\n            plVar43 = (lang_statement_union *)after->prev;\n            if (plVar43 != (lang_statement_union *)0x0) {\n              do {\n                if (((-1 < (plVar43->output_section_statement).constraint) &&\n                    (paVar49 = (plVar43->output_section_statement).bfd_section,\n                    paVar49 != (asection *)0x0)) && (paVar49->owner != (bfd *)0x0))\n                goto LAB_0011cd61;\n                plVar43 = (lang_statement_union *)(plVar43->data_statement).output_section;\n              } while (plVar43 != (lang_statement_union *)0x0);\n              plVar43 = (lang_statement_union *)0x0;\n            }\n          }\n          else {\nLAB_0011cd61:\n            plVar43 = (lang_statement_union *)0x0;\n            if (paVar49 != paVar64) {\n              pbVar39 = paVar59->prev;\n              pbVar66 = paVar64->next;\n              if (pbVar39 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->sections = pbVar66;\n              }\n              else {\n                pbVar39->next = pbVar66;\n                pbVar66 = paVar64->next;\n              }\n              if (pbVar66 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->section_last = pbVar39;\n              }\n              else {\n                pbVar66->prev = pbVar39;\n              }\n              pbVar39 = paVar49->next;\n              paVar64->next = pbVar39;\n              if (pbVar39 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->section_last = paVar64;\n              }\n              else {\n                pbVar39->prev = paVar64;\n              }\n              paVar59->prev = paVar49;\n              plVar43 = (lang_statement_union *)0x0;\n              paVar49->next = paVar59;\n            }\n          }\n        }\n      }\n      pplVar32 = insert_os_after(after);\n      plVar51 = ((lang_output_section_statement.head)->header).next;\n      ((lang_output_section_statement.head)->header).next = (((plVar70->header).next)->header).next;\n      plVar61 = *pplVar32;\n      (plVar70->header).next = plVar61;\n      if (plVar61 == (lang_statement_union *)0x0) {\n        statement_list.tail = (lang_statement_union **)plVar70;\n      }\n      *pplVar32 = plVar51;\n      plVar61 = (lang_statement_union *)0x0;\n      plVar51 = lang_output_section_statement.head;\n    }\n  }\n  for (; (plVar51 = file_chain.head, plVar43 != (lang_statement_union *)0x0 &&\n         ((plVar43->output_section_statement).constraint =\n               -2 - (plVar43->output_section_statement).constraint, plVar51 = file_chain.head,\n         plVar61 != plVar43));\n      plVar43 = (lang_statement_union *)(plVar43->wild_statement).section_list) {\n  }\njoined_r0x0011c458:\n  for (; plVar51 != (lang_statement_union *)0x0; plVar51 = (plVar51->wild_statement).children.head)\n  {\n    pbVar39 = ((plVar51->input_statement).the_bfd)->sections;\njoined_r0x0011c46e:\n    if (pbVar39 != (bfd_section *)0x0) {\n      do {\n        if (pbVar39->output_section == (bfd_section *)0x0) {\n          if (((ulong)(plVar51->wild_statement).walk_wild_section_handler & 0x10) != 0)\n          goto code_r0x0011c493;\n          bVar26 = lang_discard_section_p((asection *)(ulong)pbVar39->flags);\n          bVar72 = false;\n          bVar73 = bVar26 == 0;\n          if (bVar73) {\n            pbVar7 = (byte *)pbVar39->name;\n            lVar29 = 7;\n            pbVar38 = pbVar7;\n            pbVar63 = (byte *)"COMMON";\n            do {\n              if (lVar29 == 0) break;\n              lVar29 = lVar29 + -1;\n              bVar72 = *pbVar38 < *pbVar63;\n              bVar73 = *pbVar38 == *pbVar63;\n              pbVar38 = pbVar38 + (ulong)bVar74 * -2 + 1;\n              pbVar63 = pbVar63 + (ulong)bVar74 * -2 + 1;\n            } while (bVar73);\n            if ((!bVar72 && !bVar73) == bVar72) {\n              if (((link_info._0_1_ & 3) != 2) || (command_line.force_common_definition != 0)) {\n                plVar33 = default_common_section;\n                if (default_common_section == (lang_output_section_statement_type *)0x0) {\n                  plVar33 = lang_output_section_statement_lookup(".bss",0,1);\n                  default_common_section = plVar33;\n                }\nLAB_0011c659:\n                lang_add_section(&plVar33->children,pbVar39,(flag_info *)0x0,plVar33);\n              }\n            }\n            else {\n              if (config.orphan_handling == orphan_handling_discard) {\n                plVar33 = lang_output_section_statement_lookup("/DISCARD/",0,1);\n                if ((plVar33->addr_tree == (etree_union *)0x0) &&\n                   (((link_info._0_1_ & 3) == 2 || ((pbVar39->flags & 3) == 0)))) {\n                  peVar44 = exp_intop(0);\n                  plVar33->addr_tree = peVar44;\n                }\n                goto LAB_0011c659;\n              }\n              if (config.orphan_handling == orphan_handling_error) {\n                pbVar69 = pbVar39->owner;\n                pcVar27 = (char *)dcgettext(0,\n                                            "%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n"\n                                            ,5);\n                einfo(pcVar27,pbVar39,pbVar69);\n              }\n              if ((config.unique_orphan_sections == 0) &&\n                 (bVar26 = unique_section_p(pbVar39,(lang_output_section_statement_type *)0x0),\n                 bVar26 == 0)) {\n                iVar25 = 0;\n              }\n              else {\n                iVar25 = 0x17e;\n              }\n              plVar33 = ldemul_place_orphan(pbVar39,(char *)pbVar7,iVar25);\n              if (plVar33 == (lang_output_section_statement_type *)0x0) {\n                plVar33 = lang_output_section_statement_lookup((char *)pbVar7,iVar25,1);\n                if ((plVar33->addr_tree == (etree_union *)0x0) &&\n                   (((link_info._0_1_ & 3) == 2 || ((pbVar39->flags & 3) == 0)))) {\n                  peVar44 = exp_intop(0);\n                  plVar33->addr_tree = peVar44;\n                }\n                lang_add_section(&plVar33->children,pbVar39,(flag_info *)0x0,plVar33);\n              }\n              if (config.orphan_handling == orphan_handling_warn) {\n                pbVar69 = pbVar39->owner;\n                pcVar27 = (char *)dcgettext(0,\n                                            "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                            ,5);\n                einfo(pcVar27,pbVar39,pbVar69);\n              }\n            }\n          }\n          else {\n            pbVar39->output_section = (bfd_section *)(_bfd_std_section + 0x230);\n          }\n        }\n        pbVar39 = pbVar39->next;\n        if (pbVar39 == (bfd_section *)0x0) break;\n      } while( true );\n    }\n  }\n  bVar68 = link_info._0_1_ & 3;\n  ppbVar55 = start_stop_syms;\n  plVar51 = lang_output_section_statement.head;\n  pbVar69 = link_info.output_bfd;\n  if (bVar68 != 2) {\n    (*(link_info.output_bfd)->xvec->_bfd_merge_sections)(link_info.output_bfd,&link_info);\n    lVar29 = bfd_get_section_by_name(link_info.output_bfd);\n    if (lVar29 == 0) {\n      bVar68 = link_info._0_1_ & 3;\n      ppbVar55 = start_stop_syms;\n      plVar51 = lang_output_section_statement.head;\n      pbVar69 = link_info.output_bfd;\n    }\n    else {\n      bVar68 = link_info._0_1_ & 3;\n      if (config.text_read_only == 0) {\n        *(uint *)(lVar29 + 0x20) = *(uint *)(lVar29 + 0x20) & 0xfffffff7;\n        ppbVar55 = start_stop_syms;\n        plVar51 = lang_output_section_statement.head;\n        pbVar69 = link_info.output_bfd;\n      }\n      else {\n        *(uint *)(lVar29 + 0x20) = *(uint *)(lVar29 + 0x20) | 8;\n        ppbVar55 = start_stop_syms;\n        plVar51 = lang_output_section_statement.head;\n        pbVar69 = link_info.output_bfd;\n      }\n    }\n  }\n  for (; start_stop_syms = ppbVar55, link_info.output_bfd = pbVar69,\n      plVar51 != (lang_statement_union *)0x0;\n      plVar51 = (lang_statement_union *)(plVar51->wild_statement).section_list) {\n    paVar59 = (plVar51->data_statement).output_section;\n    if ((((paVar59 != (asection *)0x0) &&\n         ((plVar51->wild_statement).walk_wild_section_handler == (walk_wild_section_handler_t)0x0))\n        && ((plVar51->wild_statement).handler_data[2] == (wildcard_list *)0x0)) &&\n       (((plVar51->wild_statement).handler_data[1] == (wildcard_list *)0x0 &&\n        ((plVar51->wild_statement).exclude_name_list == (name_list *)paVar59->rawsize)))) {\n      (plVar51->wild_statement).walk_wild_section_handler =\n           (walk_wild_section_handler_t)paVar59->compressed_size;\n    }\n    ppbVar55 = start_stop_syms;\n    pbVar69 = link_info.output_bfd;\n  }\n  if ((config.build_constructors != 0) && (start_stop_count != 0)) {\n    ppbVar35 = ppbVar55 + start_stop_count;\n    do {\n      pbVar8 = *ppbVar55;\n      if ((pbVar8->field_0x19 & 8) == 0) {\n        pbVar65 = (pbVar8->u).undef.abfd;\n        ppbVar12 = (pbVar65->section_htab).table;\n        if (((ppbVar12 == (bfd_hash_entry **)0x0) || ((bfd *)ppbVar12[0x1e] != pbVar69)) ||\n           (iVar25 = strcmp(pbVar65->filename,(char *)*ppbVar12), iVar25 != 0)) {\n          pbVar8->field_0x18 = 1;\n          (pbVar8->u).undef.abfd = (bfd *)0x0;\n        }\n      }\n      ppbVar55 = ppbVar55 + 1;\n    } while (ppbVar35 != ppbVar55);\n  }\n  if (bVar68 != 2) {\n    for (paVar59 = (link_info.output_bfd)->sections; paVar59 != (asection *)0x0;\n        paVar59 = paVar59->next) {\n      pcVar27 = paVar59->name;\n      sVar28 = strlen(pcVar27);\n      pcVar36 = (char *)xmalloc(sVar28 + 10);\n      sprintf(pcVar36,".startof.%s",pcVar27);\n      lang_define_start_stop(pcVar36,paVar59);\n      builtin_strncpy(pcVar36 + 1,".size",5);\n      lang_define_start_stop(pcVar36 + 1,paVar59);\n      free(pcVar36);\n    }\n  }\n  ldemul_before_allocation();\n  plVar54 = (lang_output_section_phdr_list *)0x0;\n  __ptr = (void *)xmalloc(0x50);\n  uVar3 = 10;\n  for (plVar6 = lang_phdr_list; plVar6 != (lang_phdr *)0x0; plVar6 = plVar6->next) {\n    uVar53 = 0;\n    for (plVar51 = lang_output_section_statement.head; plVar51 != (lang_statement_union *)0x0;\n        plVar51 = (lang_statement_union *)(plVar51->wild_statement).section_list) {\n      if (-1 < (plVar51->output_section_statement).constraint) {\n        plVar58 = (plVar51->output_section_statement).phdrs;\n        if (plVar58 == (lang_output_section_phdr_list *)0x0) {\n          if ((((plVar51->output_section_statement).sectype != noload_section) &&\n              ((plVar51->output_section_statement).bfd_section != (asection *)0x0)) &&\n             (((((plVar51->output_section_statement).bfd_section)->flags & 1) != 0 &&\n              (plVar58 = plVar54, plVar43 = plVar51, plVar6->type != 3)))) {\n            while( true ) {\n              plVar54 = plVar58;\n              if (plVar58 != (lang_output_section_phdr_list *)0x0) goto LAB_0011c7fd;\n              plVar43 = (lang_statement_union *)(plVar43->output_section_statement).next;\n              if (plVar43 == (lang_statement_union *)0x0) break;\n              plVar58 = (plVar43->output_section_statement).phdrs;\n            }\n            plVar54 = (lang_output_section_phdr_list *)0x0;\n            pcVar27 = (char *)dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            einfo(pcVar27);\n          }\n        }\n        else {\n          plVar54 = plVar58;\n          plVar18 = (lang_output_section_phdr_list *)(plVar51->wild_statement).children.tail;\n          while (plVar18 != (lang_output_section_phdr_list *)0x0) {\nLAB_0011c7fd:\n            iVar25 = strcmp(plVar58->name,plVar6->name);\n            uVar50 = uVar53;\n            if (iVar25 == 0) {\n              if (uVar3 <= (uint)uVar53) {\n                uVar3 = uVar3 << 1;\n                __ptr = (void *)xrealloc(__ptr,(ulong)uVar3 << 3);\n              }\n              uVar50 = (ulong)((uint)uVar53 + 1);\n              *(lang_statement_union ***)((long)__ptr + uVar53 * 8) =\n                   (plVar51->wild_statement).children.tail;\n              plVar58->used = 1;\n            }\n            plVar58 = plVar58->next;\n            uVar53 = uVar50;\n            plVar18 = plVar58;\n          }\n        }\n      }\n    }\n    uVar50 = 0;\n    if (plVar6->flags != (etree_type *)0x0) {\n      bVar34 = exp_get_vma(plVar6->flags,0,"phdr flags");\n      uVar50 = bVar34 & 0xffffffff;\n    }\n    peVar44 = plVar6->at;\n    bVar34 = 0;\n    if (peVar44 != (etree_type *)0x0) {\n      bVar34 = exp_get_vma(peVar44,0,"phdr load address");\n      peVar44 = plVar6->at;\n    }\n    iVar25 = bfd_record_phdr(link_info.output_bfd,plVar6->type,plVar6->flags != (etree_type *)0x0,\n                             uVar50,peVar44 != (etree_type *)0x0,bVar34,plVar6->filehdr,\n                             plVar6->phdrs,uVar53,__ptr);\n    if (iVar25 == 0) {\n      pcVar27 = (char *)dcgettext(0,"%F%P: bfd_record_phdr failed: %E\n",5);\n      einfo(pcVar27);\n    }\n  }\n  free(__ptr);\n  has_relro_section = extraout_RDX;\n  for (plVar51 = lang_output_section_statement.head; plVar51 != (lang_statement_union *)0x0;\n      plVar51 = (lang_statement_union *)(plVar51->wild_statement).section_list) {\n    if ((-1 < (plVar51->output_section_statement).constraint) &&\n       ((plVar51->wild_statement).children.tail != (lang_statement_union **)0x0)) {\n      plVar54 = (plVar51->output_section_statement).phdrs;\njoined_r0x0011c90a:\n      if (plVar54 != (lang_output_section_phdr_list *)0x0) {\n        do {\n          bVar72 = false;\n          bVar73 = plVar54->used == 0;\n          if (bVar73) {\n            pbVar7 = (byte *)plVar54->name;\n            lVar29 = 5;\n            pbVar38 = pbVar7;\n            pbVar63 = (byte *)0x130359;\n            do {\n              if (lVar29 == 0) break;\n              lVar29 = lVar29 + -1;\n              bVar72 = *pbVar38 < *pbVar63;\n              bVar73 = *pbVar38 == *pbVar63;\n              pbVar38 = pbVar38 + (ulong)bVar74 * -2 + 1;\n              pbVar63 = pbVar63 + (ulong)bVar74 * -2 + 1;\n            } while (bVar73);\n            if ((!bVar72 && !bVar73) != bVar72) goto code_r0x0011c93b;\n          }\n          plVar54 = plVar54->next;\n          if (plVar54 == (lang_output_section_phdr_list *)0x0) break;\n        } while( true );\n      }\n    }\n  }\n  if (((link_info._3_1_ & 0x10) != 0) && ((link_info._0_1_ & 3) != 2)) {\n    power = 0;\n    lang_find_relro_sections_1\n              (expld.dataseg.relro_start_stat,(seg_align_type *)&power,has_relro_section);\n    if (power == 0) {\n      link_info._3_1_ = link_info._3_1_ & 0xef;\n    }\n  }\n  lang_size_sections((bfd_boolean *)0x0,\n                     (uint)(1 < (uint)link_info.disable_target_specific_optimizations));\n  ldemul_after_allocation();\n  pbVar69 = link_info.output_bfd;\n  uVar3 = opb_shift;\n  if (start_stop_count != 0) {\n    ppbVar55 = start_stop_syms + start_stop_count;\n    ppbVar35 = start_stop_syms;\n    do {\n      while (pbVar8 = *ppbVar35, (*(ushort *)&pbVar8->field_0x18 & 0x8ff) == 3) {\n        pcVar27 = (pbVar8->root).string;\n        if (*pcVar27 != '.') {\n          cVar24 = pbVar69->xvec->symbol_leading_char;\n          pbVar39 = ((pbVar8->u).def.section)->output_section;\n          (pbVar8->u).def.section = pbVar39;\n          if (pcVar27[(int)((cVar24 != '\0') + 4)] == 'o') {\n            (pbVar8->u).def.value = pbVar39->size >> ((byte)uVar3 & 0x3f);\n          }\n          break;\n        }\n        if (pcVar27[2] != 'i') break;\n        ppbVar35 = ppbVar35 + 1;\n        uVar53 = ((pbVar8->u).def.section)->size;\n        (pbVar8->u).undef.abfd = (bfd *)0x17ed50;\n        (pbVar8->u).def.value = uVar53 >> ((byte)uVar3 & 0x3f);\n        if (ppbVar35 == ppbVar55) goto LAB_0011ca60;\n      }\n      ppbVar35 = ppbVar35 + 1;\n    } while (ppbVar35 != ppbVar55);\n  }\nLAB_0011ca60:\n  lang_do_assignments(lang_final_phase_enum);\n  ldemul_finish();\n  ldexp_finalize_syms();\n  prVar17 = require_defined_symbol_list;\n  if (command_line.check_section_addresses != '\0') {\n    cVar24 = bfd_arch_bits_per_address(link_info.output_bfd);\n    pbVar39 = (link_info.output_bfd)->sections;\n    uVar53 = (1L << (cVar24 - 1U & 0x3f)) * 2 - 1;\n    if (pbVar39 != (bfd_section *)0x0) {\n      do {\n        if ((pbVar39->flags & 1) != 0) {\n          uVar50 = pbVar39->vma + pbVar39->size & uVar53;\n          if ((uVar50 == 0) || ((pbVar39->vma & uVar53) <= uVar50)) {\n            uVar50 = pbVar39->size + pbVar39->lma & uVar53;\n            if ((uVar50 == 0) || ((pbVar39->lma & uVar53) <= uVar50)) goto LAB_0011d2f0;\n            pcVar27 = pbVar39->name;\n            pcVar36 = "%X%P: section %s LMA wraps around address space\n";\n          }\n          else {\n            pcVar27 = pbVar39->name;\n            pcVar36 = "%X%P: section %s VMA wraps around address space\n";\n          }\n          pcVar36 = (char *)dcgettext(0,pcVar36,5);\n          einfo(pcVar36,pcVar27);\n        }\nLAB_0011d2f0:\n        pbVar39 = pbVar39->next;\n      } while (pbVar39 != (bfd_section *)0x0);\n    }\n    prVar17 = require_defined_symbol_list;\n    if (1 < (link_info.output_bfd)->section_count) {\n      uVar53 = 0;\n      __ptr_00 = (long *)xmalloc((ulong)(link_info.output_bfd)->section_count << 4);\n      pbVar39 = (link_info.output_bfd)->sections;\n      if (pbVar39 != (bfd_section *)0x0) {\n        do {\n          uVar50 = uVar53;\n          if ((((pbVar39->flags & 1) != 0) && ((pbVar39->flags & 0x402) != 0x400)) &&\n             (pbVar39->size != 0)) {\n            uVar50 = uVar53 + 1;\n            __ptr_00[uVar53 * 2] = (long)pbVar39;\n            *(undefined4 *)(__ptr_00 + uVar53 * 2 + 1) = 0;\n          }\n          pbVar39 = pbVar39->next;\n          uVar53 = uVar50;\n        } while (pbVar39 != (bfd_section *)0x0);\n        if (1 < uVar50) {\n          qsort(__ptr_00,uVar50,0x10,sort_sections_by_lma);\n          puVar40 = (undefined8 *)0x0;\n          plVar56 = __ptr_00;\n          uVar53 = 0;\n          uVar45 = 0;\n          do {\n            puVar60 = (undefined8 *)*plVar56;\n            puVar41 = puVar40;\n            uVar67 = uVar53;\n            uVar42 = uVar45;\n            if ((*(byte *)(puVar60 + 4) & 2) != 0) {\n              uVar67 = puVar60[6];\n              uVar42 = (uVar67 - 1) + ((ulong)puVar60[7] >> ((byte)opb_shift & 0x3f));\n              puVar41 = puVar60;\n              if ((puVar40 != (undefined8 *)0x0) && ((uVar67 <= uVar45 || (uVar45 < uVar53)))) {\n                uVar37 = *puVar40;\n                uVar16 = *puVar60;\n                pcVar27 = (char *)dcgettext(0,\n                                            "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n"\n                                            ,5);\n                einfo(pcVar27,uVar16,uVar67,uVar42,uVar37,uVar53,uVar45);\n                *(undefined4 *)(plVar56 + 1) = 1;\n              }\n            }\n            plVar56 = plVar56 + 2;\n            puVar40 = puVar41;\n            uVar53 = uVar67;\n            uVar45 = uVar42;\n          } while (plVar56 != __ptr_00 + uVar50 * 2);\n          qsort(__ptr_00,uVar50,0x10,sort_sections_by_vma);\n          puVar40 = (undefined8 *)*__ptr_00;\n          uVar42 = 1;\n          uVar53 = puVar40[5];\n          uVar45 = uVar53;\n          do {\n            lVar29 = uVar42 * 2;\n            if (*(ulong *)(__ptr_00[lVar29] + 0x28) == uVar45) goto LAB_0011d4c4;\n            uVar42 = uVar42 + 1;\n            uVar45 = *(ulong *)(__ptr_00[lVar29] + 0x28);\n          } while (uVar42 != uVar50);\n          uVar42 = 0;\n          uVar45 = (uVar53 - 1) + ((ulong)puVar40[7] >> ((byte)opb_shift & 0x3f));\n          plVar56 = __ptr_00;\n          while( true ) {\n            uVar71 = uVar45;\n            uVar67 = uVar53;\n            puVar60 = puVar40;\n            plVar57 = plVar56 + 2;\n            uVar42 = uVar42 + 1;\n            if (uVar42 == uVar50) break;\n            puVar40 = (undefined8 *)*plVar57;\n            plVar1 = plVar56 + 3;\n            uVar53 = puVar40[5];\n            uVar45 = (uVar53 - 1) + ((ulong)puVar40[7] >> ((byte)opb_shift & 0x3f));\n            plVar56 = plVar57;\n            if (((int)*plVar1 == 0) && ((uVar53 <= uVar71 || (uVar71 < uVar67)))) {\n              uVar37 = *puVar60;\n              uVar16 = *puVar40;\n              pcVar27 = (char *)dcgettext(0,\n                                          "%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n"\n                                          ,5);\n              einfo(pcVar27,uVar16,uVar53,uVar45,uVar37,uVar67,uVar71);\n            }\n          }\nLAB_0011d4c4:\n          free(__ptr_00);\n          for (pmVar52 = lang_memory_region_list; prVar17 = require_defined_symbol_list,\n              pmVar52 != (lang_memory_region_type *)0x0; pmVar52 = pmVar52->next) {\n            if (pmVar52->had_full_message != 0) {\n              pcVar27 = (pmVar52->name_list).name;\n              lVar29 = pmVar52->current - (pmVar52->length + pmVar52->origin);\n              pcVar36 = (char *)dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                           "%X%P: region `%s\' overflowed by %lu bytes\n",lVar29,5);\n              einfo(pcVar36,pcVar27,lVar29);\n            }\n          }\n          goto joined_r0x0011ca92;\n        }\n      }\n      free(__ptr_00);\n      prVar17 = require_defined_symbol_list;\n    }\n  }\njoined_r0x0011ca92:\n  for (; prVar17 != (require_defined_symbol *)0x0; prVar17 = prVar17->next) {\n    lVar29 = bfd_link_hash_lookup(link_info.hash,prVar17->name,0,0,1);\n    if ((lVar29 == 0) || (1 < (byte)(*(char *)(lVar29 + 0x18) - 3U))) {\n      pcVar27 = prVar17->name;\n      pcVar36 = (char *)dcgettext(0,"%X%P: required symbol `%s\' not defined\n",5);\n      einfo(pcVar36,pcVar27);\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    pcVar27 = (char *)dcgettext(0,\n                                "%F%P: gc-sections requires either an entry or an undefined symbol\n"\n                                ,5);\n    einfo(pcVar27);\n  }\n  if (entry_symbol.name == (char *)0x0) {\n    entry_symbol.name = entry_symbol_default;\n    iVar25 = 0;\n  }\n  lVar29 = bfd_link_hash_lookup(link_info.hash,entry_symbol.name,0,0,1);\n  if ((lVar29 != 0) && ((byte)(*(char *)(lVar29 + 0x18) - 3U) < 2)) {\n    lVar11 = *(long *)(*(long *)(lVar29 + 0x28) + 0x68);\n    if (lVar11 != 0) {\n      iVar25 = bfd_set_start_address\n                         (link_info.output_bfd,\n                          *(long *)(lVar11 + 0x28) +\n                          *(long *)(*(long *)(lVar29 + 0x28) + 0x60) + *(long *)(lVar29 + 0x30));\n      if (iVar25 != 0) {\n        return;\n      }\n      pcVar27 = "%F%P: %s: can\'t set start address\n";\n      goto LAB_0011cf37;\n    }\n  }\n  uVar37 = bfd_scan_vma(entry_symbol.name,&power,0);\n  if (*(char *)CONCAT44(uStack_3c,power) == '\0') {\n    iVar25 = bfd_set_start_address(link_info.output_bfd,uVar37);\n  }\n  else {\n    lVar29 = bfd_get_section_by_name(link_info.output_bfd,entry_section);\n    pcVar27 = entry_symbol.name;\n    if (lVar29 == 0) {\n      if (iVar25 == 0) {\n        return;\n      }\n      pcVar27 = "%P: warning: cannot find entry symbol %s; not setting start address\n";\nLAB_0011cf37:\n      pcVar36 = entry_symbol.name;\n      pcVar27 = (char *)dcgettext(0,pcVar27,5);\n      einfo(pcVar27,pcVar36);\n      return;\n    }\n    uVar37 = *(undefined8 *)(lVar29 + 0x28);\n    if (iVar25 != 0) {\n      pcVar36 = (char *)dcgettext(0,"%P: warning: cannot find entry symbol %s; defaulting to %V\n",5\n                                 );\n      einfo(pcVar36,pcVar27,uVar37);\n      uVar37 = *(undefined8 *)(lVar29 + 0x28);\n    }\n    iVar25 = bfd_set_start_address(link_info.output_bfd,uVar37);\n  }\n  if (iVar25 != 0) {\n    return;\n  }\n  pcVar27 = (char *)dcgettext(0,"%F%P: can\'t set start address\n",5);\n  einfo(pcVar27);\n  return;\ncode_r0x0011c5be:\n  plVar51 = (plVar51->wild_statement).children.head;\n  goto joined_r0x0011be7f;\nLAB_0011c1d0:\n  pcVar27 = (pmVar52->name_list).name;\n  pcVar36 = (char *)dcgettext(0,"%F%P: invalid length for memory region %s\n",5);\n  einfo(pcVar36,pcVar27);\n  pmVar52 = pmVar52->next;\n  goto joined_r0x0011bfdf;\ncode_r0x0011c493:\n  (*((plVar51->input_statement).the_bfd)->xvec->_bfd_link_just_syms)(pbVar39,&link_info);\n  pbVar39 = pbVar39->next;\n  goto joined_r0x0011c46e;\ncode_r0x0011c93b:\n  plVar43 = (plVar51->wild_statement).children.head;\n  pcVar27 = (char *)dcgettext(0,"%X%P: section `%s\' assigned to non-existent phdr `%s\'\n",5);\n  einfo(pcVar27,plVar43,pbVar7);\n  plVar54 = plVar54->next;\n  has_relro_section = extraout_RDX_00;\n  goto joined_r0x0011c90a;\n}" { (declaration "long *plVar1;" (sized_type_specifier "long" long) (pointer_declarator "*plVar1" * identifier) ;) (declaration "byte bVar2;" type_identifier identifier ;) (declaration "uint uVar3;" 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 "lang_phdr *plVar6;" type_identifier (pointer_declarator "*plVar6" * identifier) ;) (declaration "byte *pbVar7;" type_identifier (pointer_declarator "*pbVar7" * identifier) ;) (declaration "bfd_link_hash_entry *pbVar8;" type_identifier (pointer_declarator "*pbVar8" * identifier) ;) (declaration "lang_output_section_statement_struct *plVar9;" type_identifier (pointer_declarator "*plVar9" * identifier) ;) (declaration "lang_output_section_statement_struct *plVar10;" type_identifier (pointer_declarator "*plVar10" * identifier) ;) (declaration "long lVar11;" (sized_type_specifier "long" long) identifier ;) (declaration "bfd_hash_entry **ppbVar12;" type_identifier (pointer_declarator "**ppbVar12" * (pointer_declarator "*ppbVar12" * identifier)) ;) (declaration "lang_statement_union **pplVar13;" type_identifier (pointer_declarator "**pplVar13" * (pointer_declarator "*pplVar13" * identifier)) ;) (declaration "lang_statement_union **pplVar14;" type_identifier (pointer_declarator "**pplVar14" * (pointer_declarator "*pplVar14" * identifier)) ;) (declaration "bfd_vma bVar15;" type_identifier identifier ;) (declaration "undefined8 uVar16;" type_identifier identifier ;) (declaration "require_defined_symbol *prVar17;" type_identifier (pointer_declarator "*prVar17" * identifier) ;) (declaration "lang_output_section_phdr_list *plVar18;" type_identifier (pointer_declarator "*plVar18" * identifier) ;) (declaration "lang_statement_list_type *plVar19;" type_identifier (pointer_declarator "*plVar19" * identifier) ;) (declaration "lang_statement_union **pplVar20;" type_identifier (pointer_declarator "**pplVar20" * (pointer_declarator "*pplVar20" * 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 "char cVar24;" primitive_type identifier ;) (declaration "int iVar25;" primitive_type identifier ;) (declaration "bfd_boolean bVar26;" type_identifier identifier ;) (declaration "char *pcVar27;" primitive_type (pointer_declarator "*pcVar27" * identifier) ;) (declaration "size_t sVar28;" primitive_type identifier ;) (declaration "long lVar29;" (sized_type_specifier "long" long) identifier ;) (declaration "bfd_elf_version_expr *pbVar30;" type_identifier (pointer_declarator "*pbVar30" * identifier) ;) (declaration "bfd_elf_version_tree *version;" type_identifier (pointer_declarator "*version" * identifier) ;) (declaration "bfd_elf_version_expr *orig;" type_identifier (pointer_declarator "*orig" * identifier) ;) (declaration "bfd_target *pbVar31;" type_identifier (pointer_declarator "*pbVar31" * identifier) ;) (declaration "char *fmt;" primitive_type (pointer_declarator "*fmt" * identifier) ;) (declaration "lang_output_section_statement_struct *after;" type_identifier (pointer_declarator "*after" * identifier) ;) (declaration "lang_statement_union_type **pplVar32;" type_identifier (pointer_declarator "**pplVar32" * (pointer_declarator "*pplVar32" * identifier)) ;) (declaration "lang_output_section_statement_type *plVar33;" type_identifier (pointer_declarator "*plVar33" * identifier) ;) (declaration "void *__ptr;" primitive_type (pointer_declarator "*__ptr" * identifier) ;) (declaration "bfd_vma bVar34;" type_identifier identifier ;) (declaration "bfd_link_hash_entry **ppbVar35;" type_identifier (pointer_declarator "**ppbVar35" * (pointer_declarator "*ppbVar35" * identifier)) ;) (declaration "char *pcVar36;" primitive_type (pointer_declarator "*pcVar36" * identifier) ;) (declaration "undefined8 uVar37;" type_identifier identifier ;) (declaration "byte *pbVar38;" type_identifier (pointer_declarator "*pbVar38" * identifier) ;) (declaration "long *__ptr_00;" (sized_type_specifier "long" long) (pointer_declarator "*__ptr_00" * identifier) ;) (declaration "bfd_section *pbVar39;" type_identifier (pointer_declarator "*pbVar39" * identifier) ;) (declaration "undefined8 *puVar40;" type_identifier (pointer_declarator "*puVar40" * identifier) ;) (declaration "undefined8 *puVar41;" type_identifier (pointer_declarator "*puVar41" * identifier) ;) (declaration "ulong uVar42;" type_identifier identifier ;) (declaration "lang_statement_union *plVar43;" type_identifier (pointer_declarator "*plVar43" * identifier) ;) (declaration "etree_type *peVar44;" type_identifier (pointer_declarator "*peVar44" * identifier) ;) (declaration "ulong uVar45;" type_identifier identifier ;) (declaration "lang_statement_union *plVar46;" type_identifier (pointer_declarator "*plVar46" * identifier) ;) (declaration "bfd_vma *pbVar47;" type_identifier (pointer_declarator "*pbVar47" * identifier) ;) (declaration "bfd_target *pbVar48;" type_identifier (pointer_declarator "*pbVar48" * identifier) ;) (declaration "bfd_boolean *extraout_RDX;" type_identifier (pointer_declarator "*extraout_RDX" * identifier) ;) (declaration "bfd_boolean *extraout_RDX_00;" type_identifier (pointer_declarator "*extraout_RDX_00" * identifier) ;) (declaration "bfd_boolean *has_relro_section;" type_identifier (pointer_declarator "*has_relro_section" * identifier) ;) (declaration "asection *paVar49;" type_identifier (pointer_declarator "*paVar49" * identifier) ;) (declaration "ulong uVar50;" type_identifier identifier ;) (declaration "lang_statement_union *plVar51;" type_identifier (pointer_declarator "*plVar51" * identifier) ;) (declaration "memory_region_struct *pmVar52;" type_identifier (pointer_declarator "*pmVar52" * identifier) ;) (declaration "ulong uVar53;" type_identifier identifier ;) (declaration "lang_output_section_phdr_list *plVar54;" type_identifier (pointer_declarator "*plVar54" * identifier) ;) (declaration "bfd_link_hash_entry **ppbVar55;" type_identifier (pointer_declarator "**ppbVar55" * (pointer_declarator "*ppbVar55" * identifier)) ;) (declaration "long *plVar56;" (sized_type_specifier "long" long) (pointer_declarator "*plVar56" * identifier) ;) (declaration "long *plVar57;" (sized_type_specifier "long" long) (pointer_declarator "*plVar57" * identifier) ;) (declaration "lang_output_section_phdr_list *plVar58;" type_identifier (pointer_declarator "*plVar58" * identifier) ;) (declaration "asection *paVar59;" type_identifier (pointer_declarator "*paVar59" * identifier) ;) (declaration "undefined8 *puVar60;" type_identifier (pointer_declarator "*puVar60" * identifier) ;) (declaration "lang_statement_union *plVar61;" type_identifier (pointer_declarator "*plVar61" * identifier) ;) (declaration "bfd_vma *pbVar62;" type_identifier (pointer_declarator "*pbVar62" * identifier) ;) (declaration "byte *pbVar63;" type_identifier (pointer_declarator "*pbVar63" * identifier) ;) (declaration "asection *paVar64;" type_identifier (pointer_declarator "*paVar64" * identifier) ;) (declaration "bfd *pbVar65;" type_identifier (pointer_declarator "*pbVar65" * identifier) ;) (declaration "bfd_section *pbVar66;" type_identifier (pointer_declarator "*pbVar66" * identifier) ;) (declaration "ulong uVar67;" type_identifier identifier ;) (declaration "byte bVar68;" type_identifier identifier ;) (declaration "bfd *pbVar69;" type_identifier (pointer_declarator "*pbVar69" * identifier) ;) (declaration "lang_statement_union *plVar70;" type_identifier (pointer_declarator "*plVar70" * identifier) ;) (declaration "ulong uVar71;" type_identifier identifier ;) (declaration "bool bVar72;" primitive_type identifier ;) (declaration "bool bVar73;" primitive_type identifier ;) (declaration "byte bVar74;" type_identifier identifier ;) (declaration "uint power;" type_identifier identifier ;) (declaration "undefined4 uStack_3c;" type_identifier identifier ;) (expression_statement "bVar74 = 0;" (assignment_expression "bVar74 = 0" 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    pcVar27 = (char *)dcgettext(0,"%F%P: can not create hash table: %E\n",5);\n    einfo(pcVar27);\n  }" if (parenthesized_expression "(iVar25 == 0)" ( (binary_expression "iVar25 == 0" identifier == number_literal) )) (compound_statement "{\n    pcVar27 = (char *)dcgettext(0,"%F%P: can not create hash table: %E\n",5);\n    einfo(pcVar27);\n  }" { (expression_statement "pcVar27 = (char *)dcgettext(0,"%F%P: can not create hash table: %E\n",5);" (assignment_expression "pcVar27 = (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(pcVar27);" (call_expression "einfo(pcVar27)" identifier (argument_list "(pcVar27)" ( 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 "plVar43 = input_file_chain.head;" (assignment_expression "plVar43 = input_file_chain.head" identifier = (field_expression "input_file_chain.head" identifier . field_identifier)) ;) (expression_statement "pplVar20 = file_chain.tail;" (assignment_expression "pplVar20 = file_chain.tail" identifier = (field_expression "file_chain.tail" identifier . field_identifier)) ;) (expression_statement "plVar51 = file_chain.head;" (assignment_expression "plVar51 = file_chain.head" identifier = (field_expression "file_chain.head" identifier . field_identifier)) ;) (if_statement "if ((link_info._1_1_ & 2) != 0) {\n    plVar61 = stat_ptr->head;\n    pplVar13 = stat_ptr->tail;\n    iVar25 = plugin_call_all_symbols_read();\n    if (iVar25 != 0) {\n      plugin_error_plugin();\n      pcVar27 = (char *)dcgettext(0,"%F%P: %s: plugin reported error after all symbols read\n",5);\n      einfo(pcVar27);\n    }\n    open_input_bfds(*pplVar13,OPEN_BFD_NORMAL);\n    plVar19 = stat_ptr;\n    if (stat_ptr->head != plVar61) {\n      info_assert("../../ld/ldlang.c",0x1baf);\n    }\n    pplVar14 = plVar19->tail;\n    plVar61 = *pplVar13;\n    plVar19->tail = pplVar13;\n    *pplVar13 = (lang_statement_union *)0x0;\n    if (file_chain.head != plVar51) {\n      info_assert("../../ld/ldlang.c",0x1baf);\n    }\n    pplVar13 = file_chain.tail;\n    plVar51 = *pplVar20;\n    file_chain.tail = pplVar20;\n    *pplVar20 = (lang_statement_union *)0x0;\n    if (input_file_chain.head != plVar43) {\n      info_assert("../../ld/ldlang.c",0x1baf);\n    }\n    pplVar20 = input_file_chain.tail;\n    plVar43 = *pplVar21;\n    input_file_chain.tail = pplVar21;\n    *pplVar21 = (lang_statement_union *)0x0;\n    plVar46 = file_chain.head;\n    plVar70 = input_file_chain.head;\n    if (plVar61 != (lang_statement_union *)0x0) {\n      for (; plugin_insert = (lang_input_statement_type *)plVar70,\n          plVar46 != (lang_statement_union *)0x0; plVar46 = (plVar46->wild_statement).children.head)\n      {\n        if (((ulong)(plVar46->wild_statement).walk_wild_section_handler & 0x2000) != 0) {\n          if (((ulong)(plVar46->wild_statement).walk_wild_section_handler & 0x4000) == 0)\n          goto LAB_0011d6c0;\n          break;\n        }\n        if (((plVar46->reloc_statement).section != (asection *)0x0) &&\n           (((plVar46->reloc_statement).section)->moving_line_filepos == 0)) {\n          plugin_insert = (lang_input_statement_type *)plVar46;\n        }\n        plVar70 = (lang_statement_union *)plugin_insert;\n      }\n      plVar46 = (lang_statement_union *)plugin_insert;\n      if ((lang_statement_union *)plugin_insert == (lang_statement_union *)0x0) {\n        info_assert("../../ld/ldlang.c",0x1c32);\n        plVar46 = (lang_statement_union *)plugin_insert;\n      }\nLAB_0011d6c0:\n      plugin_insert = &plVar46->input_statement;\n      plVar22 = plugin_insert;\n      plVar19 = stat_ptr;\n      *pplVar14 = (plugin_insert->header).next;\n      (plVar22->header).next = plVar61;\n      if (plVar22 == (lang_input_statement_type *)plVar19->tail) {\n        plVar19->tail = pplVar14;\n      }\n      *pplVar20 = plVar22->next_real_file;\n      bVar72 = input_file_chain.tail == &plVar22->next_real_file;\n      plVar22->next_real_file = plVar43;\n      pplVar21 = file_chain.tail;\n      if (bVar72) {\n        input_file_chain.tail = pplVar20;\n      }\n      if (plVar22->filename == (char *)0x0) {\n        *pplVar13 = file_chain.head;\n        file_chain.head = plVar51;\n        if ((lang_statement_list_type *)pplVar21 != &file_chain) {\n          pplVar13 = file_chain.tail;\n        }\n      }\n      else {\n        *pplVar13 = plVar22->next;\n        plVar22->next = plVar51;\n        if (pplVar21 != &plVar22->next) {\n          pplVar13 = file_chain.tail;\n        }\n      }\n      file_chain.tail = pplVar13;\n      pplVar20 = file_chain.tail;\n      plVar51 = 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 != plVar51) {\n        info_assert("../../ld/ldlang.c",0x1baf);\n      }\n      plVar51 = *pplVar20;\n      file_chain.tail = pplVar20;\n      *pplVar20 = (lang_statement_union *)0x0;\n      while (plVar51 != (lang_statement_union *)0x0) {\n        pbVar69 = ((plVar51->input_statement).the_bfd)->my_archive;\n        pbVar65 = (plVar51->input_statement).the_bfd;\n        if (pbVar69 != (bfd *)0x0) {\n          pbVar65 = pbVar69;\n        }\n        if (input_file_chain.head == (lang_statement_union *)0x0) {\nLAB_0011dad0:\n          plVar61 = file_chain.head;\n        }\n        else {\n          plVar46 = (lang_statement_union *)0x0;\n          plVar43 = input_file_chain.head;\n          plVar61 = (lang_statement_union *)0x0;\n          do {\n            while ((bfd *)(plVar43->wild_statement).section_list != pbVar65) {\n              if (((bfd *)(plVar43->wild_statement).section_list != (bfd *)0x0) &&\n                 ((plVar43->wild_statement).children.head != (lang_statement_union *)0x0)) {\n                plVar46 = plVar43;\n              }\n              plVar43 = (lang_statement_union *)(plVar43->wild_statement).children.tail;\n              if (plVar43 == (lang_statement_union *)0x0) goto LAB_0011d7f1;\n            }\n            bVar34 = (plVar43->data_statement).output_offset;\n            if (bVar34 != 0) {\n              pbVar47 = (bfd_vma *)(bVar34 + 0x30);\n              bVar34 = *(bfd_vma *)(bVar34 + 0x30);\n              goto LAB_0011d835;\n            }\n            plVar43 = (lang_statement_union *)(plVar43->wild_statement).children.tail;\n            plVar61 = plVar46;\n          } while (plVar43 != (lang_statement_union *)0x0);\nLAB_0011d7f1:\n          if (plVar61 == (lang_statement_union *)0x0) goto LAB_0011dad0;\n        }\n        pbVar47 = &(plVar61->data_statement).output_offset;\n        for (bVar34 = *pbVar47; bVar34 != 0; bVar34 = *(bfd_vma *)(bVar34 + 0x30)) {\n          if (((*(byte *)(bVar34 + 0x49) & 0x40) == 0) &&\n             (*(long *)(*(long *)(bVar34 + 0x20) + 0xd0) == 0)) {\n            bVar34 = *pbVar47;\n            break;\n          }\n          pbVar47 = (bfd_vma *)(bVar34 + 0x30);\n        }\nLAB_0011d835:\n        pbVar62 = &(plVar51->data_statement).output_offset;\n        if (pbVar69 == (bfd *)0x0) {\n          *pbVar47 = (bfd_vma)plVar51;\n          plVar43 = (plVar51->wild_statement).children.head;\n          (plVar51->data_statement).output_offset = bVar34;\n          plVar51 = plVar43;\n        }\n        else {\n          bVar15 = (plVar51->data_statement).output_offset;\n          if (bVar15 != 0) {\n            pbVar65 = *(bfd **)(*(long *)(bVar15 + 0x20) + 0xd0);\n            while (pbVar69 == pbVar65) {\n              pbVar62 = (bfd_vma *)(bVar15 + 0x30);\n              bVar15 = *(bfd_vma *)(bVar15 + 0x30);\n              if (bVar15 == 0) break;\n              pbVar65 = *(bfd **)(*(long *)(bVar15 + 0x20) + 0xd0);\n            }\n          }\n          *pbVar47 = (bfd_vma)plVar51;\n          plVar51 = (lang_statement_union *)*pbVar62;\n          *pbVar62 = bVar34;\n          if (pbVar69->usrdata != (void *)0x0) {\n            *(lang_data_statement_type **)((long)pbVar69->usrdata + 0x30) =\n                 (lang_data_statement_type *)(pbVar62 + -6);\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    plVar61 = stat_ptr->head;\n    pplVar13 = stat_ptr->tail;\n    iVar25 = plugin_call_all_symbols_read();\n    if (iVar25 != 0) {\n      plugin_error_plugin();\n      pcVar27 = (char *)dcgettext(0,"%F%P: %s: plugin reported error after all symbols read\n",5);\n      einfo(pcVar27);\n    }\n    open_input_bfds(*pplVar13,OPEN_BFD_NORMAL);\n    plVar19 = stat_ptr;\n    if (stat_ptr->head != plVar61) {\n      info_assert("../../ld/ldlang.c",0x1baf);\n    }\n    pplVar14 = plVar19->tail;\n    plVar61 = *pplVar13;\n    plVar19->tail = pplVar13;\n    *pplVar13 = (lang_statement_union *)0x0;\n    if (file_chain.head != plVar51) {\n      info_assert("../../ld/ldlang.c",0x1baf);\n    }\n    pplVar13 = file_chain.tail;\n    plVar51 = *pplVar20;\n    file_chain.tail = pplVar20;\n    *pplVar20 = (lang_statement_union *)0x0;\n    if (input_file_chain.head != plVar43) {\n      info_assert("../../ld/ldlang.c",0x1baf);\n    }\n    pplVar20 = input_file_chain.tail;\n    plVar43 = *pplVar21;\n    input_file_chain.tail = pplVar21;\n    *pplVar21 = (lang_statement_union *)0x0;\n    plVar46 = file_chain.head;\n    plVar70 = input_file_chain.head;\n    if (plVar61 != (lang_statement_union *)0x0) {\n      for (; plugin_insert = (lang_input_statement_type *)plVar70,\n          plVar46 != (lang_statement_union *)0x0; plVar46 = (plVar46->wild_statement).children.head)\n      {\n        if (((ulong)(plVar46->wild_statement).walk_wild_section_handler & 0x2000) != 0) {\n          if (((ulong)(plVar46->wild_statement).walk_wild_section_handler & 0x4000) == 0)\n          goto LAB_0011d6c0;\n          break;\n        }\n        if (((plVar46->reloc_statement).section != (asection *)0x0) &&\n           (((plVar46->reloc_statement).section)->moving_line_filepos == 0)) {\n          plugin_insert = (lang_input_statement_type *)plVar46;\n        }\n        plVar70 = (lang_statement_union *)plugin_insert;\n      }\n      plVar46 = (lang_statement_union *)plugin_insert;\n      if ((lang_statement_union *)plugin_insert == (lang_statement_union *)0x0) {\n        info_assert("../../ld/ldlang.c",0x1c32);\n        plVar46 = (lang_statement_union *)plugin_insert;\n      }\nLAB_0011d6c0:\n      plugin_insert = &plVar46->input_statement;\n      plVar22 = plugin_insert;\n      plVar19 = stat_ptr;\n      *pplVar14 = (plugin_insert->header).next;\n      (plVar22->header).next = plVar61;\n      if (plVar22 == (lang_input_statement_type *)plVar19->tail) {\n        plVar19->tail = pplVar14;\n      }\n      *pplVar20 = plVar22->next_real_file;\n      bVar72 = input_file_chain.tail == &plVar22->next_real_file;\n      plVar22->next_real_file = plVar43;\n      pplVar21 = file_chain.tail;\n      if (bVar72) {\n        input_file_chain.tail = pplVar20;\n      }\n      if (plVar22->filename == (char *)0x0) {\n        *pplVar13 = file_chain.head;\n        file_chain.head = plVar51;\n        if ((lang_statement_list_type *)pplVar21 != &file_chain) {\n          pplVar13 = file_chain.tail;\n        }\n      }\n      else {\n        *pplVar13 = plVar22->next;\n        plVar22->next = plVar51;\n        if (pplVar21 != &plVar22->next) {\n          pplVar13 = file_chain.tail;\n        }\n      }\n      file_chain.tail = pplVar13;\n      pplVar20 = file_chain.tail;\n      plVar51 = 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 != plVar51) {\n        info_assert("../../ld/ldlang.c",0x1baf);\n      }\n      plVar51 = *pplVar20;\n      file_chain.tail = pplVar20;\n      *pplVar20 = (lang_statement_union *)0x0;\n      while (plVar51 != (lang_statement_union *)0x0) {\n        pbVar69 = ((plVar51->input_statement).the_bfd)->my_archive;\n        pbVar65 = (plVar51->input_statement).the_bfd;\n        if (pbVar69 != (bfd *)0x0) {\n          pbVar65 = pbVar69;\n        }\n        if (input_file_chain.head == (lang_statement_union *)0x0) {\nLAB_0011dad0:\n          plVar61 = file_chain.head;\n        }\n        else {\n          plVar46 = (lang_statement_union *)0x0;\n          plVar43 = input_file_chain.head;\n          plVar61 = (lang_statement_union *)0x0;\n          do {\n            while ((bfd *)(plVar43->wild_statement).section_list != pbVar65) {\n              if (((bfd *)(plVar43->wild_statement).section_list != (bfd *)0x0) &&\n                 ((plVar43->wild_statement).children.head != (lang_statement_union *)0x0)) {\n                plVar46 = plVar43;\n              }\n              plVar43 = (lang_statement_union *)(plVar43->wild_statement).children.tail;\n              if (plVar43 == (lang_statement_union *)0x0) goto LAB_0011d7f1;\n            }\n            bVar34 = (plVar43->data_statement).output_offset;\n            if (bVar34 != 0) {\n              pbVar47 = (bfd_vma *)(bVar34 + 0x30);\n              bVar34 = *(bfd_vma *)(bVar34 + 0x30);\n              goto LAB_0011d835;\n            }\n            plVar43 = (lang_statement_union *)(plVar43->wild_statement).children.tail;\n            plVar61 = plVar46;\n          } while (plVar43 != (lang_statement_union *)0x0);\nLAB_0011d7f1:\n          if (plVar61 == (lang_statement_union *)0x0) goto LAB_0011dad0;\n        }\n        pbVar47 = &(plVar61->data_statement).output_offset;\n        for (bVar34 = *pbVar47; bVar34 != 0; bVar34 = *(bfd_vma *)(bVar34 + 0x30)) {\n          if (((*(byte *)(bVar34 + 0x49) & 0x40) == 0) &&\n             (*(long *)(*(long *)(bVar34 + 0x20) + 0xd0) == 0)) {\n            bVar34 = *pbVar47;\n            break;\n          }\n          pbVar47 = (bfd_vma *)(bVar34 + 0x30);\n        }\nLAB_0011d835:\n        pbVar62 = &(plVar51->data_statement).output_offset;\n        if (pbVar69 == (bfd *)0x0) {\n          *pbVar47 = (bfd_vma)plVar51;\n          plVar43 = (plVar51->wild_statement).children.head;\n          (plVar51->data_statement).output_offset = bVar34;\n          plVar51 = plVar43;\n        }\n        else {\n          bVar15 = (plVar51->data_statement).output_offset;\n          if (bVar15 != 0) {\n            pbVar65 = *(bfd **)(*(long *)(bVar15 + 0x20) + 0xd0);\n            while (pbVar69 == pbVar65) {\n              pbVar62 = (bfd_vma *)(bVar15 + 0x30);\n              bVar15 = *(bfd_vma *)(bVar15 + 0x30);\n              if (bVar15 == 0) break;\n              pbVar65 = *(bfd **)(*(long *)(bVar15 + 0x20) + 0xd0);\n            }\n          }\n          *pbVar47 = (bfd_vma)plVar51;\n          plVar51 = (lang_statement_union *)*pbVar62;\n          *pbVar62 = bVar34;\n          if (pbVar69->usrdata != (void *)0x0) {\n            *(lang_data_statement_type **)((long)pbVar69->usrdata + 0x30) =\n                 (lang_data_statement_type *)(pbVar62 + -6);\n          }\n        }\n      }\n    }\n  }" { (expression_statement "plVar61 = stat_ptr->head;" (assignment_expression "plVar61 = stat_ptr->head" identifier = (field_expression "stat_ptr->head" identifier -> field_identifier)) ;) (expression_statement "pplVar13 = stat_ptr->tail;" (assignment_expression "pplVar13 = stat_ptr->tail" identifier = (field_expression "stat_ptr->tail" identifier -> field_identifier)) ;) (expression_statement "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      plugin_error_plugin();\n      pcVar27 = (char *)dcgettext(0,"%F%P: %s: plugin reported error after all symbols read\n",5);\n      einfo(pcVar27);\n    }" if (parenthesized_expression "(iVar25 != 0)" ( (binary_expression "iVar25 != 0" identifier != number_literal) )) (compound_statement "{\n      plugin_error_plugin();\n      pcVar27 = (char *)dcgettext(0,"%F%P: %s: plugin reported error after all symbols read\n",5);\n      einfo(pcVar27);\n    }" { (expression_statement "plugin_error_plugin();" (call_expression "plugin_error_plugin()" identifier (argument_list "()" ( ))) ;) (expression_statement "pcVar27 = (char *)dcgettext(0,"%F%P: %s: plugin reported error after all symbols read\n",5);" (assignment_expression "pcVar27 = (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(pcVar27);" (call_expression "einfo(pcVar27)" identifier (argument_list "(pcVar27)" ( identifier ))) ;) })) (expression_statement "open_input_bfds(*pplVar13,OPEN_BFD_NORMAL);" (call_expression "open_input_bfds(*pplVar13,OPEN_BFD_NORMAL)" identifier (argument_list "(*pplVar13,OPEN_BFD_NORMAL)" ( (pointer_expression "*pplVar13" * identifier) , identifier ))) ;) (expression_statement "plVar19 = stat_ptr;" (assignment_expression "plVar19 = stat_ptr" identifier = identifier) ;) (if_statement "if (stat_ptr->head != plVar61) {\n      info_assert("../../ld/ldlang.c",0x1baf);\n    }" if (parenthesized_expression "(stat_ptr->head != plVar61)" ( (binary_expression "stat_ptr->head != plVar61" (field_expression "stat_ptr->head" identifier -> field_identifier) != identifier) )) (compound_statement "{\n      info_assert("../../ld/ldlang.c",0x1baf);\n    }" { (expression_statement "info_assert("../../ld/ldlang.c",0x1baf);" (call_expression "info_assert("../../ld/ldlang.c",0x1baf)" identifier (argument_list "("../../ld/ldlang.c",0x1baf)" ( (string_literal ""../../ld/ldlang.c"" " string_content ") , number_literal ))) ;) })) (expression_statement "pplVar14 = plVar19->tail;" (assignment_expression "pplVar14 = plVar19->tail" identifier = (field_expression "plVar19->tail" identifier -> field_identifier)) ;) (expression_statement "plVar61 = *pplVar13;" (assignment_expression "plVar61 = *pplVar13" identifier = (pointer_expression "*pplVar13" * identifier)) ;) (expression_statement "plVar19->tail = pplVar13;" (assignment_expression "plVar19->tail = pplVar13" (field_expression "plVar19->tail" identifier -> field_identifier) = identifier) ;) (expression_statement "*pplVar13 = (lang_statement_union *)0x0;" (assignment_expression "*pplVar13 = (lang_statement_union *)0x0" (pointer_expression "*pplVar13" * identifier) = (cast_expression "(lang_statement_union *)0x0" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (file_chain.head != plVar51) {\n      info_assert("../../ld/ldlang.c",0x1baf);\n    }" if (parenthesized_expression "(file_chain.head != plVar51)" ( (binary_expression "file_chain.head != plVar51" (field_expression "file_chain.head" identifier . field_identifier) != identifier) )) (compound_statement "{\n      info_assert("../../ld/ldlang.c",0x1baf);\n    }" { (expression_statement "info_assert("../../ld/ldlang.c",0x1baf);" (call_expression "info_assert("../../ld/ldlang.c",0x1baf)" identifier (argument_list "("../../ld/ldlang.c",0x1baf)" ( (string_literal ""../../ld/ldlang.c"" " string_content ") , number_literal ))) ;) })) (expression_statement "pplVar13 = file_chain.tail;" (assignment_expression "pplVar13 = file_chain.tail" identifier = (field_expression "file_chain.tail" identifier . field_identifier)) ;) (expression_statement "plVar51 = *pplVar20;" (assignment_expression "plVar51 = *pplVar20" identifier = (pointer_expression "*pplVar20" * identifier)) ;) (expression_statement "file_chain.tail = pplVar20;" (assignment_expression "file_chain.tail = pplVar20" (field_expression "file_chain.tail" identifier . field_identifier) = identifier) ;) (expression_statement "*pplVar20 = (lang_statement_union *)0x0;" (assignment_expression "*pplVar20 = (lang_statement_union *)0x0" (pointer_expression "*pplVar20" * 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 != plVar43) {\n      info_assert("../../ld/ldlang.c",0x1baf);\n    }" if (parenthesized_expression "(input_file_chain.head != plVar43)" ( (binary_expression "input_file_chain.head != plVar43" (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 "pplVar20 = input_file_chain.tail;" (assignment_expression "pplVar20 = input_file_chain.tail" identifier = (field_expression "input_file_chain.tail" identifier . field_identifier)) ;) (expression_statement "plVar43 = *pplVar21;" (assignment_expression "plVar43 = *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 "plVar46 = file_chain.head;" (assignment_expression "plVar46 = file_chain.head" identifier = (field_expression "file_chain.head" identifier . field_identifier)) ;) (expression_statement "plVar70 = input_file_chain.head;" (assignment_expression "plVar70 = input_file_chain.head" identifier = (field_expression "input_file_chain.head" identifier . field_identifier)) ;) (if_statement "if (plVar61 != (lang_statement_union *)0x0) {\n      for (; plugin_insert = (lang_input_statement_type *)plVar70,\n          plVar46 != (lang_statement_union *)0x0; plVar46 = (plVar46->wild_statement).children.head)\n      {\n        if (((ulong)(plVar46->wild_statement).walk_wild_section_handler & 0x2000) != 0) {\n          if (((ulong)(plVar46->wild_statement).walk_wild_section_handler & 0x4000) == 0)\n          goto LAB_0011d6c0;\n          break;\n        }\n        if (((plVar46->reloc_statement).section != (asection *)0x0) &&\n           (((plVar46->reloc_statement).section)->moving_line_filepos == 0)) {\n          plugin_insert = (lang_input_statement_type *)plVar46;\n        }\n        plVar70 = (lang_statement_union *)plugin_insert;\n      }\n      plVar46 = (lang_statement_union *)plugin_insert;\n      if ((lang_statement_union *)plugin_insert == (lang_statement_union *)0x0) {\n        info_assert("../../ld/ldlang.c",0x1c32);\n        plVar46 = (lang_statement_union *)plugin_insert;\n      }\nLAB_0011d6c0:\n      plugin_insert = &plVar46->input_statement;\n      plVar22 = plugin_insert;\n      plVar19 = stat_ptr;\n      *pplVar14 = (plugin_insert->header).next;\n      (plVar22->header).next = plVar61;\n      if (plVar22 == (lang_input_statement_type *)plVar19->tail) {\n        plVar19->tail = pplVar14;\n      }\n      *pplVar20 = plVar22->next_real_file;\n      bVar72 = input_file_chain.tail == &plVar22->next_real_file;\n      plVar22->next_real_file = plVar43;\n      pplVar21 = file_chain.tail;\n      if (bVar72) {\n        input_file_chain.tail = pplVar20;\n      }\n      if (plVar22->filename == (char *)0x0) {\n        *pplVar13 = file_chain.head;\n        file_chain.head = plVar51;\n        if ((lang_statement_list_type *)pplVar21 != &file_chain) {\n          pplVar13 = file_chain.tail;\n        }\n      }\n      else {\n        *pplVar13 = plVar22->next;\n        plVar22->next = plVar51;\n        if (pplVar21 != &plVar22->next) {\n          pplVar13 = file_chain.tail;\n        }\n      }\n      file_chain.tail = pplVar13;\n      pplVar20 = file_chain.tail;\n      plVar51 = 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 != plVar51) {\n        info_assert("../../ld/ldlang.c",0x1baf);\n      }\n      plVar51 = *pplVar20;\n      file_chain.tail = pplVar20;\n      *pplVar20 = (lang_statement_union *)0x0;\n      while (plVar51 != (lang_statement_union *)0x0) {\n        pbVar69 = ((plVar51->input_statement).the_bfd)->my_archive;\n        pbVar65 = (plVar51->input_statement).the_bfd;\n        if (pbVar69 != (bfd *)0x0) {\n          pbVar65 = pbVar69;\n        }\n        if (input_file_chain.head == (lang_statement_union *)0x0) {\nLAB_0011dad0:\n          plVar61 = file_chain.head;\n        }\n        else {\n          plVar46 = (lang_statement_union *)0x0;\n          plVar43 = input_file_chain.head;\n          plVar61 = (lang_statement_union *)0x0;\n          do {\n            while ((bfd *)(plVar43->wild_statement).section_list != pbVar65) {\n              if (((bfd *)(plVar43->wild_statement).section_list != (bfd *)0x0) &&\n                 ((plVar43->wild_statement).children.head != (lang_statement_union *)0x0)) {\n                plVar46 = plVar43;\n              }\n              plVar43 = (lang_statement_union *)(plVar43->wild_statement).children.tail;\n              if (plVar43 == (lang_statement_union *)0x0) goto LAB_0011d7f1;\n            }\n            bVar34 = (plVar43->data_statement).output_offset;\n            if (bVar34 != 0) {\n              pbVar47 = (bfd_vma *)(bVar34 + 0x30);\n              bVar34 = *(bfd_vma *)(bVar34 + 0x30);\n              goto LAB_0011d835;\n            }\n            plVar43 = (lang_statement_union *)(plVar43->wild_statement).children.tail;\n            plVar61 = plVar46;\n          } while (plVar43 != (lang_statement_union *)0x0);\nLAB_0011d7f1:\n          if (plVar61 == (lang_statement_union *)0x0) goto LAB_0011dad0;\n        }\n        pbVar47 = &(plVar61->data_statement).output_offset;\n        for (bVar34 = *pbVar47; bVar34 != 0; bVar34 = *(bfd_vma *)(bVar34 + 0x30)) {\n          if (((*(byte *)(bVar34 + 0x49) & 0x40) == 0) &&\n             (*(long *)(*(long *)(bVar34 + 0x20) + 0xd0) == 0)) {\n            bVar34 = *pbVar47;\n            break;\n          }\n          pbVar47 = (bfd_vma *)(bVar34 + 0x30);\n        }\nLAB_0011d835:\n        pbVar62 = &(plVar51->data_statement).output_offset;\n        if (pbVar69 == (bfd *)0x0) {\n          *pbVar47 = (bfd_vma)plVar51;\n          plVar43 = (plVar51->wild_statement).children.head;\n          (plVar51->data_statement).output_offset = bVar34;\n          plVar51 = plVar43;\n        }\n        else {\n          bVar15 = (plVar51->data_statement).output_offset;\n          if (bVar15 != 0) {\n            pbVar65 = *(bfd **)(*(long *)(bVar15 + 0x20) + 0xd0);\n            while (pbVar69 == pbVar65) {\n              pbVar62 = (bfd_vma *)(bVar15 + 0x30);\n              bVar15 = *(bfd_vma *)(bVar15 + 0x30);\n              if (bVar15 == 0) break;\n              pbVar65 = *(bfd **)(*(long *)(bVar15 + 0x20) + 0xd0);\n            }\n          }\n          *pbVar47 = (bfd_vma)plVar51;\n          plVar51 = (lang_statement_union *)*pbVar62;\n          *pbVar62 = bVar34;\n          if (pbVar69->usrdata != (void *)0x0) {\n            *(lang_data_statement_type **)((long)pbVar69->usrdata + 0x30) =\n                 (lang_data_statement_type *)(pbVar62 + -6);\n          }\n        }\n      }\n    }" if (parenthesized_expression "(plVar61 != (lang_statement_union *)0x0)" ( (binary_expression "plVar61 != (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 *)plVar70,\n          plVar46 != (lang_statement_union *)0x0; plVar46 = (plVar46->wild_statement).children.head)\n      {\n        if (((ulong)(plVar46->wild_statement).walk_wild_section_handler & 0x2000) != 0) {\n          if (((ulong)(plVar46->wild_statement).walk_wild_section_handler & 0x4000) == 0)\n          goto LAB_0011d6c0;\n          break;\n        }\n        if (((plVar46->reloc_statement).section != (asection *)0x0) &&\n           (((plVar46->reloc_statement).section)->moving_line_filepos == 0)) {\n          plugin_insert = (lang_input_statement_type *)plVar46;\n        }\n        plVar70 = (lang_statement_union *)plugin_insert;\n      }\n      plVar46 = (lang_statement_union *)plugin_insert;\n      if ((lang_statement_union *)plugin_insert == (lang_statement_union *)0x0) {\n        info_assert("../../ld/ldlang.c",0x1c32);\n        plVar46 = (lang_statement_union *)plugin_insert;\n      }\nLAB_0011d6c0:\n      plugin_insert = &plVar46->input_statement;\n      plVar22 = plugin_insert;\n      plVar19 = stat_ptr;\n      *pplVar14 = (plugin_insert->header).next;\n      (plVar22->header).next = plVar61;\n      if (plVar22 == (lang_input_statement_type *)plVar19->tail) {\n        plVar19->tail = pplVar14;\n      }\n      *pplVar20 = plVar22->next_real_file;\n      bVar72 = input_file_chain.tail == &plVar22->next_real_file;\n      plVar22->next_real_file = plVar43;\n      pplVar21 = file_chain.tail;\n      if (bVar72) {\n        input_file_chain.tail = pplVar20;\n      }\n      if (plVar22->filename == (char *)0x0) {\n        *pplVar13 = file_chain.head;\n        file_chain.head = plVar51;\n        if ((lang_statement_list_type *)pplVar21 != &file_chain) {\n          pplVar13 = file_chain.tail;\n        }\n      }\n      else {\n        *pplVar13 = plVar22->next;\n        plVar22->next = plVar51;\n        if (pplVar21 != &plVar22->next) {\n          pplVar13 = file_chain.tail;\n        }\n      }\n      file_chain.tail = pplVar13;\n      pplVar20 = file_chain.tail;\n      plVar51 = 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 != plVar51) {\n        info_assert("../../ld/ldlang.c",0x1baf);\n      }\n      plVar51 = *pplVar20;\n      file_chain.tail = pplVar20;\n      *pplVar20 = (lang_statement_union *)0x0;\n      while (plVar51 != (lang_statement_union *)0x0) {\n        pbVar69 = ((plVar51->input_statement).the_bfd)->my_archive;\n        pbVar65 = (plVar51->input_statement).the_bfd;\n        if (pbVar69 != (bfd *)0x0) {\n          pbVar65 = pbVar69;\n        }\n        if (input_file_chain.head == (lang_statement_union *)0x0) {\nLAB_0011dad0:\n          plVar61 = file_chain.head;\n        }\n        else {\n          plVar46 = (lang_statement_union *)0x0;\n          plVar43 = input_file_chain.head;\n          plVar61 = (lang_statement_union *)0x0;\n          do {\n            while ((bfd *)(plVar43->wild_statement).section_list != pbVar65) {\n              if (((bfd *)(plVar43->wild_statement).section_list != (bfd *)0x0) &&\n                 ((plVar43->wild_statement).children.head != (lang_statement_union *)0x0)) {\n                plVar46 = plVar43;\n              }\n              plVar43 = (lang_statement_union *)(plVar43->wild_statement).children.tail;\n              if (plVar43 == (lang_statement_union *)0x0) goto LAB_0011d7f1;\n            }\n            bVar34 = (plVar43->data_statement).output_offset;\n            if (bVar34 != 0) {\n              pbVar47 = (bfd_vma *)(bVar34 + 0x30);\n              bVar34 = *(bfd_vma *)(bVar34 + 0x30);\n              goto LAB_0011d835;\n            }\n            plVar43 = (lang_statement_union *)(plVar43->wild_statement).children.tail;\n            plVar61 = plVar46;\n          } while (plVar43 != (lang_statement_union *)0x0);\nLAB_0011d7f1:\n          if (plVar61 == (lang_statement_union *)0x0) goto LAB_0011dad0;\n        }\n        pbVar47 = &(plVar61->data_statement).output_offset;\n        for (bVar34 = *pbVar47; bVar34 != 0; bVar34 = *(bfd_vma *)(bVar34 + 0x30)) {\n          if (((*(byte *)(bVar34 + 0x49) & 0x40) == 0) &&\n             (*(long *)(*(long *)(bVar34 + 0x20) + 0xd0) == 0)) {\n            bVar34 = *pbVar47;\n            break;\n          }\n          pbVar47 = (bfd_vma *)(bVar34 + 0x30);\n        }\nLAB_0011d835:\n        pbVar62 = &(plVar51->data_statement).output_offset;\n        if (pbVar69 == (bfd *)0x0) {\n          *pbVar47 = (bfd_vma)plVar51;\n          plVar43 = (plVar51->wild_statement).children.head;\n          (plVar51->data_statement).output_offset = bVar34;\n          plVar51 = plVar43;\n        }\n        else {\n          bVar15 = (plVar51->data_statement).output_offset;\n          if (bVar15 != 0) {\n            pbVar65 = *(bfd **)(*(long *)(bVar15 + 0x20) + 0xd0);\n            while (pbVar69 == pbVar65) {\n              pbVar62 = (bfd_vma *)(bVar15 + 0x30);\n              bVar15 = *(bfd_vma *)(bVar15 + 0x30);\n              if (bVar15 == 0) break;\n              pbVar65 = *(bfd **)(*(long *)(bVar15 + 0x20) + 0xd0);\n            }\n          }\n          *pbVar47 = (bfd_vma)plVar51;\n          plVar51 = (lang_statement_union *)*pbVar62;\n          *pbVar62 = bVar34;\n          if (pbVar69->usrdata != (void *)0x0) {\n            *(lang_data_statement_type **)((long)pbVar69->usrdata + 0x30) =\n                 (lang_data_statement_type *)(pbVar62 + -6);\n          }\n        }\n      }\n    }" { (for_statement "for (; plugin_insert = (lang_input_statement_type *)plVar70,\n          plVar46 != (lang_statement_union *)0x0; plVar46 = (plVar46->wild_statement).children.head)\n      {\n        if (((ulong)(plVar46->wild_statement).walk_wild_section_handler & 0x2000) != 0) {\n          if (((ulong)(plVar46->wild_statement).walk_wild_section_handler & 0x4000) == 0)\n          goto LAB_0011d6c0;\n          break;\n        }\n        if (((plVar46->reloc_statement).section != (asection *)0x0) &&\n           (((plVar46->reloc_statement).section)->moving_line_filepos == 0)) {\n          plugin_insert = (lang_input_statement_type *)plVar46;\n        }\n        plVar70 = (lang_statement_union *)plugin_insert;\n      }" for ( ; (comma_expression "plugin_insert = (lang_input_statement_type *)plVar70,\n          plVar46 != (lang_statement_union *)0x0" (assignment_expression "plugin_insert = (lang_input_statement_type *)plVar70" identifier = (cast_expression "(lang_input_statement_type *)plVar70" ( (type_descriptor "lang_input_statement_type *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , (binary_expression "plVar46 != (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 "plVar46 = (plVar46->wild_statement).children.head" identifier = (field_expression "(plVar46->wild_statement).children.head" (field_expression "(plVar46->wild_statement).children" (parenthesized_expression "(plVar46->wild_statement)" ( (field_expression "plVar46->wild_statement" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ) (compound_statement "{\n        if (((ulong)(plVar46->wild_statement).walk_wild_section_handler & 0x2000) != 0) {\n          if (((ulong)(plVar46->wild_statement).walk_wild_section_handler & 0x4000) == 0)\n          goto LAB_0011d6c0;\n          break;\n        }\n        if (((plVar46->reloc_statement).section != (asection *)0x0) &&\n           (((plVar46->reloc_statement).section)->moving_line_filepos == 0)) {\n          plugin_insert = (lang_input_statement_type *)plVar46;\n        }\n        plVar70 = (lang_statement_union *)plugin_insert;\n      }" { (if_statement "if (((ulong)(plVar46->wild_statement).walk_wild_section_handler & 0x2000) != 0) {\n          if (((ulong)(plVar46->wild_statement).walk_wild_section_handler & 0x4000) == 0)\n          goto LAB_0011d6c0;\n          break;\n        }" if (parenthesized_expression "(((ulong)(plVar46->wild_statement).walk_wild_section_handler & 0x2000) != 0)" ( (binary_expression "((ulong)(plVar46->wild_statement).walk_wild_section_handler & 0x2000) != 0" (parenthesized_expression "((ulong)(plVar46->wild_statement).walk_wild_section_handler & 0x2000)" ( (binary_expression "(ulong)(plVar46->wild_statement).walk_wild_section_handler & 0x2000" (field_expression "(ulong)(plVar46->wild_statement).walk_wild_section_handler" (call_expression "(ulong)(plVar46->wild_statement)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(plVar46->wild_statement)" ( (field_expression "plVar46->wild_statement" identifier -> field_identifier) ))) . field_identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n          if (((ulong)(plVar46->wild_statement).walk_wild_section_handler & 0x4000) == 0)\n          goto LAB_0011d6c0;\n          break;\n        }" { (if_statement "if (((ulong)(plVar46->wild_statement).walk_wild_section_handler & 0x4000) == 0)\n          goto LAB_0011d6c0;" if (parenthesized_expression "(((ulong)(plVar46->wild_statement).walk_wild_section_handler & 0x4000) == 0)" ( (binary_expression "((ulong)(plVar46->wild_statement).walk_wild_section_handler & 0x4000) == 0" (parenthesized_expression "((ulong)(plVar46->wild_statement).walk_wild_section_handler & 0x4000)" ( (binary_expression "(ulong)(plVar46->wild_statement).walk_wild_section_handler & 0x4000" (field_expression "(ulong)(plVar46->wild_statement).walk_wild_section_handler" (call_expression "(ulong)(plVar46->wild_statement)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(plVar46->wild_statement)" ( (field_expression "plVar46->wild_statement" identifier -> field_identifier) ))) . field_identifier) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_0011d6c0;" goto statement_identifier ;)) (break_statement "break;" break ;) })) (if_statement "if (((plVar46->reloc_statement).section != (asection *)0x0) &&\n           (((plVar46->reloc_statement).section)->moving_line_filepos == 0)) {\n          plugin_insert = (lang_input_statement_type *)plVar46;\n        }" if (parenthesized_expression "(((plVar46->reloc_statement).section != (asection *)0x0) &&\n           (((plVar46->reloc_statement).section)->moving_line_filepos == 0))" ( (binary_expression "((plVar46->reloc_statement).section != (asection *)0x0) &&\n           (((plVar46->reloc_statement).section)->moving_line_filepos == 0)" (parenthesized_expression "((plVar46->reloc_statement).section != (asection *)0x0)" ( (binary_expression "(plVar46->reloc_statement).section != (asection *)0x0" (field_expression "(plVar46->reloc_statement).section" (parenthesized_expression "(plVar46->reloc_statement)" ( (field_expression "plVar46->reloc_statement" identifier -> field_identifier) )) . field_identifier) != (cast_expression "(asection *)0x0" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(((plVar46->reloc_statement).section)->moving_line_filepos == 0)" ( (binary_expression "((plVar46->reloc_statement).section)->moving_line_filepos == 0" (field_expression "((plVar46->reloc_statement).section)->moving_line_filepos" (parenthesized_expression "((plVar46->reloc_statement).section)" ( (field_expression "(plVar46->reloc_statement).section" (parenthesized_expression "(plVar46->reloc_statement)" ( (field_expression "plVar46->reloc_statement" identifier -> field_identifier) )) . field_identifier) )) -> field_identifier) == number_literal) ))) )) (compound_statement "{\n          plugin_insert = (lang_input_statement_type *)plVar46;\n        }" { (expression_statement "plugin_insert = (lang_input_statement_type *)plVar46;" (assignment_expression "plugin_insert = (lang_input_statement_type *)plVar46" identifier = (cast_expression "(lang_input_statement_type *)plVar46" ( (type_descriptor "lang_input_statement_type *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) })) (expression_statement "plVar70 = (lang_statement_union *)plugin_insert;" (assignment_expression "plVar70 = (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 "plVar46 = (lang_statement_union *)plugin_insert;" (assignment_expression "plVar46 = (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        plVar46 = (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        plVar46 = (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 "plVar46 = (lang_statement_union *)plugin_insert;" (assignment_expression "plVar46 = (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_0011d6c0:\n      plugin_insert = &plVar46->input_statement;" statement_identifier : (expression_statement "plugin_insert = &plVar46->input_statement;" (assignment_expression "plugin_insert = &plVar46->input_statement" identifier = (pointer_expression "&plVar46->input_statement" & (field_expression "plVar46->input_statement" identifier -> field_identifier))) ;)) (expression_statement "plVar22 = plugin_insert;" (assignment_expression "plVar22 = plugin_insert" identifier = identifier) ;) (expression_statement "plVar19 = stat_ptr;" (assignment_expression "plVar19 = stat_ptr" identifier = identifier) ;) (expression_statement "*pplVar14 = (plugin_insert->header).next;" (assignment_expression "*pplVar14 = (plugin_insert->header).next" (pointer_expression "*pplVar14" * identifier) = (field_expression "(plugin_insert->header).next" (parenthesized_expression "(plugin_insert->header)" ( (field_expression "plugin_insert->header" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "(plVar22->header).next = plVar61;" (assignment_expression "(plVar22->header).next = plVar61" (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 *)plVar19->tail) {\n        plVar19->tail = pplVar14;\n      }" if (parenthesized_expression "(plVar22 == (lang_input_statement_type *)plVar19->tail)" ( (binary_expression "plVar22 == (lang_input_statement_type *)plVar19->tail" identifier == (cast_expression "(lang_input_statement_type *)plVar19->tail" ( (type_descriptor "lang_input_statement_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "plVar19->tail" identifier -> field_identifier))) )) (compound_statement "{\n        plVar19->tail = pplVar14;\n      }" { (expression_statement "plVar19->tail = pplVar14;" (assignment_expression "plVar19->tail = pplVar14" (field_expression "plVar19->tail" identifier -> field_identifier) = identifier) ;) })) (expression_statement "*pplVar20 = plVar22->next_real_file;" (assignment_expression "*pplVar20 = plVar22->next_real_file" (pointer_expression "*pplVar20" * identifier) = (field_expression "plVar22->next_real_file" identifier -> field_identifier)) ;) (expression_statement "bVar72 = input_file_chain.tail == &plVar22->next_real_file;" (assignment_expression "bVar72 = input_file_chain.tail == &plVar22->next_real_file" identifier = (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)))) ;) (expression_statement "plVar22->next_real_file = plVar43;" (assignment_expression "plVar22->next_real_file = plVar43" (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 (bVar72) {\n        input_file_chain.tail = pplVar20;\n      }" if (parenthesized_expression "(bVar72)" ( identifier )) (compound_statement "{\n        input_file_chain.tail = pplVar20;\n      }" { (expression_statement "input_file_chain.tail = pplVar20;" (assignment_expression "input_file_chain.tail = pplVar20" (field_expression "input_file_chain.tail" identifier . field_identifier) = identifier) ;) })) (if_statement "if (plVar22->filename == (char *)0x0) {\n        *pplVar13 = file_chain.head;\n        file_chain.head = plVar51;\n        if ((lang_statement_list_type *)pplVar21 != &file_chain) {\n          pplVar13 = file_chain.tail;\n        }\n      }\n      else {\n        *pplVar13 = plVar22->next;\n        plVar22->next = plVar51;\n        if (pplVar21 != &plVar22->next) {\n          pplVar13 = 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        *pplVar13 = file_chain.head;\n        file_chain.head = plVar51;\n        if ((lang_statement_list_type *)pplVar21 != &file_chain) {\n          pplVar13 = file_chain.tail;\n        }\n      }" { (expression_statement "*pplVar13 = file_chain.head;" (assignment_expression "*pplVar13 = file_chain.head" (pointer_expression "*pplVar13" * identifier) = (field_expression "file_chain.head" identifier . field_identifier)) ;) (expression_statement "file_chain.head = plVar51;" (assignment_expression "file_chain.head = plVar51" (field_expression "file_chain.head" identifier . field_identifier) = identifier) ;) (if_statement "if ((lang_statement_list_type *)pplVar21 != &file_chain) {\n          pplVar13 = 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          pplVar13 = file_chain.tail;\n        }" { (expression_statement "pplVar13 = file_chain.tail;" (assignment_expression "pplVar13 = file_chain.tail" identifier = (field_expression "file_chain.tail" identifier . field_identifier)) ;) })) }) (else_clause "else {\n        *pplVar13 = plVar22->next;\n        plVar22->next = plVar51;\n        if (pplVar21 != &plVar22->next) {\n          pplVar13 = file_chain.tail;\n        }\n      }" else (compound_statement "{\n        *pplVar13 = plVar22->next;\n        plVar22->next = plVar51;\n        if (pplVar21 != &plVar22->next) {\n          pplVar13 = file_chain.tail;\n        }\n      }" { (expression_statement "*pplVar13 = plVar22->next;" (assignment_expression "*pplVar13 = plVar22->next" (pointer_expression "*pplVar13" * identifier) = (field_expression "plVar22->next" identifier -> field_identifier)) ;) (expression_statement "plVar22->next = plVar51;" (assignment_expression "plVar22->next = plVar51" (field_expression "plVar22->next" identifier -> field_identifier) = identifier) ;) (if_statement "if (pplVar21 != &plVar22->next) {\n          pplVar13 = 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          pplVar13 = file_chain.tail;\n        }" { (expression_statement "pplVar13 = file_chain.tail;" (assignment_expression "pplVar13 = file_chain.tail" identifier = (field_expression "file_chain.tail" identifier . field_identifier)) ;) })) }))) (expression_statement "file_chain.tail = pplVar13;" (assignment_expression "file_chain.tail = pplVar13" (field_expression "file_chain.tail" identifier . field_identifier) = identifier) ;) (expression_statement "pplVar20 = file_chain.tail;" (assignment_expression "pplVar20 = file_chain.tail" identifier = (field_expression "file_chain.tail" identifier . field_identifier)) ;) (expression_statement "plVar51 = file_chain.head;" (assignment_expression "plVar51 = 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 != plVar51) {\n        info_assert("../../ld/ldlang.c",0x1baf);\n      }" if (parenthesized_expression "(file_chain.head != plVar51)" ( (binary_expression "file_chain.head != plVar51" (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 "plVar51 = *pplVar20;" (assignment_expression "plVar51 = *pplVar20" identifier = (pointer_expression "*pplVar20" * identifier)) ;) (expression_statement "file_chain.tail = pplVar20;" (assignment_expression "file_chain.tail = pplVar20" (field_expression "file_chain.tail" identifier . field_identifier) = identifier) ;) (expression_statement "*pplVar20 = (lang_statement_union *)0x0;" (assignment_expression "*pplVar20 = (lang_statement_union *)0x0" (pointer_expression "*pplVar20" * identifier) = (cast_expression "(lang_statement_union *)0x0" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (while_statement "while (plVar51 != (lang_statement_union *)0x0) {\n        pbVar69 = ((plVar51->input_statement).the_bfd)->my_archive;\n        pbVar65 = (plVar51->input_statement).the_bfd;\n        if (pbVar69 != (bfd *)0x0) {\n          pbVar65 = pbVar69;\n        }\n        if (input_file_chain.head == (lang_statement_union *)0x0) {\nLAB_0011dad0:\n          plVar61 = file_chain.head;\n        }\n        else {\n          plVar46 = (lang_statement_union *)0x0;\n          plVar43 = input_file_chain.head;\n          plVar61 = (lang_statement_union *)0x0;\n          do {\n            while ((bfd *)(plVar43->wild_statement).section_list != pbVar65) {\n              if (((bfd *)(plVar43->wild_statement).section_list != (bfd *)0x0) &&\n                 ((plVar43->wild_statement).children.head != (lang_statement_union *)0x0)) {\n                plVar46 = plVar43;\n              }\n              plVar43 = (lang_statement_union *)(plVar43->wild_statement).children.tail;\n              if (plVar43 == (lang_statement_union *)0x0) goto LAB_0011d7f1;\n            }\n            bVar34 = (plVar43->data_statement).output_offset;\n            if (bVar34 != 0) {\n              pbVar47 = (bfd_vma *)(bVar34 + 0x30);\n              bVar34 = *(bfd_vma *)(bVar34 + 0x30);\n              goto LAB_0011d835;\n            }\n            plVar43 = (lang_statement_union *)(plVar43->wild_statement).children.tail;\n            plVar61 = plVar46;\n          } while (plVar43 != (lang_statement_union *)0x0);\nLAB_0011d7f1:\n          if (plVar61 == (lang_statement_union *)0x0) goto LAB_0011dad0;\n        }\n        pbVar47 = &(plVar61->data_statement).output_offset;\n        for (bVar34 = *pbVar47; bVar34 != 0; bVar34 = *(bfd_vma *)(bVar34 + 0x30)) {\n          if (((*(byte *)(bVar34 + 0x49) & 0x40) == 0) &&\n             (*(long *)(*(long *)(bVar34 + 0x20) + 0xd0) == 0)) {\n            bVar34 = *pbVar47;\n            break;\n          }\n          pbVar47 = (bfd_vma *)(bVar34 + 0x30);\n        }\nLAB_0011d835:\n        pbVar62 = &(plVar51->data_statement).output_offset;\n        if (pbVar69 == (bfd *)0x0) {\n          *pbVar47 = (bfd_vma)plVar51;\n          plVar43 = (plVar51->wild_statement).children.head;\n          (plVar51->data_statement).output_offset = bVar34;\n          plVar51 = plVar43;\n        }\n        else {\n          bVar15 = (plVar51->data_statement).output_offset;\n          if (bVar15 != 0) {\n            pbVar65 = *(bfd **)(*(long *)(bVar15 + 0x20) + 0xd0);\n            while (pbVar69 == pbVar65) {\n              pbVar62 = (bfd_vma *)(bVar15 + 0x30);\n              bVar15 = *(bfd_vma *)(bVar15 + 0x30);\n              if (bVar15 == 0) break;\n              pbVar65 = *(bfd **)(*(long *)(bVar15 + 0x20) + 0xd0);\n            }\n          }\n          *pbVar47 = (bfd_vma)plVar51;\n          plVar51 = (lang_statement_union *)*pbVar62;\n          *pbVar62 = bVar34;\n          if (pbVar69->usrdata != (void *)0x0) {\n            *(lang_data_statement_type **)((long)pbVar69->usrdata + 0x30) =\n                 (lang_data_statement_type *)(pbVar62 + -6);\n          }\n        }\n      }" while (parenthesized_expression "(plVar51 != (lang_statement_union *)0x0)" ( (binary_expression "plVar51 != (lang_statement_union *)0x0" identifier != (cast_expression "(lang_statement_union *)0x0" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        pbVar69 = ((plVar51->input_statement).the_bfd)->my_archive;\n        pbVar65 = (plVar51->input_statement).the_bfd;\n        if (pbVar69 != (bfd *)0x0) {\n          pbVar65 = pbVar69;\n        }\n        if (input_file_chain.head == (lang_statement_union *)0x0) {\nLAB_0011dad0:\n          plVar61 = file_chain.head;\n        }\n        else {\n          plVar46 = (lang_statement_union *)0x0;\n          plVar43 = input_file_chain.head;\n          plVar61 = (lang_statement_union *)0x0;\n          do {\n            while ((bfd *)(plVar43->wild_statement).section_list != pbVar65) {\n              if (((bfd *)(plVar43->wild_statement).section_list != (bfd *)0x0) &&\n                 ((plVar43->wild_statement).children.head != (lang_statement_union *)0x0)) {\n                plVar46 = plVar43;\n              }\n              plVar43 = (lang_statement_union *)(plVar43->wild_statement).children.tail;\n              if (plVar43 == (lang_statement_union *)0x0) goto LAB_0011d7f1;\n            }\n            bVar34 = (plVar43->data_statement).output_offset;\n            if (bVar34 != 0) {\n              pbVar47 = (bfd_vma *)(bVar34 + 0x30);\n              bVar34 = *(bfd_vma *)(bVar34 + 0x30);\n              goto LAB_0011d835;\n            }\n            plVar43 = (lang_statement_union *)(plVar43->wild_statement).children.tail;\n            plVar61 = plVar46;\n          } while (plVar43 != (lang_statement_union *)0x0);\nLAB_0011d7f1:\n          if (plVar61 == (lang_statement_union *)0x0) goto LAB_0011dad0;\n        }\n        pbVar47 = &(plVar61->data_statement).output_offset;\n        for (bVar34 = *pbVar47; bVar34 != 0; bVar34 = *(bfd_vma *)(bVar34 + 0x30)) {\n          if (((*(byte *)(bVar34 + 0x49) & 0x40) == 0) &&\n             (*(long *)(*(long *)(bVar34 + 0x20) + 0xd0) == 0)) {\n            bVar34 = *pbVar47;\n            break;\n          }\n          pbVar47 = (bfd_vma *)(bVar34 + 0x30);\n        }\nLAB_0011d835:\n        pbVar62 = &(plVar51->data_statement).output_offset;\n        if (pbVar69 == (bfd *)0x0) {\n          *pbVar47 = (bfd_vma)plVar51;\n          plVar43 = (plVar51->wild_statement).children.head;\n          (plVar51->data_statement).output_offset = bVar34;\n          plVar51 = plVar43;\n        }\n        else {\n          bVar15 = (plVar51->data_statement).output_offset;\n          if (bVar15 != 0) {\n            pbVar65 = *(bfd **)(*(long *)(bVar15 + 0x20) + 0xd0);\n            while (pbVar69 == pbVar65) {\n              pbVar62 = (bfd_vma *)(bVar15 + 0x30);\n              bVar15 = *(bfd_vma *)(bVar15 + 0x30);\n              if (bVar15 == 0) break;\n              pbVar65 = *(bfd **)(*(long *)(bVar15 + 0x20) + 0xd0);\n            }\n          }\n          *pbVar47 = (bfd_vma)plVar51;\n          plVar51 = (lang_statement_union *)*pbVar62;\n          *pbVar62 = bVar34;\n          if (pbVar69->usrdata != (void *)0x0) {\n            *(lang_data_statement_type **)((long)pbVar69->usrdata + 0x30) =\n                 (lang_data_statement_type *)(pbVar62 + -6);\n          }\n        }\n      }" { (expression_statement "pbVar69 = ((plVar51->input_statement).the_bfd)->my_archive;" (assignment_expression "pbVar69 = ((plVar51->input_statement).the_bfd)->my_archive" identifier = (field_expression "((plVar51->input_statement).the_bfd)->my_archive" (parenthesized_expression "((plVar51->input_statement).the_bfd)" ( (field_expression "(plVar51->input_statement).the_bfd" (parenthesized_expression "(plVar51->input_statement)" ( (field_expression "plVar51->input_statement" identifier -> field_identifier) )) . field_identifier) )) -> field_identifier)) ;) (expression_statement "pbVar65 = (plVar51->input_statement).the_bfd;" (assignment_expression "pbVar65 = (plVar51->input_statement).the_bfd" identifier = (field_expression "(plVar51->input_statement).the_bfd" (parenthesized_expression "(plVar51->input_statement)" ( (field_expression "plVar51->input_statement" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if (pbVar69 != (bfd *)0x0) {\n          pbVar65 = pbVar69;\n        }" if (parenthesized_expression "(pbVar69 != (bfd *)0x0)" ( (binary_expression "pbVar69 != (bfd *)0x0" identifier != (cast_expression "(bfd *)0x0" ( (type_descriptor "bfd *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          pbVar65 = pbVar69;\n        }" { (expression_statement "pbVar65 = pbVar69;" (assignment_expression "pbVar65 = pbVar69" identifier = identifier) ;) })) (if_statement "if (input_file_chain.head == (lang_statement_union *)0x0) {\nLAB_0011dad0:\n          plVar61 = file_chain.head;\n        }\n        else {\n          plVar46 = (lang_statement_union *)0x0;\n          plVar43 = input_file_chain.head;\n          plVar61 = (lang_statement_union *)0x0;\n          do {\n            while ((bfd *)(plVar43->wild_statement).section_list != pbVar65) {\n              if (((bfd *)(plVar43->wild_statement).section_list != (bfd *)0x0) &&\n                 ((plVar43->wild_statement).children.head != (lang_statement_union *)0x0)) {\n                plVar46 = plVar43;\n              }\n              plVar43 = (lang_statement_union *)(plVar43->wild_statement).children.tail;\n              if (plVar43 == (lang_statement_union *)0x0) goto LAB_0011d7f1;\n            }\n            bVar34 = (plVar43->data_statement).output_offset;\n            if (bVar34 != 0) {\n              pbVar47 = (bfd_vma *)(bVar34 + 0x30);\n              bVar34 = *(bfd_vma *)(bVar34 + 0x30);\n              goto LAB_0011d835;\n            }\n            plVar43 = (lang_statement_union *)(plVar43->wild_statement).children.tail;\n            plVar61 = plVar46;\n          } while (plVar43 != (lang_statement_union *)0x0);\nLAB_0011d7f1:\n          if (plVar61 == (lang_statement_union *)0x0) goto LAB_0011dad0;\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 "{\nLAB_0011dad0:\n          plVar61 = file_chain.head;\n        }" { (labeled_statement "LAB_0011dad0:\n          plVar61 = file_chain.head;" statement_identifier : (expression_statement "plVar61 = file_chain.head;" (assignment_expression "plVar61 = file_chain.head" identifier = (field_expression "file_chain.head" identifier . field_identifier)) ;)) }) (else_clause "else {\n          plVar46 = (lang_statement_union *)0x0;\n          plVar43 = input_file_chain.head;\n          plVar61 = (lang_statement_union *)0x0;\n          do {\n            while ((bfd *)(plVar43->wild_statement).section_list != pbVar65) {\n              if (((bfd *)(plVar43->wild_statement).section_list != (bfd *)0x0) &&\n                 ((plVar43->wild_statement).children.head != (lang_statement_union *)0x0)) {\n                plVar46 = plVar43;\n              }\n              plVar43 = (lang_statement_union *)(plVar43->wild_statement).children.tail;\n              if (plVar43 == (lang_statement_union *)0x0) goto LAB_0011d7f1;\n            }\n            bVar34 = (plVar43->data_statement).output_offset;\n            if (bVar34 != 0) {\n              pbVar47 = (bfd_vma *)(bVar34 + 0x30);\n              bVar34 = *(bfd_vma *)(bVar34 + 0x30);\n              goto LAB_0011d835;\n            }\n            plVar43 = (lang_statement_union *)(plVar43->wild_statement).children.tail;\n            plVar61 = plVar46;\n          } while (plVar43 != (lang_statement_union *)0x0);\nLAB_0011d7f1:\n          if (plVar61 == (lang_statement_union *)0x0) goto LAB_0011dad0;\n        }" else (compound_statement "{\n          plVar46 = (lang_statement_union *)0x0;\n          plVar43 = input_file_chain.head;\n          plVar61 = (lang_statement_union *)0x0;\n          do {\n            while ((bfd *)(plVar43->wild_statement).section_list != pbVar65) {\n              if (((bfd *)(plVar43->wild_statement).section_list != (bfd *)0x0) &&\n                 ((plVar43->wild_statement).children.head != (lang_statement_union *)0x0)) {\n                plVar46 = plVar43;\n              }\n              plVar43 = (lang_statement_union *)(plVar43->wild_statement).children.tail;\n              if (plVar43 == (lang_statement_union *)0x0) goto LAB_0011d7f1;\n            }\n            bVar34 = (plVar43->data_statement).output_offset;\n            if (bVar34 != 0) {\n              pbVar47 = (bfd_vma *)(bVar34 + 0x30);\n              bVar34 = *(bfd_vma *)(bVar34 + 0x30);\n              goto LAB_0011d835;\n            }\n            plVar43 = (lang_statement_union *)(plVar43->wild_statement).children.tail;\n            plVar61 = plVar46;\n          } while (plVar43 != (lang_statement_union *)0x0);\nLAB_0011d7f1:\n          if (plVar61 == (lang_statement_union *)0x0) goto LAB_0011dad0;\n        }" { (expression_statement "plVar46 = (lang_statement_union *)0x0;" (assignment_expression "plVar46 = (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 "plVar43 = input_file_chain.head;" (assignment_expression "plVar43 = input_file_chain.head" identifier = (field_expression "input_file_chain.head" identifier . field_identifier)) ;) (expression_statement "plVar61 = (lang_statement_union *)0x0;" (assignment_expression "plVar61 = (lang_statement_union *)0x0" identifier = (cast_expression "(lang_statement_union *)0x0" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n            while ((bfd *)(plVar43->wild_statement).section_list != pbVar65) {\n              if (((bfd *)(plVar43->wild_statement).section_list != (bfd *)0x0) &&\n                 ((plVar43->wild_statement).children.head != (lang_statement_union *)0x0)) {\n                plVar46 = plVar43;\n              }\n              plVar43 = (lang_statement_union *)(plVar43->wild_statement).children.tail;\n              if (plVar43 == (lang_statement_union *)0x0) goto LAB_0011d7f1;\n            }\n            bVar34 = (plVar43->data_statement).output_offset;\n            if (bVar34 != 0) {\n              pbVar47 = (bfd_vma *)(bVar34 + 0x30);\n              bVar34 = *(bfd_vma *)(bVar34 + 0x30);\n              goto LAB_0011d835;\n            }\n            plVar43 = (lang_statement_union *)(plVar43->wild_statement).children.tail;\n            plVar61 = plVar46;\n          } while (plVar43 != (lang_statement_union *)0x0);" do (compound_statement "{\n            while ((bfd *)(plVar43->wild_statement).section_list != pbVar65) {\n              if (((bfd *)(plVar43->wild_statement).section_list != (bfd *)0x0) &&\n                 ((plVar43->wild_statement).children.head != (lang_statement_union *)0x0)) {\n                plVar46 = plVar43;\n              }\n              plVar43 = (lang_statement_union *)(plVar43->wild_statement).children.tail;\n              if (plVar43 == (lang_statement_union *)0x0) goto LAB_0011d7f1;\n            }\n            bVar34 = (plVar43->data_statement).output_offset;\n            if (bVar34 != 0) {\n              pbVar47 = (bfd_vma *)(bVar34 + 0x30);\n              bVar34 = *(bfd_vma *)(bVar34 + 0x30);\n              goto LAB_0011d835;\n            }\n            plVar43 = (lang_statement_union *)(plVar43->wild_statement).children.tail;\n            plVar61 = plVar46;\n          }" { (while_statement "while ((bfd *)(plVar43->wild_statement).section_list != pbVar65) {\n              if (((bfd *)(plVar43->wild_statement).section_list != (bfd *)0x0) &&\n                 ((plVar43->wild_statement).children.head != (lang_statement_union *)0x0)) {\n                plVar46 = plVar43;\n              }\n              plVar43 = (lang_statement_union *)(plVar43->wild_statement).children.tail;\n              if (plVar43 == (lang_statement_union *)0x0) goto LAB_0011d7f1;\n            }" while (parenthesized_expression "((bfd *)(plVar43->wild_statement).section_list != pbVar65)" ( (binary_expression "(bfd *)(plVar43->wild_statement).section_list != pbVar65" (cast_expression "(bfd *)(plVar43->wild_statement).section_list" ( (type_descriptor "bfd *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(plVar43->wild_statement).section_list" (parenthesized_expression "(plVar43->wild_statement)" ( (field_expression "plVar43->wild_statement" identifier -> field_identifier) )) . field_identifier)) != identifier) )) (compound_statement "{\n              if (((bfd *)(plVar43->wild_statement).section_list != (bfd *)0x0) &&\n                 ((plVar43->wild_statement).children.head != (lang_statement_union *)0x0)) {\n                plVar46 = plVar43;\n              }\n              plVar43 = (lang_statement_union *)(plVar43->wild_statement).children.tail;\n              if (plVar43 == (lang_statement_union *)0x0) goto LAB_0011d7f1;\n            }" { (if_statement "if (((bfd *)(plVar43->wild_statement).section_list != (bfd *)0x0) &&\n                 ((plVar43->wild_statement).children.head != (lang_statement_union *)0x0)) {\n                plVar46 = plVar43;\n              }" if (parenthesized_expression "(((bfd *)(plVar43->wild_statement).section_list != (bfd *)0x0) &&\n                 ((plVar43->wild_statement).children.head != (lang_statement_union *)0x0))" ( (binary_expression "((bfd *)(plVar43->wild_statement).section_list != (bfd *)0x0) &&\n                 ((plVar43->wild_statement).children.head != (lang_statement_union *)0x0)" (parenthesized_expression "((bfd *)(plVar43->wild_statement).section_list != (bfd *)0x0)" ( (binary_expression "(bfd *)(plVar43->wild_statement).section_list != (bfd *)0x0" (cast_expression "(bfd *)(plVar43->wild_statement).section_list" ( (type_descriptor "bfd *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(plVar43->wild_statement).section_list" (parenthesized_expression "(plVar43->wild_statement)" ( (field_expression "plVar43->wild_statement" identifier -> field_identifier) )) . field_identifier)) != (cast_expression "(bfd *)0x0" ( (type_descriptor "bfd *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "((plVar43->wild_statement).children.head != (lang_statement_union *)0x0)" ( (binary_expression "(plVar43->wild_statement).children.head != (lang_statement_union *)0x0" (field_expression "(plVar43->wild_statement).children.head" (field_expression "(plVar43->wild_statement).children" (parenthesized_expression "(plVar43->wild_statement)" ( (field_expression "plVar43->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                plVar46 = plVar43;\n              }" { (expression_statement "plVar46 = plVar43;" (assignment_expression "plVar46 = plVar43" identifier = identifier) ;) })) (expression_statement "plVar43 = (lang_statement_union *)(plVar43->wild_statement).children.tail;" (assignment_expression "plVar43 = (lang_statement_union *)(plVar43->wild_statement).children.tail" identifier = (cast_expression "(lang_statement_union *)(plVar43->wild_statement).children.tail" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(plVar43->wild_statement).children.tail" (field_expression "(plVar43->wild_statement).children" (parenthesized_expression "(plVar43->wild_statement)" ( (field_expression "plVar43->wild_statement" identifier -> field_identifier) )) . field_identifier) . field_identifier))) ;) (if_statement "if (plVar43 == (lang_statement_union *)0x0) goto LAB_0011d7f1;" if (parenthesized_expression "(plVar43 == (lang_statement_union *)0x0)" ( (binary_expression "plVar43 == (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_0011d7f1;" goto statement_identifier ;)) })) (expression_statement "bVar34 = (plVar43->data_statement).output_offset;" (assignment_expression "bVar34 = (plVar43->data_statement).output_offset" identifier = (field_expression "(plVar43->data_statement).output_offset" (parenthesized_expression "(plVar43->data_statement)" ( (field_expression "plVar43->data_statement" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if (bVar34 != 0) {\n              pbVar47 = (bfd_vma *)(bVar34 + 0x30);\n              bVar34 = *(bfd_vma *)(bVar34 + 0x30);\n              goto LAB_0011d835;\n            }" if (parenthesized_expression "(bVar34 != 0)" ( (binary_expression "bVar34 != 0" identifier != number_literal) )) (compound_statement "{\n              pbVar47 = (bfd_vma *)(bVar34 + 0x30);\n              bVar34 = *(bfd_vma *)(bVar34 + 0x30);\n              goto LAB_0011d835;\n            }" { (expression_statement "pbVar47 = (bfd_vma *)(bVar34 + 0x30);" (assignment_expression "pbVar47 = (bfd_vma *)(bVar34 + 0x30)" identifier = (cast_expression "(bfd_vma *)(bVar34 + 0x30)" ( (type_descriptor "bfd_vma *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(bVar34 + 0x30)" ( (binary_expression "bVar34 + 0x30" identifier + number_literal) )))) ;) (expression_statement "bVar34 = *(bfd_vma *)(bVar34 + 0x30);" (assignment_expression "bVar34 = *(bfd_vma *)(bVar34 + 0x30)" identifier = (pointer_expression "*(bfd_vma *)(bVar34 + 0x30)" * (cast_expression "(bfd_vma *)(bVar34 + 0x30)" ( (type_descriptor "bfd_vma *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(bVar34 + 0x30)" ( (binary_expression "bVar34 + 0x30" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0011d835;" goto statement_identifier ;) })) (expression_statement "plVar43 = (lang_statement_union *)(plVar43->wild_statement).children.tail;" (assignment_expression "plVar43 = (lang_statement_union *)(plVar43->wild_statement).children.tail" identifier = (cast_expression "(lang_statement_union *)(plVar43->wild_statement).children.tail" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(plVar43->wild_statement).children.tail" (field_expression "(plVar43->wild_statement).children" (parenthesized_expression "(plVar43->wild_statement)" ( (field_expression "plVar43->wild_statement" identifier -> field_identifier) )) . field_identifier) . field_identifier))) ;) (expression_statement "plVar61 = plVar46;" (assignment_expression "plVar61 = plVar46" identifier = identifier) ;) }) while (parenthesized_expression "(plVar43 != (lang_statement_union *)0x0)" ( (binary_expression "plVar43 != (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_0011d7f1:\n          if (plVar61 == (lang_statement_union *)0x0) goto LAB_0011dad0;" statement_identifier : (if_statement "if (plVar61 == (lang_statement_union *)0x0) goto LAB_0011dad0;" if (parenthesized_expression "(plVar61 == (lang_statement_union *)0x0)" ( (binary_expression "plVar61 == (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_0011dad0;" goto statement_identifier ;))) }))) (expression_statement "pbVar47 = &(plVar61->data_statement).output_offset;" (assignment_expression "pbVar47 = &(plVar61->data_statement).output_offset" identifier = (pointer_expression "&(plVar61->data_statement).output_offset" & (field_expression "(plVar61->data_statement).output_offset" (parenthesized_expression "(plVar61->data_statement)" ( (field_expression "plVar61->data_statement" identifier -> field_identifier) )) . field_identifier))) ;) (for_statement "for (bVar34 = *pbVar47; bVar34 != 0; bVar34 = *(bfd_vma *)(bVar34 + 0x30)) {\n          if (((*(byte *)(bVar34 + 0x49) & 0x40) == 0) &&\n             (*(long *)(*(long *)(bVar34 + 0x20) + 0xd0) == 0)) {\n            bVar34 = *pbVar47;\n            break;\n          }\n          pbVar47 = (bfd_vma *)(bVar34 + 0x30);\n        }" for ( (assignment_expression "bVar34 = *pbVar47" identifier = (pointer_expression "*pbVar47" * identifier)) ; (binary_expression "bVar34 != 0" identifier != number_literal) ; (assignment_expression "bVar34 = *(bfd_vma *)(bVar34 + 0x30)" identifier = (pointer_expression "*(bfd_vma *)(bVar34 + 0x30)" * (cast_expression "(bfd_vma *)(bVar34 + 0x30)" ( (type_descriptor "bfd_vma *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(bVar34 + 0x30)" ( (binary_expression "bVar34 + 0x30" identifier + number_literal) ))))) ) (compound_statement "{\n          if (((*(byte *)(bVar34 + 0x49) & 0x40) == 0) &&\n             (*(long *)(*(long *)(bVar34 + 0x20) + 0xd0) == 0)) {\n            bVar34 = *pbVar47;\n            break;\n          }\n          pbVar47 = (bfd_vma *)(bVar34 + 0x30);\n        }" { (if_statement "if (((*(byte *)(bVar34 + 0x49) & 0x40) == 0) &&\n             (*(long *)(*(long *)(bVar34 + 0x20) + 0xd0) == 0)) {\n            bVar34 = *pbVar47;\n            break;\n          }" if (parenthesized_expression "(((*(byte *)(bVar34 + 0x49) & 0x40) == 0) &&\n             (*(long *)(*(long *)(bVar34 + 0x20) + 0xd0) == 0))" ( (binary_expression "((*(byte *)(bVar34 + 0x49) & 0x40) == 0) &&\n             (*(long *)(*(long *)(bVar34 + 0x20) + 0xd0) == 0)" (parenthesized_expression "((*(byte *)(bVar34 + 0x49) & 0x40) == 0)" ( (binary_expression "(*(byte *)(bVar34 + 0x49) & 0x40) == 0" (parenthesized_expression "(*(byte *)(bVar34 + 0x49) & 0x40)" ( (binary_expression "*(byte *)(bVar34 + 0x49) & 0x40" (pointer_expression "*(byte *)(bVar34 + 0x49)" * (cast_expression "(byte *)(bVar34 + 0x49)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(bVar34 + 0x49)" ( (binary_expression "bVar34 + 0x49" identifier + number_literal) )))) & number_literal) )) == number_literal) )) && (parenthesized_expression "(*(long *)(*(long *)(bVar34 + 0x20) + 0xd0) == 0)" ( (binary_expression "*(long *)(*(long *)(bVar34 + 0x20) + 0xd0) == 0" (pointer_expression "*(long *)(*(long *)(bVar34 + 0x20) + 0xd0)" * (cast_expression "(long *)(*(long *)(bVar34 + 0x20) + 0xd0)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(bVar34 + 0x20) + 0xd0)" ( (binary_expression "*(long *)(bVar34 + 0x20) + 0xd0" (pointer_expression "*(long *)(bVar34 + 0x20)" * (cast_expression "(long *)(bVar34 + 0x20)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(bVar34 + 0x20)" ( (binary_expression "bVar34 + 0x20" identifier + number_literal) )))) + number_literal) )))) == number_literal) ))) )) (compound_statement "{\n            bVar34 = *pbVar47;\n            break;\n          }" { (expression_statement "bVar34 = *pbVar47;" (assignment_expression "bVar34 = *pbVar47" identifier = (pointer_expression "*pbVar47" * identifier)) ;) (break_statement "break;" break ;) })) (expression_statement "pbVar47 = (bfd_vma *)(bVar34 + 0x30);" (assignment_expression "pbVar47 = (bfd_vma *)(bVar34 + 0x30)" identifier = (cast_expression "(bfd_vma *)(bVar34 + 0x30)" ( (type_descriptor "bfd_vma *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(bVar34 + 0x30)" ( (binary_expression "bVar34 + 0x30" identifier + number_literal) )))) ;) })) (labeled_statement "LAB_0011d835:\n        pbVar62 = &(plVar51->data_statement).output_offset;" statement_identifier : (expression_statement "pbVar62 = &(plVar51->data_statement).output_offset;" (assignment_expression "pbVar62 = &(plVar51->data_statement).output_offset" identifier = (pointer_expression "&(plVar51->data_statement).output_offset" & (field_expression "(plVar51->data_statement).output_offset" (parenthesized_expression "(plVar51->data_statement)" ( (field_expression "plVar51->data_statement" identifier -> field_identifier) )) . field_identifier))) ;)) (if_statement "if (pbVar69 == (bfd *)0x0) {\n          *pbVar47 = (bfd_vma)plVar51;\n          plVar43 = (plVar51->wild_statement).children.head;\n          (plVar51->data_statement).output_offset = bVar34;\n          plVar51 = plVar43;\n        }\n        else {\n          bVar15 = (plVar51->data_statement).output_offset;\n          if (bVar15 != 0) {\n            pbVar65 = *(bfd **)(*(long *)(bVar15 + 0x20) + 0xd0);\n            while (pbVar69 == pbVar65) {\n              pbVar62 = (bfd_vma *)(bVar15 + 0x30);\n              bVar15 = *(bfd_vma *)(bVar15 + 0x30);\n              if (bVar15 == 0) break;\n              pbVar65 = *(bfd **)(*(long *)(bVar15 + 0x20) + 0xd0);\n            }\n          }\n          *pbVar47 = (bfd_vma)plVar51;\n          plVar51 = (lang_statement_union *)*pbVar62;\n          *pbVar62 = bVar34;\n          if (pbVar69->usrdata != (void *)0x0) {\n            *(lang_data_statement_type **)((long)pbVar69->usrdata + 0x30) =\n                 (lang_data_statement_type *)(pbVar62 + -6);\n          }\n        }" if (parenthesized_expression "(pbVar69 == (bfd *)0x0)" ( (binary_expression "pbVar69 == (bfd *)0x0" identifier == (cast_expression "(bfd *)0x0" ( (type_descriptor "bfd *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          *pbVar47 = (bfd_vma)plVar51;\n          plVar43 = (plVar51->wild_statement).children.head;\n          (plVar51->data_statement).output_offset = bVar34;\n          plVar51 = plVar43;\n        }" { (expression_statement "*pbVar47 = (bfd_vma)plVar51;" (assignment_expression "*pbVar47 = (bfd_vma)plVar51" (pointer_expression "*pbVar47" * identifier) = (cast_expression "(bfd_vma)plVar51" ( (type_descriptor "bfd_vma" type_identifier) ) identifier)) ;) (expression_statement "plVar43 = (plVar51->wild_statement).children.head;" (assignment_expression "plVar43 = (plVar51->wild_statement).children.head" identifier = (field_expression "(plVar51->wild_statement).children.head" (field_expression "(plVar51->wild_statement).children" (parenthesized_expression "(plVar51->wild_statement)" ( (field_expression "plVar51->wild_statement" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) (expression_statement "(plVar51->data_statement).output_offset = bVar34;" (assignment_expression "(plVar51->data_statement).output_offset = bVar34" (field_expression "(plVar51->data_statement).output_offset" (parenthesized_expression "(plVar51->data_statement)" ( (field_expression "plVar51->data_statement" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "plVar51 = plVar43;" (assignment_expression "plVar51 = plVar43" identifier = identifier) ;) }) (else_clause "else {\n          bVar15 = (plVar51->data_statement).output_offset;\n          if (bVar15 != 0) {\n            pbVar65 = *(bfd **)(*(long *)(bVar15 + 0x20) + 0xd0);\n            while (pbVar69 == pbVar65) {\n              pbVar62 = (bfd_vma *)(bVar15 + 0x30);\n              bVar15 = *(bfd_vma *)(bVar15 + 0x30);\n              if (bVar15 == 0) break;\n              pbVar65 = *(bfd **)(*(long *)(bVar15 + 0x20) + 0xd0);\n            }\n          }\n          *pbVar47 = (bfd_vma)plVar51;\n          plVar51 = (lang_statement_union *)*pbVar62;\n          *pbVar62 = bVar34;\n          if (pbVar69->usrdata != (void *)0x0) {\n            *(lang_data_statement_type **)((long)pbVar69->usrdata + 0x30) =\n                 (lang_data_statement_type *)(pbVar62 + -6);\n          }\n        }" else (compound_statement "{\n          bVar15 = (plVar51->data_statement).output_offset;\n          if (bVar15 != 0) {\n            pbVar65 = *(bfd **)(*(long *)(bVar15 + 0x20) + 0xd0);\n            while (pbVar69 == pbVar65) {\n              pbVar62 = (bfd_vma *)(bVar15 + 0x30);\n              bVar15 = *(bfd_vma *)(bVar15 + 0x30);\n              if (bVar15 == 0) break;\n              pbVar65 = *(bfd **)(*(long *)(bVar15 + 0x20) + 0xd0);\n            }\n          }\n          *pbVar47 = (bfd_vma)plVar51;\n          plVar51 = (lang_statement_union *)*pbVar62;\n          *pbVar62 = bVar34;\n          if (pbVar69->usrdata != (void *)0x0) {\n            *(lang_data_statement_type **)((long)pbVar69->usrdata + 0x30) =\n                 (lang_data_statement_type *)(pbVar62 + -6);\n          }\n        }" { (expression_statement "bVar15 = (plVar51->data_statement).output_offset;" (assignment_expression "bVar15 = (plVar51->data_statement).output_offset" identifier = (field_expression "(plVar51->data_statement).output_offset" (parenthesized_expression "(plVar51->data_statement)" ( (field_expression "plVar51->data_statement" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if (bVar15 != 0) {\n            pbVar65 = *(bfd **)(*(long *)(bVar15 + 0x20) + 0xd0);\n            while (pbVar69 == pbVar65) {\n              pbVar62 = (bfd_vma *)(bVar15 + 0x30);\n              bVar15 = *(bfd_vma *)(bVar15 + 0x30);\n              if (bVar15 == 0) break;\n              pbVar65 = *(bfd **)(*(long *)(bVar15 + 0x20) + 0xd0);\n            }\n          }" if (parenthesized_expression "(bVar15 != 0)" ( (binary_expression "bVar15 != 0" identifier != number_literal) )) (compound_statement "{\n            pbVar65 = *(bfd **)(*(long *)(bVar15 + 0x20) + 0xd0);\n            while (pbVar69 == pbVar65) {\n              pbVar62 = (bfd_vma *)(bVar15 + 0x30);\n              bVar15 = *(bfd_vma *)(bVar15 + 0x30);\n              if (bVar15 == 0) break;\n              pbVar65 = *(bfd **)(*(long *)(bVar15 + 0x20) + 0xd0);\n            }\n          }" { (expression_statement "pbVar65 = *(bfd **)(*(long *)(bVar15 + 0x20) + 0xd0);" (assignment_expression "pbVar65 = *(bfd **)(*(long *)(bVar15 + 0x20) + 0xd0)" identifier = (pointer_expression "*(bfd **)(*(long *)(bVar15 + 0x20) + 0xd0)" * (cast_expression "(bfd **)(*(long *)(bVar15 + 0x20) + 0xd0)" ( (type_descriptor "bfd **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)(bVar15 + 0x20) + 0xd0)" ( (binary_expression "*(long *)(bVar15 + 0x20) + 0xd0" (pointer_expression "*(long *)(bVar15 + 0x20)" * (cast_expression "(long *)(bVar15 + 0x20)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(bVar15 + 0x20)" ( (binary_expression "bVar15 + 0x20" identifier + number_literal) )))) + number_literal) ))))) ;) (while_statement "while (pbVar69 == pbVar65) {\n              pbVar62 = (bfd_vma *)(bVar15 + 0x30);\n              bVar15 = *(bfd_vma *)(bVar15 + 0x30);\n              if (bVar15 == 0) break;\n              pbVar65 = *(bfd **)(*(long *)(bVar15 + 0x20) + 0xd0);\n            }" while (parenthesized_expression "(pbVar69 == pbVar65)" ( (binary_expression "pbVar69 == pbVar65" identifier == identifier) )) (compound_statement "{\n              pbVar62 = (bfd_vma *)(bVar15 + 0x30);\n              bVar15 = *(bfd_vma *)(bVar15 + 0x30);\n              if (bVar15 == 0) break;\n              pbVar65 = *(bfd **)(*(long *)(bVar15 + 0x20) + 0xd0);\n            }" { (expression_statement "pbVar62 = (bfd_vma *)(bVar15 + 0x30);" (assignment_expression "pbVar62 = (bfd_vma *)(bVar15 + 0x30)" identifier = (cast_expression "(bfd_vma *)(bVar15 + 0x30)" ( (type_descriptor "bfd_vma *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(bVar15 + 0x30)" ( (binary_expression "bVar15 + 0x30" identifier + number_literal) )))) ;) (expression_statement "bVar15 = *(bfd_vma *)(bVar15 + 0x30);" (assignment_expression "bVar15 = *(bfd_vma *)(bVar15 + 0x30)" identifier = (pointer_expression "*(bfd_vma *)(bVar15 + 0x30)" * (cast_expression "(bfd_vma *)(bVar15 + 0x30)" ( (type_descriptor "bfd_vma *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(bVar15 + 0x30)" ( (binary_expression "bVar15 + 0x30" identifier + number_literal) ))))) ;) (if_statement "if (bVar15 == 0) break;" if (parenthesized_expression "(bVar15 == 0)" ( (binary_expression "bVar15 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "pbVar65 = *(bfd **)(*(long *)(bVar15 + 0x20) + 0xd0);" (assignment_expression "pbVar65 = *(bfd **)(*(long *)(bVar15 + 0x20) + 0xd0)" identifier = (pointer_expression "*(bfd **)(*(long *)(bVar15 + 0x20) + 0xd0)" * (cast_expression "(bfd **)(*(long *)(bVar15 + 0x20) + 0xd0)" ( (type_descriptor "bfd **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)(bVar15 + 0x20) + 0xd0)" ( (binary_expression "*(long *)(bVar15 + 0x20) + 0xd0" (pointer_expression "*(long *)(bVar15 + 0x20)" * (cast_expression "(long *)(bVar15 + 0x20)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(bVar15 + 0x20)" ( (binary_expression "bVar15 + 0x20" identifier + number_literal) )))) + number_literal) ))))) ;) })) })) (expression_statement "*pbVar47 = (bfd_vma)plVar51;" (assignment_expression "*pbVar47 = (bfd_vma)plVar51" (pointer_expression "*pbVar47" * identifier) = (cast_expression "(bfd_vma)plVar51" ( (type_descriptor "bfd_vma" type_identifier) ) identifier)) ;) (expression_statement "plVar51 = (lang_statement_union *)*pbVar62;" (assignment_expression "plVar51 = (lang_statement_union *)*pbVar62" identifier = (cast_expression "(lang_statement_union *)*pbVar62" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*pbVar62" * identifier))) ;) (expression_statement "*pbVar62 = bVar34;" (assignment_expression "*pbVar62 = bVar34" (pointer_expression "*pbVar62" * identifier) = identifier) ;) (if_statement "if (pbVar69->usrdata != (void *)0x0) {\n            *(lang_data_statement_type **)((long)pbVar69->usrdata + 0x30) =\n                 (lang_data_statement_type *)(pbVar62 + -6);\n          }" if (parenthesized_expression "(pbVar69->usrdata != (void *)0x0)" ( (binary_expression "pbVar69->usrdata != (void *)0x0" (field_expression "pbVar69->usrdata" identifier -> field_identifier) != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            *(lang_data_statement_type **)((long)pbVar69->usrdata + 0x30) =\n                 (lang_data_statement_type *)(pbVar62 + -6);\n          }" { (expression_statement "*(lang_data_statement_type **)((long)pbVar69->usrdata + 0x30) =\n                 (lang_data_statement_type *)(pbVar62 + -6);" (assignment_expression "*(lang_data_statement_type **)((long)pbVar69->usrdata + 0x30) =\n                 (lang_data_statement_type *)(pbVar62 + -6)" (pointer_expression "*(lang_data_statement_type **)((long)pbVar69->usrdata + 0x30)" * (cast_expression "(lang_data_statement_type **)((long)pbVar69->usrdata + 0x30)" ( (type_descriptor "lang_data_statement_type **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((long)pbVar69->usrdata + 0x30)" ( (binary_expression "(long)pbVar69->usrdata + 0x30" (cast_expression "(long)pbVar69->usrdata" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (field_expression "pbVar69->usrdata" identifier -> field_identifier)) + number_literal) )))) = (cast_expression "(lang_data_statement_type *)(pbVar62 + -6)" ( (type_descriptor "lang_data_statement_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar62 + -6)" ( (binary_expression "pbVar62 + -6" 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    pcVar27 = (char *)dcgettext(0,\n                                "\nAs-needed library included to satisfy reference by file (symbol)\n\n"\n                                ,5);\n    minfo(pcVar27);\n    for (paVar5 = asneeded_list_head; paVar5 != (asneeded_minfo *)0x0; paVar5 = paVar5->next) {\n      minfo("%s",paVar5->soname);\n      sVar28 = strlen(paVar5->soname);\n      if (0x1c < sVar28) {\n        print_nl();\n        sVar28 = 0;\n      }\n      do {\n        print_space();\n        sVar28 = sVar28 + 1;\n      } while (sVar28 != 0x1e);\n      if (paVar5->ref != (bfd *)0x0) {\n        minfo("%pB ");\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    pcVar27 = (char *)dcgettext(0,\n                                "\nAs-needed library included to satisfy reference by file (symbol)\n\n"\n                                ,5);\n    minfo(pcVar27);\n    for (paVar5 = asneeded_list_head; paVar5 != (asneeded_minfo *)0x0; paVar5 = paVar5->next) {\n      minfo("%s",paVar5->soname);\n      sVar28 = strlen(paVar5->soname);\n      if (0x1c < sVar28) {\n        print_nl();\n        sVar28 = 0;\n      }\n      do {\n        print_space();\n        sVar28 = sVar28 + 1;\n      } while (sVar28 != 0x1e);\n      if (paVar5->ref != (bfd *)0x0) {\n        minfo("%pB ");\n      }\n      minfo("(%pT)\n",paVar5->name);\n    }\n  }" { (expression_statement "pcVar27 = (char *)dcgettext(0,\n                                "\nAs-needed library included to satisfy reference by file (symbol)\n\n"\n                                ,5);" (assignment_expression "pcVar27 = (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(pcVar27);" (call_expression "minfo(pcVar27)" identifier (argument_list "(pcVar27)" ( identifier ))) ;) (for_statement "for (paVar5 = asneeded_list_head; paVar5 != (asneeded_minfo *)0x0; paVar5 = paVar5->next) {\n      minfo("%s",paVar5->soname);\n      sVar28 = strlen(paVar5->soname);\n      if (0x1c < sVar28) {\n        print_nl();\n        sVar28 = 0;\n      }\n      do {\n        print_space();\n        sVar28 = sVar28 + 1;\n      } while (sVar28 != 0x1e);\n      if (paVar5->ref != (bfd *)0x0) {\n        minfo("%pB ");\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      sVar28 = strlen(paVar5->soname);\n      if (0x1c < sVar28) {\n        print_nl();\n        sVar28 = 0;\n      }\n      do {\n        print_space();\n        sVar28 = sVar28 + 1;\n      } while (sVar28 != 0x1e);\n      if (paVar5->ref != (bfd *)0x0) {\n        minfo("%pB ");\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 "sVar28 = strlen(paVar5->soname);" (assignment_expression "sVar28 = 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 < sVar28) {\n        print_nl();\n        sVar28 = 0;\n      }" if (parenthesized_expression "(0x1c < sVar28)" ( (binary_expression "0x1c < sVar28" number_literal < identifier) )) (compound_statement "{\n        print_nl();\n        sVar28 = 0;\n      }" { (expression_statement "print_nl();" (call_expression "print_nl()" identifier (argument_list "()" ( ))) ;) (expression_statement "sVar28 = 0;" (assignment_expression "sVar28 = 0" identifier = number_literal) ;) })) (do_statement "do {\n        print_space();\n        sVar28 = sVar28 + 1;\n      } while (sVar28 != 0x1e);" do (compound_statement "{\n        print_space();\n        sVar28 = sVar28 + 1;\n      }" { (expression_statement "print_space();" (call_expression "print_space()" identifier (argument_list "()" ( ))) ;) (expression_statement "sVar28 = sVar28 + 1;" (assignment_expression "sVar28 = sVar28 + 1" identifier = (binary_expression "sVar28 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(sVar28 != 0x1e)" ( (binary_expression "sVar28 != 0x1e" identifier != number_literal) )) ;) (if_statement "if (paVar5->ref != (bfd *)0x0) {\n        minfo("%pB ");\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 ");\n      }" { (expression_statement "minfo("%pB ");" (call_expression "minfo("%pB ")" identifier (argument_list "("%pB ")" ( (string_literal ""%pB "" " string_content ") ))) ;) })) (expression_statement "minfo("(%pT)\n",paVar5->name);" (call_expression "minfo("(%pT)\n",paVar5->name)" identifier (argument_list "("(%pT)\n",paVar5->name)" ( (string_literal ""(%pT)\n"" " string_content escape_sequence ") , (field_expression "paVar5->name" identifier -> field_identifier) ))) ;) })) })) (expression_statement "bfd_section_already_linked_table_free();" (call_expression "bfd_section_already_linked_table_free()" identifier (argument_list "()" ( ))) ;) (expression_statement "plVar51 = file_chain.head;" (assignment_expression "plVar51 = file_chain.head" identifier = (field_expression "file_chain.head" identifier . field_identifier)) ;) (labeled_statement "joined_r0x0011be7f:\n  if (plVar51 != (lang_statement_union *)0x0) {\n    do {\n      if (((ulong)(plVar51->wild_statement).walk_wild_section_handler & 0x2000) == 0) {\n        pbVar69 = (plVar51->input_statement).the_bfd;\n        lVar29 = bfd_arch_get_compatible\n                           (pbVar69,link_info.output_bfd,command_line.accept_unknown_input_arch);\n        pbVar65 = link_info.output_bfd;\n        if (((link_info._0_1_ & 3) == 2) || ((link_info._3_1_ & 8) != 0)) {\n          if (lVar29 != 0) {\n            pbVar31 = pbVar69->xvec;\n            pbVar48 = (link_info.output_bfd)->xvec;\n            if ((pbVar31->flavour != pbVar48->flavour) && ((pbVar69->field_0x44 & 0x20) != 0))\n            goto LAB_0011c12e;\n            goto LAB_0011bed4;\n          }\n          if ((pbVar69->field_0x44 & 0x20) != 0) {\n            pbVar31 = pbVar69->xvec;\n            pbVar48 = (link_info.output_bfd)->xvec;\nLAB_0011c12e:\n            pcVar27 = pbVar48->name;\n            pcVar36 = pbVar31->name;\n            fmt = (char *)dcgettext(0,\n                                    "%F%P: relocatable linking with relocations from format %s (%pB) to format %s (%pB) is not supported\n"\n                                    ,5);\n            einfo(fmt,pcVar36,pbVar69,pcVar27,pbVar65);\n            goto joined_r0x0011c167;\n          }\n        }\n        else {\njoined_r0x0011c167:\n          if (lVar29 != 0) {\nLAB_0011bed4:\n            if (pbVar69->section_count == 0) goto LAB_0011bf30;\n            if (command_line.warn_mismatch == 0) {\n              bfd_set_error_handler(ignore_bfd_errors);\n            }\n            bVar26 = (*(link_info.output_bfd)->xvec->_bfd_merge_private_bfd_data)\n                               (pbVar69,&link_info);\n            if (bVar26 == 0) {\n              if (command_line.warn_mismatch != 0) {\n                pcVar27 = (char *)dcgettext(0,\n                                            "%X%P: failed to merge target specific data of file %pB\n"\n                                            ,5);\n                einfo(pcVar27,pbVar69);\n                goto LAB_0011c5b0;\n              }\n            }\n            else {\nLAB_0011c5b0:\n              if (command_line.warn_mismatch != 0) goto code_r0x0011c5be;\n            }\n            bfd_set_error_handler();\n            goto LAB_0011bf30;\n          }\n        }\n        if (command_line.warn_mismatch == 0) goto LAB_0011bf30;\n        bfd_printable_name(link_info.output_bfd);\n        uVar37 = bfd_printable_name(pbVar69);\n        pcVar27 = (char *)dcgettext(0,\n                                    "%X%P: %s architecture of input file `%pB\' is incompatible with %s output\n"\n                                    ,5);\n        einfo(pcVar27,uVar37,pbVar69);\n        plVar51 = (plVar51->wild_statement).children.head;\n      }\n      else {\nLAB_0011bf30:\n        plVar51 = (plVar51->wild_statement).children.head;\n      }\n      if (plVar51 == (lang_statement_union *)0x0) break;\n    } while( true );\n  }" statement_identifier : (if_statement "if (plVar51 != (lang_statement_union *)0x0) {\n    do {\n      if (((ulong)(plVar51->wild_statement).walk_wild_section_handler & 0x2000) == 0) {\n        pbVar69 = (plVar51->input_statement).the_bfd;\n        lVar29 = bfd_arch_get_compatible\n                           (pbVar69,link_info.output_bfd,command_line.accept_unknown_input_arch);\n        pbVar65 = link_info.output_bfd;\n        if (((link_info._0_1_ & 3) == 2) || ((link_info._3_1_ & 8) != 0)) {\n          if (lVar29 != 0) {\n            pbVar31 = pbVar69->xvec;\n            pbVar48 = (link_info.output_bfd)->xvec;\n            if ((pbVar31->flavour != pbVar48->flavour) && ((pbVar69->field_0x44 & 0x20) != 0))\n            goto LAB_0011c12e;\n            goto LAB_0011bed4;\n          }\n          if ((pbVar69->field_0x44 & 0x20) != 0) {\n            pbVar31 = pbVar69->xvec;\n            pbVar48 = (link_info.output_bfd)->xvec;\nLAB_0011c12e:\n            pcVar27 = pbVar48->name;\n            pcVar36 = pbVar31->name;\n            fmt = (char *)dcgettext(0,\n                                    "%F%P: relocatable linking with relocations from format %s (%pB) to format %s (%pB) is not supported\n"\n                                    ,5);\n            einfo(fmt,pcVar36,pbVar69,pcVar27,pbVar65);\n            goto joined_r0x0011c167;\n          }\n        }\n        else {\njoined_r0x0011c167:\n          if (lVar29 != 0) {\nLAB_0011bed4:\n            if (pbVar69->section_count == 0) goto LAB_0011bf30;\n            if (command_line.warn_mismatch == 0) {\n              bfd_set_error_handler(ignore_bfd_errors);\n            }\n            bVar26 = (*(link_info.output_bfd)->xvec->_bfd_merge_private_bfd_data)\n                               (pbVar69,&link_info);\n            if (bVar26 == 0) {\n              if (command_line.warn_mismatch != 0) {\n                pcVar27 = (char *)dcgettext(0,\n                                            "%X%P: failed to merge target specific data of file %pB\n"\n                                            ,5);\n                einfo(pcVar27,pbVar69);\n                goto LAB_0011c5b0;\n              }\n            }\n            else {\nLAB_0011c5b0:\n              if (command_line.warn_mismatch != 0) goto code_r0x0011c5be;\n            }\n            bfd_set_error_handler();\n            goto LAB_0011bf30;\n          }\n        }\n        if (command_line.warn_mismatch == 0) goto LAB_0011bf30;\n        bfd_printable_name(link_info.output_bfd);\n        uVar37 = bfd_printable_name(pbVar69);\n        pcVar27 = (char *)dcgettext(0,\n                                    "%X%P: %s architecture of input file `%pB\' is incompatible with %s output\n"\n                                    ,5);\n        einfo(pcVar27,uVar37,pbVar69);\n        plVar51 = (plVar51->wild_statement).children.head;\n      }\n      else {\nLAB_0011bf30:\n        plVar51 = (plVar51->wild_statement).children.head;\n      }\n      if (plVar51 == (lang_statement_union *)0x0) break;\n    } while( true );\n  }" if (parenthesized_expression "(plVar51 != (lang_statement_union *)0x0)" ( (binary_expression "plVar51 != (lang_statement_union *)0x0" identifier != (cast_expression "(lang_statement_union *)0x0" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    do {\n      if (((ulong)(plVar51->wild_statement).walk_wild_section_handler & 0x2000) == 0) {\n        pbVar69 = (plVar51->input_statement).the_bfd;\n        lVar29 = bfd_arch_get_compatible\n                           (pbVar69,link_info.output_bfd,command_line.accept_unknown_input_arch);\n        pbVar65 = link_info.output_bfd;\n        if (((link_info._0_1_ & 3) == 2) || ((link_info._3_1_ & 8) != 0)) {\n          if (lVar29 != 0) {\n            pbVar31 = pbVar69->xvec;\n            pbVar48 = (link_info.output_bfd)->xvec;\n            if ((pbVar31->flavour != pbVar48->flavour) && ((pbVar69->field_0x44 & 0x20) != 0))\n            goto LAB_0011c12e;\n            goto LAB_0011bed4;\n          }\n          if ((pbVar69->field_0x44 & 0x20) != 0) {\n            pbVar31 = pbVar69->xvec;\n            pbVar48 = (link_info.output_bfd)->xvec;\nLAB_0011c12e:\n            pcVar27 = pbVar48->name;\n            pcVar36 = pbVar31->name;\n            fmt = (char *)dcgettext(0,\n                                    "%F%P: relocatable linking with relocations from format %s (%pB) to format %s (%pB) is not supported\n"\n                                    ,5);\n            einfo(fmt,pcVar36,pbVar69,pcVar27,pbVar65);\n            goto joined_r0x0011c167;\n          }\n        }\n        else {\njoined_r0x0011c167:\n          if (lVar29 != 0) {\nLAB_0011bed4:\n            if (pbVar69->section_count == 0) goto LAB_0011bf30;\n            if (command_line.warn_mismatch == 0) {\n              bfd_set_error_handler(ignore_bfd_errors);\n            }\n            bVar26 = (*(link_info.output_bfd)->xvec->_bfd_merge_private_bfd_data)\n                               (pbVar69,&link_info);\n            if (bVar26 == 0) {\n              if (command_line.warn_mismatch != 0) {\n                pcVar27 = (char *)dcgettext(0,\n                                            "%X%P: failed to merge target specific data of file %pB\n"\n                                            ,5);\n                einfo(pcVar27,pbVar69);\n                goto LAB_0011c5b0;\n              }\n            }\n            else {\nLAB_0011c5b0:\n              if (command_line.warn_mismatch != 0) goto code_r0x0011c5be;\n            }\n            bfd_set_error_handler();\n            goto LAB_0011bf30;\n          }\n        }\n        if (command_line.warn_mismatch == 0) goto LAB_0011bf30;\n        bfd_printable_name(link_info.output_bfd);\n        uVar37 = bfd_printable_name(pbVar69);\n        pcVar27 = (char *)dcgettext(0,\n                                    "%X%P: %s architecture of input file `%pB\' is incompatible with %s output\n"\n                                    ,5);\n        einfo(pcVar27,uVar37,pbVar69);\n        plVar51 = (plVar51->wild_statement).children.head;\n      }\n      else {\nLAB_0011bf30:\n        plVar51 = (plVar51->wild_statement).children.head;\n      }\n      if (plVar51 == (lang_statement_union *)0x0) break;\n    } while( true );\n  }" { (do_statement "do {\n      if (((ulong)(plVar51->wild_statement).walk_wild_section_handler & 0x2000) == 0) {\n        pbVar69 = (plVar51->input_statement).the_bfd;\n        lVar29 = bfd_arch_get_compatible\n                           (pbVar69,link_info.output_bfd,command_line.accept_unknown_input_arch);\n        pbVar65 = link_info.output_bfd;\n        if (((link_info._0_1_ & 3) == 2) || ((link_info._3_1_ & 8) != 0)) {\n          if (lVar29 != 0) {\n            pbVar31 = pbVar69->xvec;\n            pbVar48 = (link_info.output_bfd)->xvec;\n            if ((pbVar31->flavour != pbVar48->flavour) && ((pbVar69->field_0x44 & 0x20) != 0))\n            goto LAB_0011c12e;\n            goto LAB_0011bed4;\n          }\n          if ((pbVar69->field_0x44 & 0x20) != 0) {\n            pbVar31 = pbVar69->xvec;\n            pbVar48 = (link_info.output_bfd)->xvec;\nLAB_0011c12e:\n            pcVar27 = pbVar48->name;\n            pcVar36 = pbVar31->name;\n            fmt = (char *)dcgettext(0,\n                                    "%F%P: relocatable linking with relocations from format %s (%pB) to format %s (%pB) is not supported\n"\n                                    ,5);\n            einfo(fmt,pcVar36,pbVar69,pcVar27,pbVar65);\n            goto joined_r0x0011c167;\n          }\n        }\n        else {\njoined_r0x0011c167:\n          if (lVar29 != 0) {\nLAB_0011bed4:\n            if (pbVar69->section_count == 0) goto LAB_0011bf30;\n            if (command_line.warn_mismatch == 0) {\n              bfd_set_error_handler(ignore_bfd_errors);\n            }\n            bVar26 = (*(link_info.output_bfd)->xvec->_bfd_merge_private_bfd_data)\n                               (pbVar69,&link_info);\n            if (bVar26 == 0) {\n              if (command_line.warn_mismatch != 0) {\n                pcVar27 = (char *)dcgettext(0,\n                                            "%X%P: failed to merge target specific data of file %pB\n"\n                                            ,5);\n                einfo(pcVar27,pbVar69);\n                goto LAB_0011c5b0;\n              }\n            }\n            else {\nLAB_0011c5b0:\n              if (command_line.warn_mismatch != 0) goto code_r0x0011c5be;\n            }\n            bfd_set_error_handler();\n            goto LAB_0011bf30;\n          }\n        }\n        if (command_line.warn_mismatch == 0) goto LAB_0011bf30;\n        bfd_printable_name(link_info.output_bfd);\n        uVar37 = bfd_printable_name(pbVar69);\n        pcVar27 = (char *)dcgettext(0,\n                                    "%X%P: %s architecture of input file `%pB\' is incompatible with %s output\n"\n                                    ,5);\n        einfo(pcVar27,uVar37,pbVar69);\n        plVar51 = (plVar51->wild_statement).children.head;\n      }\n      else {\nLAB_0011bf30:\n        plVar51 = (plVar51->wild_statement).children.head;\n      }\n      if (plVar51 == (lang_statement_union *)0x0) break;\n    } while( true );" do (compound_statement "{\n      if (((ulong)(plVar51->wild_statement).walk_wild_section_handler & 0x2000) == 0) {\n        pbVar69 = (plVar51->input_statement).the_bfd;\n        lVar29 = bfd_arch_get_compatible\n                           (pbVar69,link_info.output_bfd,command_line.accept_unknown_input_arch);\n        pbVar65 = link_info.output_bfd;\n        if (((link_info._0_1_ & 3) == 2) || ((link_info._3_1_ & 8) != 0)) {\n          if (lVar29 != 0) {\n            pbVar31 = pbVar69->xvec;\n            pbVar48 = (link_info.output_bfd)->xvec;\n            if ((pbVar31->flavour != pbVar48->flavour) && ((pbVar69->field_0x44 & 0x20) != 0))\n            goto LAB_0011c12e;\n            goto LAB_0011bed4;\n          }\n          if ((pbVar69->field_0x44 & 0x20) != 0) {\n            pbVar31 = pbVar69->xvec;\n            pbVar48 = (link_info.output_bfd)->xvec;\nLAB_0011c12e:\n            pcVar27 = pbVar48->name;\n            pcVar36 = pbVar31->name;\n            fmt = (char *)dcgettext(0,\n                                    "%F%P: relocatable linking with relocations from format %s (%pB) to format %s (%pB) is not supported\n"\n                                    ,5);\n            einfo(fmt,pcVar36,pbVar69,pcVar27,pbVar65);\n            goto joined_r0x0011c167;\n          }\n        }\n        else {\njoined_r0x0011c167:\n          if (lVar29 != 0) {\nLAB_0011bed4:\n            if (pbVar69->section_count == 0) goto LAB_0011bf30;\n            if (command_line.warn_mismatch == 0) {\n              bfd_set_error_handler(ignore_bfd_errors);\n            }\n            bVar26 = (*(link_info.output_bfd)->xvec->_bfd_merge_private_bfd_data)\n                               (pbVar69,&link_info);\n            if (bVar26 == 0) {\n              if (command_line.warn_mismatch != 0) {\n                pcVar27 = (char *)dcgettext(0,\n                                            "%X%P: failed to merge target specific data of file %pB\n"\n                                            ,5);\n                einfo(pcVar27,pbVar69);\n                goto LAB_0011c5b0;\n              }\n            }\n            else {\nLAB_0011c5b0:\n              if (command_line.warn_mismatch != 0) goto code_r0x0011c5be;\n            }\n            bfd_set_error_handler();\n            goto LAB_0011bf30;\n          }\n        }\n        if (command_line.warn_mismatch == 0) goto LAB_0011bf30;\n        bfd_printable_name(link_info.output_bfd);\n        uVar37 = bfd_printable_name(pbVar69);\n        pcVar27 = (char *)dcgettext(0,\n                                    "%X%P: %s architecture of input file `%pB\' is incompatible with %s output\n"\n                                    ,5);\n        einfo(pcVar27,uVar37,pbVar69);\n        plVar51 = (plVar51->wild_statement).children.head;\n      }\n      else {\nLAB_0011bf30:\n        plVar51 = (plVar51->wild_statement).children.head;\n      }\n      if (plVar51 == (lang_statement_union *)0x0) break;\n    }" { (if_statement "if (((ulong)(plVar51->wild_statement).walk_wild_section_handler & 0x2000) == 0) {\n        pbVar69 = (plVar51->input_statement).the_bfd;\n        lVar29 = bfd_arch_get_compatible\n                           (pbVar69,link_info.output_bfd,command_line.accept_unknown_input_arch);\n        pbVar65 = link_info.output_bfd;\n        if (((link_info._0_1_ & 3) == 2) || ((link_info._3_1_ & 8) != 0)) {\n          if (lVar29 != 0) {\n            pbVar31 = pbVar69->xvec;\n            pbVar48 = (link_info.output_bfd)->xvec;\n            if ((pbVar31->flavour != pbVar48->flavour) && ((pbVar69->field_0x44 & 0x20) != 0))\n            goto LAB_0011c12e;\n            goto LAB_0011bed4;\n          }\n          if ((pbVar69->field_0x44 & 0x20) != 0) {\n            pbVar31 = pbVar69->xvec;\n            pbVar48 = (link_info.output_bfd)->xvec;\nLAB_0011c12e:\n            pcVar27 = pbVar48->name;\n            pcVar36 = pbVar31->name;\n            fmt = (char *)dcgettext(0,\n                                    "%F%P: relocatable linking with relocations from format %s (%pB) to format %s (%pB) is not supported\n"\n                                    ,5);\n            einfo(fmt,pcVar36,pbVar69,pcVar27,pbVar65);\n            goto joined_r0x0011c167;\n          }\n        }\n        else {\njoined_r0x0011c167:\n          if (lVar29 != 0) {\nLAB_0011bed4:\n            if (pbVar69->section_count == 0) goto LAB_0011bf30;\n            if (command_line.warn_mismatch == 0) {\n              bfd_set_error_handler(ignore_bfd_errors);\n            }\n            bVar26 = (*(link_info.output_bfd)->xvec->_bfd_merge_private_bfd_data)\n                               (pbVar69,&link_info);\n            if (bVar26 == 0) {\n              if (command_line.warn_mismatch != 0) {\n                pcVar27 = (char *)dcgettext(0,\n                                            "%X%P: failed to merge target specific data of file %pB\n"\n                                            ,5);\n                einfo(pcVar27,pbVar69);\n                goto LAB_0011c5b0;\n              }\n            }\n            else {\nLAB_0011c5b0:\n              if (command_line.warn_mismatch != 0) goto code_r0x0011c5be;\n            }\n            bfd_set_error_handler();\n            goto LAB_0011bf30;\n          }\n        }\n        if (command_line.warn_mismatch == 0) goto LAB_0011bf30;\n        bfd_printable_name(link_info.output_bfd);\n        uVar37 = bfd_printable_name(pbVar69);\n        pcVar27 = (char *)dcgettext(0,\n                                    "%X%P: %s architecture of input file `%pB\' is incompatible with %s output\n"\n                                    ,5);\n        einfo(pcVar27,uVar37,pbVar69);\n        plVar51 = (plVar51->wild_statement).children.head;\n      }\n      else {\nLAB_0011bf30:\n        plVar51 = (plVar51->wild_statement).children.head;\n      }" if (parenthesized_expression "(((ulong)(plVar51->wild_statement).walk_wild_section_handler & 0x2000) == 0)" ( (binary_expression "((ulong)(plVar51->wild_statement).walk_wild_section_handler & 0x2000) == 0" (parenthesized_expression "((ulong)(plVar51->wild_statement).walk_wild_section_handler & 0x2000)" ( (binary_expression "(ulong)(plVar51->wild_statement).walk_wild_section_handler & 0x2000" (field_expression "(ulong)(plVar51->wild_statement).walk_wild_section_handler" (call_expression "(ulong)(plVar51->wild_statement)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(plVar51->wild_statement)" ( (field_expression "plVar51->wild_statement" identifier -> field_identifier) ))) . field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n        pbVar69 = (plVar51->input_statement).the_bfd;\n        lVar29 = bfd_arch_get_compatible\n                           (pbVar69,link_info.output_bfd,command_line.accept_unknown_input_arch);\n        pbVar65 = link_info.output_bfd;\n        if (((link_info._0_1_ & 3) == 2) || ((link_info._3_1_ & 8) != 0)) {\n          if (lVar29 != 0) {\n            pbVar31 = pbVar69->xvec;\n            pbVar48 = (link_info.output_bfd)->xvec;\n            if ((pbVar31->flavour != pbVar48->flavour) && ((pbVar69->field_0x44 & 0x20) != 0))\n            goto LAB_0011c12e;\n            goto LAB_0011bed4;\n          }\n          if ((pbVar69->field_0x44 & 0x20) != 0) {\n            pbVar31 = pbVar69->xvec;\n            pbVar48 = (link_info.output_bfd)->xvec;\nLAB_0011c12e:\n            pcVar27 = pbVar48->name;\n            pcVar36 = pbVar31->name;\n            fmt = (char *)dcgettext(0,\n                                    "%F%P: relocatable linking with relocations from format %s (%pB) to format %s (%pB) is not supported\n"\n                                    ,5);\n            einfo(fmt,pcVar36,pbVar69,pcVar27,pbVar65);\n            goto joined_r0x0011c167;\n          }\n        }\n        else {\njoined_r0x0011c167:\n          if (lVar29 != 0) {\nLAB_0011bed4:\n            if (pbVar69->section_count == 0) goto LAB_0011bf30;\n            if (command_line.warn_mismatch == 0) {\n              bfd_set_error_handler(ignore_bfd_errors);\n            }\n            bVar26 = (*(link_info.output_bfd)->xvec->_bfd_merge_private_bfd_data)\n                               (pbVar69,&link_info);\n            if (bVar26 == 0) {\n              if (command_line.warn_mismatch != 0) {\n                pcVar27 = (char *)dcgettext(0,\n                                            "%X%P: failed to merge target specific data of file %pB\n"\n                                            ,5);\n                einfo(pcVar27,pbVar69);\n                goto LAB_0011c5b0;\n              }\n            }\n            else {\nLAB_0011c5b0:\n              if (command_line.warn_mismatch != 0) goto code_r0x0011c5be;\n            }\n            bfd_set_error_handler();\n            goto LAB_0011bf30;\n          }\n        }\n        if (command_line.warn_mismatch == 0) goto LAB_0011bf30;\n        bfd_printable_name(link_info.output_bfd);\n        uVar37 = bfd_printable_name(pbVar69);\n        pcVar27 = (char *)dcgettext(0,\n                                    "%X%P: %s architecture of input file `%pB\' is incompatible with %s output\n"\n                                    ,5);\n        einfo(pcVar27,uVar37,pbVar69);\n        plVar51 = (plVar51->wild_statement).children.head;\n      }" { (expression_statement "pbVar69 = (plVar51->input_statement).the_bfd;" (assignment_expression "pbVar69 = (plVar51->input_statement).the_bfd" identifier = (field_expression "(plVar51->input_statement).the_bfd" (parenthesized_expression "(plVar51->input_statement)" ( (field_expression "plVar51->input_statement" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "lVar29 = bfd_arch_get_compatible\n                           (pbVar69,link_info.output_bfd,command_line.accept_unknown_input_arch);" (assignment_expression "lVar29 = bfd_arch_get_compatible\n                           (pbVar69,link_info.output_bfd,command_line.accept_unknown_input_arch)" identifier = (call_expression "bfd_arch_get_compatible\n                           (pbVar69,link_info.output_bfd,command_line.accept_unknown_input_arch)" identifier (argument_list "(pbVar69,link_info.output_bfd,command_line.accept_unknown_input_arch)" ( identifier , (field_expression "link_info.output_bfd" identifier . field_identifier) , (field_expression "command_line.accept_unknown_input_arch" identifier . field_identifier) )))) ;) (expression_statement "pbVar65 = link_info.output_bfd;" (assignment_expression "pbVar65 = link_info.output_bfd" identifier = (field_expression "link_info.output_bfd" identifier . field_identifier)) ;) (if_statement "if (((link_info._0_1_ & 3) == 2) || ((link_info._3_1_ & 8) != 0)) {\n          if (lVar29 != 0) {\n            pbVar31 = pbVar69->xvec;\n            pbVar48 = (link_info.output_bfd)->xvec;\n            if ((pbVar31->flavour != pbVar48->flavour) && ((pbVar69->field_0x44 & 0x20) != 0))\n            goto LAB_0011c12e;\n            goto LAB_0011bed4;\n          }\n          if ((pbVar69->field_0x44 & 0x20) != 0) {\n            pbVar31 = pbVar69->xvec;\n            pbVar48 = (link_info.output_bfd)->xvec;\nLAB_0011c12e:\n            pcVar27 = pbVar48->name;\n            pcVar36 = pbVar31->name;\n            fmt = (char *)dcgettext(0,\n                                    "%F%P: relocatable linking with relocations from format %s (%pB) to format %s (%pB) is not supported\n"\n                                    ,5);\n            einfo(fmt,pcVar36,pbVar69,pcVar27,pbVar65);\n            goto joined_r0x0011c167;\n          }\n        }\n        else {\njoined_r0x0011c167:\n          if (lVar29 != 0) {\nLAB_0011bed4:\n            if (pbVar69->section_count == 0) goto LAB_0011bf30;\n            if (command_line.warn_mismatch == 0) {\n              bfd_set_error_handler(ignore_bfd_errors);\n            }\n            bVar26 = (*(link_info.output_bfd)->xvec->_bfd_merge_private_bfd_data)\n                               (pbVar69,&link_info);\n            if (bVar26 == 0) {\n              if (command_line.warn_mismatch != 0) {\n                pcVar27 = (char *)dcgettext(0,\n                                            "%X%P: failed to merge target specific data of file %pB\n"\n                                            ,5);\n                einfo(pcVar27,pbVar69);\n                goto LAB_0011c5b0;\n              }\n            }\n            else {\nLAB_0011c5b0:\n              if (command_line.warn_mismatch != 0) goto code_r0x0011c5be;\n            }\n            bfd_set_error_handler();\n            goto LAB_0011bf30;\n          }\n        }" if (parenthesized_expression "(((link_info._0_1_ & 3) == 2) || ((link_info._3_1_ & 8) != 0))" ( (binary_expression "((link_info._0_1_ & 3) == 2) || ((link_info._3_1_ & 8) != 0)" (parenthesized_expression "((link_info._0_1_ & 3) == 2)" ( (binary_expression "(link_info._0_1_ & 3) == 2" (parenthesized_expression "(link_info._0_1_ & 3)" ( (binary_expression "link_info._0_1_ & 3" (field_expression "link_info._0_1_" identifier . field_identifier) & number_literal) )) == number_literal) )) || (parenthesized_expression "((link_info._3_1_ & 8) != 0)" ( (binary_expression "(link_info._3_1_ & 8) != 0" (parenthesized_expression "(link_info._3_1_ & 8)" ( (binary_expression "link_info._3_1_ & 8" (field_expression "link_info._3_1_" identifier . field_identifier) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n          if (lVar29 != 0) {\n            pbVar31 = pbVar69->xvec;\n            pbVar48 = (link_info.output_bfd)->xvec;\n            if ((pbVar31->flavour != pbVar48->flavour) && ((pbVar69->field_0x44 & 0x20) != 0))\n            goto LAB_0011c12e;\n            goto LAB_0011bed4;\n          }\n          if ((pbVar69->field_0x44 & 0x20) != 0) {\n            pbVar31 = pbVar69->xvec;\n            pbVar48 = (link_info.output_bfd)->xvec;\nLAB_0011c12e:\n            pcVar27 = pbVar48->name;\n            pcVar36 = pbVar31->name;\n            fmt = (char *)dcgettext(0,\n                                    "%F%P: relocatable linking with relocations from format %s (%pB) to format %s (%pB) is not supported\n"\n                                    ,5);\n            einfo(fmt,pcVar36,pbVar69,pcVar27,pbVar65);\n            goto joined_r0x0011c167;\n          }\n        }" { (if_statement "if (lVar29 != 0) {\n            pbVar31 = pbVar69->xvec;\n            pbVar48 = (link_info.output_bfd)->xvec;\n            if ((pbVar31->flavour != pbVar48->flavour) && ((pbVar69->field_0x44 & 0x20) != 0))\n            goto LAB_0011c12e;\n            goto LAB_0011bed4;\n          }" if (parenthesized_expression "(lVar29 != 0)" ( (binary_expression "lVar29 != 0" identifier != number_literal) )) (compound_statement "{\n            pbVar31 = pbVar69->xvec;\n            pbVar48 = (link_info.output_bfd)->xvec;\n            if ((pbVar31->flavour != pbVar48->flavour) && ((pbVar69->field_0x44 & 0x20) != 0))\n            goto LAB_0011c12e;\n            goto LAB_0011bed4;\n          }" { (expression_statement "pbVar31 = pbVar69->xvec;" (assignment_expression "pbVar31 = pbVar69->xvec" identifier = (field_expression "pbVar69->xvec" identifier -> field_identifier)) ;) (expression_statement "pbVar48 = (link_info.output_bfd)->xvec;" (assignment_expression "pbVar48 = (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 ((pbVar31->flavour != pbVar48->flavour) && ((pbVar69->field_0x44 & 0x20) != 0))\n            goto LAB_0011c12e;" if (parenthesized_expression "((pbVar31->flavour != pbVar48->flavour) && ((pbVar69->field_0x44 & 0x20) != 0))" ( (binary_expression "(pbVar31->flavour != pbVar48->flavour) && ((pbVar69->field_0x44 & 0x20) != 0)" (parenthesized_expression "(pbVar31->flavour != pbVar48->flavour)" ( (binary_expression "pbVar31->flavour != pbVar48->flavour" (field_expression "pbVar31->flavour" identifier -> field_identifier) != (field_expression "pbVar48->flavour" identifier -> field_identifier)) )) && (parenthesized_expression "((pbVar69->field_0x44 & 0x20) != 0)" ( (binary_expression "(pbVar69->field_0x44 & 0x20) != 0" (parenthesized_expression "(pbVar69->field_0x44 & 0x20)" ( (binary_expression "pbVar69->field_0x44 & 0x20" (field_expression "pbVar69->field_0x44" identifier -> field_identifier) & number_literal) )) != number_literal) ))) )) (goto_statement "goto LAB_0011c12e;" goto statement_identifier ;)) (goto_statement "goto LAB_0011bed4;" goto statement_identifier ;) })) (if_statement "if ((pbVar69->field_0x44 & 0x20) != 0) {\n            pbVar31 = pbVar69->xvec;\n            pbVar48 = (link_info.output_bfd)->xvec;\nLAB_0011c12e:\n            pcVar27 = pbVar48->name;\n            pcVar36 = pbVar31->name;\n            fmt = (char *)dcgettext(0,\n                                    "%F%P: relocatable linking with relocations from format %s (%pB) to format %s (%pB) is not supported\n"\n                                    ,5);\n            einfo(fmt,pcVar36,pbVar69,pcVar27,pbVar65);\n            goto joined_r0x0011c167;\n          }" if (parenthesized_expression "((pbVar69->field_0x44 & 0x20) != 0)" ( (binary_expression "(pbVar69->field_0x44 & 0x20) != 0" (parenthesized_expression "(pbVar69->field_0x44 & 0x20)" ( (binary_expression "pbVar69->field_0x44 & 0x20" (field_expression "pbVar69->field_0x44" identifier -> field_identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n            pbVar31 = pbVar69->xvec;\n            pbVar48 = (link_info.output_bfd)->xvec;\nLAB_0011c12e:\n            pcVar27 = pbVar48->name;\n            pcVar36 = pbVar31->name;\n            fmt = (char *)dcgettext(0,\n                                    "%F%P: relocatable linking with relocations from format %s (%pB) to format %s (%pB) is not supported\n"\n                                    ,5);\n            einfo(fmt,pcVar36,pbVar69,pcVar27,pbVar65);\n            goto joined_r0x0011c167;\n          }" { (expression_statement "pbVar31 = pbVar69->xvec;" (assignment_expression "pbVar31 = pbVar69->xvec" identifier = (field_expression "pbVar69->xvec" identifier -> field_identifier)) ;) (expression_statement "pbVar48 = (link_info.output_bfd)->xvec;" (assignment_expression "pbVar48 = (link_info.output_bfd)->xvec" identifier = (field_expression "(link_info.output_bfd)->xvec" (parenthesized_expression "(link_info.output_bfd)" ( (field_expression "link_info.output_bfd" identifier . field_identifier) )) -> field_identifier)) ;) (labeled_statement "LAB_0011c12e:\n            pcVar27 = pbVar48->name;" statement_identifier : (expression_statement "pcVar27 = pbVar48->name;" (assignment_expression "pcVar27 = pbVar48->name" identifier = (field_expression "pbVar48->name" identifier -> field_identifier)) ;)) (expression_statement "pcVar36 = pbVar31->name;" (assignment_expression "pcVar36 = pbVar31->name" identifier = (field_expression "pbVar31->name" identifier -> field_identifier)) ;) (expression_statement "fmt = (char *)dcgettext(0,\n                                    "%F%P: relocatable linking with relocations from format %s (%pB) to format %s (%pB) is not supported\n"\n                                    ,5);" (assignment_expression "fmt = (char *)dcgettext(0,\n                                    "%F%P: relocatable linking with relocations from format %s (%pB) to format %s (%pB) is not supported\n"\n                                    ,5)" identifier = (cast_expression "(char *)dcgettext(0,\n                                    "%F%P: relocatable linking with relocations from format %s (%pB) to format %s (%pB) is not supported\n"\n                                    ,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,\n                                    "%F%P: relocatable linking with relocations from format %s (%pB) to format %s (%pB) is not supported\n"\n                                    ,5)" identifier (argument_list "(0,\n                                    "%F%P: relocatable linking with relocations from format %s (%pB) to format %s (%pB) is not supported\n"\n                                    ,5)" ( number_literal , (string_literal ""%F%P: relocatable linking with relocations from format %s (%pB) to format %s (%pB) is not supported\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "einfo(fmt,pcVar36,pbVar69,pcVar27,pbVar65);" (call_expression "einfo(fmt,pcVar36,pbVar69,pcVar27,pbVar65)" identifier (argument_list "(fmt,pcVar36,pbVar69,pcVar27,pbVar65)" ( identifier , identifier , identifier , identifier , identifier ))) ;) (goto_statement "goto joined_r0x0011c167;" goto statement_identifier ;) })) }) (else_clause "else {\njoined_r0x0011c167:\n          if (lVar29 != 0) {\nLAB_0011bed4:\n            if (pbVar69->section_count == 0) goto LAB_0011bf30;\n            if (command_line.warn_mismatch == 0) {\n              bfd_set_error_handler(ignore_bfd_errors);\n            }\n            bVar26 = (*(link_info.output_bfd)->xvec->_bfd_merge_private_bfd_data)\n                               (pbVar69,&link_info);\n            if (bVar26 == 0) {\n              if (command_line.warn_mismatch != 0) {\n                pcVar27 = (char *)dcgettext(0,\n                                            "%X%P: failed to merge target specific data of file %pB\n"\n                                            ,5);\n                einfo(pcVar27,pbVar69);\n                goto LAB_0011c5b0;\n              }\n            }\n            else {\nLAB_0011c5b0:\n              if (command_line.warn_mismatch != 0) goto code_r0x0011c5be;\n            }\n            bfd_set_error_handler();\n            goto LAB_0011bf30;\n          }\n        }" else (compound_statement "{\njoined_r0x0011c167:\n          if (lVar29 != 0) {\nLAB_0011bed4:\n            if (pbVar69->section_count == 0) goto LAB_0011bf30;\n            if (command_line.warn_mismatch == 0) {\n              bfd_set_error_handler(ignore_bfd_errors);\n            }\n            bVar26 = (*(link_info.output_bfd)->xvec->_bfd_merge_private_bfd_data)\n                               (pbVar69,&link_info);\n            if (bVar26 == 0) {\n              if (command_line.warn_mismatch != 0) {\n                pcVar27 = (char *)dcgettext(0,\n                                            "%X%P: failed to merge target specific data of file %pB\n"\n                                            ,5);\n                einfo(pcVar27,pbVar69);\n                goto LAB_0011c5b0;\n              }\n            }\n            else {\nLAB_0011c5b0:\n              if (command_line.warn_mismatch != 0) goto code_r0x0011c5be;\n            }\n            bfd_set_error_handler();\n            goto LAB_0011bf30;\n          }\n        }" { (labeled_statement "joined_r0x0011c167:\n          if (lVar29 != 0) {\nLAB_0011bed4:\n            if (pbVar69->section_count == 0) goto LAB_0011bf30;\n            if (command_line.warn_mismatch == 0) {\n              bfd_set_error_handler(ignore_bfd_errors);\n            }\n            bVar26 = (*(link_info.output_bfd)->xvec->_bfd_merge_private_bfd_data)\n                               (pbVar69,&link_info);\n            if (bVar26 == 0) {\n              if (command_line.warn_mismatch != 0) {\n                pcVar27 = (char *)dcgettext(0,\n                                            "%X%P: failed to merge target specific data of file %pB\n"\n                                            ,5);\n                einfo(pcVar27,pbVar69);\n                goto LAB_0011c5b0;\n              }\n            }\n            else {\nLAB_0011c5b0:\n              if (command_line.warn_mismatch != 0) goto code_r0x0011c5be;\n            }\n            bfd_set_error_handler();\n            goto LAB_0011bf30;\n          }" statement_identifier : (if_statement "if (lVar29 != 0) {\nLAB_0011bed4:\n            if (pbVar69->section_count == 0) goto LAB_0011bf30;\n            if (command_line.warn_mismatch == 0) {\n              bfd_set_error_handler(ignore_bfd_errors);\n            }\n            bVar26 = (*(link_info.output_bfd)->xvec->_bfd_merge_private_bfd_data)\n                               (pbVar69,&link_info);\n            if (bVar26 == 0) {\n              if (command_line.warn_mismatch != 0) {\n                pcVar27 = (char *)dcgettext(0,\n                                            "%X%P: failed to merge target specific data of file %pB\n"\n                                            ,5);\n                einfo(pcVar27,pbVar69);\n                goto LAB_0011c5b0;\n              }\n            }\n            else {\nLAB_0011c5b0:\n              if (command_line.warn_mismatch != 0) goto code_r0x0011c5be;\n            }\n            bfd_set_error_handler();\n            goto LAB_0011bf30;\n          }" if (parenthesized_expression "(lVar29 != 0)" ( (binary_expression "lVar29 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_0011bed4:\n            if (pbVar69->section_count == 0) goto LAB_0011bf30;\n            if (command_line.warn_mismatch == 0) {\n              bfd_set_error_handler(ignore_bfd_errors);\n            }\n            bVar26 = (*(link_info.output_bfd)->xvec->_bfd_merge_private_bfd_data)\n                               (pbVar69,&link_info);\n            if (bVar26 == 0) {\n              if (command_line.warn_mismatch != 0) {\n                pcVar27 = (char *)dcgettext(0,\n                                            "%X%P: failed to merge target specific data of file %pB\n"\n                                            ,5);\n                einfo(pcVar27,pbVar69);\n                goto LAB_0011c5b0;\n              }\n            }\n            else {\nLAB_0011c5b0:\n              if (command_line.warn_mismatch != 0) goto code_r0x0011c5be;\n            }\n            bfd_set_error_handler();\n            goto LAB_0011bf30;\n          }" { (labeled_statement "LAB_0011bed4:\n            if (pbVar69->section_count == 0) goto LAB_0011bf30;" statement_identifier : (if_statement "if (pbVar69->section_count == 0) goto LAB_0011bf30;" if (parenthesized_expression "(pbVar69->section_count == 0)" ( (binary_expression "pbVar69->section_count == 0" (field_expression "pbVar69->section_count" identifier -> field_identifier) == number_literal) )) (goto_statement "goto LAB_0011bf30;" goto statement_identifier ;))) (if_statement "if (command_line.warn_mismatch == 0) {\n              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              bfd_set_error_handler(ignore_bfd_errors);\n            }" { (expression_statement "bfd_set_error_handler(ignore_bfd_errors);" (call_expression "bfd_set_error_handler(ignore_bfd_errors)" identifier (argument_list "(ignore_bfd_errors)" ( identifier ))) ;) })) (expression_statement "bVar26 = (*(link_info.output_bfd)->xvec->_bfd_merge_private_bfd_data)\n                               (pbVar69,&link_info);" (assignment_expression "bVar26 = (*(link_info.output_bfd)->xvec->_bfd_merge_private_bfd_data)\n                               (pbVar69,&link_info)" identifier = (call_expression "(*(link_info.output_bfd)->xvec->_bfd_merge_private_bfd_data)\n                               (pbVar69,&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 "(pbVar69,&link_info)" ( identifier , (pointer_expression "&link_info" & identifier) )))) ;) (if_statement "if (bVar26 == 0) {\n              if (command_line.warn_mismatch != 0) {\n                pcVar27 = (char *)dcgettext(0,\n                                            "%X%P: failed to merge target specific data of file %pB\n"\n                                            ,5);\n                einfo(pcVar27,pbVar69);\n                goto LAB_0011c5b0;\n              }\n            }\n            else {\nLAB_0011c5b0:\n              if (command_line.warn_mismatch != 0) goto code_r0x0011c5be;\n            }" if (parenthesized_expression "(bVar26 == 0)" ( (binary_expression "bVar26 == 0" identifier == number_literal) )) (compound_statement "{\n              if (command_line.warn_mismatch != 0) {\n                pcVar27 = (char *)dcgettext(0,\n                                            "%X%P: failed to merge target specific data of file %pB\n"\n                                            ,5);\n                einfo(pcVar27,pbVar69);\n                goto LAB_0011c5b0;\n              }\n            }" { (if_statement "if (command_line.warn_mismatch != 0) {\n                pcVar27 = (char *)dcgettext(0,\n                                            "%X%P: failed to merge target specific data of file %pB\n"\n                                            ,5);\n                einfo(pcVar27,pbVar69);\n                goto LAB_0011c5b0;\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                pcVar27 = (char *)dcgettext(0,\n                                            "%X%P: failed to merge target specific data of file %pB\n"\n                                            ,5);\n                einfo(pcVar27,pbVar69);\n                goto LAB_0011c5b0;\n              }" { (expression_statement "pcVar27 = (char *)dcgettext(0,\n                                            "%X%P: failed to merge target specific data of file %pB\n"\n                                            ,5);" (assignment_expression "pcVar27 = (char *)dcgettext(0,\n                                            "%X%P: failed to merge target specific data of file %pB\n"\n                                            ,5)" identifier = (cast_expression "(char *)dcgettext(0,\n                                            "%X%P: failed to merge target specific data of file %pB\n"\n                                            ,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,\n                                            "%X%P: failed to merge target specific data of file %pB\n"\n                                            ,5)" identifier (argument_list "(0,\n                                            "%X%P: failed to merge target specific data of file %pB\n"\n                                            ,5)" ( number_literal , (string_literal ""%X%P: failed to merge target specific data of file %pB\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "einfo(pcVar27,pbVar69);" (call_expression "einfo(pcVar27,pbVar69)" identifier (argument_list "(pcVar27,pbVar69)" ( identifier , identifier ))) ;) (goto_statement "goto LAB_0011c5b0;" goto statement_identifier ;) })) }) (else_clause "else {\nLAB_0011c5b0:\n              if (command_line.warn_mismatch != 0) goto code_r0x0011c5be;\n            }" else (compound_statement "{\nLAB_0011c5b0:\n              if (command_line.warn_mismatch != 0) goto code_r0x0011c5be;\n            }" { (labeled_statement "LAB_0011c5b0:\n              if (command_line.warn_mismatch != 0) goto code_r0x0011c5be;" statement_identifier : (if_statement "if (command_line.warn_mismatch != 0) goto code_r0x0011c5be;" if (parenthesized_expression "(command_line.warn_mismatch != 0)" ( (binary_expression "command_line.warn_mismatch != 0" (field_expression "command_line.warn_mismatch" identifier . field_identifier) != number_literal) )) (goto_statement "goto code_r0x0011c5be;" goto statement_identifier ;))) }))) (expression_statement "bfd_set_error_handler();" (call_expression "bfd_set_error_handler()" identifier (argument_list "()" ( ))) ;) (goto_statement "goto LAB_0011bf30;" goto statement_identifier ;) }))) }))) (if_statement "if (command_line.warn_mismatch == 0) goto LAB_0011bf30;" 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_0011bf30;" goto statement_identifier ;)) (expression_statement "bfd_printable_name(link_info.output_bfd);" (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 "uVar37 = bfd_printable_name(pbVar69);" (assignment_expression "uVar37 = bfd_printable_name(pbVar69)" identifier = (call_expression "bfd_printable_name(pbVar69)" identifier (argument_list "(pbVar69)" ( identifier )))) ;) (expression_statement "pcVar27 = (char *)dcgettext(0,\n                                    "%X%P: %s architecture of input file `%pB\' is incompatible with %s output\n"\n                                    ,5);" (assignment_expression "pcVar27 = (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(pcVar27,uVar37,pbVar69);" (call_expression "einfo(pcVar27,uVar37,pbVar69)" identifier (argument_list "(pcVar27,uVar37,pbVar69)" ( identifier , identifier , identifier ))) ;) (expression_statement "plVar51 = (plVar51->wild_statement).children.head;" (assignment_expression "plVar51 = (plVar51->wild_statement).children.head" identifier = (field_expression "(plVar51->wild_statement).children.head" (field_expression "(plVar51->wild_statement).children" (parenthesized_expression "(plVar51->wild_statement)" ( (field_expression "plVar51->wild_statement" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) }) (else_clause "else {\nLAB_0011bf30:\n        plVar51 = (plVar51->wild_statement).children.head;\n      }" else (compound_statement "{\nLAB_0011bf30:\n        plVar51 = (plVar51->wild_statement).children.head;\n      }" { (labeled_statement "LAB_0011bf30:\n        plVar51 = (plVar51->wild_statement).children.head;" statement_identifier : (expression_statement "plVar51 = (plVar51->wild_statement).children.head;" (assignment_expression "plVar51 = (plVar51->wild_statement).children.head" identifier = (field_expression "(plVar51->wild_statement).children.head" (field_expression "(plVar51->wild_statement).children" (parenthesized_expression "(plVar51->wild_statement)" ( (field_expression "plVar51->wild_statement" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;)) }))) (if_statement "if (plVar51 == (lang_statement_union *)0x0) break;" if (parenthesized_expression "(plVar51 == (lang_statement_union *)0x0)" ( (binary_expression "plVar51 == (lang_statement_union *)0x0" identifier == (cast_expression "(lang_statement_union *)0x0" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) }) while (parenthesized_expression "( true )" ( true )) ;) }))) (if_statement "if (command_line.version_exports_section != (char *)0x0) {\n    orig = (bfd_elf_version_expr *)0x0;\n    for (plVar51 = file_chain.head; plVar51 != (lang_statement_union *)0x0;\n        plVar51 = (plVar51->wild_statement).children.head) {\n      lVar29 = bfd_get_section_by_name((plVar51->wild_statement).section_list,".exports");\n      if (lVar29 != 0) {\n        lVar11 = *(long *)(lVar29 + 0x38);\n        pcVar27 = (char *)xmalloc(lVar11);\n        iVar25 = bfd_get_section_contents\n                           ((plVar51->wild_statement).section_list,lVar29,pcVar27,0,lVar11);\n        if (iVar25 == 0) {\n          pcVar36 = (char *)dcgettext(0,"%X%P: unable to read .exports section contents\n",5);\n          einfo(pcVar36,lVar29);\n        }\n        pcVar36 = pcVar27 + lVar11;\n        for (; pcVar27 < pcVar36; pcVar27 = pcVar27 + sVar28 + 1) {\n          orig = lang_new_vers_pattern(orig,pcVar27,(char *)0x0,0);\n          sVar28 = strlen(pcVar27);\n        }\n        *(uint *)(lVar29 + 0x20) = *(uint *)(lVar29 + 0x20) | 0x208000;\n      }\n    }\n    pbVar30 = lang_new_vers_pattern((bfd_elf_version_expr *)0x0,"*",(char *)0x0,0);\n    version = (bfd_elf_version_tree *)xcalloc(1,0x70);\n    pcVar27 = command_line.version_exports_section;\n    (version->globals).list = orig;\n    (version->locals).list = pbVar30;\n    version->match = lang_vers_match;\n    version->name_indx = 0xffffffff;\n    lang_register_vers_node(pcVar27,version,(bfd_elf_version_deps *)0x0);\n  }" if (parenthesized_expression "(command_line.version_exports_section != (char *)0x0)" ( (binary_expression "command_line.version_exports_section != (char *)0x0" (field_expression "command_line.version_exports_section" identifier . field_identifier) != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    orig = (bfd_elf_version_expr *)0x0;\n    for (plVar51 = file_chain.head; plVar51 != (lang_statement_union *)0x0;\n        plVar51 = (plVar51->wild_statement).children.head) {\n      lVar29 = bfd_get_section_by_name((plVar51->wild_statement).section_list,".exports");\n      if (lVar29 != 0) {\n        lVar11 = *(long *)(lVar29 + 0x38);\n        pcVar27 = (char *)xmalloc(lVar11);\n        iVar25 = bfd_get_section_contents\n                           ((plVar51->wild_statement).section_list,lVar29,pcVar27,0,lVar11);\n        if (iVar25 == 0) {\n          pcVar36 = (char *)dcgettext(0,"%X%P: unable to read .exports section contents\n",5);\n          einfo(pcVar36,lVar29);\n        }\n        pcVar36 = pcVar27 + lVar11;\n        for (; pcVar27 < pcVar36; pcVar27 = pcVar27 + sVar28 + 1) {\n          orig = lang_new_vers_pattern(orig,pcVar27,(char *)0x0,0);\n          sVar28 = strlen(pcVar27);\n        }\n        *(uint *)(lVar29 + 0x20) = *(uint *)(lVar29 + 0x20) | 0x208000;\n      }\n    }\n    pbVar30 = lang_new_vers_pattern((bfd_elf_version_expr *)0x0,"*",(char *)0x0,0);\n    version = (bfd_elf_version_tree *)xcalloc(1,0x70);\n    pcVar27 = command_line.version_exports_section;\n    (version->globals).list = orig;\n    (version->locals).list = pbVar30;\n    version->match = lang_vers_match;\n    version->name_indx = 0xffffffff;\n    lang_register_vers_node(pcVar27,version,(bfd_elf_version_deps *)0x0);\n  }" { (expression_statement "orig = (bfd_elf_version_expr *)0x0;" (assignment_expression "orig = (bfd_elf_version_expr *)0x0" identifier = (cast_expression "(bfd_elf_version_expr *)0x0" ( (type_descriptor "bfd_elf_version_expr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (for_statement "for (plVar51 = file_chain.head; plVar51 != (lang_statement_union *)0x0;\n        plVar51 = (plVar51->wild_statement).children.head) {\n      lVar29 = bfd_get_section_by_name((plVar51->wild_statement).section_list,".exports");\n      if (lVar29 != 0) {\n        lVar11 = *(long *)(lVar29 + 0x38);\n        pcVar27 = (char *)xmalloc(lVar11);\n        iVar25 = bfd_get_section_contents\n                           ((plVar51->wild_statement).section_list,lVar29,pcVar27,0,lVar11);\n        if (iVar25 == 0) {\n          pcVar36 = (char *)dcgettext(0,"%X%P: unable to read .exports section contents\n",5);\n          einfo(pcVar36,lVar29);\n        }\n        pcVar36 = pcVar27 + lVar11;\n        for (; pcVar27 < pcVar36; pcVar27 = pcVar27 + sVar28 + 1) {\n          orig = lang_new_vers_pattern(orig,pcVar27,(char *)0x0,0);\n          sVar28 = strlen(pcVar27);\n        }\n        *(uint *)(lVar29 + 0x20) = *(uint *)(lVar29 + 0x20) | 0x208000;\n      }\n    }" for ( (assignment_expression "plVar51 = file_chain.head" identifier = (field_expression "file_chain.head" identifier . field_identifier)) ; (binary_expression "plVar51 != (lang_statement_union *)0x0" identifier != (cast_expression "(lang_statement_union *)0x0" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "plVar51 = (plVar51->wild_statement).children.head" identifier = (field_expression "(plVar51->wild_statement).children.head" (field_expression "(plVar51->wild_statement).children" (parenthesized_expression "(plVar51->wild_statement)" ( (field_expression "plVar51->wild_statement" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ) (compound_statement "{\n      lVar29 = bfd_get_section_by_name((plVar51->wild_statement).section_list,".exports");\n      if (lVar29 != 0) {\n        lVar11 = *(long *)(lVar29 + 0x38);\n        pcVar27 = (char *)xmalloc(lVar11);\n        iVar25 = bfd_get_section_contents\n                           ((plVar51->wild_statement).section_list,lVar29,pcVar27,0,lVar11);\n        if (iVar25 == 0) {\n          pcVar36 = (char *)dcgettext(0,"%X%P: unable to read .exports section contents\n",5);\n          einfo(pcVar36,lVar29);\n        }\n        pcVar36 = pcVar27 + lVar11;\n        for (; pcVar27 < pcVar36; pcVar27 = pcVar27 + sVar28 + 1) {\n          orig = lang_new_vers_pattern(orig,pcVar27,(char *)0x0,0);\n          sVar28 = strlen(pcVar27);\n        }\n        *(uint *)(lVar29 + 0x20) = *(uint *)(lVar29 + 0x20) | 0x208000;\n      }\n    }" { (expression_statement "lVar29 = bfd_get_section_by_name((plVar51->wild_statement).section_list,".exports");" (assignment_expression "lVar29 = bfd_get_section_by_name((plVar51->wild_statement).section_list,".exports")" identifier = (call_expression "bfd_get_section_by_name((plVar51->wild_statement).section_list,".exports")" identifier (argument_list "((plVar51->wild_statement).section_list,".exports")" ( (field_expression "(plVar51->wild_statement).section_list" (parenthesized_expression "(plVar51->wild_statement)" ( (field_expression "plVar51->wild_statement" identifier -> field_identifier) )) . field_identifier) , (string_literal "".exports"" " string_content ") )))) ;) (if_statement "if (lVar29 != 0) {\n        lVar11 = *(long *)(lVar29 + 0x38);\n        pcVar27 = (char *)xmalloc(lVar11);\n        iVar25 = bfd_get_section_contents\n                           ((plVar51->wild_statement).section_list,lVar29,pcVar27,0,lVar11);\n        if (iVar25 == 0) {\n          pcVar36 = (char *)dcgettext(0,"%X%P: unable to read .exports section contents\n",5);\n          einfo(pcVar36,lVar29);\n        }\n        pcVar36 = pcVar27 + lVar11;\n        for (; pcVar27 < pcVar36; pcVar27 = pcVar27 + sVar28 + 1) {\n          orig = lang_new_vers_pattern(orig,pcVar27,(char *)0x0,0);\n          sVar28 = strlen(pcVar27);\n        }\n        *(uint *)(lVar29 + 0x20) = *(uint *)(lVar29 + 0x20) | 0x208000;\n      }" if (parenthesized_expression "(lVar29 != 0)" ( (binary_expression "lVar29 != 0" identifier != number_literal) )) (compound_statement "{\n        lVar11 = *(long *)(lVar29 + 0x38);\n        pcVar27 = (char *)xmalloc(lVar11);\n        iVar25 = bfd_get_section_contents\n                           ((plVar51->wild_statement).section_list,lVar29,pcVar27,0,lVar11);\n        if (iVar25 == 0) {\n          pcVar36 = (char *)dcgettext(0,"%X%P: unable to read .exports section contents\n",5);\n          einfo(pcVar36,lVar29);\n        }\n        pcVar36 = pcVar27 + lVar11;\n        for (; pcVar27 < pcVar36; pcVar27 = pcVar27 + sVar28 + 1) {\n          orig = lang_new_vers_pattern(orig,pcVar27,(char *)0x0,0);\n          sVar28 = strlen(pcVar27);\n        }\n        *(uint *)(lVar29 + 0x20) = *(uint *)(lVar29 + 0x20) | 0x208000;\n      }" { (expression_statement "lVar11 = *(long *)(lVar29 + 0x38);" (assignment_expression "lVar11 = *(long *)(lVar29 + 0x38)" identifier = (pointer_expression "*(long *)(lVar29 + 0x38)" * (cast_expression "(long *)(lVar29 + 0x38)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar29 + 0x38)" ( (binary_expression "lVar29 + 0x38" identifier + number_literal) ))))) ;) (expression_statement "pcVar27 = (char *)xmalloc(lVar11);" (assignment_expression "pcVar27 = (char *)xmalloc(lVar11)" identifier = (cast_expression "(char *)xmalloc(lVar11)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(lVar11)" identifier (argument_list "(lVar11)" ( identifier ))))) ;) (expression_statement "iVar25 = bfd_get_section_contents\n                           ((plVar51->wild_statement).section_list,lVar29,pcVar27,0,lVar11);" (assignment_expression "iVar25 = bfd_get_section_contents\n                           ((plVar51->wild_statement).section_list,lVar29,pcVar27,0,lVar11)" identifier = (call_expression "bfd_get_section_contents\n                           ((plVar51->wild_statement).section_list,lVar29,pcVar27,0,lVar11)" identifier (argument_list "((plVar51->wild_statement).section_list,lVar29,pcVar27,0,lVar11)" ( (field_expression "(plVar51->wild_statement).section_list" (parenthesized_expression "(plVar51->wild_statement)" ( (field_expression "plVar51->wild_statement" identifier -> field_identifier) )) . field_identifier) , identifier , identifier , number_literal , identifier )))) ;) (if_statement "if (iVar25 == 0) {\n          pcVar36 = (char *)dcgettext(0,"%X%P: unable to read .exports section contents\n",5);\n          einfo(pcVar36,lVar29);\n        }" if (parenthesized_expression "(iVar25 == 0)" ( (binary_expression "iVar25 == 0" identifier == number_literal) )) (compound_statement "{\n          pcVar36 = (char *)dcgettext(0,"%X%P: unable to read .exports section contents\n",5);\n          einfo(pcVar36,lVar29);\n        }" { (expression_statement "pcVar36 = (char *)dcgettext(0,"%X%P: unable to read .exports section contents\n",5);" (assignment_expression "pcVar36 = (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(pcVar36,lVar29);" (call_expression "einfo(pcVar36,lVar29)" identifier (argument_list "(pcVar36,lVar29)" ( identifier , identifier ))) ;) })) (expression_statement "pcVar36 = pcVar27 + lVar11;" (assignment_expression "pcVar36 = pcVar27 + lVar11" identifier = (binary_expression "pcVar27 + lVar11" identifier + identifier)) ;) (for_statement "for (; pcVar27 < pcVar36; pcVar27 = pcVar27 + sVar28 + 1) {\n          orig = lang_new_vers_pattern(orig,pcVar27,(char *)0x0,0);\n          sVar28 = strlen(pcVar27);\n        }" for ( ; (binary_expression "pcVar27 < pcVar36" identifier < identifier) ; (assignment_expression "pcVar27 = pcVar27 + sVar28 + 1" identifier = (binary_expression "pcVar27 + sVar28 + 1" (binary_expression "pcVar27 + sVar28" identifier + identifier) + number_literal)) ) (compound_statement "{\n          orig = lang_new_vers_pattern(orig,pcVar27,(char *)0x0,0);\n          sVar28 = strlen(pcVar27);\n        }" { (expression_statement "orig = lang_new_vers_pattern(orig,pcVar27,(char *)0x0,0);" (assignment_expression "orig = lang_new_vers_pattern(orig,pcVar27,(char *)0x0,0)" identifier = (call_expression "lang_new_vers_pattern(orig,pcVar27,(char *)0x0,0)" identifier (argument_list "(orig,pcVar27,(char *)0x0,0)" ( identifier , identifier , (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , number_literal )))) ;) (expression_statement "sVar28 = strlen(pcVar27);" (assignment_expression "sVar28 = strlen(pcVar27)" identifier = (call_expression "strlen(pcVar27)" identifier (argument_list "(pcVar27)" ( identifier )))) ;) })) (expression_statement "*(uint *)(lVar29 + 0x20) = *(uint *)(lVar29 + 0x20) | 0x208000;" (assignment_expression "*(uint *)(lVar29 + 0x20) = *(uint *)(lVar29 + 0x20) | 0x208000" (pointer_expression "*(uint *)(lVar29 + 0x20)" * (cast_expression "(uint *)(lVar29 + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar29 + 0x20)" ( (binary_expression "lVar29 + 0x20" identifier + number_literal) )))) = (binary_expression "*(uint *)(lVar29 + 0x20) | 0x208000" (pointer_expression "*(uint *)(lVar29 + 0x20)" * (cast_expression "(uint *)(lVar29 + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar29 + 0x20)" ( (binary_expression "lVar29 + 0x20" identifier + number_literal) )))) | number_literal)) ;) })) })) (expression_statement "pbVar30 = lang_new_vers_pattern((bfd_elf_version_expr *)0x0,"*",(char *)0x0,0);" (assignment_expression "pbVar30 = 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,0x70);" (assignment_expression "version = (bfd_elf_version_tree *)xcalloc(1,0x70)" identifier = (cast_expression "(bfd_elf_version_tree *)xcalloc(1,0x70)" ( (type_descriptor "bfd_elf_version_tree *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xcalloc(1,0x70)" identifier (argument_list "(1,0x70)" ( number_literal , number_literal ))))) ;) (expression_statement "pcVar27 = command_line.version_exports_section;" (assignment_expression "pcVar27 = command_line.version_exports_section" identifier = (field_expression "command_line.version_exports_section" identifier . field_identifier)) ;) (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 = pbVar30;" (assignment_expression "(version->locals).list = pbVar30" (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(pcVar27,version,(bfd_elf_version_deps *)0x0);" (call_expression "lang_register_vers_node(pcVar27,version,(bfd_elf_version_deps *)0x0)" identifier (argument_list "(pcVar27,version,(bfd_elf_version_deps *)0x0)" ( 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 "()" ( ))) ;) (if_statement "if ((config.build_constructors != 0) &&\n     (cVar24 = (link_info.output_bfd)->xvec->symbol_leading_char, link_info.input_bfds != (bfd *)0x0\n     )) {\n    pbVar69 = link_info.input_bfds;\n    do {\n      for (pbVar39 = pbVar69->sections; pbVar39 != (bfd_section *)0x0; pbVar39 = pbVar39->next) {\n        while( true ) {\n          pbVar7 = (byte *)pbVar39->name;\n          bVar68 = *pbVar7;\n          if (bVar68 == 0) break;\n          bVar2 = _sch_istable[(ulong)bVar68 * 2];\n          pbVar38 = pbVar7;\n          while (((bVar2 & 0x8c) != 0 || (bVar68 == 0x5f))) {\n            pbVar38 = pbVar38 + 1;\n            bVar68 = *pbVar38;\n            if (bVar68 == 0) goto LAB_0011d178;\n            bVar2 = _sch_istable[(ulong)bVar68 * 2];\n          }\n          pbVar39 = pbVar39->next;\n          if (pbVar39 == (bfd_section *)0x0) goto LAB_0011d163;\n        }\nLAB_0011d178:\n        sVar28 = strlen((char *)pbVar7);\n        pcVar27 = (char *)xmalloc(sVar28 + 10);\n        *pcVar27 = cVar24;\n        sprintf(pcVar27 + (cVar24 != '\0'),"__start_%s",pbVar7);\n        lang_define_start_stop(pcVar27,pbVar39);\n        pcVar27[1] = cVar24;\n        builtin_strncpy(pcVar27 + (2 - (ulong)(cVar24 == '\0')),"__stop",6);\n        lang_define_start_stop(pcVar27 + 1,pbVar39);\n        free(pcVar27);\n      }\nLAB_0011d163:\n      pbVar69 = (pbVar69->link).next;\n    } while (pbVar69 != (bfd *)0x0);\n  }" if (parenthesized_expression "((config.build_constructors != 0) &&\n     (cVar24 = (link_info.output_bfd)->xvec->symbol_leading_char, link_info.input_bfds != (bfd *)0x0\n     ))" ( (binary_expression "(config.build_constructors != 0) &&\n     (cVar24 = (link_info.output_bfd)->xvec->symbol_leading_char, link_info.input_bfds != (bfd *)0x0\n     )" (parenthesized_expression "(config.build_constructors != 0)" ( (binary_expression "config.build_constructors != 0" (field_expression "config.build_constructors" identifier . field_identifier) != number_literal) )) && (parenthesized_expression "(cVar24 = (link_info.output_bfd)->xvec->symbol_leading_char, link_info.input_bfds != (bfd *)0x0\n     )" ( (comma_expression "cVar24 = (link_info.output_bfd)->xvec->symbol_leading_char, link_info.input_bfds != (bfd *)0x0" (assignment_expression "cVar24 = (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)) , (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    pbVar69 = link_info.input_bfds;\n    do {\n      for (pbVar39 = pbVar69->sections; pbVar39 != (bfd_section *)0x0; pbVar39 = pbVar39->next) {\n        while( true ) {\n          pbVar7 = (byte *)pbVar39->name;\n          bVar68 = *pbVar7;\n          if (bVar68 == 0) break;\n          bVar2 = _sch_istable[(ulong)bVar68 * 2];\n          pbVar38 = pbVar7;\n          while (((bVar2 & 0x8c) != 0 || (bVar68 == 0x5f))) {\n            pbVar38 = pbVar38 + 1;\n            bVar68 = *pbVar38;\n            if (bVar68 == 0) goto LAB_0011d178;\n            bVar2 = _sch_istable[(ulong)bVar68 * 2];\n          }\n          pbVar39 = pbVar39->next;\n          if (pbVar39 == (bfd_section *)0x0) goto LAB_0011d163;\n        }\nLAB_0011d178:\n        sVar28 = strlen((char *)pbVar7);\n        pcVar27 = (char *)xmalloc(sVar28 + 10);\n        *pcVar27 = cVar24;\n        sprintf(pcVar27 + (cVar24 != '\0'),"__start_%s",pbVar7);\n        lang_define_start_stop(pcVar27,pbVar39);\n        pcVar27[1] = cVar24;\n        builtin_strncpy(pcVar27 + (2 - (ulong)(cVar24 == '\0')),"__stop",6);\n        lang_define_start_stop(pcVar27 + 1,pbVar39);\n        free(pcVar27);\n      }\nLAB_0011d163:\n      pbVar69 = (pbVar69->link).next;\n    } while (pbVar69 != (bfd *)0x0);\n  }" { (expression_statement "pbVar69 = link_info.input_bfds;" (assignment_expression "pbVar69 = link_info.input_bfds" identifier = (field_expression "link_info.input_bfds" identifier . field_identifier)) ;) (do_statement "do {\n      for (pbVar39 = pbVar69->sections; pbVar39 != (bfd_section *)0x0; pbVar39 = pbVar39->next) {\n        while( true ) {\n          pbVar7 = (byte *)pbVar39->name;\n          bVar68 = *pbVar7;\n          if (bVar68 == 0) break;\n          bVar2 = _sch_istable[(ulong)bVar68 * 2];\n          pbVar38 = pbVar7;\n          while (((bVar2 & 0x8c) != 0 || (bVar68 == 0x5f))) {\n            pbVar38 = pbVar38 + 1;\n            bVar68 = *pbVar38;\n            if (bVar68 == 0) goto LAB_0011d178;\n            bVar2 = _sch_istable[(ulong)bVar68 * 2];\n          }\n          pbVar39 = pbVar39->next;\n          if (pbVar39 == (bfd_section *)0x0) goto LAB_0011d163;\n        }\nLAB_0011d178:\n        sVar28 = strlen((char *)pbVar7);\n        pcVar27 = (char *)xmalloc(sVar28 + 10);\n        *pcVar27 = cVar24;\n        sprintf(pcVar27 + (cVar24 != '\0'),"__start_%s",pbVar7);\n        lang_define_start_stop(pcVar27,pbVar39);\n        pcVar27[1] = cVar24;\n        builtin_strncpy(pcVar27 + (2 - (ulong)(cVar24 == '\0')),"__stop",6);\n        lang_define_start_stop(pcVar27 + 1,pbVar39);\n        free(pcVar27);\n      }\nLAB_0011d163:\n      pbVar69 = (pbVar69->link).next;\n    } while (pbVar69 != (bfd *)0x0);" do (compound_statement "{\n      for (pbVar39 = pbVar69->sections; pbVar39 != (bfd_section *)0x0; pbVar39 = pbVar39->next) {\n        while( true ) {\n          pbVar7 = (byte *)pbVar39->name;\n          bVar68 = *pbVar7;\n          if (bVar68 == 0) break;\n          bVar2 = _sch_istable[(ulong)bVar68 * 2];\n          pbVar38 = pbVar7;\n          while (((bVar2 & 0x8c) != 0 || (bVar68 == 0x5f))) {\n            pbVar38 = pbVar38 + 1;\n            bVar68 = *pbVar38;\n            if (bVar68 == 0) goto LAB_0011d178;\n            bVar2 = _sch_istable[(ulong)bVar68 * 2];\n          }\n          pbVar39 = pbVar39->next;\n          if (pbVar39 == (bfd_section *)0x0) goto LAB_0011d163;\n        }\nLAB_0011d178:\n        sVar28 = strlen((char *)pbVar7);\n        pcVar27 = (char *)xmalloc(sVar28 + 10);\n        *pcVar27 = cVar24;\n        sprintf(pcVar27 + (cVar24 != '\0'),"__start_%s",pbVar7);\n        lang_define_start_stop(pcVar27,pbVar39);\n        pcVar27[1] = cVar24;\n        builtin_strncpy(pcVar27 + (2 - (ulong)(cVar24 == '\0')),"__stop",6);\n        lang_define_start_stop(pcVar27 + 1,pbVar39);\n        free(pcVar27);\n      }\nLAB_0011d163:\n      pbVar69 = (pbVar69->link).next;\n    }" { (for_statement "for (pbVar39 = pbVar69->sections; pbVar39 != (bfd_section *)0x0; pbVar39 = pbVar39->next) {\n        while( true ) {\n          pbVar7 = (byte *)pbVar39->name;\n          bVar68 = *pbVar7;\n          if (bVar68 == 0) break;\n          bVar2 = _sch_istable[(ulong)bVar68 * 2];\n          pbVar38 = pbVar7;\n          while (((bVar2 & 0x8c) != 0 || (bVar68 == 0x5f))) {\n            pbVar38 = pbVar38 + 1;\n            bVar68 = *pbVar38;\n            if (bVar68 == 0) goto LAB_0011d178;\n            bVar2 = _sch_istable[(ulong)bVar68 * 2];\n          }\n          pbVar39 = pbVar39->next;\n          if (pbVar39 == (bfd_section *)0x0) goto LAB_0011d163;\n        }\nLAB_0011d178:\n        sVar28 = strlen((char *)pbVar7);\n        pcVar27 = (char *)xmalloc(sVar28 + 10);\n        *pcVar27 = cVar24;\n        sprintf(pcVar27 + (cVar24 != '\0'),"__start_%s",pbVar7);\n        lang_define_start_stop(pcVar27,pbVar39);\n        pcVar27[1] = cVar24;\n        builtin_strncpy(pcVar27 + (2 - (ulong)(cVar24 == '\0')),"__stop",6);\n        lang_define_start_stop(pcVar27 + 1,pbVar39);\n        free(pcVar27);\n      }" for ( (assignment_expression "pbVar39 = pbVar69->sections" identifier = (field_expression "pbVar69->sections" identifier -> field_identifier)) ; (binary_expression "pbVar39 != (bfd_section *)0x0" identifier != (cast_expression "(bfd_section *)0x0" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "pbVar39 = pbVar39->next" identifier = (field_expression "pbVar39->next" identifier -> field_identifier)) ) (compound_statement "{\n        while( true ) {\n          pbVar7 = (byte *)pbVar39->name;\n          bVar68 = *pbVar7;\n          if (bVar68 == 0) break;\n          bVar2 = _sch_istable[(ulong)bVar68 * 2];\n          pbVar38 = pbVar7;\n          while (((bVar2 & 0x8c) != 0 || (bVar68 == 0x5f))) {\n            pbVar38 = pbVar38 + 1;\n            bVar68 = *pbVar38;\n            if (bVar68 == 0) goto LAB_0011d178;\n            bVar2 = _sch_istable[(ulong)bVar68 * 2];\n          }\n          pbVar39 = pbVar39->next;\n          if (pbVar39 == (bfd_section *)0x0) goto LAB_0011d163;\n        }\nLAB_0011d178:\n        sVar28 = strlen((char *)pbVar7);\n        pcVar27 = (char *)xmalloc(sVar28 + 10);\n        *pcVar27 = cVar24;\n        sprintf(pcVar27 + (cVar24 != '\0'),"__start_%s",pbVar7);\n        lang_define_start_stop(pcVar27,pbVar39);\n        pcVar27[1] = cVar24;\n        builtin_strncpy(pcVar27 + (2 - (ulong)(cVar24 == '\0')),"__stop",6);\n        lang_define_start_stop(pcVar27 + 1,pbVar39);\n        free(pcVar27);\n      }" { (while_statement "while( true ) {\n          pbVar7 = (byte *)pbVar39->name;\n          bVar68 = *pbVar7;\n          if (bVar68 == 0) break;\n          bVar2 = _sch_istable[(ulong)bVar68 * 2];\n          pbVar38 = pbVar7;\n          while (((bVar2 & 0x8c) != 0 || (bVar68 == 0x5f))) {\n            pbVar38 = pbVar38 + 1;\n            bVar68 = *pbVar38;\n            if (bVar68 == 0) goto LAB_0011d178;\n            bVar2 = _sch_istable[(ulong)bVar68 * 2];\n          }\n          pbVar39 = pbVar39->next;\n          if (pbVar39 == (bfd_section *)0x0) goto LAB_0011d163;\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          pbVar7 = (byte *)pbVar39->name;\n          bVar68 = *pbVar7;\n          if (bVar68 == 0) break;\n          bVar2 = _sch_istable[(ulong)bVar68 * 2];\n          pbVar38 = pbVar7;\n          while (((bVar2 & 0x8c) != 0 || (bVar68 == 0x5f))) {\n            pbVar38 = pbVar38 + 1;\n            bVar68 = *pbVar38;\n            if (bVar68 == 0) goto LAB_0011d178;\n            bVar2 = _sch_istable[(ulong)bVar68 * 2];\n          }\n          pbVar39 = pbVar39->next;\n          if (pbVar39 == (bfd_section *)0x0) goto LAB_0011d163;\n        }" { (expression_statement "pbVar7 = (byte *)pbVar39->name;" (assignment_expression "pbVar7 = (byte *)pbVar39->name" identifier = (cast_expression "(byte *)pbVar39->name" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pbVar39->name" identifier -> field_identifier))) ;) (expression_statement "bVar68 = *pbVar7;" (assignment_expression "bVar68 = *pbVar7" identifier = (pointer_expression "*pbVar7" * identifier)) ;) (if_statement "if (bVar68 == 0) break;" if (parenthesized_expression "(bVar68 == 0)" ( (binary_expression "bVar68 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "bVar2 = _sch_istable[(ulong)bVar68 * 2];" (assignment_expression "bVar2 = _sch_istable[(ulong)bVar68 * 2]" identifier = (subscript_expression "_sch_istable[(ulong)bVar68 * 2]" identifier [ (binary_expression "(ulong)bVar68 * 2" (cast_expression "(ulong)bVar68" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal) ])) ;) (expression_statement "pbVar38 = pbVar7;" (assignment_expression "pbVar38 = pbVar7" identifier = identifier) ;) (while_statement "while (((bVar2 & 0x8c) != 0 || (bVar68 == 0x5f))) {\n            pbVar38 = pbVar38 + 1;\n            bVar68 = *pbVar38;\n            if (bVar68 == 0) goto LAB_0011d178;\n            bVar2 = _sch_istable[(ulong)bVar68 * 2];\n          }" while (parenthesized_expression "(((bVar2 & 0x8c) != 0 || (bVar68 == 0x5f)))" ( (parenthesized_expression "((bVar2 & 0x8c) != 0 || (bVar68 == 0x5f))" ( (binary_expression "(bVar2 & 0x8c) != 0 || (bVar68 == 0x5f)" (binary_expression "(bVar2 & 0x8c) != 0" (parenthesized_expression "(bVar2 & 0x8c)" ( (binary_expression "bVar2 & 0x8c" identifier & number_literal) )) != number_literal) || (parenthesized_expression "(bVar68 == 0x5f)" ( (binary_expression "bVar68 == 0x5f" identifier == number_literal) ))) )) )) (compound_statement "{\n            pbVar38 = pbVar38 + 1;\n            bVar68 = *pbVar38;\n            if (bVar68 == 0) goto LAB_0011d178;\n            bVar2 = _sch_istable[(ulong)bVar68 * 2];\n          }" { (expression_statement "pbVar38 = pbVar38 + 1;" (assignment_expression "pbVar38 = pbVar38 + 1" identifier = (binary_expression "pbVar38 + 1" identifier + number_literal)) ;) (expression_statement "bVar68 = *pbVar38;" (assignment_expression "bVar68 = *pbVar38" identifier = (pointer_expression "*pbVar38" * identifier)) ;) (if_statement "if (bVar68 == 0) goto LAB_0011d178;" if (parenthesized_expression "(bVar68 == 0)" ( (binary_expression "bVar68 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0011d178;" goto statement_identifier ;)) (expression_statement "bVar2 = _sch_istable[(ulong)bVar68 * 2];" (assignment_expression "bVar2 = _sch_istable[(ulong)bVar68 * 2]" identifier = (subscript_expression "_sch_istable[(ulong)bVar68 * 2]" identifier [ (binary_expression "(ulong)bVar68 * 2" (cast_expression "(ulong)bVar68" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal) ])) ;) })) (expression_statement "pbVar39 = pbVar39->next;" (assignment_expression "pbVar39 = pbVar39->next" identifier = (field_expression "pbVar39->next" identifier -> field_identifier)) ;) (if_statement "if (pbVar39 == (bfd_section *)0x0) goto LAB_0011d163;" if (parenthesized_expression "(pbVar39 == (bfd_section *)0x0)" ( (binary_expression "pbVar39 == (bfd_section *)0x0" identifier == (cast_expression "(bfd_section *)0x0" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0011d163;" goto statement_identifier ;)) })) (labeled_statement "LAB_0011d178:\n        sVar28 = strlen((char *)pbVar7);" statement_identifier : (expression_statement "sVar28 = strlen((char *)pbVar7);" (assignment_expression "sVar28 = strlen((char *)pbVar7)" identifier = (call_expression "strlen((char *)pbVar7)" identifier (argument_list "((char *)pbVar7)" ( (cast_expression "(char *)pbVar7" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;)) (expression_statement "pcVar27 = (char *)xmalloc(sVar28 + 10);" (assignment_expression "pcVar27 = (char *)xmalloc(sVar28 + 10)" identifier = (cast_expression "(char *)xmalloc(sVar28 + 10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(sVar28 + 10)" identifier (argument_list "(sVar28 + 10)" ( (binary_expression "sVar28 + 10" identifier + number_literal) ))))) ;) (expression_statement "*pcVar27 = cVar24;" (assignment_expression "*pcVar27 = cVar24" (pointer_expression "*pcVar27" * identifier) = identifier) ;) (expression_statement "sprintf(pcVar27 + (cVar24 != '\0'),"__start_%s",pbVar7);" (call_expression "sprintf(pcVar27 + (cVar24 != '\0'),"__start_%s",pbVar7)" identifier (argument_list "(pcVar27 + (cVar24 != '\0'),"__start_%s",pbVar7)" ( (binary_expression "pcVar27 + (cVar24 != '\0')" identifier + (parenthesized_expression "(cVar24 != '\0')" ( (binary_expression "cVar24 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) ))) , (string_literal ""__start_%s"" " string_content ") , identifier ))) ;) (expression_statement "lang_define_start_stop(pcVar27,pbVar39);" (call_expression "lang_define_start_stop(pcVar27,pbVar39)" identifier (argument_list "(pcVar27,pbVar39)" ( identifier , identifier ))) ;) (expression_statement "pcVar27[1] = cVar24;" (assignment_expression "pcVar27[1] = cVar24" (subscript_expression "pcVar27[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "builtin_strncpy(pcVar27 + (2 - (ulong)(cVar24 == '\0')),"__stop",6);" (call_expression "builtin_strncpy(pcVar27 + (2 - (ulong)(cVar24 == '\0')),"__stop",6)" identifier (argument_list "(pcVar27 + (2 - (ulong)(cVar24 == '\0')),"__stop",6)" ( (binary_expression "pcVar27 + (2 - (ulong)(cVar24 == '\0'))" identifier + (parenthesized_expression "(2 - (ulong)(cVar24 == '\0'))" ( (binary_expression "2 - (ulong)(cVar24 == '\0')" number_literal - (call_expression "(ulong)(cVar24 == '\0')" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(cVar24 == '\0')" ( (binary_expression "cVar24 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )))) ))) , (string_literal ""__stop"" " string_content ") , number_literal ))) ;) (expression_statement "lang_define_start_stop(pcVar27 + 1,pbVar39);" (call_expression "lang_define_start_stop(pcVar27 + 1,pbVar39)" identifier (argument_list "(pcVar27 + 1,pbVar39)" ( (binary_expression "pcVar27 + 1" identifier + number_literal) , identifier ))) ;) (expression_statement "free(pcVar27);" (call_expression "free(pcVar27)" identifier (argument_list "(pcVar27)" ( identifier ))) ;) })) (labeled_statement "LAB_0011d163:\n      pbVar69 = (pbVar69->link).next;" statement_identifier : (expression_statement "pbVar69 = (pbVar69->link).next;" (assignment_expression "pbVar69 = (pbVar69->link).next" identifier = (field_expression "(pbVar69->link).next" (parenthesized_expression "(pbVar69->link)" ( (field_expression "pbVar69->link" identifier -> field_identifier) )) . field_identifier)) ;)) }) while (parenthesized_expression "(pbVar69 != (bfd *)0x0)" ( (binary_expression "pbVar69 != (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 "pmVar52 = lang_memory_region_list;" (assignment_expression "pmVar52 = lang_memory_region_list" identifier = identifier) ;) (labeled_statement "joined_r0x0011bfdf:\n  if (pmVar52 != (lang_memory_region_type *)0x0) {\n    do {\n      if (pmVar52->origin_exp != (etree_type *)0x0) {\n        exp_fold_tree_no_dot(pmVar52->origin_exp);\n        bVar34 = expld.result.value;\n        if (expld.result.valid_p == 0) {\n          pcVar27 = (pmVar52->name_list).name;\n          pcVar36 = (char *)dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);\n          einfo(pcVar36,pcVar27);\n        }\n        else {\n          pmVar52->origin = expld.result.value;\n          pmVar52->current = bVar34;\n        }\n      }\n      if (pmVar52->length_exp != (etree_type *)0x0) {\n        exp_fold_tree_no_dot(pmVar52->length_exp);\n        if (expld.result.valid_p == 0) goto LAB_0011c1d0;\n        pmVar52->length = expld.result.value;\n      }\n      pmVar52 = pmVar52->next;\n      if (pmVar52 == (memory_region_struct *)0x0) break;\n    } while( true );\n  }" statement_identifier : (if_statement "if (pmVar52 != (lang_memory_region_type *)0x0) {\n    do {\n      if (pmVar52->origin_exp != (etree_type *)0x0) {\n        exp_fold_tree_no_dot(pmVar52->origin_exp);\n        bVar34 = expld.result.value;\n        if (expld.result.valid_p == 0) {\n          pcVar27 = (pmVar52->name_list).name;\n          pcVar36 = (char *)dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);\n          einfo(pcVar36,pcVar27);\n        }\n        else {\n          pmVar52->origin = expld.result.value;\n          pmVar52->current = bVar34;\n        }\n      }\n      if (pmVar52->length_exp != (etree_type *)0x0) {\n        exp_fold_tree_no_dot(pmVar52->length_exp);\n        if (expld.result.valid_p == 0) goto LAB_0011c1d0;\n        pmVar52->length = expld.result.value;\n      }\n      pmVar52 = pmVar52->next;\n      if (pmVar52 == (memory_region_struct *)0x0) break;\n    } while( true );\n  }" if (parenthesized_expression "(pmVar52 != (lang_memory_region_type *)0x0)" ( (binary_expression "pmVar52 != (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 (pmVar52->origin_exp != (etree_type *)0x0) {\n        exp_fold_tree_no_dot(pmVar52->origin_exp);\n        bVar34 = expld.result.value;\n        if (expld.result.valid_p == 0) {\n          pcVar27 = (pmVar52->name_list).name;\n          pcVar36 = (char *)dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);\n          einfo(pcVar36,pcVar27);\n        }\n        else {\n          pmVar52->origin = expld.result.value;\n          pmVar52->current = bVar34;\n        }\n      }\n      if (pmVar52->length_exp != (etree_type *)0x0) {\n        exp_fold_tree_no_dot(pmVar52->length_exp);\n        if (expld.result.valid_p == 0) goto LAB_0011c1d0;\n        pmVar52->length = expld.result.value;\n      }\n      pmVar52 = pmVar52->next;\n      if (pmVar52 == (memory_region_struct *)0x0) break;\n    } while( true );\n  }" { (do_statement "do {\n      if (pmVar52->origin_exp != (etree_type *)0x0) {\n        exp_fold_tree_no_dot(pmVar52->origin_exp);\n        bVar34 = expld.result.value;\n        if (expld.result.valid_p == 0) {\n          pcVar27 = (pmVar52->name_list).name;\n          pcVar36 = (char *)dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);\n          einfo(pcVar36,pcVar27);\n        }\n        else {\n          pmVar52->origin = expld.result.value;\n          pmVar52->current = bVar34;\n        }\n      }\n      if (pmVar52->length_exp != (etree_type *)0x0) {\n        exp_fold_tree_no_dot(pmVar52->length_exp);\n        if (expld.result.valid_p == 0) goto LAB_0011c1d0;\n        pmVar52->length = expld.result.value;\n      }\n      pmVar52 = pmVar52->next;\n      if (pmVar52 == (memory_region_struct *)0x0) break;\n    } while( true );" do (compound_statement "{\n      if (pmVar52->origin_exp != (etree_type *)0x0) {\n        exp_fold_tree_no_dot(pmVar52->origin_exp);\n        bVar34 = expld.result.value;\n        if (expld.result.valid_p == 0) {\n          pcVar27 = (pmVar52->name_list).name;\n          pcVar36 = (char *)dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);\n          einfo(pcVar36,pcVar27);\n        }\n        else {\n          pmVar52->origin = expld.result.value;\n          pmVar52->current = bVar34;\n        }\n      }\n      if (pmVar52->length_exp != (etree_type *)0x0) {\n        exp_fold_tree_no_dot(pmVar52->length_exp);\n        if (expld.result.valid_p == 0) goto LAB_0011c1d0;\n        pmVar52->length = expld.result.value;\n      }\n      pmVar52 = pmVar52->next;\n      if (pmVar52 == (memory_region_struct *)0x0) break;\n    }" { (if_statement "if (pmVar52->origin_exp != (etree_type *)0x0) {\n        exp_fold_tree_no_dot(pmVar52->origin_exp);\n        bVar34 = expld.result.value;\n        if (expld.result.valid_p == 0) {\n          pcVar27 = (pmVar52->name_list).name;\n          pcVar36 = (char *)dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);\n          einfo(pcVar36,pcVar27);\n        }\n        else {\n          pmVar52->origin = expld.result.value;\n          pmVar52->current = bVar34;\n        }\n      }" if (parenthesized_expression "(pmVar52->origin_exp != (etree_type *)0x0)" ( (binary_expression "pmVar52->origin_exp != (etree_type *)0x0" (field_expression "pmVar52->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(pmVar52->origin_exp);\n        bVar34 = expld.result.value;\n        if (expld.result.valid_p == 0) {\n          pcVar27 = (pmVar52->name_list).name;\n          pcVar36 = (char *)dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);\n          einfo(pcVar36,pcVar27);\n        }\n        else {\n          pmVar52->origin = expld.result.value;\n          pmVar52->current = bVar34;\n        }\n      }" { (expression_statement "exp_fold_tree_no_dot(pmVar52->origin_exp);" (call_expression "exp_fold_tree_no_dot(pmVar52->origin_exp)" identifier (argument_list "(pmVar52->origin_exp)" ( (field_expression "pmVar52->origin_exp" identifier -> field_identifier) ))) ;) (expression_statement "bVar34 = expld.result.value;" (assignment_expression "bVar34 = expld.result.value" identifier = (field_expression "expld.result.value" (field_expression "expld.result" identifier . field_identifier) . field_identifier)) ;) (if_statement "if (expld.result.valid_p == 0) {\n          pcVar27 = (pmVar52->name_list).name;\n          pcVar36 = (char *)dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);\n          einfo(pcVar36,pcVar27);\n        }\n        else {\n          pmVar52->origin = expld.result.value;\n          pmVar52->current = bVar34;\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          pcVar27 = (pmVar52->name_list).name;\n          pcVar36 = (char *)dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);\n          einfo(pcVar36,pcVar27);\n        }" { (expression_statement "pcVar27 = (pmVar52->name_list).name;" (assignment_expression "pcVar27 = (pmVar52->name_list).name" identifier = (field_expression "(pmVar52->name_list).name" (parenthesized_expression "(pmVar52->name_list)" ( (field_expression "pmVar52->name_list" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "pcVar36 = (char *)dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);" (assignment_expression "pcVar36 = (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(pcVar36,pcVar27);" (call_expression "einfo(pcVar36,pcVar27)" identifier (argument_list "(pcVar36,pcVar27)" ( identifier , identifier ))) ;) }) (else_clause "else {\n          pmVar52->origin = expld.result.value;\n          pmVar52->current = bVar34;\n        }" else (compound_statement "{\n          pmVar52->origin = expld.result.value;\n          pmVar52->current = bVar34;\n        }" { (expression_statement "pmVar52->origin = expld.result.value;" (assignment_expression "pmVar52->origin = expld.result.value" (field_expression "pmVar52->origin" identifier -> field_identifier) = (field_expression "expld.result.value" (field_expression "expld.result" identifier . field_identifier) . field_identifier)) ;) (expression_statement "pmVar52->current = bVar34;" (assignment_expression "pmVar52->current = bVar34" (field_expression "pmVar52->current" identifier -> field_identifier) = identifier) ;) }))) })) (if_statement "if (pmVar52->length_exp != (etree_type *)0x0) {\n        exp_fold_tree_no_dot(pmVar52->length_exp);\n        if (expld.result.valid_p == 0) goto LAB_0011c1d0;\n        pmVar52->length = expld.result.value;\n      }" if (parenthesized_expression "(pmVar52->length_exp != (etree_type *)0x0)" ( (binary_expression "pmVar52->length_exp != (etree_type *)0x0" (field_expression "pmVar52->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(pmVar52->length_exp);\n        if (expld.result.valid_p == 0) goto LAB_0011c1d0;\n        pmVar52->length = expld.result.value;\n      }" { (expression_statement "exp_fold_tree_no_dot(pmVar52->length_exp);" (call_expression "exp_fold_tree_no_dot(pmVar52->length_exp)" identifier (argument_list "(pmVar52->length_exp)" ( (field_expression "pmVar52->length_exp" identifier -> field_identifier) ))) ;) (if_statement "if (expld.result.valid_p == 0) goto LAB_0011c1d0;" 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_0011c1d0;" goto statement_identifier ;)) (expression_statement "pmVar52->length = expld.result.value;" (assignment_expression "pmVar52->length = expld.result.value" (field_expression "pmVar52->length" identifier -> field_identifier) = (field_expression "expld.result.value" (field_expression "expld.result" identifier . field_identifier) . field_identifier)) ;) })) (expression_statement "pmVar52 = pmVar52->next;" (assignment_expression "pmVar52 = pmVar52->next" identifier = (field_expression "pmVar52->next" identifier -> field_identifier)) ;) (if_statement "if (pmVar52 == (memory_region_struct *)0x0) break;" if (parenthesized_expression "(pmVar52 == (memory_region_struct *)0x0)" ( (binary_expression "pmVar52 == (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 "plVar51 = file_chain.head;" (assignment_expression "plVar51 = file_chain.head" identifier = (field_expression "file_chain.head" identifier . field_identifier)) ;) (if_statement "if ((link_info._0_1_ & 3) == 2) {\n    for (; plVar51 != (lang_statement_union *)0x0; plVar51 = (plVar51->wild_statement).children.head\n        ) {\n      if (((ulong)(plVar51->wild_statement).walk_wild_section_handler & 0x2000) == 0) {\n        for (pbVar39 = ((plVar51->input_statement).the_bfd)->sections; pbVar39 != (bfd_section *)0x0\n            ; pbVar39 = pbVar39->next) {\n          if ((pbVar39->flags & 0x2000) == 0) {\n            pbVar39->flags = pbVar39->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 (; plVar51 != (lang_statement_union *)0x0; plVar51 = (plVar51->wild_statement).children.head\n        ) {\n      if (((ulong)(plVar51->wild_statement).walk_wild_section_handler & 0x2000) == 0) {\n        for (pbVar39 = ((plVar51->input_statement).the_bfd)->sections; pbVar39 != (bfd_section *)0x0\n            ; pbVar39 = pbVar39->next) {\n          if ((pbVar39->flags & 0x2000) == 0) {\n            pbVar39->flags = pbVar39->flags & 0xffff7fff;\n          }\n        }\n      }\n    }\n  }" { (for_statement "for (; plVar51 != (lang_statement_union *)0x0; plVar51 = (plVar51->wild_statement).children.head\n        ) {\n      if (((ulong)(plVar51->wild_statement).walk_wild_section_handler & 0x2000) == 0) {\n        for (pbVar39 = ((plVar51->input_statement).the_bfd)->sections; pbVar39 != (bfd_section *)0x0\n            ; pbVar39 = pbVar39->next) {\n          if ((pbVar39->flags & 0x2000) == 0) {\n            pbVar39->flags = pbVar39->flags & 0xffff7fff;\n          }\n        }\n      }\n    }" for ( ; (binary_expression "plVar51 != (lang_statement_union *)0x0" identifier != (cast_expression "(lang_statement_union *)0x0" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "plVar51 = (plVar51->wild_statement).children.head" identifier = (field_expression "(plVar51->wild_statement).children.head" (field_expression "(plVar51->wild_statement).children" (parenthesized_expression "(plVar51->wild_statement)" ( (field_expression "plVar51->wild_statement" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ) (compound_statement "{\n      if (((ulong)(plVar51->wild_statement).walk_wild_section_handler & 0x2000) == 0) {\n        for (pbVar39 = ((plVar51->input_statement).the_bfd)->sections; pbVar39 != (bfd_section *)0x0\n            ; pbVar39 = pbVar39->next) {\n          if ((pbVar39->flags & 0x2000) == 0) {\n            pbVar39->flags = pbVar39->flags & 0xffff7fff;\n          }\n        }\n      }\n    }" { (if_statement "if (((ulong)(plVar51->wild_statement).walk_wild_section_handler & 0x2000) == 0) {\n        for (pbVar39 = ((plVar51->input_statement).the_bfd)->sections; pbVar39 != (bfd_section *)0x0\n            ; pbVar39 = pbVar39->next) {\n          if ((pbVar39->flags & 0x2000) == 0) {\n            pbVar39->flags = pbVar39->flags & 0xffff7fff;\n          }\n        }\n      }" if (parenthesized_expression "(((ulong)(plVar51->wild_statement).walk_wild_section_handler & 0x2000) == 0)" ( (binary_expression "((ulong)(plVar51->wild_statement).walk_wild_section_handler & 0x2000) == 0" (parenthesized_expression "((ulong)(plVar51->wild_statement).walk_wild_section_handler & 0x2000)" ( (binary_expression "(ulong)(plVar51->wild_statement).walk_wild_section_handler & 0x2000" (field_expression "(ulong)(plVar51->wild_statement).walk_wild_section_handler" (call_expression "(ulong)(plVar51->wild_statement)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(plVar51->wild_statement)" ( (field_expression "plVar51->wild_statement" identifier -> field_identifier) ))) . field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n        for (pbVar39 = ((plVar51->input_statement).the_bfd)->sections; pbVar39 != (bfd_section *)0x0\n            ; pbVar39 = pbVar39->next) {\n          if ((pbVar39->flags & 0x2000) == 0) {\n            pbVar39->flags = pbVar39->flags & 0xffff7fff;\n          }\n        }\n      }" { (for_statement "for (pbVar39 = ((plVar51->input_statement).the_bfd)->sections; pbVar39 != (bfd_section *)0x0\n            ; pbVar39 = pbVar39->next) {\n          if ((pbVar39->flags & 0x2000) == 0) {\n            pbVar39->flags = pbVar39->flags & 0xffff7fff;\n          }\n        }" for ( (assignment_expression "pbVar39 = ((plVar51->input_statement).the_bfd)->sections" identifier = (field_expression "((plVar51->input_statement).the_bfd)->sections" (parenthesized_expression "((plVar51->input_statement).the_bfd)" ( (field_expression "(plVar51->input_statement).the_bfd" (parenthesized_expression "(plVar51->input_statement)" ( (field_expression "plVar51->input_statement" identifier -> field_identifier) )) . field_identifier) )) -> field_identifier)) ; (binary_expression "pbVar39 != (bfd_section *)0x0" identifier != (cast_expression "(bfd_section *)0x0" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "pbVar39 = pbVar39->next" identifier = (field_expression "pbVar39->next" identifier -> field_identifier)) ) (compound_statement "{\n          if ((pbVar39->flags & 0x2000) == 0) {\n            pbVar39->flags = pbVar39->flags & 0xffff7fff;\n          }\n        }" { (if_statement "if ((pbVar39->flags & 0x2000) == 0) {\n            pbVar39->flags = pbVar39->flags & 0xffff7fff;\n          }" if (parenthesized_expression "((pbVar39->flags & 0x2000) == 0)" ( (binary_expression "(pbVar39->flags & 0x2000) == 0" (parenthesized_expression "(pbVar39->flags & 0x2000)" ( (binary_expression "pbVar39->flags & 0x2000" (field_expression "pbVar39->flags" identifier -> field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n            pbVar39->flags = pbVar39->flags & 0xffff7fff;\n          }" { (expression_statement "pbVar39->flags = pbVar39->flags & 0xffff7fff;" (assignment_expression "pbVar39->flags = pbVar39->flags & 0xffff7fff" (field_expression "pbVar39->flags" identifier -> field_identifier) = (binary_expression "pbVar39->flags & 0xffff7fff" (field_expression "pbVar39->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 "pbVar69 = link_info.input_bfds;" (assignment_expression "pbVar69 = 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 (; pbVar69 != (bfd *)0x0; pbVar69 = (pbVar69->link).next) {\n      iVar25 = bfd_link_check_relocs(pbVar69);\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 (; pbVar69 != (bfd *)0x0; pbVar69 = (pbVar69->link).next) {\n      iVar25 = bfd_link_check_relocs(pbVar69);\n      if (iVar25 == 0) {\n        config.make_executable = 0;\n      }\n    }\n  }" { (for_statement "for (; pbVar69 != (bfd *)0x0; pbVar69 = (pbVar69->link).next) {\n      iVar25 = bfd_link_check_relocs(pbVar69);\n      if (iVar25 == 0) {\n        config.make_executable = 0;\n      }\n    }" for ( ; (binary_expression "pbVar69 != (bfd *)0x0" identifier != (cast_expression "(bfd *)0x0" ( (type_descriptor "bfd *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "pbVar69 = (pbVar69->link).next" identifier = (field_expression "(pbVar69->link).next" (parenthesized_expression "(pbVar69->link)" ( (field_expression "pbVar69->link" identifier -> field_identifier) )) . field_identifier)) ) (compound_statement "{\n      iVar25 = bfd_link_check_relocs(pbVar69);\n      if (iVar25 == 0) {\n        config.make_executable = 0;\n      }\n    }" { (expression_statement "iVar25 = bfd_link_check_relocs(pbVar69);" (assignment_expression "iVar25 = bfd_link_check_relocs(pbVar69)" identifier = (call_expression "bfd_link_check_relocs(pbVar69)" identifier (argument_list "(pbVar69)" ( 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 "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 "plVar43 = (lang_statement_union *)0x0;" (assignment_expression "plVar43 = (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 "plVar61 = (lang_statement_union *)0x0;" (assignment_expression "plVar61 = (lang_statement_union *)0x0" identifier = (cast_expression "(lang_statement_union *)0x0" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "plVar51 = lang_output_section_statement.head;" (assignment_expression "plVar51 = lang_output_section_statement.head" identifier = (field_expression "lang_output_section_statement.head" identifier . field_identifier)) ;) (while_statement "while (plVar70 = plVar51, plVar46 = (plVar70->header).next, plVar46 != (lang_statement_union *)0x0\n        ) {\n    plVar51 = plVar46;\n    if ((plVar46->header).type == lang_output_section_statement_enum) {\n      if ((plVar61 != (lang_statement_union *)0x0) &&\n         (plVar46 != (lang_statement_union *)(plVar61->wild_statement).section_list)) {\n        info_assert("../../ld/ldlang.c",0xea0);\n        plVar51 = (plVar70->header).next;\n      }\n      (plVar46->output_section_statement).constraint =\n           -2 - (plVar46->output_section_statement).constraint;\n      plVar61 = plVar46;\n      if (plVar43 == (lang_statement_union *)0x0) {\n        plVar43 = plVar46;\n      }\n    }\n    else if ((plVar46->header).type == lang_insert_statement_enum) {\n      after = lang_output_section_statement_lookup((plVar46->wild_statement).filename,0,0);\n      if (after == (lang_output_section_statement_type *)0x0) {\nLAB_0011c415:\n        pcVar27 = (char *)dcgettext(0,"%F%P: %s not found for insert\n",5);\n        einfo(pcVar27);\n        plVar51 = file_chain.head;\n        goto joined_r0x0011c458;\n      }\n      if ((plVar46->wild_statement).filenames_sorted != 0) {\n        do {\n          after = after->prev;\n          if (after == (lang_output_section_statement_struct *)0x0) goto LAB_0011c415;\n        } while (after->constraint < 0);\n      }\n      if (plVar61 != (lang_statement_union *)0x0) {\n        plVar9 = (plVar43->output_section_statement).prev;\n        plVar10 = (plVar61->output_section_statement).next;\n        plVar9->next = plVar10;\n        if (plVar10 == (lang_output_section_statement_struct *)0x0) {\n          lang_output_section_statement.tail = (lang_statement_union **)&plVar9->next;\n        }\n        else {\n          plVar10->prev = plVar9;\n        }\n        (plVar61->wild_statement).section_list = (wildcard_list *)after->next;\n        if (after->next == (lang_output_section_statement_struct *)0x0) {\n          lang_output_section_statement.tail =\n               (lang_statement_union **)&(plVar61->output_section_statement).next;\n        }\n        else {\n          after->next->prev = (lang_output_section_statement_struct *)plVar61;\n        }\n        (plVar43->output_section_statement).prev = after;\n        paVar64 = (asection *)0x0;\n        paVar59 = (asection *)0x0;\n        after->next = (lang_output_section_statement_struct *)plVar43;\n        do {\n          (plVar43->output_section_statement).constraint =\n               -2 - (plVar43->output_section_statement).constraint;\n          paVar49 = (plVar43->output_section_statement).bfd_section;\n          if (((paVar49 != (asection *)0x0) && (paVar49->owner != (bfd *)0x0)) &&\n             (paVar64 = paVar49, paVar59 == (asection *)0x0)) {\n            paVar59 = paVar49;\n          }\n        } while ((plVar61 != plVar43) &&\n                (plVar43 = (lang_statement_union *)(plVar43->wild_statement).section_list,\n                plVar43 != (lang_statement_union *)0x0));\n        plVar43 = (lang_statement_union *)0x0;\n        if (paVar64 != (asection *)0x0) {\n          paVar49 = after->bfd_section;\n          if (paVar49 == (asection *)0x0) {\n            plVar43 = (lang_statement_union *)after->prev;\n            if (plVar43 != (lang_statement_union *)0x0) {\n              do {\n                if (((-1 < (plVar43->output_section_statement).constraint) &&\n                    (paVar49 = (plVar43->output_section_statement).bfd_section,\n                    paVar49 != (asection *)0x0)) && (paVar49->owner != (bfd *)0x0))\n                goto LAB_0011cd61;\n                plVar43 = (lang_statement_union *)(plVar43->data_statement).output_section;\n              } while (plVar43 != (lang_statement_union *)0x0);\n              plVar43 = (lang_statement_union *)0x0;\n            }\n          }\n          else {\nLAB_0011cd61:\n            plVar43 = (lang_statement_union *)0x0;\n            if (paVar49 != paVar64) {\n              pbVar39 = paVar59->prev;\n              pbVar66 = paVar64->next;\n              if (pbVar39 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->sections = pbVar66;\n              }\n              else {\n                pbVar39->next = pbVar66;\n                pbVar66 = paVar64->next;\n              }\n              if (pbVar66 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->section_last = pbVar39;\n              }\n              else {\n                pbVar66->prev = pbVar39;\n              }\n              pbVar39 = paVar49->next;\n              paVar64->next = pbVar39;\n              if (pbVar39 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->section_last = paVar64;\n              }\n              else {\n                pbVar39->prev = paVar64;\n              }\n              paVar59->prev = paVar49;\n              plVar43 = (lang_statement_union *)0x0;\n              paVar49->next = paVar59;\n            }\n          }\n        }\n      }\n      pplVar32 = insert_os_after(after);\n      plVar51 = ((lang_output_section_statement.head)->header).next;\n      ((lang_output_section_statement.head)->header).next = (((plVar70->header).next)->header).next;\n      plVar61 = *pplVar32;\n      (plVar70->header).next = plVar61;\n      if (plVar61 == (lang_statement_union *)0x0) {\n        statement_list.tail = (lang_statement_union **)plVar70;\n      }\n      *pplVar32 = plVar51;\n      plVar61 = (lang_statement_union *)0x0;\n      plVar51 = lang_output_section_statement.head;\n    }\n  }" while (parenthesized_expression "(plVar70 = plVar51, plVar46 = (plVar70->header).next, plVar46 != (lang_statement_union *)0x0\n        )" ( (comma_expression "plVar70 = plVar51, plVar46 = (plVar70->header).next, plVar46 != (lang_statement_union *)0x0" (assignment_expression "plVar70 = plVar51" identifier = identifier) , (comma_expression "plVar46 = (plVar70->header).next, plVar46 != (lang_statement_union *)0x0" (assignment_expression "plVar46 = (plVar70->header).next" identifier = (field_expression "(plVar70->header).next" (parenthesized_expression "(plVar70->header)" ( (field_expression "plVar70->header" identifier -> field_identifier) )) . field_identifier)) , (binary_expression "plVar46 != (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 = plVar46;\n    if ((plVar46->header).type == lang_output_section_statement_enum) {\n      if ((plVar61 != (lang_statement_union *)0x0) &&\n         (plVar46 != (lang_statement_union *)(plVar61->wild_statement).section_list)) {\n        info_assert("../../ld/ldlang.c",0xea0);\n        plVar51 = (plVar70->header).next;\n      }\n      (plVar46->output_section_statement).constraint =\n           -2 - (plVar46->output_section_statement).constraint;\n      plVar61 = plVar46;\n      if (plVar43 == (lang_statement_union *)0x0) {\n        plVar43 = plVar46;\n      }\n    }\n    else if ((plVar46->header).type == lang_insert_statement_enum) {\n      after = lang_output_section_statement_lookup((plVar46->wild_statement).filename,0,0);\n      if (after == (lang_output_section_statement_type *)0x0) {\nLAB_0011c415:\n        pcVar27 = (char *)dcgettext(0,"%F%P: %s not found for insert\n",5);\n        einfo(pcVar27);\n        plVar51 = file_chain.head;\n        goto joined_r0x0011c458;\n      }\n      if ((plVar46->wild_statement).filenames_sorted != 0) {\n        do {\n          after = after->prev;\n          if (after == (lang_output_section_statement_struct *)0x0) goto LAB_0011c415;\n        } while (after->constraint < 0);\n      }\n      if (plVar61 != (lang_statement_union *)0x0) {\n        plVar9 = (plVar43->output_section_statement).prev;\n        plVar10 = (plVar61->output_section_statement).next;\n        plVar9->next = plVar10;\n        if (plVar10 == (lang_output_section_statement_struct *)0x0) {\n          lang_output_section_statement.tail = (lang_statement_union **)&plVar9->next;\n        }\n        else {\n          plVar10->prev = plVar9;\n        }\n        (plVar61->wild_statement).section_list = (wildcard_list *)after->next;\n        if (after->next == (lang_output_section_statement_struct *)0x0) {\n          lang_output_section_statement.tail =\n               (lang_statement_union **)&(plVar61->output_section_statement).next;\n        }\n        else {\n          after->next->prev = (lang_output_section_statement_struct *)plVar61;\n        }\n        (plVar43->output_section_statement).prev = after;\n        paVar64 = (asection *)0x0;\n        paVar59 = (asection *)0x0;\n        after->next = (lang_output_section_statement_struct *)plVar43;\n        do {\n          (plVar43->output_section_statement).constraint =\n               -2 - (plVar43->output_section_statement).constraint;\n          paVar49 = (plVar43->output_section_statement).bfd_section;\n          if (((paVar49 != (asection *)0x0) && (paVar49->owner != (bfd *)0x0)) &&\n             (paVar64 = paVar49, paVar59 == (asection *)0x0)) {\n            paVar59 = paVar49;\n          }\n        } while ((plVar61 != plVar43) &&\n                (plVar43 = (lang_statement_union *)(plVar43->wild_statement).section_list,\n                plVar43 != (lang_statement_union *)0x0));\n        plVar43 = (lang_statement_union *)0x0;\n        if (paVar64 != (asection *)0x0) {\n          paVar49 = after->bfd_section;\n          if (paVar49 == (asection *)0x0) {\n            plVar43 = (lang_statement_union *)after->prev;\n            if (plVar43 != (lang_statement_union *)0x0) {\n              do {\n                if (((-1 < (plVar43->output_section_statement).constraint) &&\n                    (paVar49 = (plVar43->output_section_statement).bfd_section,\n                    paVar49 != (asection *)0x0)) && (paVar49->owner != (bfd *)0x0))\n                goto LAB_0011cd61;\n                plVar43 = (lang_statement_union *)(plVar43->data_statement).output_section;\n              } while (plVar43 != (lang_statement_union *)0x0);\n              plVar43 = (lang_statement_union *)0x0;\n            }\n          }\n          else {\nLAB_0011cd61:\n            plVar43 = (lang_statement_union *)0x0;\n            if (paVar49 != paVar64) {\n              pbVar39 = paVar59->prev;\n              pbVar66 = paVar64->next;\n              if (pbVar39 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->sections = pbVar66;\n              }\n              else {\n                pbVar39->next = pbVar66;\n                pbVar66 = paVar64->next;\n              }\n              if (pbVar66 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->section_last = pbVar39;\n              }\n              else {\n                pbVar66->prev = pbVar39;\n              }\n              pbVar39 = paVar49->next;\n              paVar64->next = pbVar39;\n              if (pbVar39 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->section_last = paVar64;\n              }\n              else {\n                pbVar39->prev = paVar64;\n              }\n              paVar59->prev = paVar49;\n              plVar43 = (lang_statement_union *)0x0;\n              paVar49->next = paVar59;\n            }\n          }\n        }\n      }\n      pplVar32 = insert_os_after(after);\n      plVar51 = ((lang_output_section_statement.head)->header).next;\n      ((lang_output_section_statement.head)->header).next = (((plVar70->header).next)->header).next;\n      plVar61 = *pplVar32;\n      (plVar70->header).next = plVar61;\n      if (plVar61 == (lang_statement_union *)0x0) {\n        statement_list.tail = (lang_statement_union **)plVar70;\n      }\n      *pplVar32 = plVar51;\n      plVar61 = (lang_statement_union *)0x0;\n      plVar51 = lang_output_section_statement.head;\n    }\n  }" { (expression_statement "plVar51 = plVar46;" (assignment_expression "plVar51 = plVar46" identifier = identifier) ;) (if_statement "if ((plVar46->header).type == lang_output_section_statement_enum) {\n      if ((plVar61 != (lang_statement_union *)0x0) &&\n         (plVar46 != (lang_statement_union *)(plVar61->wild_statement).section_list)) {\n        info_assert("../../ld/ldlang.c",0xea0);\n        plVar51 = (plVar70->header).next;\n      }\n      (plVar46->output_section_statement).constraint =\n           -2 - (plVar46->output_section_statement).constraint;\n      plVar61 = plVar46;\n      if (plVar43 == (lang_statement_union *)0x0) {\n        plVar43 = plVar46;\n      }\n    }\n    else if ((plVar46->header).type == lang_insert_statement_enum) {\n      after = lang_output_section_statement_lookup((plVar46->wild_statement).filename,0,0);\n      if (after == (lang_output_section_statement_type *)0x0) {\nLAB_0011c415:\n        pcVar27 = (char *)dcgettext(0,"%F%P: %s not found for insert\n",5);\n        einfo(pcVar27);\n        plVar51 = file_chain.head;\n        goto joined_r0x0011c458;\n      }\n      if ((plVar46->wild_statement).filenames_sorted != 0) {\n        do {\n          after = after->prev;\n          if (after == (lang_output_section_statement_struct *)0x0) goto LAB_0011c415;\n        } while (after->constraint < 0);\n      }\n      if (plVar61 != (lang_statement_union *)0x0) {\n        plVar9 = (plVar43->output_section_statement).prev;\n        plVar10 = (plVar61->output_section_statement).next;\n        plVar9->next = plVar10;\n        if (plVar10 == (lang_output_section_statement_struct *)0x0) {\n          lang_output_section_statement.tail = (lang_statement_union **)&plVar9->next;\n        }\n        else {\n          plVar10->prev = plVar9;\n        }\n        (plVar61->wild_statement).section_list = (wildcard_list *)after->next;\n        if (after->next == (lang_output_section_statement_struct *)0x0) {\n          lang_output_section_statement.tail =\n               (lang_statement_union **)&(plVar61->output_section_statement).next;\n        }\n        else {\n          after->next->prev = (lang_output_section_statement_struct *)plVar61;\n        }\n        (plVar43->output_section_statement).prev = after;\n        paVar64 = (asection *)0x0;\n        paVar59 = (asection *)0x0;\n        after->next = (lang_output_section_statement_struct *)plVar43;\n        do {\n          (plVar43->output_section_statement).constraint =\n               -2 - (plVar43->output_section_statement).constraint;\n          paVar49 = (plVar43->output_section_statement).bfd_section;\n          if (((paVar49 != (asection *)0x0) && (paVar49->owner != (bfd *)0x0)) &&\n             (paVar64 = paVar49, paVar59 == (asection *)0x0)) {\n            paVar59 = paVar49;\n          }\n        } while ((plVar61 != plVar43) &&\n                (plVar43 = (lang_statement_union *)(plVar43->wild_statement).section_list,\n                plVar43 != (lang_statement_union *)0x0));\n        plVar43 = (lang_statement_union *)0x0;\n        if (paVar64 != (asection *)0x0) {\n          paVar49 = after->bfd_section;\n          if (paVar49 == (asection *)0x0) {\n            plVar43 = (lang_statement_union *)after->prev;\n            if (plVar43 != (lang_statement_union *)0x0) {\n              do {\n                if (((-1 < (plVar43->output_section_statement).constraint) &&\n                    (paVar49 = (plVar43->output_section_statement).bfd_section,\n                    paVar49 != (asection *)0x0)) && (paVar49->owner != (bfd *)0x0))\n                goto LAB_0011cd61;\n                plVar43 = (lang_statement_union *)(plVar43->data_statement).output_section;\n              } while (plVar43 != (lang_statement_union *)0x0);\n              plVar43 = (lang_statement_union *)0x0;\n            }\n          }\n          else {\nLAB_0011cd61:\n            plVar43 = (lang_statement_union *)0x0;\n            if (paVar49 != paVar64) {\n              pbVar39 = paVar59->prev;\n              pbVar66 = paVar64->next;\n              if (pbVar39 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->sections = pbVar66;\n              }\n              else {\n                pbVar39->next = pbVar66;\n                pbVar66 = paVar64->next;\n              }\n              if (pbVar66 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->section_last = pbVar39;\n              }\n              else {\n                pbVar66->prev = pbVar39;\n              }\n              pbVar39 = paVar49->next;\n              paVar64->next = pbVar39;\n              if (pbVar39 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->section_last = paVar64;\n              }\n              else {\n                pbVar39->prev = paVar64;\n              }\n              paVar59->prev = paVar49;\n              plVar43 = (lang_statement_union *)0x0;\n              paVar49->next = paVar59;\n            }\n          }\n        }\n      }\n      pplVar32 = insert_os_after(after);\n      plVar51 = ((lang_output_section_statement.head)->header).next;\n      ((lang_output_section_statement.head)->header).next = (((plVar70->header).next)->header).next;\n      plVar61 = *pplVar32;\n      (plVar70->header).next = plVar61;\n      if (plVar61 == (lang_statement_union *)0x0) {\n        statement_list.tail = (lang_statement_union **)plVar70;\n      }\n      *pplVar32 = plVar51;\n      plVar61 = (lang_statement_union *)0x0;\n      plVar51 = lang_output_section_statement.head;\n    }" if (parenthesized_expression "((plVar46->header).type == lang_output_section_statement_enum)" ( (binary_expression "(plVar46->header).type == lang_output_section_statement_enum" (field_expression "(plVar46->header).type" (parenthesized_expression "(plVar46->header)" ( (field_expression "plVar46->header" identifier -> field_identifier) )) . field_identifier) == identifier) )) (compound_statement "{\n      if ((plVar61 != (lang_statement_union *)0x0) &&\n         (plVar46 != (lang_statement_union *)(plVar61->wild_statement).section_list)) {\n        info_assert("../../ld/ldlang.c",0xea0);\n        plVar51 = (plVar70->header).next;\n      }\n      (plVar46->output_section_statement).constraint =\n           -2 - (plVar46->output_section_statement).constraint;\n      plVar61 = plVar46;\n      if (plVar43 == (lang_statement_union *)0x0) {\n        plVar43 = plVar46;\n      }\n    }" { (if_statement "if ((plVar61 != (lang_statement_union *)0x0) &&\n         (plVar46 != (lang_statement_union *)(plVar61->wild_statement).section_list)) {\n        info_assert("../../ld/ldlang.c",0xea0);\n        plVar51 = (plVar70->header).next;\n      }" if (parenthesized_expression "((plVar61 != (lang_statement_union *)0x0) &&\n         (plVar46 != (lang_statement_union *)(plVar61->wild_statement).section_list))" ( (binary_expression "(plVar61 != (lang_statement_union *)0x0) &&\n         (plVar46 != (lang_statement_union *)(plVar61->wild_statement).section_list)" (parenthesized_expression "(plVar61 != (lang_statement_union *)0x0)" ( (binary_expression "plVar61 != (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 "(plVar46 != (lang_statement_union *)(plVar61->wild_statement).section_list)" ( (binary_expression "plVar46 != (lang_statement_union *)(plVar61->wild_statement).section_list" identifier != (cast_expression "(lang_statement_union *)(plVar61->wild_statement).section_list" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(plVar61->wild_statement).section_list" (parenthesized_expression "(plVar61->wild_statement)" ( (field_expression "plVar61->wild_statement" identifier -> field_identifier) )) . field_identifier))) ))) )) (compound_statement "{\n        info_assert("../../ld/ldlang.c",0xea0);\n        plVar51 = (plVar70->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 "plVar51 = (plVar70->header).next;" (assignment_expression "plVar51 = (plVar70->header).next" identifier = (field_expression "(plVar70->header).next" (parenthesized_expression "(plVar70->header)" ( (field_expression "plVar70->header" identifier -> field_identifier) )) . field_identifier)) ;) })) (expression_statement "(plVar46->output_section_statement).constraint =\n           -2 - (plVar46->output_section_statement).constraint;" (assignment_expression "(plVar46->output_section_statement).constraint =\n           -2 - (plVar46->output_section_statement).constraint" (field_expression "(plVar46->output_section_statement).constraint" (parenthesized_expression "(plVar46->output_section_statement)" ( (field_expression "plVar46->output_section_statement" identifier -> field_identifier) )) . field_identifier) = (binary_expression "-2 - (plVar46->output_section_statement).constraint" number_literal - (field_expression "(plVar46->output_section_statement).constraint" (parenthesized_expression "(plVar46->output_section_statement)" ( (field_expression "plVar46->output_section_statement" identifier -> field_identifier) )) . field_identifier))) ;) (expression_statement "plVar61 = plVar46;" (assignment_expression "plVar61 = plVar46" identifier = identifier) ;) (if_statement "if (plVar43 == (lang_statement_union *)0x0) {\n        plVar43 = plVar46;\n      }" if (parenthesized_expression "(plVar43 == (lang_statement_union *)0x0)" ( (binary_expression "plVar43 == (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        plVar43 = plVar46;\n      }" { (expression_statement "plVar43 = plVar46;" (assignment_expression "plVar43 = plVar46" identifier = identifier) ;) })) }) (else_clause "else if ((plVar46->header).type == lang_insert_statement_enum) {\n      after = lang_output_section_statement_lookup((plVar46->wild_statement).filename,0,0);\n      if (after == (lang_output_section_statement_type *)0x0) {\nLAB_0011c415:\n        pcVar27 = (char *)dcgettext(0,"%F%P: %s not found for insert\n",5);\n        einfo(pcVar27);\n        plVar51 = file_chain.head;\n        goto joined_r0x0011c458;\n      }\n      if ((plVar46->wild_statement).filenames_sorted != 0) {\n        do {\n          after = after->prev;\n          if (after == (lang_output_section_statement_struct *)0x0) goto LAB_0011c415;\n        } while (after->constraint < 0);\n      }\n      if (plVar61 != (lang_statement_union *)0x0) {\n        plVar9 = (plVar43->output_section_statement).prev;\n        plVar10 = (plVar61->output_section_statement).next;\n        plVar9->next = plVar10;\n        if (plVar10 == (lang_output_section_statement_struct *)0x0) {\n          lang_output_section_statement.tail = (lang_statement_union **)&plVar9->next;\n        }\n        else {\n          plVar10->prev = plVar9;\n        }\n        (plVar61->wild_statement).section_list = (wildcard_list *)after->next;\n        if (after->next == (lang_output_section_statement_struct *)0x0) {\n          lang_output_section_statement.tail =\n               (lang_statement_union **)&(plVar61->output_section_statement).next;\n        }\n        else {\n          after->next->prev = (lang_output_section_statement_struct *)plVar61;\n        }\n        (plVar43->output_section_statement).prev = after;\n        paVar64 = (asection *)0x0;\n        paVar59 = (asection *)0x0;\n        after->next = (lang_output_section_statement_struct *)plVar43;\n        do {\n          (plVar43->output_section_statement).constraint =\n               -2 - (plVar43->output_section_statement).constraint;\n          paVar49 = (plVar43->output_section_statement).bfd_section;\n          if (((paVar49 != (asection *)0x0) && (paVar49->owner != (bfd *)0x0)) &&\n             (paVar64 = paVar49, paVar59 == (asection *)0x0)) {\n            paVar59 = paVar49;\n          }\n        } while ((plVar61 != plVar43) &&\n                (plVar43 = (lang_statement_union *)(plVar43->wild_statement).section_list,\n                plVar43 != (lang_statement_union *)0x0));\n        plVar43 = (lang_statement_union *)0x0;\n        if (paVar64 != (asection *)0x0) {\n          paVar49 = after->bfd_section;\n          if (paVar49 == (asection *)0x0) {\n            plVar43 = (lang_statement_union *)after->prev;\n            if (plVar43 != (lang_statement_union *)0x0) {\n              do {\n                if (((-1 < (plVar43->output_section_statement).constraint) &&\n                    (paVar49 = (plVar43->output_section_statement).bfd_section,\n                    paVar49 != (asection *)0x0)) && (paVar49->owner != (bfd *)0x0))\n                goto LAB_0011cd61;\n                plVar43 = (lang_statement_union *)(plVar43->data_statement).output_section;\n              } while (plVar43 != (lang_statement_union *)0x0);\n              plVar43 = (lang_statement_union *)0x0;\n            }\n          }\n          else {\nLAB_0011cd61:\n            plVar43 = (lang_statement_union *)0x0;\n            if (paVar49 != paVar64) {\n              pbVar39 = paVar59->prev;\n              pbVar66 = paVar64->next;\n              if (pbVar39 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->sections = pbVar66;\n              }\n              else {\n                pbVar39->next = pbVar66;\n                pbVar66 = paVar64->next;\n              }\n              if (pbVar66 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->section_last = pbVar39;\n              }\n              else {\n                pbVar66->prev = pbVar39;\n              }\n              pbVar39 = paVar49->next;\n              paVar64->next = pbVar39;\n              if (pbVar39 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->section_last = paVar64;\n              }\n              else {\n                pbVar39->prev = paVar64;\n              }\n              paVar59->prev = paVar49;\n              plVar43 = (lang_statement_union *)0x0;\n              paVar49->next = paVar59;\n            }\n          }\n        }\n      }\n      pplVar32 = insert_os_after(after);\n      plVar51 = ((lang_output_section_statement.head)->header).next;\n      ((lang_output_section_statement.head)->header).next = (((plVar70->header).next)->header).next;\n      plVar61 = *pplVar32;\n      (plVar70->header).next = plVar61;\n      if (plVar61 == (lang_statement_union *)0x0) {\n        statement_list.tail = (lang_statement_union **)plVar70;\n      }\n      *pplVar32 = plVar51;\n      plVar61 = (lang_statement_union *)0x0;\n      plVar51 = lang_output_section_statement.head;\n    }" else (if_statement "if ((plVar46->header).type == lang_insert_statement_enum) {\n      after = lang_output_section_statement_lookup((plVar46->wild_statement).filename,0,0);\n      if (after == (lang_output_section_statement_type *)0x0) {\nLAB_0011c415:\n        pcVar27 = (char *)dcgettext(0,"%F%P: %s not found for insert\n",5);\n        einfo(pcVar27);\n        plVar51 = file_chain.head;\n        goto joined_r0x0011c458;\n      }\n      if ((plVar46->wild_statement).filenames_sorted != 0) {\n        do {\n          after = after->prev;\n          if (after == (lang_output_section_statement_struct *)0x0) goto LAB_0011c415;\n        } while (after->constraint < 0);\n      }\n      if (plVar61 != (lang_statement_union *)0x0) {\n        plVar9 = (plVar43->output_section_statement).prev;\n        plVar10 = (plVar61->output_section_statement).next;\n        plVar9->next = plVar10;\n        if (plVar10 == (lang_output_section_statement_struct *)0x0) {\n          lang_output_section_statement.tail = (lang_statement_union **)&plVar9->next;\n        }\n        else {\n          plVar10->prev = plVar9;\n        }\n        (plVar61->wild_statement).section_list = (wildcard_list *)after->next;\n        if (after->next == (lang_output_section_statement_struct *)0x0) {\n          lang_output_section_statement.tail =\n               (lang_statement_union **)&(plVar61->output_section_statement).next;\n        }\n        else {\n          after->next->prev = (lang_output_section_statement_struct *)plVar61;\n        }\n        (plVar43->output_section_statement).prev = after;\n        paVar64 = (asection *)0x0;\n        paVar59 = (asection *)0x0;\n        after->next = (lang_output_section_statement_struct *)plVar43;\n        do {\n          (plVar43->output_section_statement).constraint =\n               -2 - (plVar43->output_section_statement).constraint;\n          paVar49 = (plVar43->output_section_statement).bfd_section;\n          if (((paVar49 != (asection *)0x0) && (paVar49->owner != (bfd *)0x0)) &&\n             (paVar64 = paVar49, paVar59 == (asection *)0x0)) {\n            paVar59 = paVar49;\n          }\n        } while ((plVar61 != plVar43) &&\n                (plVar43 = (lang_statement_union *)(plVar43->wild_statement).section_list,\n                plVar43 != (lang_statement_union *)0x0));\n        plVar43 = (lang_statement_union *)0x0;\n        if (paVar64 != (asection *)0x0) {\n          paVar49 = after->bfd_section;\n          if (paVar49 == (asection *)0x0) {\n            plVar43 = (lang_statement_union *)after->prev;\n            if (plVar43 != (lang_statement_union *)0x0) {\n              do {\n                if (((-1 < (plVar43->output_section_statement).constraint) &&\n                    (paVar49 = (plVar43->output_section_statement).bfd_section,\n                    paVar49 != (asection *)0x0)) && (paVar49->owner != (bfd *)0x0))\n                goto LAB_0011cd61;\n                plVar43 = (lang_statement_union *)(plVar43->data_statement).output_section;\n              } while (plVar43 != (lang_statement_union *)0x0);\n              plVar43 = (lang_statement_union *)0x0;\n            }\n          }\n          else {\nLAB_0011cd61:\n            plVar43 = (lang_statement_union *)0x0;\n            if (paVar49 != paVar64) {\n              pbVar39 = paVar59->prev;\n              pbVar66 = paVar64->next;\n              if (pbVar39 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->sections = pbVar66;\n              }\n              else {\n                pbVar39->next = pbVar66;\n                pbVar66 = paVar64->next;\n              }\n              if (pbVar66 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->section_last = pbVar39;\n              }\n              else {\n                pbVar66->prev = pbVar39;\n              }\n              pbVar39 = paVar49->next;\n              paVar64->next = pbVar39;\n              if (pbVar39 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->section_last = paVar64;\n              }\n              else {\n                pbVar39->prev = paVar64;\n              }\n              paVar59->prev = paVar49;\n              plVar43 = (lang_statement_union *)0x0;\n              paVar49->next = paVar59;\n            }\n          }\n        }\n      }\n      pplVar32 = insert_os_after(after);\n      plVar51 = ((lang_output_section_statement.head)->header).next;\n      ((lang_output_section_statement.head)->header).next = (((plVar70->header).next)->header).next;\n      plVar61 = *pplVar32;\n      (plVar70->header).next = plVar61;\n      if (plVar61 == (lang_statement_union *)0x0) {\n        statement_list.tail = (lang_statement_union **)plVar70;\n      }\n      *pplVar32 = plVar51;\n      plVar61 = (lang_statement_union *)0x0;\n      plVar51 = lang_output_section_statement.head;\n    }" if (parenthesized_expression "((plVar46->header).type == lang_insert_statement_enum)" ( (binary_expression "(plVar46->header).type == lang_insert_statement_enum" (field_expression "(plVar46->header).type" (parenthesized_expression "(plVar46->header)" ( (field_expression "plVar46->header" identifier -> field_identifier) )) . field_identifier) == identifier) )) (compound_statement "{\n      after = lang_output_section_statement_lookup((plVar46->wild_statement).filename,0,0);\n      if (after == (lang_output_section_statement_type *)0x0) {\nLAB_0011c415:\n        pcVar27 = (char *)dcgettext(0,"%F%P: %s not found for insert\n",5);\n        einfo(pcVar27);\n        plVar51 = file_chain.head;\n        goto joined_r0x0011c458;\n      }\n      if ((plVar46->wild_statement).filenames_sorted != 0) {\n        do {\n          after = after->prev;\n          if (after == (lang_output_section_statement_struct *)0x0) goto LAB_0011c415;\n        } while (after->constraint < 0);\n      }\n      if (plVar61 != (lang_statement_union *)0x0) {\n        plVar9 = (plVar43->output_section_statement).prev;\n        plVar10 = (plVar61->output_section_statement).next;\n        plVar9->next = plVar10;\n        if (plVar10 == (lang_output_section_statement_struct *)0x0) {\n          lang_output_section_statement.tail = (lang_statement_union **)&plVar9->next;\n        }\n        else {\n          plVar10->prev = plVar9;\n        }\n        (plVar61->wild_statement).section_list = (wildcard_list *)after->next;\n        if (after->next == (lang_output_section_statement_struct *)0x0) {\n          lang_output_section_statement.tail =\n               (lang_statement_union **)&(plVar61->output_section_statement).next;\n        }\n        else {\n          after->next->prev = (lang_output_section_statement_struct *)plVar61;\n        }\n        (plVar43->output_section_statement).prev = after;\n        paVar64 = (asection *)0x0;\n        paVar59 = (asection *)0x0;\n        after->next = (lang_output_section_statement_struct *)plVar43;\n        do {\n          (plVar43->output_section_statement).constraint =\n               -2 - (plVar43->output_section_statement).constraint;\n          paVar49 = (plVar43->output_section_statement).bfd_section;\n          if (((paVar49 != (asection *)0x0) && (paVar49->owner != (bfd *)0x0)) &&\n             (paVar64 = paVar49, paVar59 == (asection *)0x0)) {\n            paVar59 = paVar49;\n          }\n        } while ((plVar61 != plVar43) &&\n                (plVar43 = (lang_statement_union *)(plVar43->wild_statement).section_list,\n                plVar43 != (lang_statement_union *)0x0));\n        plVar43 = (lang_statement_union *)0x0;\n        if (paVar64 != (asection *)0x0) {\n          paVar49 = after->bfd_section;\n          if (paVar49 == (asection *)0x0) {\n            plVar43 = (lang_statement_union *)after->prev;\n            if (plVar43 != (lang_statement_union *)0x0) {\n              do {\n                if (((-1 < (plVar43->output_section_statement).constraint) &&\n                    (paVar49 = (plVar43->output_section_statement).bfd_section,\n                    paVar49 != (asection *)0x0)) && (paVar49->owner != (bfd *)0x0))\n                goto LAB_0011cd61;\n                plVar43 = (lang_statement_union *)(plVar43->data_statement).output_section;\n              } while (plVar43 != (lang_statement_union *)0x0);\n              plVar43 = (lang_statement_union *)0x0;\n            }\n          }\n          else {\nLAB_0011cd61:\n            plVar43 = (lang_statement_union *)0x0;\n            if (paVar49 != paVar64) {\n              pbVar39 = paVar59->prev;\n              pbVar66 = paVar64->next;\n              if (pbVar39 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->sections = pbVar66;\n              }\n              else {\n                pbVar39->next = pbVar66;\n                pbVar66 = paVar64->next;\n              }\n              if (pbVar66 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->section_last = pbVar39;\n              }\n              else {\n                pbVar66->prev = pbVar39;\n              }\n              pbVar39 = paVar49->next;\n              paVar64->next = pbVar39;\n              if (pbVar39 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->section_last = paVar64;\n              }\n              else {\n                pbVar39->prev = paVar64;\n              }\n              paVar59->prev = paVar49;\n              plVar43 = (lang_statement_union *)0x0;\n              paVar49->next = paVar59;\n            }\n          }\n        }\n      }\n      pplVar32 = insert_os_after(after);\n      plVar51 = ((lang_output_section_statement.head)->header).next;\n      ((lang_output_section_statement.head)->header).next = (((plVar70->header).next)->header).next;\n      plVar61 = *pplVar32;\n      (plVar70->header).next = plVar61;\n      if (plVar61 == (lang_statement_union *)0x0) {\n        statement_list.tail = (lang_statement_union **)plVar70;\n      }\n      *pplVar32 = plVar51;\n      plVar61 = (lang_statement_union *)0x0;\n      plVar51 = lang_output_section_statement.head;\n    }" { (expression_statement "after = lang_output_section_statement_lookup((plVar46->wild_statement).filename,0,0);" (assignment_expression "after = lang_output_section_statement_lookup((plVar46->wild_statement).filename,0,0)" identifier = (call_expression "lang_output_section_statement_lookup((plVar46->wild_statement).filename,0,0)" identifier (argument_list "((plVar46->wild_statement).filename,0,0)" ( (field_expression "(plVar46->wild_statement).filename" (parenthesized_expression "(plVar46->wild_statement)" ( (field_expression "plVar46->wild_statement" identifier -> field_identifier) )) . field_identifier) , number_literal , number_literal )))) ;) (if_statement "if (after == (lang_output_section_statement_type *)0x0) {\nLAB_0011c415:\n        pcVar27 = (char *)dcgettext(0,"%F%P: %s not found for insert\n",5);\n        einfo(pcVar27);\n        plVar51 = file_chain.head;\n        goto joined_r0x0011c458;\n      }" if (parenthesized_expression "(after == (lang_output_section_statement_type *)0x0)" ( (binary_expression "after == (lang_output_section_statement_type *)0x0" identifier == (cast_expression "(lang_output_section_statement_type *)0x0" ( (type_descriptor "lang_output_section_statement_type *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_0011c415:\n        pcVar27 = (char *)dcgettext(0,"%F%P: %s not found for insert\n",5);\n        einfo(pcVar27);\n        plVar51 = file_chain.head;\n        goto joined_r0x0011c458;\n      }" { (labeled_statement "LAB_0011c415:\n        pcVar27 = (char *)dcgettext(0,"%F%P: %s not found for insert\n",5);" statement_identifier : (expression_statement "pcVar27 = (char *)dcgettext(0,"%F%P: %s not found for insert\n",5);" (assignment_expression "pcVar27 = (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(pcVar27);" (call_expression "einfo(pcVar27)" identifier (argument_list "(pcVar27)" ( identifier ))) ;) (expression_statement "plVar51 = file_chain.head;" (assignment_expression "plVar51 = file_chain.head" identifier = (field_expression "file_chain.head" identifier . field_identifier)) ;) (goto_statement "goto joined_r0x0011c458;" goto statement_identifier ;) })) (if_statement "if ((plVar46->wild_statement).filenames_sorted != 0) {\n        do {\n          after = after->prev;\n          if (after == (lang_output_section_statement_struct *)0x0) goto LAB_0011c415;\n        } while (after->constraint < 0);\n      }" if (parenthesized_expression "((plVar46->wild_statement).filenames_sorted != 0)" ( (binary_expression "(plVar46->wild_statement).filenames_sorted != 0" (field_expression "(plVar46->wild_statement).filenames_sorted" (parenthesized_expression "(plVar46->wild_statement)" ( (field_expression "plVar46->wild_statement" identifier -> field_identifier) )) . field_identifier) != number_literal) )) (compound_statement "{\n        do {\n          after = after->prev;\n          if (after == (lang_output_section_statement_struct *)0x0) goto LAB_0011c415;\n        } while (after->constraint < 0);\n      }" { (do_statement "do {\n          after = after->prev;\n          if (after == (lang_output_section_statement_struct *)0x0) goto LAB_0011c415;\n        } while (after->constraint < 0);" do (compound_statement "{\n          after = after->prev;\n          if (after == (lang_output_section_statement_struct *)0x0) goto LAB_0011c415;\n        }" { (expression_statement "after = after->prev;" (assignment_expression "after = after->prev" identifier = (field_expression "after->prev" identifier -> field_identifier)) ;) (if_statement "if (after == (lang_output_section_statement_struct *)0x0) goto LAB_0011c415;" if (parenthesized_expression "(after == (lang_output_section_statement_struct *)0x0)" ( (binary_expression "after == (lang_output_section_statement_struct *)0x0" identifier == (cast_expression "(lang_output_section_statement_struct *)0x0" ( (type_descriptor "lang_output_section_statement_struct *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0011c415;" goto statement_identifier ;)) }) while (parenthesized_expression "(after->constraint < 0)" ( (binary_expression "after->constraint < 0" (field_expression "after->constraint" identifier -> field_identifier) < number_literal) )) ;) })) (if_statement "if (plVar61 != (lang_statement_union *)0x0) {\n        plVar9 = (plVar43->output_section_statement).prev;\n        plVar10 = (plVar61->output_section_statement).next;\n        plVar9->next = plVar10;\n        if (plVar10 == (lang_output_section_statement_struct *)0x0) {\n          lang_output_section_statement.tail = (lang_statement_union **)&plVar9->next;\n        }\n        else {\n          plVar10->prev = plVar9;\n        }\n        (plVar61->wild_statement).section_list = (wildcard_list *)after->next;\n        if (after->next == (lang_output_section_statement_struct *)0x0) {\n          lang_output_section_statement.tail =\n               (lang_statement_union **)&(plVar61->output_section_statement).next;\n        }\n        else {\n          after->next->prev = (lang_output_section_statement_struct *)plVar61;\n        }\n        (plVar43->output_section_statement).prev = after;\n        paVar64 = (asection *)0x0;\n        paVar59 = (asection *)0x0;\n        after->next = (lang_output_section_statement_struct *)plVar43;\n        do {\n          (plVar43->output_section_statement).constraint =\n               -2 - (plVar43->output_section_statement).constraint;\n          paVar49 = (plVar43->output_section_statement).bfd_section;\n          if (((paVar49 != (asection *)0x0) && (paVar49->owner != (bfd *)0x0)) &&\n             (paVar64 = paVar49, paVar59 == (asection *)0x0)) {\n            paVar59 = paVar49;\n          }\n        } while ((plVar61 != plVar43) &&\n                (plVar43 = (lang_statement_union *)(plVar43->wild_statement).section_list,\n                plVar43 != (lang_statement_union *)0x0));\n        plVar43 = (lang_statement_union *)0x0;\n        if (paVar64 != (asection *)0x0) {\n          paVar49 = after->bfd_section;\n          if (paVar49 == (asection *)0x0) {\n            plVar43 = (lang_statement_union *)after->prev;\n            if (plVar43 != (lang_statement_union *)0x0) {\n              do {\n                if (((-1 < (plVar43->output_section_statement).constraint) &&\n                    (paVar49 = (plVar43->output_section_statement).bfd_section,\n                    paVar49 != (asection *)0x0)) && (paVar49->owner != (bfd *)0x0))\n                goto LAB_0011cd61;\n                plVar43 = (lang_statement_union *)(plVar43->data_statement).output_section;\n              } while (plVar43 != (lang_statement_union *)0x0);\n              plVar43 = (lang_statement_union *)0x0;\n            }\n          }\n          else {\nLAB_0011cd61:\n            plVar43 = (lang_statement_union *)0x0;\n            if (paVar49 != paVar64) {\n              pbVar39 = paVar59->prev;\n              pbVar66 = paVar64->next;\n              if (pbVar39 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->sections = pbVar66;\n              }\n              else {\n                pbVar39->next = pbVar66;\n                pbVar66 = paVar64->next;\n              }\n              if (pbVar66 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->section_last = pbVar39;\n              }\n              else {\n                pbVar66->prev = pbVar39;\n              }\n              pbVar39 = paVar49->next;\n              paVar64->next = pbVar39;\n              if (pbVar39 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->section_last = paVar64;\n              }\n              else {\n                pbVar39->prev = paVar64;\n              }\n              paVar59->prev = paVar49;\n              plVar43 = (lang_statement_union *)0x0;\n              paVar49->next = paVar59;\n            }\n          }\n        }\n      }" if (parenthesized_expression "(plVar61 != (lang_statement_union *)0x0)" ( (binary_expression "plVar61 != (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        plVar9 = (plVar43->output_section_statement).prev;\n        plVar10 = (plVar61->output_section_statement).next;\n        plVar9->next = plVar10;\n        if (plVar10 == (lang_output_section_statement_struct *)0x0) {\n          lang_output_section_statement.tail = (lang_statement_union **)&plVar9->next;\n        }\n        else {\n          plVar10->prev = plVar9;\n        }\n        (plVar61->wild_statement).section_list = (wildcard_list *)after->next;\n        if (after->next == (lang_output_section_statement_struct *)0x0) {\n          lang_output_section_statement.tail =\n               (lang_statement_union **)&(plVar61->output_section_statement).next;\n        }\n        else {\n          after->next->prev = (lang_output_section_statement_struct *)plVar61;\n        }\n        (plVar43->output_section_statement).prev = after;\n        paVar64 = (asection *)0x0;\n        paVar59 = (asection *)0x0;\n        after->next = (lang_output_section_statement_struct *)plVar43;\n        do {\n          (plVar43->output_section_statement).constraint =\n               -2 - (plVar43->output_section_statement).constraint;\n          paVar49 = (plVar43->output_section_statement).bfd_section;\n          if (((paVar49 != (asection *)0x0) && (paVar49->owner != (bfd *)0x0)) &&\n             (paVar64 = paVar49, paVar59 == (asection *)0x0)) {\n            paVar59 = paVar49;\n          }\n        } while ((plVar61 != plVar43) &&\n                (plVar43 = (lang_statement_union *)(plVar43->wild_statement).section_list,\n                plVar43 != (lang_statement_union *)0x0));\n        plVar43 = (lang_statement_union *)0x0;\n        if (paVar64 != (asection *)0x0) {\n          paVar49 = after->bfd_section;\n          if (paVar49 == (asection *)0x0) {\n            plVar43 = (lang_statement_union *)after->prev;\n            if (plVar43 != (lang_statement_union *)0x0) {\n              do {\n                if (((-1 < (plVar43->output_section_statement).constraint) &&\n                    (paVar49 = (plVar43->output_section_statement).bfd_section,\n                    paVar49 != (asection *)0x0)) && (paVar49->owner != (bfd *)0x0))\n                goto LAB_0011cd61;\n                plVar43 = (lang_statement_union *)(plVar43->data_statement).output_section;\n              } while (plVar43 != (lang_statement_union *)0x0);\n              plVar43 = (lang_statement_union *)0x0;\n            }\n          }\n          else {\nLAB_0011cd61:\n            plVar43 = (lang_statement_union *)0x0;\n            if (paVar49 != paVar64) {\n              pbVar39 = paVar59->prev;\n              pbVar66 = paVar64->next;\n              if (pbVar39 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->sections = pbVar66;\n              }\n              else {\n                pbVar39->next = pbVar66;\n                pbVar66 = paVar64->next;\n              }\n              if (pbVar66 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->section_last = pbVar39;\n              }\n              else {\n                pbVar66->prev = pbVar39;\n              }\n              pbVar39 = paVar49->next;\n              paVar64->next = pbVar39;\n              if (pbVar39 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->section_last = paVar64;\n              }\n              else {\n                pbVar39->prev = paVar64;\n              }\n              paVar59->prev = paVar49;\n              plVar43 = (lang_statement_union *)0x0;\n              paVar49->next = paVar59;\n            }\n          }\n        }\n      }" { (expression_statement "plVar9 = (plVar43->output_section_statement).prev;" (assignment_expression "plVar9 = (plVar43->output_section_statement).prev" identifier = (field_expression "(plVar43->output_section_statement).prev" (parenthesized_expression "(plVar43->output_section_statement)" ( (field_expression "plVar43->output_section_statement" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "plVar10 = (plVar61->output_section_statement).next;" (assignment_expression "plVar10 = (plVar61->output_section_statement).next" identifier = (field_expression "(plVar61->output_section_statement).next" (parenthesized_expression "(plVar61->output_section_statement)" ( (field_expression "plVar61->output_section_statement" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "plVar9->next = plVar10;" (assignment_expression "plVar9->next = plVar10" (field_expression "plVar9->next" identifier -> field_identifier) = identifier) ;) (if_statement "if (plVar10 == (lang_output_section_statement_struct *)0x0) {\n          lang_output_section_statement.tail = (lang_statement_union **)&plVar9->next;\n        }\n        else {\n          plVar10->prev = plVar9;\n        }" if (parenthesized_expression "(plVar10 == (lang_output_section_statement_struct *)0x0)" ( (binary_expression "plVar10 == (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 **)&plVar9->next;\n        }" { (expression_statement "lang_output_section_statement.tail = (lang_statement_union **)&plVar9->next;" (assignment_expression "lang_output_section_statement.tail = (lang_statement_union **)&plVar9->next" (field_expression "lang_output_section_statement.tail" identifier . field_identifier) = (cast_expression "(lang_statement_union **)&plVar9->next" ( (type_descriptor "lang_statement_union **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&plVar9->next" & (field_expression "plVar9->next" identifier -> field_identifier)))) ;) }) (else_clause "else {\n          plVar10->prev = plVar9;\n        }" else (compound_statement "{\n          plVar10->prev = plVar9;\n        }" { (expression_statement "plVar10->prev = plVar9;" (assignment_expression "plVar10->prev = plVar9" (field_expression "plVar10->prev" identifier -> field_identifier) = identifier) ;) }))) (expression_statement "(plVar61->wild_statement).section_list = (wildcard_list *)after->next;" (assignment_expression "(plVar61->wild_statement).section_list = (wildcard_list *)after->next" (field_expression "(plVar61->wild_statement).section_list" (parenthesized_expression "(plVar61->wild_statement)" ( (field_expression "plVar61->wild_statement" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(wildcard_list *)after->next" ( (type_descriptor "wildcard_list *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "after->next" identifier -> field_identifier))) ;) (if_statement "if (after->next == (lang_output_section_statement_struct *)0x0) {\n          lang_output_section_statement.tail =\n               (lang_statement_union **)&(plVar61->output_section_statement).next;\n        }\n        else {\n          after->next->prev = (lang_output_section_statement_struct *)plVar61;\n        }" if (parenthesized_expression "(after->next == (lang_output_section_statement_struct *)0x0)" ( (binary_expression "after->next == (lang_output_section_statement_struct *)0x0" (field_expression "after->next" identifier -> field_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 =\n               (lang_statement_union **)&(plVar61->output_section_statement).next;\n        }" { (expression_statement "lang_output_section_statement.tail =\n               (lang_statement_union **)&(plVar61->output_section_statement).next;" (assignment_expression "lang_output_section_statement.tail =\n               (lang_statement_union **)&(plVar61->output_section_statement).next" (field_expression "lang_output_section_statement.tail" identifier . field_identifier) = (cast_expression "(lang_statement_union **)&(plVar61->output_section_statement).next" ( (type_descriptor "lang_statement_union **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&(plVar61->output_section_statement).next" & (field_expression "(plVar61->output_section_statement).next" (parenthesized_expression "(plVar61->output_section_statement)" ( (field_expression "plVar61->output_section_statement" identifier -> field_identifier) )) . field_identifier)))) ;) }) (else_clause "else {\n          after->next->prev = (lang_output_section_statement_struct *)plVar61;\n        }" else (compound_statement "{\n          after->next->prev = (lang_output_section_statement_struct *)plVar61;\n        }" { (expression_statement "after->next->prev = (lang_output_section_statement_struct *)plVar61;" (assignment_expression "after->next->prev = (lang_output_section_statement_struct *)plVar61" (field_expression "after->next->prev" (field_expression "after->next" identifier -> field_identifier) -> field_identifier) = (cast_expression "(lang_output_section_statement_struct *)plVar61" ( (type_descriptor "lang_output_section_statement_struct *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) }))) (expression_statement "(plVar43->output_section_statement).prev = after;" (assignment_expression "(plVar43->output_section_statement).prev = after" (field_expression "(plVar43->output_section_statement).prev" (parenthesized_expression "(plVar43->output_section_statement)" ( (field_expression "plVar43->output_section_statement" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "paVar64 = (asection *)0x0;" (assignment_expression "paVar64 = (asection *)0x0" identifier = (cast_expression "(asection *)0x0" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "paVar59 = (asection *)0x0;" (assignment_expression "paVar59 = (asection *)0x0" identifier = (cast_expression "(asection *)0x0" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "after->next = (lang_output_section_statement_struct *)plVar43;" (assignment_expression "after->next = (lang_output_section_statement_struct *)plVar43" (field_expression "after->next" identifier -> field_identifier) = (cast_expression "(lang_output_section_statement_struct *)plVar43" ( (type_descriptor "lang_output_section_statement_struct *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (do_statement "do {\n          (plVar43->output_section_statement).constraint =\n               -2 - (plVar43->output_section_statement).constraint;\n          paVar49 = (plVar43->output_section_statement).bfd_section;\n          if (((paVar49 != (asection *)0x0) && (paVar49->owner != (bfd *)0x0)) &&\n             (paVar64 = paVar49, paVar59 == (asection *)0x0)) {\n            paVar59 = paVar49;\n          }\n        } while ((plVar61 != plVar43) &&\n                (plVar43 = (lang_statement_union *)(plVar43->wild_statement).section_list,\n                plVar43 != (lang_statement_union *)0x0));" do (compound_statement "{\n          (plVar43->output_section_statement).constraint =\n               -2 - (plVar43->output_section_statement).constraint;\n          paVar49 = (plVar43->output_section_statement).bfd_section;\n          if (((paVar49 != (asection *)0x0) && (paVar49->owner != (bfd *)0x0)) &&\n             (paVar64 = paVar49, paVar59 == (asection *)0x0)) {\n            paVar59 = paVar49;\n          }\n        }" { (expression_statement "(plVar43->output_section_statement).constraint =\n               -2 - (plVar43->output_section_statement).constraint;" (assignment_expression "(plVar43->output_section_statement).constraint =\n               -2 - (plVar43->output_section_statement).constraint" (field_expression "(plVar43->output_section_statement).constraint" (parenthesized_expression "(plVar43->output_section_statement)" ( (field_expression "plVar43->output_section_statement" identifier -> field_identifier) )) . field_identifier) = (binary_expression "-2 - (plVar43->output_section_statement).constraint" number_literal - (field_expression "(plVar43->output_section_statement).constraint" (parenthesized_expression "(plVar43->output_section_statement)" ( (field_expression "plVar43->output_section_statement" identifier -> field_identifier) )) . field_identifier))) ;) (expression_statement "paVar49 = (plVar43->output_section_statement).bfd_section;" (assignment_expression "paVar49 = (plVar43->output_section_statement).bfd_section" identifier = (field_expression "(plVar43->output_section_statement).bfd_section" (parenthesized_expression "(plVar43->output_section_statement)" ( (field_expression "plVar43->output_section_statement" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if (((paVar49 != (asection *)0x0) && (paVar49->owner != (bfd *)0x0)) &&\n             (paVar64 = paVar49, paVar59 == (asection *)0x0)) {\n            paVar59 = paVar49;\n          }" if (parenthesized_expression "(((paVar49 != (asection *)0x0) && (paVar49->owner != (bfd *)0x0)) &&\n             (paVar64 = paVar49, paVar59 == (asection *)0x0))" ( (binary_expression "((paVar49 != (asection *)0x0) && (paVar49->owner != (bfd *)0x0)) &&\n             (paVar64 = paVar49, paVar59 == (asection *)0x0)" (parenthesized_expression "((paVar49 != (asection *)0x0) && (paVar49->owner != (bfd *)0x0))" ( (binary_expression "(paVar49 != (asection *)0x0) && (paVar49->owner != (bfd *)0x0)" (parenthesized_expression "(paVar49 != (asection *)0x0)" ( (binary_expression "paVar49 != (asection *)0x0" identifier != (cast_expression "(asection *)0x0" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(paVar49->owner != (bfd *)0x0)" ( (binary_expression "paVar49->owner != (bfd *)0x0" (field_expression "paVar49->owner" identifier -> field_identifier) != (cast_expression "(bfd *)0x0" ( (type_descriptor "bfd *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) && (parenthesized_expression "(paVar64 = paVar49, paVar59 == (asection *)0x0)" ( (comma_expression "paVar64 = paVar49, paVar59 == (asection *)0x0" (assignment_expression "paVar64 = paVar49" identifier = identifier) , (binary_expression "paVar59 == (asection *)0x0" identifier == (cast_expression "(asection *)0x0" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n            paVar59 = paVar49;\n          }" { (expression_statement "paVar59 = paVar49;" (assignment_expression "paVar59 = paVar49" identifier = identifier) ;) })) }) while (parenthesized_expression "((plVar61 != plVar43) &&\n                (plVar43 = (lang_statement_union *)(plVar43->wild_statement).section_list,\n                plVar43 != (lang_statement_union *)0x0))" ( (binary_expression "(plVar61 != plVar43) &&\n                (plVar43 = (lang_statement_union *)(plVar43->wild_statement).section_list,\n                plVar43 != (lang_statement_union *)0x0)" (parenthesized_expression "(plVar61 != plVar43)" ( (binary_expression "plVar61 != plVar43" identifier != identifier) )) && (parenthesized_expression "(plVar43 = (lang_statement_union *)(plVar43->wild_statement).section_list,\n                plVar43 != (lang_statement_union *)0x0)" ( (comma_expression "plVar43 = (lang_statement_union *)(plVar43->wild_statement).section_list,\n                plVar43 != (lang_statement_union *)0x0" (assignment_expression "plVar43 = (lang_statement_union *)(plVar43->wild_statement).section_list" identifier = (cast_expression "(lang_statement_union *)(plVar43->wild_statement).section_list" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(plVar43->wild_statement).section_list" (parenthesized_expression "(plVar43->wild_statement)" ( (field_expression "plVar43->wild_statement" identifier -> field_identifier) )) . field_identifier))) , (binary_expression "plVar43 != (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 "plVar43 = (lang_statement_union *)0x0;" (assignment_expression "plVar43 = (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 (paVar64 != (asection *)0x0) {\n          paVar49 = after->bfd_section;\n          if (paVar49 == (asection *)0x0) {\n            plVar43 = (lang_statement_union *)after->prev;\n            if (plVar43 != (lang_statement_union *)0x0) {\n              do {\n                if (((-1 < (plVar43->output_section_statement).constraint) &&\n                    (paVar49 = (plVar43->output_section_statement).bfd_section,\n                    paVar49 != (asection *)0x0)) && (paVar49->owner != (bfd *)0x0))\n                goto LAB_0011cd61;\n                plVar43 = (lang_statement_union *)(plVar43->data_statement).output_section;\n              } while (plVar43 != (lang_statement_union *)0x0);\n              plVar43 = (lang_statement_union *)0x0;\n            }\n          }\n          else {\nLAB_0011cd61:\n            plVar43 = (lang_statement_union *)0x0;\n            if (paVar49 != paVar64) {\n              pbVar39 = paVar59->prev;\n              pbVar66 = paVar64->next;\n              if (pbVar39 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->sections = pbVar66;\n              }\n              else {\n                pbVar39->next = pbVar66;\n                pbVar66 = paVar64->next;\n              }\n              if (pbVar66 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->section_last = pbVar39;\n              }\n              else {\n                pbVar66->prev = pbVar39;\n              }\n              pbVar39 = paVar49->next;\n              paVar64->next = pbVar39;\n              if (pbVar39 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->section_last = paVar64;\n              }\n              else {\n                pbVar39->prev = paVar64;\n              }\n              paVar59->prev = paVar49;\n              plVar43 = (lang_statement_union *)0x0;\n              paVar49->next = paVar59;\n            }\n          }\n        }" if (parenthesized_expression "(paVar64 != (asection *)0x0)" ( (binary_expression "paVar64 != (asection *)0x0" identifier != (cast_expression "(asection *)0x0" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          paVar49 = after->bfd_section;\n          if (paVar49 == (asection *)0x0) {\n            plVar43 = (lang_statement_union *)after->prev;\n            if (plVar43 != (lang_statement_union *)0x0) {\n              do {\n                if (((-1 < (plVar43->output_section_statement).constraint) &&\n                    (paVar49 = (plVar43->output_section_statement).bfd_section,\n                    paVar49 != (asection *)0x0)) && (paVar49->owner != (bfd *)0x0))\n                goto LAB_0011cd61;\n                plVar43 = (lang_statement_union *)(plVar43->data_statement).output_section;\n              } while (plVar43 != (lang_statement_union *)0x0);\n              plVar43 = (lang_statement_union *)0x0;\n            }\n          }\n          else {\nLAB_0011cd61:\n            plVar43 = (lang_statement_union *)0x0;\n            if (paVar49 != paVar64) {\n              pbVar39 = paVar59->prev;\n              pbVar66 = paVar64->next;\n              if (pbVar39 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->sections = pbVar66;\n              }\n              else {\n                pbVar39->next = pbVar66;\n                pbVar66 = paVar64->next;\n              }\n              if (pbVar66 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->section_last = pbVar39;\n              }\n              else {\n                pbVar66->prev = pbVar39;\n              }\n              pbVar39 = paVar49->next;\n              paVar64->next = pbVar39;\n              if (pbVar39 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->section_last = paVar64;\n              }\n              else {\n                pbVar39->prev = paVar64;\n              }\n              paVar59->prev = paVar49;\n              plVar43 = (lang_statement_union *)0x0;\n              paVar49->next = paVar59;\n            }\n          }\n        }" { (expression_statement "paVar49 = after->bfd_section;" (assignment_expression "paVar49 = after->bfd_section" identifier = (field_expression "after->bfd_section" identifier -> field_identifier)) ;) (if_statement "if (paVar49 == (asection *)0x0) {\n            plVar43 = (lang_statement_union *)after->prev;\n            if (plVar43 != (lang_statement_union *)0x0) {\n              do {\n                if (((-1 < (plVar43->output_section_statement).constraint) &&\n                    (paVar49 = (plVar43->output_section_statement).bfd_section,\n                    paVar49 != (asection *)0x0)) && (paVar49->owner != (bfd *)0x0))\n                goto LAB_0011cd61;\n                plVar43 = (lang_statement_union *)(plVar43->data_statement).output_section;\n              } while (plVar43 != (lang_statement_union *)0x0);\n              plVar43 = (lang_statement_union *)0x0;\n            }\n          }\n          else {\nLAB_0011cd61:\n            plVar43 = (lang_statement_union *)0x0;\n            if (paVar49 != paVar64) {\n              pbVar39 = paVar59->prev;\n              pbVar66 = paVar64->next;\n              if (pbVar39 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->sections = pbVar66;\n              }\n              else {\n                pbVar39->next = pbVar66;\n                pbVar66 = paVar64->next;\n              }\n              if (pbVar66 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->section_last = pbVar39;\n              }\n              else {\n                pbVar66->prev = pbVar39;\n              }\n              pbVar39 = paVar49->next;\n              paVar64->next = pbVar39;\n              if (pbVar39 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->section_last = paVar64;\n              }\n              else {\n                pbVar39->prev = paVar64;\n              }\n              paVar59->prev = paVar49;\n              plVar43 = (lang_statement_union *)0x0;\n              paVar49->next = paVar59;\n            }\n          }" if (parenthesized_expression "(paVar49 == (asection *)0x0)" ( (binary_expression "paVar49 == (asection *)0x0" identifier == (cast_expression "(asection *)0x0" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            plVar43 = (lang_statement_union *)after->prev;\n            if (plVar43 != (lang_statement_union *)0x0) {\n              do {\n                if (((-1 < (plVar43->output_section_statement).constraint) &&\n                    (paVar49 = (plVar43->output_section_statement).bfd_section,\n                    paVar49 != (asection *)0x0)) && (paVar49->owner != (bfd *)0x0))\n                goto LAB_0011cd61;\n                plVar43 = (lang_statement_union *)(plVar43->data_statement).output_section;\n              } while (plVar43 != (lang_statement_union *)0x0);\n              plVar43 = (lang_statement_union *)0x0;\n            }\n          }" { (expression_statement "plVar43 = (lang_statement_union *)after->prev;" (assignment_expression "plVar43 = (lang_statement_union *)after->prev" identifier = (cast_expression "(lang_statement_union *)after->prev" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "after->prev" identifier -> field_identifier))) ;) (if_statement "if (plVar43 != (lang_statement_union *)0x0) {\n              do {\n                if (((-1 < (plVar43->output_section_statement).constraint) &&\n                    (paVar49 = (plVar43->output_section_statement).bfd_section,\n                    paVar49 != (asection *)0x0)) && (paVar49->owner != (bfd *)0x0))\n                goto LAB_0011cd61;\n                plVar43 = (lang_statement_union *)(plVar43->data_statement).output_section;\n              } while (plVar43 != (lang_statement_union *)0x0);\n              plVar43 = (lang_statement_union *)0x0;\n            }" if (parenthesized_expression "(plVar43 != (lang_statement_union *)0x0)" ( (binary_expression "plVar43 != (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 < (plVar43->output_section_statement).constraint) &&\n                    (paVar49 = (plVar43->output_section_statement).bfd_section,\n                    paVar49 != (asection *)0x0)) && (paVar49->owner != (bfd *)0x0))\n                goto LAB_0011cd61;\n                plVar43 = (lang_statement_union *)(plVar43->data_statement).output_section;\n              } while (plVar43 != (lang_statement_union *)0x0);\n              plVar43 = (lang_statement_union *)0x0;\n            }" { (do_statement "do {\n                if (((-1 < (plVar43->output_section_statement).constraint) &&\n                    (paVar49 = (plVar43->output_section_statement).bfd_section,\n                    paVar49 != (asection *)0x0)) && (paVar49->owner != (bfd *)0x0))\n                goto LAB_0011cd61;\n                plVar43 = (lang_statement_union *)(plVar43->data_statement).output_section;\n              } while (plVar43 != (lang_statement_union *)0x0);" do (compound_statement "{\n                if (((-1 < (plVar43->output_section_statement).constraint) &&\n                    (paVar49 = (plVar43->output_section_statement).bfd_section,\n                    paVar49 != (asection *)0x0)) && (paVar49->owner != (bfd *)0x0))\n                goto LAB_0011cd61;\n                plVar43 = (lang_statement_union *)(plVar43->data_statement).output_section;\n              }" { (if_statement "if (((-1 < (plVar43->output_section_statement).constraint) &&\n                    (paVar49 = (plVar43->output_section_statement).bfd_section,\n                    paVar49 != (asection *)0x0)) && (paVar49->owner != (bfd *)0x0))\n                goto LAB_0011cd61;" if (parenthesized_expression "(((-1 < (plVar43->output_section_statement).constraint) &&\n                    (paVar49 = (plVar43->output_section_statement).bfd_section,\n                    paVar49 != (asection *)0x0)) && (paVar49->owner != (bfd *)0x0))" ( (binary_expression "((-1 < (plVar43->output_section_statement).constraint) &&\n                    (paVar49 = (plVar43->output_section_statement).bfd_section,\n                    paVar49 != (asection *)0x0)) && (paVar49->owner != (bfd *)0x0)" (parenthesized_expression "((-1 < (plVar43->output_section_statement).constraint) &&\n                    (paVar49 = (plVar43->output_section_statement).bfd_section,\n                    paVar49 != (asection *)0x0))" ( (binary_expression "(-1 < (plVar43->output_section_statement).constraint) &&\n                    (paVar49 = (plVar43->output_section_statement).bfd_section,\n                    paVar49 != (asection *)0x0)" (parenthesized_expression "(-1 < (plVar43->output_section_statement).constraint)" ( (binary_expression "-1 < (plVar43->output_section_statement).constraint" number_literal < (field_expression "(plVar43->output_section_statement).constraint" (parenthesized_expression "(plVar43->output_section_statement)" ( (field_expression "plVar43->output_section_statement" identifier -> field_identifier) )) . field_identifier)) )) && (parenthesized_expression "(paVar49 = (plVar43->output_section_statement).bfd_section,\n                    paVar49 != (asection *)0x0)" ( (comma_expression "paVar49 = (plVar43->output_section_statement).bfd_section,\n                    paVar49 != (asection *)0x0" (assignment_expression "paVar49 = (plVar43->output_section_statement).bfd_section" identifier = (field_expression "(plVar43->output_section_statement).bfd_section" (parenthesized_expression "(plVar43->output_section_statement)" ( (field_expression "plVar43->output_section_statement" identifier -> field_identifier) )) . field_identifier)) , (binary_expression "paVar49 != (asection *)0x0" identifier != (cast_expression "(asection *)0x0" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) && (parenthesized_expression "(paVar49->owner != (bfd *)0x0)" ( (binary_expression "paVar49->owner != (bfd *)0x0" (field_expression "paVar49->owner" identifier -> field_identifier) != (cast_expression "(bfd *)0x0" ( (type_descriptor "bfd *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (goto_statement "goto LAB_0011cd61;" goto statement_identifier ;)) (expression_statement "plVar43 = (lang_statement_union *)(plVar43->data_statement).output_section;" (assignment_expression "plVar43 = (lang_statement_union *)(plVar43->data_statement).output_section" identifier = (cast_expression "(lang_statement_union *)(plVar43->data_statement).output_section" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(plVar43->data_statement).output_section" (parenthesized_expression "(plVar43->data_statement)" ( (field_expression "plVar43->data_statement" identifier -> field_identifier) )) . field_identifier))) ;) }) while (parenthesized_expression "(plVar43 != (lang_statement_union *)0x0)" ( (binary_expression "plVar43 != (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 "plVar43 = (lang_statement_union *)0x0;" (assignment_expression "plVar43 = (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_0011cd61:\n            plVar43 = (lang_statement_union *)0x0;\n            if (paVar49 != paVar64) {\n              pbVar39 = paVar59->prev;\n              pbVar66 = paVar64->next;\n              if (pbVar39 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->sections = pbVar66;\n              }\n              else {\n                pbVar39->next = pbVar66;\n                pbVar66 = paVar64->next;\n              }\n              if (pbVar66 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->section_last = pbVar39;\n              }\n              else {\n                pbVar66->prev = pbVar39;\n              }\n              pbVar39 = paVar49->next;\n              paVar64->next = pbVar39;\n              if (pbVar39 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->section_last = paVar64;\n              }\n              else {\n                pbVar39->prev = paVar64;\n              }\n              paVar59->prev = paVar49;\n              plVar43 = (lang_statement_union *)0x0;\n              paVar49->next = paVar59;\n            }\n          }" else (compound_statement "{\nLAB_0011cd61:\n            plVar43 = (lang_statement_union *)0x0;\n            if (paVar49 != paVar64) {\n              pbVar39 = paVar59->prev;\n              pbVar66 = paVar64->next;\n              if (pbVar39 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->sections = pbVar66;\n              }\n              else {\n                pbVar39->next = pbVar66;\n                pbVar66 = paVar64->next;\n              }\n              if (pbVar66 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->section_last = pbVar39;\n              }\n              else {\n                pbVar66->prev = pbVar39;\n              }\n              pbVar39 = paVar49->next;\n              paVar64->next = pbVar39;\n              if (pbVar39 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->section_last = paVar64;\n              }\n              else {\n                pbVar39->prev = paVar64;\n              }\n              paVar59->prev = paVar49;\n              plVar43 = (lang_statement_union *)0x0;\n              paVar49->next = paVar59;\n            }\n          }" { (labeled_statement "LAB_0011cd61:\n            plVar43 = (lang_statement_union *)0x0;" statement_identifier : (expression_statement "plVar43 = (lang_statement_union *)0x0;" (assignment_expression "plVar43 = (lang_statement_union *)0x0" identifier = (cast_expression "(lang_statement_union *)0x0" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (if_statement "if (paVar49 != paVar64) {\n              pbVar39 = paVar59->prev;\n              pbVar66 = paVar64->next;\n              if (pbVar39 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->sections = pbVar66;\n              }\n              else {\n                pbVar39->next = pbVar66;\n                pbVar66 = paVar64->next;\n              }\n              if (pbVar66 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->section_last = pbVar39;\n              }\n              else {\n                pbVar66->prev = pbVar39;\n              }\n              pbVar39 = paVar49->next;\n              paVar64->next = pbVar39;\n              if (pbVar39 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->section_last = paVar64;\n              }\n              else {\n                pbVar39->prev = paVar64;\n              }\n              paVar59->prev = paVar49;\n              plVar43 = (lang_statement_union *)0x0;\n              paVar49->next = paVar59;\n            }" if (parenthesized_expression "(paVar49 != paVar64)" ( (binary_expression "paVar49 != paVar64" identifier != identifier) )) (compound_statement "{\n              pbVar39 = paVar59->prev;\n              pbVar66 = paVar64->next;\n              if (pbVar39 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->sections = pbVar66;\n              }\n              else {\n                pbVar39->next = pbVar66;\n                pbVar66 = paVar64->next;\n              }\n              if (pbVar66 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->section_last = pbVar39;\n              }\n              else {\n                pbVar66->prev = pbVar39;\n              }\n              pbVar39 = paVar49->next;\n              paVar64->next = pbVar39;\n              if (pbVar39 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->section_last = paVar64;\n              }\n              else {\n                pbVar39->prev = paVar64;\n              }\n              paVar59->prev = paVar49;\n              plVar43 = (lang_statement_union *)0x0;\n              paVar49->next = paVar59;\n            }" { (expression_statement "pbVar39 = paVar59->prev;" (assignment_expression "pbVar39 = paVar59->prev" identifier = (field_expression "paVar59->prev" identifier -> field_identifier)) ;) (expression_statement "pbVar66 = paVar64->next;" (assignment_expression "pbVar66 = paVar64->next" identifier = (field_expression "paVar64->next" identifier -> field_identifier)) ;) (if_statement "if (pbVar39 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->sections = pbVar66;\n              }\n              else {\n                pbVar39->next = pbVar66;\n                pbVar66 = paVar64->next;\n              }" if (parenthesized_expression "(pbVar39 == (bfd_section *)0x0)" ( (binary_expression "pbVar39 == (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 = pbVar66;\n              }" { (expression_statement "(link_info.output_bfd)->sections = pbVar66;" (assignment_expression "(link_info.output_bfd)->sections = pbVar66" (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                pbVar39->next = pbVar66;\n                pbVar66 = paVar64->next;\n              }" else (compound_statement "{\n                pbVar39->next = pbVar66;\n                pbVar66 = paVar64->next;\n              }" { (expression_statement "pbVar39->next = pbVar66;" (assignment_expression "pbVar39->next = pbVar66" (field_expression "pbVar39->next" identifier -> field_identifier) = identifier) ;) (expression_statement "pbVar66 = paVar64->next;" (assignment_expression "pbVar66 = paVar64->next" identifier = (field_expression "paVar64->next" identifier -> field_identifier)) ;) }))) (if_statement "if (pbVar66 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->section_last = pbVar39;\n              }\n              else {\n                pbVar66->prev = pbVar39;\n              }" if (parenthesized_expression "(pbVar66 == (bfd_section *)0x0)" ( (binary_expression "pbVar66 == (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 = pbVar39;\n              }" { (expression_statement "(link_info.output_bfd)->section_last = pbVar39;" (assignment_expression "(link_info.output_bfd)->section_last = pbVar39" (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                pbVar66->prev = pbVar39;\n              }" else (compound_statement "{\n                pbVar66->prev = pbVar39;\n              }" { (expression_statement "pbVar66->prev = pbVar39;" (assignment_expression "pbVar66->prev = pbVar39" (field_expression "pbVar66->prev" identifier -> field_identifier) = identifier) ;) }))) (expression_statement "pbVar39 = paVar49->next;" (assignment_expression "pbVar39 = paVar49->next" identifier = (field_expression "paVar49->next" identifier -> field_identifier)) ;) (expression_statement "paVar64->next = pbVar39;" (assignment_expression "paVar64->next = pbVar39" (field_expression "paVar64->next" identifier -> field_identifier) = identifier) ;) (if_statement "if (pbVar39 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->section_last = paVar64;\n              }\n              else {\n                pbVar39->prev = paVar64;\n              }" if (parenthesized_expression "(pbVar39 == (bfd_section *)0x0)" ( (binary_expression "pbVar39 == (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 = paVar64;\n              }" { (expression_statement "(link_info.output_bfd)->section_last = paVar64;" (assignment_expression "(link_info.output_bfd)->section_last = paVar64" (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                pbVar39->prev = paVar64;\n              }" else (compound_statement "{\n                pbVar39->prev = paVar64;\n              }" { (expression_statement "pbVar39->prev = paVar64;" (assignment_expression "pbVar39->prev = paVar64" (field_expression "pbVar39->prev" identifier -> field_identifier) = identifier) ;) }))) (expression_statement "paVar59->prev = paVar49;" (assignment_expression "paVar59->prev = paVar49" (field_expression "paVar59->prev" identifier -> field_identifier) = identifier) ;) (expression_statement "plVar43 = (lang_statement_union *)0x0;" (assignment_expression "plVar43 = (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 "paVar49->next = paVar59;" (assignment_expression "paVar49->next = paVar59" (field_expression "paVar49->next" identifier -> field_identifier) = identifier) ;) })) }))) })) })) (expression_statement "pplVar32 = insert_os_after(after);" (assignment_expression "pplVar32 = insert_os_after(after)" identifier = (call_expression "insert_os_after(after)" identifier (argument_list "(after)" ( identifier )))) ;) (expression_statement "plVar51 = ((lang_output_section_statement.head)->header).next;" (assignment_expression "plVar51 = ((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 = (((plVar70->header).next)->header).next;" (assignment_expression "((lang_output_section_statement.head)->header).next = (((plVar70->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 "(((plVar70->header).next)->header).next" (parenthesized_expression "(((plVar70->header).next)->header)" ( (field_expression "((plVar70->header).next)->header" (parenthesized_expression "((plVar70->header).next)" ( (field_expression "(plVar70->header).next" (parenthesized_expression "(plVar70->header)" ( (field_expression "plVar70->header" identifier -> field_identifier) )) . field_identifier) )) -> field_identifier) )) . field_identifier)) ;) (expression_statement "plVar61 = *pplVar32;" (assignment_expression "plVar61 = *pplVar32" identifier = (pointer_expression "*pplVar32" * identifier)) ;) (expression_statement "(plVar70->header).next = plVar61;" (assignment_expression "(plVar70->header).next = plVar61" (field_expression "(plVar70->header).next" (parenthesized_expression "(plVar70->header)" ( (field_expression "plVar70->header" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (if_statement "if (plVar61 == (lang_statement_union *)0x0) {\n        statement_list.tail = (lang_statement_union **)plVar70;\n      }" if (parenthesized_expression "(plVar61 == (lang_statement_union *)0x0)" ( (binary_expression "plVar61 == (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 **)plVar70;\n      }" { (expression_statement "statement_list.tail = (lang_statement_union **)plVar70;" (assignment_expression "statement_list.tail = (lang_statement_union **)plVar70" (field_expression "statement_list.tail" identifier . field_identifier) = (cast_expression "(lang_statement_union **)plVar70" ( (type_descriptor "lang_statement_union **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ;) })) (expression_statement "*pplVar32 = plVar51;" (assignment_expression "*pplVar32 = plVar51" (pointer_expression "*pplVar32" * identifier) = identifier) ;) (expression_statement "plVar61 = (lang_statement_union *)0x0;" (assignment_expression "plVar61 = (lang_statement_union *)0x0" identifier = (cast_expression "(lang_statement_union *)0x0" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "plVar51 = lang_output_section_statement.head;" (assignment_expression "plVar51 = lang_output_section_statement.head" identifier = (field_expression "lang_output_section_statement.head" identifier . field_identifier)) ;) })))) })) (for_statement "for (; (plVar51 = file_chain.head, plVar43 != (lang_statement_union *)0x0 &&\n         ((plVar43->output_section_statement).constraint =\n               -2 - (plVar43->output_section_statement).constraint, plVar51 = file_chain.head,\n         plVar61 != plVar43));\n      plVar43 = (lang_statement_union *)(plVar43->wild_statement).section_list) {\n  }" for ( ; (parenthesized_expression "(plVar51 = file_chain.head, plVar43 != (lang_statement_union *)0x0 &&\n         ((plVar43->output_section_statement).constraint =\n               -2 - (plVar43->output_section_statement).constraint, plVar51 = file_chain.head,\n         plVar61 != plVar43))" ( (comma_expression "plVar51 = file_chain.head, plVar43 != (lang_statement_union *)0x0 &&\n         ((plVar43->output_section_statement).constraint =\n               -2 - (plVar43->output_section_statement).constraint, plVar51 = file_chain.head,\n         plVar61 != plVar43)" (assignment_expression "plVar51 = file_chain.head" identifier = (field_expression "file_chain.head" identifier . field_identifier)) , (binary_expression "plVar43 != (lang_statement_union *)0x0 &&\n         ((plVar43->output_section_statement).constraint =\n               -2 - (plVar43->output_section_statement).constraint, plVar51 = file_chain.head,\n         plVar61 != plVar43)" (binary_expression "plVar43 != (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 "((plVar43->output_section_statement).constraint =\n               -2 - (plVar43->output_section_statement).constraint, plVar51 = file_chain.head,\n         plVar61 != plVar43)" ( (comma_expression "(plVar43->output_section_statement).constraint =\n               -2 - (plVar43->output_section_statement).constraint, plVar51 = file_chain.head,\n         plVar61 != plVar43" (assignment_expression "(plVar43->output_section_statement).constraint =\n               -2 - (plVar43->output_section_statement).constraint" (field_expression "(plVar43->output_section_statement).constraint" (parenthesized_expression "(plVar43->output_section_statement)" ( (field_expression "plVar43->output_section_statement" identifier -> field_identifier) )) . field_identifier) = (binary_expression "-2 - (plVar43->output_section_statement).constraint" number_literal - (field_expression "(plVar43->output_section_statement).constraint" (parenthesized_expression "(plVar43->output_section_statement)" ( (field_expression "plVar43->output_section_statement" identifier -> field_identifier) )) . field_identifier))) , (comma_expression "plVar51 = file_chain.head,\n         plVar61 != plVar43" (assignment_expression "plVar51 = file_chain.head" identifier = (field_expression "file_chain.head" identifier . field_identifier)) , (binary_expression "plVar61 != plVar43" identifier != identifier))) )))) )) ; (assignment_expression "plVar43 = (lang_statement_union *)(plVar43->wild_statement).section_list" identifier = (cast_expression "(lang_statement_union *)(plVar43->wild_statement).section_list" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(plVar43->wild_statement).section_list" (parenthesized_expression "(plVar43->wild_statement)" ( (field_expression "plVar43->wild_statement" identifier -> field_identifier) )) . field_identifier))) ) (compound_statement "{\n  }" { })) (labeled_statement "joined_r0x0011c458:\n  for (; plVar51 != (lang_statement_union *)0x0; plVar51 = (plVar51->wild_statement).children.head)\n  {\n    pbVar39 = ((plVar51->input_statement).the_bfd)->sections;\njoined_r0x0011c46e:\n    if (pbVar39 != (bfd_section *)0x0) {\n      do {\n        if (pbVar39->output_section == (bfd_section *)0x0) {\n          if (((ulong)(plVar51->wild_statement).walk_wild_section_handler & 0x10) != 0)\n          goto code_r0x0011c493;\n          bVar26 = lang_discard_section_p((asection *)(ulong)pbVar39->flags);\n          bVar72 = false;\n          bVar73 = bVar26 == 0;\n          if (bVar73) {\n            pbVar7 = (byte *)pbVar39->name;\n            lVar29 = 7;\n            pbVar38 = pbVar7;\n            pbVar63 = (byte *)"COMMON";\n            do {\n              if (lVar29 == 0) break;\n              lVar29 = lVar29 + -1;\n              bVar72 = *pbVar38 < *pbVar63;\n              bVar73 = *pbVar38 == *pbVar63;\n              pbVar38 = pbVar38 + (ulong)bVar74 * -2 + 1;\n              pbVar63 = pbVar63 + (ulong)bVar74 * -2 + 1;\n            } while (bVar73);\n            if ((!bVar72 && !bVar73) == bVar72) {\n              if (((link_info._0_1_ & 3) != 2) || (command_line.force_common_definition != 0)) {\n                plVar33 = default_common_section;\n                if (default_common_section == (lang_output_section_statement_type *)0x0) {\n                  plVar33 = lang_output_section_statement_lookup(".bss",0,1);\n                  default_common_section = plVar33;\n                }\nLAB_0011c659:\n                lang_add_section(&plVar33->children,pbVar39,(flag_info *)0x0,plVar33);\n              }\n            }\n            else {\n              if (config.orphan_handling == orphan_handling_discard) {\n                plVar33 = lang_output_section_statement_lookup("/DISCARD/",0,1);\n                if ((plVar33->addr_tree == (etree_union *)0x0) &&\n                   (((link_info._0_1_ & 3) == 2 || ((pbVar39->flags & 3) == 0)))) {\n                  peVar44 = exp_intop(0);\n                  plVar33->addr_tree = peVar44;\n                }\n                goto LAB_0011c659;\n              }\n              if (config.orphan_handling == orphan_handling_error) {\n                pbVar69 = pbVar39->owner;\n                pcVar27 = (char *)dcgettext(0,\n                                            "%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n"\n                                            ,5);\n                einfo(pcVar27,pbVar39,pbVar69);\n              }\n              if ((config.unique_orphan_sections == 0) &&\n                 (bVar26 = unique_section_p(pbVar39,(lang_output_section_statement_type *)0x0),\n                 bVar26 == 0)) {\n                iVar25 = 0;\n              }\n              else {\n                iVar25 = 0x17e;\n              }\n              plVar33 = ldemul_place_orphan(pbVar39,(char *)pbVar7,iVar25);\n              if (plVar33 == (lang_output_section_statement_type *)0x0) {\n                plVar33 = lang_output_section_statement_lookup((char *)pbVar7,iVar25,1);\n                if ((plVar33->addr_tree == (etree_union *)0x0) &&\n                   (((link_info._0_1_ & 3) == 2 || ((pbVar39->flags & 3) == 0)))) {\n                  peVar44 = exp_intop(0);\n                  plVar33->addr_tree = peVar44;\n                }\n                lang_add_section(&plVar33->children,pbVar39,(flag_info *)0x0,plVar33);\n              }\n              if (config.orphan_handling == orphan_handling_warn) {\n                pbVar69 = pbVar39->owner;\n                pcVar27 = (char *)dcgettext(0,\n                                            "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                            ,5);\n                einfo(pcVar27,pbVar39,pbVar69);\n              }\n            }\n          }\n          else {\n            pbVar39->output_section = (bfd_section *)(_bfd_std_section + 0x230);\n          }\n        }\n        pbVar39 = pbVar39->next;\n        if (pbVar39 == (bfd_section *)0x0) break;\n      } while( true );\n    }\n  }" statement_identifier : (for_statement "for (; plVar51 != (lang_statement_union *)0x0; plVar51 = (plVar51->wild_statement).children.head)\n  {\n    pbVar39 = ((plVar51->input_statement).the_bfd)->sections;\njoined_r0x0011c46e:\n    if (pbVar39 != (bfd_section *)0x0) {\n      do {\n        if (pbVar39->output_section == (bfd_section *)0x0) {\n          if (((ulong)(plVar51->wild_statement).walk_wild_section_handler & 0x10) != 0)\n          goto code_r0x0011c493;\n          bVar26 = lang_discard_section_p((asection *)(ulong)pbVar39->flags);\n          bVar72 = false;\n          bVar73 = bVar26 == 0;\n          if (bVar73) {\n            pbVar7 = (byte *)pbVar39->name;\n            lVar29 = 7;\n            pbVar38 = pbVar7;\n            pbVar63 = (byte *)"COMMON";\n            do {\n              if (lVar29 == 0) break;\n              lVar29 = lVar29 + -1;\n              bVar72 = *pbVar38 < *pbVar63;\n              bVar73 = *pbVar38 == *pbVar63;\n              pbVar38 = pbVar38 + (ulong)bVar74 * -2 + 1;\n              pbVar63 = pbVar63 + (ulong)bVar74 * -2 + 1;\n            } while (bVar73);\n            if ((!bVar72 && !bVar73) == bVar72) {\n              if (((link_info._0_1_ & 3) != 2) || (command_line.force_common_definition != 0)) {\n                plVar33 = default_common_section;\n                if (default_common_section == (lang_output_section_statement_type *)0x0) {\n                  plVar33 = lang_output_section_statement_lookup(".bss",0,1);\n                  default_common_section = plVar33;\n                }\nLAB_0011c659:\n                lang_add_section(&plVar33->children,pbVar39,(flag_info *)0x0,plVar33);\n              }\n            }\n            else {\n              if (config.orphan_handling == orphan_handling_discard) {\n                plVar33 = lang_output_section_statement_lookup("/DISCARD/",0,1);\n                if ((plVar33->addr_tree == (etree_union *)0x0) &&\n                   (((link_info._0_1_ & 3) == 2 || ((pbVar39->flags & 3) == 0)))) {\n                  peVar44 = exp_intop(0);\n                  plVar33->addr_tree = peVar44;\n                }\n                goto LAB_0011c659;\n              }\n              if (config.orphan_handling == orphan_handling_error) {\n                pbVar69 = pbVar39->owner;\n                pcVar27 = (char *)dcgettext(0,\n                                            "%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n"\n                                            ,5);\n                einfo(pcVar27,pbVar39,pbVar69);\n              }\n              if ((config.unique_orphan_sections == 0) &&\n                 (bVar26 = unique_section_p(pbVar39,(lang_output_section_statement_type *)0x0),\n                 bVar26 == 0)) {\n                iVar25 = 0;\n              }\n              else {\n                iVar25 = 0x17e;\n              }\n              plVar33 = ldemul_place_orphan(pbVar39,(char *)pbVar7,iVar25);\n              if (plVar33 == (lang_output_section_statement_type *)0x0) {\n                plVar33 = lang_output_section_statement_lookup((char *)pbVar7,iVar25,1);\n                if ((plVar33->addr_tree == (etree_union *)0x0) &&\n                   (((link_info._0_1_ & 3) == 2 || ((pbVar39->flags & 3) == 0)))) {\n                  peVar44 = exp_intop(0);\n                  plVar33->addr_tree = peVar44;\n                }\n                lang_add_section(&plVar33->children,pbVar39,(flag_info *)0x0,plVar33);\n              }\n              if (config.orphan_handling == orphan_handling_warn) {\n                pbVar69 = pbVar39->owner;\n                pcVar27 = (char *)dcgettext(0,\n                                            "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                            ,5);\n                einfo(pcVar27,pbVar39,pbVar69);\n              }\n            }\n          }\n          else {\n            pbVar39->output_section = (bfd_section *)(_bfd_std_section + 0x230);\n          }\n        }\n        pbVar39 = pbVar39->next;\n        if (pbVar39 == (bfd_section *)0x0) break;\n      } while( true );\n    }\n  }" for ( ; (binary_expression "plVar51 != (lang_statement_union *)0x0" identifier != (cast_expression "(lang_statement_union *)0x0" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "plVar51 = (plVar51->wild_statement).children.head" identifier = (field_expression "(plVar51->wild_statement).children.head" (field_expression "(plVar51->wild_statement).children" (parenthesized_expression "(plVar51->wild_statement)" ( (field_expression "plVar51->wild_statement" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ) (compound_statement "{\n    pbVar39 = ((plVar51->input_statement).the_bfd)->sections;\njoined_r0x0011c46e:\n    if (pbVar39 != (bfd_section *)0x0) {\n      do {\n        if (pbVar39->output_section == (bfd_section *)0x0) {\n          if (((ulong)(plVar51->wild_statement).walk_wild_section_handler & 0x10) != 0)\n          goto code_r0x0011c493;\n          bVar26 = lang_discard_section_p((asection *)(ulong)pbVar39->flags);\n          bVar72 = false;\n          bVar73 = bVar26 == 0;\n          if (bVar73) {\n            pbVar7 = (byte *)pbVar39->name;\n            lVar29 = 7;\n            pbVar38 = pbVar7;\n            pbVar63 = (byte *)"COMMON";\n            do {\n              if (lVar29 == 0) break;\n              lVar29 = lVar29 + -1;\n              bVar72 = *pbVar38 < *pbVar63;\n              bVar73 = *pbVar38 == *pbVar63;\n              pbVar38 = pbVar38 + (ulong)bVar74 * -2 + 1;\n              pbVar63 = pbVar63 + (ulong)bVar74 * -2 + 1;\n            } while (bVar73);\n            if ((!bVar72 && !bVar73) == bVar72) {\n              if (((link_info._0_1_ & 3) != 2) || (command_line.force_common_definition != 0)) {\n                plVar33 = default_common_section;\n                if (default_common_section == (lang_output_section_statement_type *)0x0) {\n                  plVar33 = lang_output_section_statement_lookup(".bss",0,1);\n                  default_common_section = plVar33;\n                }\nLAB_0011c659:\n                lang_add_section(&plVar33->children,pbVar39,(flag_info *)0x0,plVar33);\n              }\n            }\n            else {\n              if (config.orphan_handling == orphan_handling_discard) {\n                plVar33 = lang_output_section_statement_lookup("/DISCARD/",0,1);\n                if ((plVar33->addr_tree == (etree_union *)0x0) &&\n                   (((link_info._0_1_ & 3) == 2 || ((pbVar39->flags & 3) == 0)))) {\n                  peVar44 = exp_intop(0);\n                  plVar33->addr_tree = peVar44;\n                }\n                goto LAB_0011c659;\n              }\n              if (config.orphan_handling == orphan_handling_error) {\n                pbVar69 = pbVar39->owner;\n                pcVar27 = (char *)dcgettext(0,\n                                            "%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n"\n                                            ,5);\n                einfo(pcVar27,pbVar39,pbVar69);\n              }\n              if ((config.unique_orphan_sections == 0) &&\n                 (bVar26 = unique_section_p(pbVar39,(lang_output_section_statement_type *)0x0),\n                 bVar26 == 0)) {\n                iVar25 = 0;\n              }\n              else {\n                iVar25 = 0x17e;\n              }\n              plVar33 = ldemul_place_orphan(pbVar39,(char *)pbVar7,iVar25);\n              if (plVar33 == (lang_output_section_statement_type *)0x0) {\n                plVar33 = lang_output_section_statement_lookup((char *)pbVar7,iVar25,1);\n                if ((plVar33->addr_tree == (etree_union *)0x0) &&\n                   (((link_info._0_1_ & 3) == 2 || ((pbVar39->flags & 3) == 0)))) {\n                  peVar44 = exp_intop(0);\n                  plVar33->addr_tree = peVar44;\n                }\n                lang_add_section(&plVar33->children,pbVar39,(flag_info *)0x0,plVar33);\n              }\n              if (config.orphan_handling == orphan_handling_warn) {\n                pbVar69 = pbVar39->owner;\n                pcVar27 = (char *)dcgettext(0,\n                                            "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                            ,5);\n                einfo(pcVar27,pbVar39,pbVar69);\n              }\n            }\n          }\n          else {\n            pbVar39->output_section = (bfd_section *)(_bfd_std_section + 0x230);\n          }\n        }\n        pbVar39 = pbVar39->next;\n        if (pbVar39 == (bfd_section *)0x0) break;\n      } while( true );\n    }\n  }" { (expression_statement "pbVar39 = ((plVar51->input_statement).the_bfd)->sections;" (assignment_expression "pbVar39 = ((plVar51->input_statement).the_bfd)->sections" identifier = (field_expression "((plVar51->input_statement).the_bfd)->sections" (parenthesized_expression "((plVar51->input_statement).the_bfd)" ( (field_expression "(plVar51->input_statement).the_bfd" (parenthesized_expression "(plVar51->input_statement)" ( (field_expression "plVar51->input_statement" identifier -> field_identifier) )) . field_identifier) )) -> field_identifier)) ;) (labeled_statement "joined_r0x0011c46e:\n    if (pbVar39 != (bfd_section *)0x0) {\n      do {\n        if (pbVar39->output_section == (bfd_section *)0x0) {\n          if (((ulong)(plVar51->wild_statement).walk_wild_section_handler & 0x10) != 0)\n          goto code_r0x0011c493;\n          bVar26 = lang_discard_section_p((asection *)(ulong)pbVar39->flags);\n          bVar72 = false;\n          bVar73 = bVar26 == 0;\n          if (bVar73) {\n            pbVar7 = (byte *)pbVar39->name;\n            lVar29 = 7;\n            pbVar38 = pbVar7;\n            pbVar63 = (byte *)"COMMON";\n            do {\n              if (lVar29 == 0) break;\n              lVar29 = lVar29 + -1;\n              bVar72 = *pbVar38 < *pbVar63;\n              bVar73 = *pbVar38 == *pbVar63;\n              pbVar38 = pbVar38 + (ulong)bVar74 * -2 + 1;\n              pbVar63 = pbVar63 + (ulong)bVar74 * -2 + 1;\n            } while (bVar73);\n            if ((!bVar72 && !bVar73) == bVar72) {\n              if (((link_info._0_1_ & 3) != 2) || (command_line.force_common_definition != 0)) {\n                plVar33 = default_common_section;\n                if (default_common_section == (lang_output_section_statement_type *)0x0) {\n                  plVar33 = lang_output_section_statement_lookup(".bss",0,1);\n                  default_common_section = plVar33;\n                }\nLAB_0011c659:\n                lang_add_section(&plVar33->children,pbVar39,(flag_info *)0x0,plVar33);\n              }\n            }\n            else {\n              if (config.orphan_handling == orphan_handling_discard) {\n                plVar33 = lang_output_section_statement_lookup("/DISCARD/",0,1);\n                if ((plVar33->addr_tree == (etree_union *)0x0) &&\n                   (((link_info._0_1_ & 3) == 2 || ((pbVar39->flags & 3) == 0)))) {\n                  peVar44 = exp_intop(0);\n                  plVar33->addr_tree = peVar44;\n                }\n                goto LAB_0011c659;\n              }\n              if (config.orphan_handling == orphan_handling_error) {\n                pbVar69 = pbVar39->owner;\n                pcVar27 = (char *)dcgettext(0,\n                                            "%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n"\n                                            ,5);\n                einfo(pcVar27,pbVar39,pbVar69);\n              }\n              if ((config.unique_orphan_sections == 0) &&\n                 (bVar26 = unique_section_p(pbVar39,(lang_output_section_statement_type *)0x0),\n                 bVar26 == 0)) {\n                iVar25 = 0;\n              }\n              else {\n                iVar25 = 0x17e;\n              }\n              plVar33 = ldemul_place_orphan(pbVar39,(char *)pbVar7,iVar25);\n              if (plVar33 == (lang_output_section_statement_type *)0x0) {\n                plVar33 = lang_output_section_statement_lookup((char *)pbVar7,iVar25,1);\n                if ((plVar33->addr_tree == (etree_union *)0x0) &&\n                   (((link_info._0_1_ & 3) == 2 || ((pbVar39->flags & 3) == 0)))) {\n                  peVar44 = exp_intop(0);\n                  plVar33->addr_tree = peVar44;\n                }\n                lang_add_section(&plVar33->children,pbVar39,(flag_info *)0x0,plVar33);\n              }\n              if (config.orphan_handling == orphan_handling_warn) {\n                pbVar69 = pbVar39->owner;\n                pcVar27 = (char *)dcgettext(0,\n                                            "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                            ,5);\n                einfo(pcVar27,pbVar39,pbVar69);\n              }\n            }\n          }\n          else {\n            pbVar39->output_section = (bfd_section *)(_bfd_std_section + 0x230);\n          }\n        }\n        pbVar39 = pbVar39->next;\n        if (pbVar39 == (bfd_section *)0x0) break;\n      } while( true );\n    }" statement_identifier : (if_statement "if (pbVar39 != (bfd_section *)0x0) {\n      do {\n        if (pbVar39->output_section == (bfd_section *)0x0) {\n          if (((ulong)(plVar51->wild_statement).walk_wild_section_handler & 0x10) != 0)\n          goto code_r0x0011c493;\n          bVar26 = lang_discard_section_p((asection *)(ulong)pbVar39->flags);\n          bVar72 = false;\n          bVar73 = bVar26 == 0;\n          if (bVar73) {\n            pbVar7 = (byte *)pbVar39->name;\n            lVar29 = 7;\n            pbVar38 = pbVar7;\n            pbVar63 = (byte *)"COMMON";\n            do {\n              if (lVar29 == 0) break;\n              lVar29 = lVar29 + -1;\n              bVar72 = *pbVar38 < *pbVar63;\n              bVar73 = *pbVar38 == *pbVar63;\n              pbVar38 = pbVar38 + (ulong)bVar74 * -2 + 1;\n              pbVar63 = pbVar63 + (ulong)bVar74 * -2 + 1;\n            } while (bVar73);\n            if ((!bVar72 && !bVar73) == bVar72) {\n              if (((link_info._0_1_ & 3) != 2) || (command_line.force_common_definition != 0)) {\n                plVar33 = default_common_section;\n                if (default_common_section == (lang_output_section_statement_type *)0x0) {\n                  plVar33 = lang_output_section_statement_lookup(".bss",0,1);\n                  default_common_section = plVar33;\n                }\nLAB_0011c659:\n                lang_add_section(&plVar33->children,pbVar39,(flag_info *)0x0,plVar33);\n              }\n            }\n            else {\n              if (config.orphan_handling == orphan_handling_discard) {\n                plVar33 = lang_output_section_statement_lookup("/DISCARD/",0,1);\n                if ((plVar33->addr_tree == (etree_union *)0x0) &&\n                   (((link_info._0_1_ & 3) == 2 || ((pbVar39->flags & 3) == 0)))) {\n                  peVar44 = exp_intop(0);\n                  plVar33->addr_tree = peVar44;\n                }\n                goto LAB_0011c659;\n              }\n              if (config.orphan_handling == orphan_handling_error) {\n                pbVar69 = pbVar39->owner;\n                pcVar27 = (char *)dcgettext(0,\n                                            "%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n"\n                                            ,5);\n                einfo(pcVar27,pbVar39,pbVar69);\n              }\n              if ((config.unique_orphan_sections == 0) &&\n                 (bVar26 = unique_section_p(pbVar39,(lang_output_section_statement_type *)0x0),\n                 bVar26 == 0)) {\n                iVar25 = 0;\n              }\n              else {\n                iVar25 = 0x17e;\n              }\n              plVar33 = ldemul_place_orphan(pbVar39,(char *)pbVar7,iVar25);\n              if (plVar33 == (lang_output_section_statement_type *)0x0) {\n                plVar33 = lang_output_section_statement_lookup((char *)pbVar7,iVar25,1);\n                if ((plVar33->addr_tree == (etree_union *)0x0) &&\n                   (((link_info._0_1_ & 3) == 2 || ((pbVar39->flags & 3) == 0)))) {\n                  peVar44 = exp_intop(0);\n                  plVar33->addr_tree = peVar44;\n                }\n                lang_add_section(&plVar33->children,pbVar39,(flag_info *)0x0,plVar33);\n              }\n              if (config.orphan_handling == orphan_handling_warn) {\n                pbVar69 = pbVar39->owner;\n                pcVar27 = (char *)dcgettext(0,\n                                            "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                            ,5);\n                einfo(pcVar27,pbVar39,pbVar69);\n              }\n            }\n          }\n          else {\n            pbVar39->output_section = (bfd_section *)(_bfd_std_section + 0x230);\n          }\n        }\n        pbVar39 = pbVar39->next;\n        if (pbVar39 == (bfd_section *)0x0) break;\n      } while( true );\n    }" if (parenthesized_expression "(pbVar39 != (bfd_section *)0x0)" ( (binary_expression "pbVar39 != (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 (pbVar39->output_section == (bfd_section *)0x0) {\n          if (((ulong)(plVar51->wild_statement).walk_wild_section_handler & 0x10) != 0)\n          goto code_r0x0011c493;\n          bVar26 = lang_discard_section_p((asection *)(ulong)pbVar39->flags);\n          bVar72 = false;\n          bVar73 = bVar26 == 0;\n          if (bVar73) {\n            pbVar7 = (byte *)pbVar39->name;\n            lVar29 = 7;\n            pbVar38 = pbVar7;\n            pbVar63 = (byte *)"COMMON";\n            do {\n              if (lVar29 == 0) break;\n              lVar29 = lVar29 + -1;\n              bVar72 = *pbVar38 < *pbVar63;\n              bVar73 = *pbVar38 == *pbVar63;\n              pbVar38 = pbVar38 + (ulong)bVar74 * -2 + 1;\n              pbVar63 = pbVar63 + (ulong)bVar74 * -2 + 1;\n            } while (bVar73);\n            if ((!bVar72 && !bVar73) == bVar72) {\n              if (((link_info._0_1_ & 3) != 2) || (command_line.force_common_definition != 0)) {\n                plVar33 = default_common_section;\n                if (default_common_section == (lang_output_section_statement_type *)0x0) {\n                  plVar33 = lang_output_section_statement_lookup(".bss",0,1);\n                  default_common_section = plVar33;\n                }\nLAB_0011c659:\n                lang_add_section(&plVar33->children,pbVar39,(flag_info *)0x0,plVar33);\n              }\n            }\n            else {\n              if (config.orphan_handling == orphan_handling_discard) {\n                plVar33 = lang_output_section_statement_lookup("/DISCARD/",0,1);\n                if ((plVar33->addr_tree == (etree_union *)0x0) &&\n                   (((link_info._0_1_ & 3) == 2 || ((pbVar39->flags & 3) == 0)))) {\n                  peVar44 = exp_intop(0);\n                  plVar33->addr_tree = peVar44;\n                }\n                goto LAB_0011c659;\n              }\n              if (config.orphan_handling == orphan_handling_error) {\n                pbVar69 = pbVar39->owner;\n                pcVar27 = (char *)dcgettext(0,\n                                            "%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n"\n                                            ,5);\n                einfo(pcVar27,pbVar39,pbVar69);\n              }\n              if ((config.unique_orphan_sections == 0) &&\n                 (bVar26 = unique_section_p(pbVar39,(lang_output_section_statement_type *)0x0),\n                 bVar26 == 0)) {\n                iVar25 = 0;\n              }\n              else {\n                iVar25 = 0x17e;\n              }\n              plVar33 = ldemul_place_orphan(pbVar39,(char *)pbVar7,iVar25);\n              if (plVar33 == (lang_output_section_statement_type *)0x0) {\n                plVar33 = lang_output_section_statement_lookup((char *)pbVar7,iVar25,1);\n                if ((plVar33->addr_tree == (etree_union *)0x0) &&\n                   (((link_info._0_1_ & 3) == 2 || ((pbVar39->flags & 3) == 0)))) {\n                  peVar44 = exp_intop(0);\n                  plVar33->addr_tree = peVar44;\n                }\n                lang_add_section(&plVar33->children,pbVar39,(flag_info *)0x0,plVar33);\n              }\n              if (config.orphan_handling == orphan_handling_warn) {\n                pbVar69 = pbVar39->owner;\n                pcVar27 = (char *)dcgettext(0,\n                                            "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                            ,5);\n                einfo(pcVar27,pbVar39,pbVar69);\n              }\n            }\n          }\n          else {\n            pbVar39->output_section = (bfd_section *)(_bfd_std_section + 0x230);\n          }\n        }\n        pbVar39 = pbVar39->next;\n        if (pbVar39 == (bfd_section *)0x0) break;\n      } while( true );\n    }" { (do_statement "do {\n        if (pbVar39->output_section == (bfd_section *)0x0) {\n          if (((ulong)(plVar51->wild_statement).walk_wild_section_handler & 0x10) != 0)\n          goto code_r0x0011c493;\n          bVar26 = lang_discard_section_p((asection *)(ulong)pbVar39->flags);\n          bVar72 = false;\n          bVar73 = bVar26 == 0;\n          if (bVar73) {\n            pbVar7 = (byte *)pbVar39->name;\n            lVar29 = 7;\n            pbVar38 = pbVar7;\n            pbVar63 = (byte *)"COMMON";\n            do {\n              if (lVar29 == 0) break;\n              lVar29 = lVar29 + -1;\n              bVar72 = *pbVar38 < *pbVar63;\n              bVar73 = *pbVar38 == *pbVar63;\n              pbVar38 = pbVar38 + (ulong)bVar74 * -2 + 1;\n              pbVar63 = pbVar63 + (ulong)bVar74 * -2 + 1;\n            } while (bVar73);\n            if ((!bVar72 && !bVar73) == bVar72) {\n              if (((link_info._0_1_ & 3) != 2) || (command_line.force_common_definition != 0)) {\n                plVar33 = default_common_section;\n                if (default_common_section == (lang_output_section_statement_type *)0x0) {\n                  plVar33 = lang_output_section_statement_lookup(".bss",0,1);\n                  default_common_section = plVar33;\n                }\nLAB_0011c659:\n                lang_add_section(&plVar33->children,pbVar39,(flag_info *)0x0,plVar33);\n              }\n            }\n            else {\n              if (config.orphan_handling == orphan_handling_discard) {\n                plVar33 = lang_output_section_statement_lookup("/DISCARD/",0,1);\n                if ((plVar33->addr_tree == (etree_union *)0x0) &&\n                   (((link_info._0_1_ & 3) == 2 || ((pbVar39->flags & 3) == 0)))) {\n                  peVar44 = exp_intop(0);\n                  plVar33->addr_tree = peVar44;\n                }\n                goto LAB_0011c659;\n              }\n              if (config.orphan_handling == orphan_handling_error) {\n                pbVar69 = pbVar39->owner;\n                pcVar27 = (char *)dcgettext(0,\n                                            "%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n"\n                                            ,5);\n                einfo(pcVar27,pbVar39,pbVar69);\n              }\n              if ((config.unique_orphan_sections == 0) &&\n                 (bVar26 = unique_section_p(pbVar39,(lang_output_section_statement_type *)0x0),\n                 bVar26 == 0)) {\n                iVar25 = 0;\n              }\n              else {\n                iVar25 = 0x17e;\n              }\n              plVar33 = ldemul_place_orphan(pbVar39,(char *)pbVar7,iVar25);\n              if (plVar33 == (lang_output_section_statement_type *)0x0) {\n                plVar33 = lang_output_section_statement_lookup((char *)pbVar7,iVar25,1);\n                if ((plVar33->addr_tree == (etree_union *)0x0) &&\n                   (((link_info._0_1_ & 3) == 2 || ((pbVar39->flags & 3) == 0)))) {\n                  peVar44 = exp_intop(0);\n                  plVar33->addr_tree = peVar44;\n                }\n                lang_add_section(&plVar33->children,pbVar39,(flag_info *)0x0,plVar33);\n              }\n              if (config.orphan_handling == orphan_handling_warn) {\n                pbVar69 = pbVar39->owner;\n                pcVar27 = (char *)dcgettext(0,\n                                            "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                            ,5);\n                einfo(pcVar27,pbVar39,pbVar69);\n              }\n            }\n          }\n          else {\n            pbVar39->output_section = (bfd_section *)(_bfd_std_section + 0x230);\n          }\n        }\n        pbVar39 = pbVar39->next;\n        if (pbVar39 == (bfd_section *)0x0) break;\n      } while( true );" do (compound_statement "{\n        if (pbVar39->output_section == (bfd_section *)0x0) {\n          if (((ulong)(plVar51->wild_statement).walk_wild_section_handler & 0x10) != 0)\n          goto code_r0x0011c493;\n          bVar26 = lang_discard_section_p((asection *)(ulong)pbVar39->flags);\n          bVar72 = false;\n          bVar73 = bVar26 == 0;\n          if (bVar73) {\n            pbVar7 = (byte *)pbVar39->name;\n            lVar29 = 7;\n            pbVar38 = pbVar7;\n            pbVar63 = (byte *)"COMMON";\n            do {\n              if (lVar29 == 0) break;\n              lVar29 = lVar29 + -1;\n              bVar72 = *pbVar38 < *pbVar63;\n              bVar73 = *pbVar38 == *pbVar63;\n              pbVar38 = pbVar38 + (ulong)bVar74 * -2 + 1;\n              pbVar63 = pbVar63 + (ulong)bVar74 * -2 + 1;\n            } while (bVar73);\n            if ((!bVar72 && !bVar73) == bVar72) {\n              if (((link_info._0_1_ & 3) != 2) || (command_line.force_common_definition != 0)) {\n                plVar33 = default_common_section;\n                if (default_common_section == (lang_output_section_statement_type *)0x0) {\n                  plVar33 = lang_output_section_statement_lookup(".bss",0,1);\n                  default_common_section = plVar33;\n                }\nLAB_0011c659:\n                lang_add_section(&plVar33->children,pbVar39,(flag_info *)0x0,plVar33);\n              }\n            }\n            else {\n              if (config.orphan_handling == orphan_handling_discard) {\n                plVar33 = lang_output_section_statement_lookup("/DISCARD/",0,1);\n                if ((plVar33->addr_tree == (etree_union *)0x0) &&\n                   (((link_info._0_1_ & 3) == 2 || ((pbVar39->flags & 3) == 0)))) {\n                  peVar44 = exp_intop(0);\n                  plVar33->addr_tree = peVar44;\n                }\n                goto LAB_0011c659;\n              }\n              if (config.orphan_handling == orphan_handling_error) {\n                pbVar69 = pbVar39->owner;\n                pcVar27 = (char *)dcgettext(0,\n                                            "%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n"\n                                            ,5);\n                einfo(pcVar27,pbVar39,pbVar69);\n              }\n              if ((config.unique_orphan_sections == 0) &&\n                 (bVar26 = unique_section_p(pbVar39,(lang_output_section_statement_type *)0x0),\n                 bVar26 == 0)) {\n                iVar25 = 0;\n              }\n              else {\n                iVar25 = 0x17e;\n              }\n              plVar33 = ldemul_place_orphan(pbVar39,(char *)pbVar7,iVar25);\n              if (plVar33 == (lang_output_section_statement_type *)0x0) {\n                plVar33 = lang_output_section_statement_lookup((char *)pbVar7,iVar25,1);\n                if ((plVar33->addr_tree == (etree_union *)0x0) &&\n                   (((link_info._0_1_ & 3) == 2 || ((pbVar39->flags & 3) == 0)))) {\n                  peVar44 = exp_intop(0);\n                  plVar33->addr_tree = peVar44;\n                }\n                lang_add_section(&plVar33->children,pbVar39,(flag_info *)0x0,plVar33);\n              }\n              if (config.orphan_handling == orphan_handling_warn) {\n                pbVar69 = pbVar39->owner;\n                pcVar27 = (char *)dcgettext(0,\n                                            "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                            ,5);\n                einfo(pcVar27,pbVar39,pbVar69);\n              }\n            }\n          }\n          else {\n            pbVar39->output_section = (bfd_section *)(_bfd_std_section + 0x230);\n          }\n        }\n        pbVar39 = pbVar39->next;\n        if (pbVar39 == (bfd_section *)0x0) break;\n      }" { (if_statement "if (pbVar39->output_section == (bfd_section *)0x0) {\n          if (((ulong)(plVar51->wild_statement).walk_wild_section_handler & 0x10) != 0)\n          goto code_r0x0011c493;\n          bVar26 = lang_discard_section_p((asection *)(ulong)pbVar39->flags);\n          bVar72 = false;\n          bVar73 = bVar26 == 0;\n          if (bVar73) {\n            pbVar7 = (byte *)pbVar39->name;\n            lVar29 = 7;\n            pbVar38 = pbVar7;\n            pbVar63 = (byte *)"COMMON";\n            do {\n              if (lVar29 == 0) break;\n              lVar29 = lVar29 + -1;\n              bVar72 = *pbVar38 < *pbVar63;\n              bVar73 = *pbVar38 == *pbVar63;\n              pbVar38 = pbVar38 + (ulong)bVar74 * -2 + 1;\n              pbVar63 = pbVar63 + (ulong)bVar74 * -2 + 1;\n            } while (bVar73);\n            if ((!bVar72 && !bVar73) == bVar72) {\n              if (((link_info._0_1_ & 3) != 2) || (command_line.force_common_definition != 0)) {\n                plVar33 = default_common_section;\n                if (default_common_section == (lang_output_section_statement_type *)0x0) {\n                  plVar33 = lang_output_section_statement_lookup(".bss",0,1);\n                  default_common_section = plVar33;\n                }\nLAB_0011c659:\n                lang_add_section(&plVar33->children,pbVar39,(flag_info *)0x0,plVar33);\n              }\n            }\n            else {\n              if (config.orphan_handling == orphan_handling_discard) {\n                plVar33 = lang_output_section_statement_lookup("/DISCARD/",0,1);\n                if ((plVar33->addr_tree == (etree_union *)0x0) &&\n                   (((link_info._0_1_ & 3) == 2 || ((pbVar39->flags & 3) == 0)))) {\n                  peVar44 = exp_intop(0);\n                  plVar33->addr_tree = peVar44;\n                }\n                goto LAB_0011c659;\n              }\n              if (config.orphan_handling == orphan_handling_error) {\n                pbVar69 = pbVar39->owner;\n                pcVar27 = (char *)dcgettext(0,\n                                            "%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n"\n                                            ,5);\n                einfo(pcVar27,pbVar39,pbVar69);\n              }\n              if ((config.unique_orphan_sections == 0) &&\n                 (bVar26 = unique_section_p(pbVar39,(lang_output_section_statement_type *)0x0),\n                 bVar26 == 0)) {\n                iVar25 = 0;\n              }\n              else {\n                iVar25 = 0x17e;\n              }\n              plVar33 = ldemul_place_orphan(pbVar39,(char *)pbVar7,iVar25);\n              if (plVar33 == (lang_output_section_statement_type *)0x0) {\n                plVar33 = lang_output_section_statement_lookup((char *)pbVar7,iVar25,1);\n                if ((plVar33->addr_tree == (etree_union *)0x0) &&\n                   (((link_info._0_1_ & 3) == 2 || ((pbVar39->flags & 3) == 0)))) {\n                  peVar44 = exp_intop(0);\n                  plVar33->addr_tree = peVar44;\n                }\n                lang_add_section(&plVar33->children,pbVar39,(flag_info *)0x0,plVar33);\n              }\n              if (config.orphan_handling == orphan_handling_warn) {\n                pbVar69 = pbVar39->owner;\n                pcVar27 = (char *)dcgettext(0,\n                                            "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                            ,5);\n                einfo(pcVar27,pbVar39,pbVar69);\n              }\n            }\n          }\n          else {\n            pbVar39->output_section = (bfd_section *)(_bfd_std_section + 0x230);\n          }\n        }" if (parenthesized_expression "(pbVar39->output_section == (bfd_section *)0x0)" ( (binary_expression "pbVar39->output_section == (bfd_section *)0x0" (field_expression "pbVar39->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 (((ulong)(plVar51->wild_statement).walk_wild_section_handler & 0x10) != 0)\n          goto code_r0x0011c493;\n          bVar26 = lang_discard_section_p((asection *)(ulong)pbVar39->flags);\n          bVar72 = false;\n          bVar73 = bVar26 == 0;\n          if (bVar73) {\n            pbVar7 = (byte *)pbVar39->name;\n            lVar29 = 7;\n            pbVar38 = pbVar7;\n            pbVar63 = (byte *)"COMMON";\n            do {\n              if (lVar29 == 0) break;\n              lVar29 = lVar29 + -1;\n              bVar72 = *pbVar38 < *pbVar63;\n              bVar73 = *pbVar38 == *pbVar63;\n              pbVar38 = pbVar38 + (ulong)bVar74 * -2 + 1;\n              pbVar63 = pbVar63 + (ulong)bVar74 * -2 + 1;\n            } while (bVar73);\n            if ((!bVar72 && !bVar73) == bVar72) {\n              if (((link_info._0_1_ & 3) != 2) || (command_line.force_common_definition != 0)) {\n                plVar33 = default_common_section;\n                if (default_common_section == (lang_output_section_statement_type *)0x0) {\n                  plVar33 = lang_output_section_statement_lookup(".bss",0,1);\n                  default_common_section = plVar33;\n                }\nLAB_0011c659:\n                lang_add_section(&plVar33->children,pbVar39,(flag_info *)0x0,plVar33);\n              }\n            }\n            else {\n              if (config.orphan_handling == orphan_handling_discard) {\n                plVar33 = lang_output_section_statement_lookup("/DISCARD/",0,1);\n                if ((plVar33->addr_tree == (etree_union *)0x0) &&\n                   (((link_info._0_1_ & 3) == 2 || ((pbVar39->flags & 3) == 0)))) {\n                  peVar44 = exp_intop(0);\n                  plVar33->addr_tree = peVar44;\n                }\n                goto LAB_0011c659;\n              }\n              if (config.orphan_handling == orphan_handling_error) {\n                pbVar69 = pbVar39->owner;\n                pcVar27 = (char *)dcgettext(0,\n                                            "%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n"\n                                            ,5);\n                einfo(pcVar27,pbVar39,pbVar69);\n              }\n              if ((config.unique_orphan_sections == 0) &&\n                 (bVar26 = unique_section_p(pbVar39,(lang_output_section_statement_type *)0x0),\n                 bVar26 == 0)) {\n                iVar25 = 0;\n              }\n              else {\n                iVar25 = 0x17e;\n              }\n              plVar33 = ldemul_place_orphan(pbVar39,(char *)pbVar7,iVar25);\n              if (plVar33 == (lang_output_section_statement_type *)0x0) {\n                plVar33 = lang_output_section_statement_lookup((char *)pbVar7,iVar25,1);\n                if ((plVar33->addr_tree == (etree_union *)0x0) &&\n                   (((link_info._0_1_ & 3) == 2 || ((pbVar39->flags & 3) == 0)))) {\n                  peVar44 = exp_intop(0);\n                  plVar33->addr_tree = peVar44;\n                }\n                lang_add_section(&plVar33->children,pbVar39,(flag_info *)0x0,plVar33);\n              }\n              if (config.orphan_handling == orphan_handling_warn) {\n                pbVar69 = pbVar39->owner;\n                pcVar27 = (char *)dcgettext(0,\n                                            "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                            ,5);\n                einfo(pcVar27,pbVar39,pbVar69);\n              }\n            }\n          }\n          else {\n            pbVar39->output_section = (bfd_section *)(_bfd_std_section + 0x230);\n          }\n        }" { (if_statement "if (((ulong)(plVar51->wild_statement).walk_wild_section_handler & 0x10) != 0)\n          goto code_r0x0011c493;" if (parenthesized_expression "(((ulong)(plVar51->wild_statement).walk_wild_section_handler & 0x10) != 0)" ( (binary_expression "((ulong)(plVar51->wild_statement).walk_wild_section_handler & 0x10) != 0" (parenthesized_expression "((ulong)(plVar51->wild_statement).walk_wild_section_handler & 0x10)" ( (binary_expression "(ulong)(plVar51->wild_statement).walk_wild_section_handler & 0x10" (field_expression "(ulong)(plVar51->wild_statement).walk_wild_section_handler" (call_expression "(ulong)(plVar51->wild_statement)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(plVar51->wild_statement)" ( (field_expression "plVar51->wild_statement" identifier -> field_identifier) ))) . field_identifier) & number_literal) )) != number_literal) )) (goto_statement "goto code_r0x0011c493;" goto statement_identifier ;)) (expression_statement "bVar26 = lang_discard_section_p((asection *)(ulong)pbVar39->flags);" (assignment_expression "bVar26 = lang_discard_section_p((asection *)(ulong)pbVar39->flags)" identifier = (call_expression "lang_discard_section_p((asection *)(ulong)pbVar39->flags)" identifier (argument_list "((asection *)(ulong)pbVar39->flags)" ( (cast_expression "(asection *)(ulong)pbVar39->flags" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(ulong)pbVar39->flags" ( (type_descriptor "ulong" type_identifier) ) (field_expression "pbVar39->flags" identifier -> field_identifier))) )))) ;) (expression_statement "bVar72 = false;" (assignment_expression "bVar72 = false" identifier = false) ;) (expression_statement "bVar73 = bVar26 == 0;" (assignment_expression "bVar73 = bVar26 == 0" identifier = (binary_expression "bVar26 == 0" identifier == number_literal)) ;) (if_statement "if (bVar73) {\n            pbVar7 = (byte *)pbVar39->name;\n            lVar29 = 7;\n            pbVar38 = pbVar7;\n            pbVar63 = (byte *)"COMMON";\n            do {\n              if (lVar29 == 0) break;\n              lVar29 = lVar29 + -1;\n              bVar72 = *pbVar38 < *pbVar63;\n              bVar73 = *pbVar38 == *pbVar63;\n              pbVar38 = pbVar38 + (ulong)bVar74 * -2 + 1;\n              pbVar63 = pbVar63 + (ulong)bVar74 * -2 + 1;\n            } while (bVar73);\n            if ((!bVar72 && !bVar73) == bVar72) {\n              if (((link_info._0_1_ & 3) != 2) || (command_line.force_common_definition != 0)) {\n                plVar33 = default_common_section;\n                if (default_common_section == (lang_output_section_statement_type *)0x0) {\n                  plVar33 = lang_output_section_statement_lookup(".bss",0,1);\n                  default_common_section = plVar33;\n                }\nLAB_0011c659:\n                lang_add_section(&plVar33->children,pbVar39,(flag_info *)0x0,plVar33);\n              }\n            }\n            else {\n              if (config.orphan_handling == orphan_handling_discard) {\n                plVar33 = lang_output_section_statement_lookup("/DISCARD/",0,1);\n                if ((plVar33->addr_tree == (etree_union *)0x0) &&\n                   (((link_info._0_1_ & 3) == 2 || ((pbVar39->flags & 3) == 0)))) {\n                  peVar44 = exp_intop(0);\n                  plVar33->addr_tree = peVar44;\n                }\n                goto LAB_0011c659;\n              }\n              if (config.orphan_handling == orphan_handling_error) {\n                pbVar69 = pbVar39->owner;\n                pcVar27 = (char *)dcgettext(0,\n                                            "%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n"\n                                            ,5);\n                einfo(pcVar27,pbVar39,pbVar69);\n              }\n              if ((config.unique_orphan_sections == 0) &&\n                 (bVar26 = unique_section_p(pbVar39,(lang_output_section_statement_type *)0x0),\n                 bVar26 == 0)) {\n                iVar25 = 0;\n              }\n              else {\n                iVar25 = 0x17e;\n              }\n              plVar33 = ldemul_place_orphan(pbVar39,(char *)pbVar7,iVar25);\n              if (plVar33 == (lang_output_section_statement_type *)0x0) {\n                plVar33 = lang_output_section_statement_lookup((char *)pbVar7,iVar25,1);\n                if ((plVar33->addr_tree == (etree_union *)0x0) &&\n                   (((link_info._0_1_ & 3) == 2 || ((pbVar39->flags & 3) == 0)))) {\n                  peVar44 = exp_intop(0);\n                  plVar33->addr_tree = peVar44;\n                }\n                lang_add_section(&plVar33->children,pbVar39,(flag_info *)0x0,plVar33);\n              }\n              if (config.orphan_handling == orphan_handling_warn) {\n                pbVar69 = pbVar39->owner;\n                pcVar27 = (char *)dcgettext(0,\n                                            "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                            ,5);\n                einfo(pcVar27,pbVar39,pbVar69);\n              }\n            }\n          }\n          else {\n            pbVar39->output_section = (bfd_section *)(_bfd_std_section + 0x230);\n          }" if (parenthesized_expression "(bVar73)" ( identifier )) (compound_statement "{\n            pbVar7 = (byte *)pbVar39->name;\n            lVar29 = 7;\n            pbVar38 = pbVar7;\n            pbVar63 = (byte *)"COMMON";\n            do {\n              if (lVar29 == 0) break;\n              lVar29 = lVar29 + -1;\n              bVar72 = *pbVar38 < *pbVar63;\n              bVar73 = *pbVar38 == *pbVar63;\n              pbVar38 = pbVar38 + (ulong)bVar74 * -2 + 1;\n              pbVar63 = pbVar63 + (ulong)bVar74 * -2 + 1;\n            } while (bVar73);\n            if ((!bVar72 && !bVar73) == bVar72) {\n              if (((link_info._0_1_ & 3) != 2) || (command_line.force_common_definition != 0)) {\n                plVar33 = default_common_section;\n                if (default_common_section == (lang_output_section_statement_type *)0x0) {\n                  plVar33 = lang_output_section_statement_lookup(".bss",0,1);\n                  default_common_section = plVar33;\n                }\nLAB_0011c659:\n                lang_add_section(&plVar33->children,pbVar39,(flag_info *)0x0,plVar33);\n              }\n            }\n            else {\n              if (config.orphan_handling == orphan_handling_discard) {\n                plVar33 = lang_output_section_statement_lookup("/DISCARD/",0,1);\n                if ((plVar33->addr_tree == (etree_union *)0x0) &&\n                   (((link_info._0_1_ & 3) == 2 || ((pbVar39->flags & 3) == 0)))) {\n                  peVar44 = exp_intop(0);\n                  plVar33->addr_tree = peVar44;\n                }\n                goto LAB_0011c659;\n              }\n              if (config.orphan_handling == orphan_handling_error) {\n                pbVar69 = pbVar39->owner;\n                pcVar27 = (char *)dcgettext(0,\n                                            "%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n"\n                                            ,5);\n                einfo(pcVar27,pbVar39,pbVar69);\n              }\n              if ((config.unique_orphan_sections == 0) &&\n                 (bVar26 = unique_section_p(pbVar39,(lang_output_section_statement_type *)0x0),\n                 bVar26 == 0)) {\n                iVar25 = 0;\n              }\n              else {\n                iVar25 = 0x17e;\n              }\n              plVar33 = ldemul_place_orphan(pbVar39,(char *)pbVar7,iVar25);\n              if (plVar33 == (lang_output_section_statement_type *)0x0) {\n                plVar33 = lang_output_section_statement_lookup((char *)pbVar7,iVar25,1);\n                if ((plVar33->addr_tree == (etree_union *)0x0) &&\n                   (((link_info._0_1_ & 3) == 2 || ((pbVar39->flags & 3) == 0)))) {\n                  peVar44 = exp_intop(0);\n                  plVar33->addr_tree = peVar44;\n                }\n                lang_add_section(&plVar33->children,pbVar39,(flag_info *)0x0,plVar33);\n              }\n              if (config.orphan_handling == orphan_handling_warn) {\n                pbVar69 = pbVar39->owner;\n                pcVar27 = (char *)dcgettext(0,\n                                            "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                            ,5);\n                einfo(pcVar27,pbVar39,pbVar69);\n              }\n            }\n          }" { (expression_statement "pbVar7 = (byte *)pbVar39->name;" (assignment_expression "pbVar7 = (byte *)pbVar39->name" identifier = (cast_expression "(byte *)pbVar39->name" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pbVar39->name" identifier -> field_identifier))) ;) (expression_statement "lVar29 = 7;" (assignment_expression "lVar29 = 7" identifier = number_literal) ;) (expression_statement "pbVar38 = pbVar7;" (assignment_expression "pbVar38 = pbVar7" identifier = identifier) ;) (expression_statement "pbVar63 = (byte *)"COMMON";" (assignment_expression "pbVar63 = (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 (lVar29 == 0) break;\n              lVar29 = lVar29 + -1;\n              bVar72 = *pbVar38 < *pbVar63;\n              bVar73 = *pbVar38 == *pbVar63;\n              pbVar38 = pbVar38 + (ulong)bVar74 * -2 + 1;\n              pbVar63 = pbVar63 + (ulong)bVar74 * -2 + 1;\n            } while (bVar73);" do (compound_statement "{\n              if (lVar29 == 0) break;\n              lVar29 = lVar29 + -1;\n              bVar72 = *pbVar38 < *pbVar63;\n              bVar73 = *pbVar38 == *pbVar63;\n              pbVar38 = pbVar38 + (ulong)bVar74 * -2 + 1;\n              pbVar63 = pbVar63 + (ulong)bVar74 * -2 + 1;\n            }" { (if_statement "if (lVar29 == 0) break;" if (parenthesized_expression "(lVar29 == 0)" ( (binary_expression "lVar29 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar29 = lVar29 + -1;" (assignment_expression "lVar29 = lVar29 + -1" identifier = (binary_expression "lVar29 + -1" identifier + number_literal)) ;) (expression_statement "bVar72 = *pbVar38 < *pbVar63;" (assignment_expression "bVar72 = *pbVar38 < *pbVar63" identifier = (binary_expression "*pbVar38 < *pbVar63" (pointer_expression "*pbVar38" * identifier) < (pointer_expression "*pbVar63" * identifier))) ;) (expression_statement "bVar73 = *pbVar38 == *pbVar63;" (assignment_expression "bVar73 = *pbVar38 == *pbVar63" identifier = (binary_expression "*pbVar38 == *pbVar63" (pointer_expression "*pbVar38" * identifier) == (pointer_expression "*pbVar63" * identifier))) ;) (expression_statement "pbVar38 = pbVar38 + (ulong)bVar74 * -2 + 1;" (assignment_expression "pbVar38 = pbVar38 + (ulong)bVar74 * -2 + 1" identifier = (binary_expression "pbVar38 + (ulong)bVar74 * -2 + 1" (binary_expression "pbVar38 + (ulong)bVar74 * -2" identifier + (binary_expression "(ulong)bVar74 * -2" (cast_expression "(ulong)bVar74" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar63 = pbVar63 + (ulong)bVar74 * -2 + 1;" (assignment_expression "pbVar63 = pbVar63 + (ulong)bVar74 * -2 + 1" identifier = (binary_expression "pbVar63 + (ulong)bVar74 * -2 + 1" (binary_expression "pbVar63 + (ulong)bVar74 * -2" identifier + (binary_expression "(ulong)bVar74 * -2" (cast_expression "(ulong)bVar74" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar73)" ( identifier )) ;) (if_statement "if ((!bVar72 && !bVar73) == bVar72) {\n              if (((link_info._0_1_ & 3) != 2) || (command_line.force_common_definition != 0)) {\n                plVar33 = default_common_section;\n                if (default_common_section == (lang_output_section_statement_type *)0x0) {\n                  plVar33 = lang_output_section_statement_lookup(".bss",0,1);\n                  default_common_section = plVar33;\n                }\nLAB_0011c659:\n                lang_add_section(&plVar33->children,pbVar39,(flag_info *)0x0,plVar33);\n              }\n            }\n            else {\n              if (config.orphan_handling == orphan_handling_discard) {\n                plVar33 = lang_output_section_statement_lookup("/DISCARD/",0,1);\n                if ((plVar33->addr_tree == (etree_union *)0x0) &&\n                   (((link_info._0_1_ & 3) == 2 || ((pbVar39->flags & 3) == 0)))) {\n                  peVar44 = exp_intop(0);\n                  plVar33->addr_tree = peVar44;\n                }\n                goto LAB_0011c659;\n              }\n              if (config.orphan_handling == orphan_handling_error) {\n                pbVar69 = pbVar39->owner;\n                pcVar27 = (char *)dcgettext(0,\n                                            "%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n"\n                                            ,5);\n                einfo(pcVar27,pbVar39,pbVar69);\n              }\n              if ((config.unique_orphan_sections == 0) &&\n                 (bVar26 = unique_section_p(pbVar39,(lang_output_section_statement_type *)0x0),\n                 bVar26 == 0)) {\n                iVar25 = 0;\n              }\n              else {\n                iVar25 = 0x17e;\n              }\n              plVar33 = ldemul_place_orphan(pbVar39,(char *)pbVar7,iVar25);\n              if (plVar33 == (lang_output_section_statement_type *)0x0) {\n                plVar33 = lang_output_section_statement_lookup((char *)pbVar7,iVar25,1);\n                if ((plVar33->addr_tree == (etree_union *)0x0) &&\n                   (((link_info._0_1_ & 3) == 2 || ((pbVar39->flags & 3) == 0)))) {\n                  peVar44 = exp_intop(0);\n                  plVar33->addr_tree = peVar44;\n                }\n                lang_add_section(&plVar33->children,pbVar39,(flag_info *)0x0,plVar33);\n              }\n              if (config.orphan_handling == orphan_handling_warn) {\n                pbVar69 = pbVar39->owner;\n                pcVar27 = (char *)dcgettext(0,\n                                            "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                            ,5);\n                einfo(pcVar27,pbVar39,pbVar69);\n              }\n            }" if (parenthesized_expression "((!bVar72 && !bVar73) == bVar72)" ( (binary_expression "(!bVar72 && !bVar73) == bVar72" (parenthesized_expression "(!bVar72 && !bVar73)" ( (binary_expression "!bVar72 && !bVar73" (unary_expression "!bVar72" ! identifier) && (unary_expression "!bVar73" ! identifier)) )) == identifier) )) (compound_statement "{\n              if (((link_info._0_1_ & 3) != 2) || (command_line.force_common_definition != 0)) {\n                plVar33 = default_common_section;\n                if (default_common_section == (lang_output_section_statement_type *)0x0) {\n                  plVar33 = lang_output_section_statement_lookup(".bss",0,1);\n                  default_common_section = plVar33;\n                }\nLAB_0011c659:\n                lang_add_section(&plVar33->children,pbVar39,(flag_info *)0x0,plVar33);\n              }\n            }" { (if_statement "if (((link_info._0_1_ & 3) != 2) || (command_line.force_common_definition != 0)) {\n                plVar33 = default_common_section;\n                if (default_common_section == (lang_output_section_statement_type *)0x0) {\n                  plVar33 = lang_output_section_statement_lookup(".bss",0,1);\n                  default_common_section = plVar33;\n                }\nLAB_0011c659:\n                lang_add_section(&plVar33->children,pbVar39,(flag_info *)0x0,plVar33);\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                plVar33 = default_common_section;\n                if (default_common_section == (lang_output_section_statement_type *)0x0) {\n                  plVar33 = lang_output_section_statement_lookup(".bss",0,1);\n                  default_common_section = plVar33;\n                }\nLAB_0011c659:\n                lang_add_section(&plVar33->children,pbVar39,(flag_info *)0x0,plVar33);\n              }" { (expression_statement "plVar33 = default_common_section;" (assignment_expression "plVar33 = default_common_section" identifier = identifier) ;) (if_statement "if (default_common_section == (lang_output_section_statement_type *)0x0) {\n                  plVar33 = lang_output_section_statement_lookup(".bss",0,1);\n                  default_common_section = plVar33;\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                  plVar33 = lang_output_section_statement_lookup(".bss",0,1);\n                  default_common_section = plVar33;\n                }" { (expression_statement "plVar33 = lang_output_section_statement_lookup(".bss",0,1);" (assignment_expression "plVar33 = 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 "default_common_section = plVar33;" (assignment_expression "default_common_section = plVar33" identifier = identifier) ;) })) (labeled_statement "LAB_0011c659:\n                lang_add_section(&plVar33->children,pbVar39,(flag_info *)0x0,plVar33);" statement_identifier : (expression_statement "lang_add_section(&plVar33->children,pbVar39,(flag_info *)0x0,plVar33);" (call_expression "lang_add_section(&plVar33->children,pbVar39,(flag_info *)0x0,plVar33)" identifier (argument_list "(&plVar33->children,pbVar39,(flag_info *)0x0,plVar33)" ( (pointer_expression "&plVar33->children" & (field_expression "plVar33->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_discard) {\n                plVar33 = lang_output_section_statement_lookup("/DISCARD/",0,1);\n                if ((plVar33->addr_tree == (etree_union *)0x0) &&\n                   (((link_info._0_1_ & 3) == 2 || ((pbVar39->flags & 3) == 0)))) {\n                  peVar44 = exp_intop(0);\n                  plVar33->addr_tree = peVar44;\n                }\n                goto LAB_0011c659;\n              }\n              if (config.orphan_handling == orphan_handling_error) {\n                pbVar69 = pbVar39->owner;\n                pcVar27 = (char *)dcgettext(0,\n                                            "%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n"\n                                            ,5);\n                einfo(pcVar27,pbVar39,pbVar69);\n              }\n              if ((config.unique_orphan_sections == 0) &&\n                 (bVar26 = unique_section_p(pbVar39,(lang_output_section_statement_type *)0x0),\n                 bVar26 == 0)) {\n                iVar25 = 0;\n              }\n              else {\n                iVar25 = 0x17e;\n              }\n              plVar33 = ldemul_place_orphan(pbVar39,(char *)pbVar7,iVar25);\n              if (plVar33 == (lang_output_section_statement_type *)0x0) {\n                plVar33 = lang_output_section_statement_lookup((char *)pbVar7,iVar25,1);\n                if ((plVar33->addr_tree == (etree_union *)0x0) &&\n                   (((link_info._0_1_ & 3) == 2 || ((pbVar39->flags & 3) == 0)))) {\n                  peVar44 = exp_intop(0);\n                  plVar33->addr_tree = peVar44;\n                }\n                lang_add_section(&plVar33->children,pbVar39,(flag_info *)0x0,plVar33);\n              }\n              if (config.orphan_handling == orphan_handling_warn) {\n                pbVar69 = pbVar39->owner;\n                pcVar27 = (char *)dcgettext(0,\n                                            "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                            ,5);\n                einfo(pcVar27,pbVar39,pbVar69);\n              }\n            }" else (compound_statement "{\n              if (config.orphan_handling == orphan_handling_discard) {\n                plVar33 = lang_output_section_statement_lookup("/DISCARD/",0,1);\n                if ((plVar33->addr_tree == (etree_union *)0x0) &&\n                   (((link_info._0_1_ & 3) == 2 || ((pbVar39->flags & 3) == 0)))) {\n                  peVar44 = exp_intop(0);\n                  plVar33->addr_tree = peVar44;\n                }\n                goto LAB_0011c659;\n              }\n              if (config.orphan_handling == orphan_handling_error) {\n                pbVar69 = pbVar39->owner;\n                pcVar27 = (char *)dcgettext(0,\n                                            "%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n"\n                                            ,5);\n                einfo(pcVar27,pbVar39,pbVar69);\n              }\n              if ((config.unique_orphan_sections == 0) &&\n                 (bVar26 = unique_section_p(pbVar39,(lang_output_section_statement_type *)0x0),\n                 bVar26 == 0)) {\n                iVar25 = 0;\n              }\n              else {\n                iVar25 = 0x17e;\n              }\n              plVar33 = ldemul_place_orphan(pbVar39,(char *)pbVar7,iVar25);\n              if (plVar33 == (lang_output_section_statement_type *)0x0) {\n                plVar33 = lang_output_section_statement_lookup((char *)pbVar7,iVar25,1);\n                if ((plVar33->addr_tree == (etree_union *)0x0) &&\n                   (((link_info._0_1_ & 3) == 2 || ((pbVar39->flags & 3) == 0)))) {\n                  peVar44 = exp_intop(0);\n                  plVar33->addr_tree = peVar44;\n                }\n                lang_add_section(&plVar33->children,pbVar39,(flag_info *)0x0,plVar33);\n              }\n              if (config.orphan_handling == orphan_handling_warn) {\n                pbVar69 = pbVar39->owner;\n                pcVar27 = (char *)dcgettext(0,\n                                            "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                            ,5);\n                einfo(pcVar27,pbVar39,pbVar69);\n              }\n            }" { (if_statement "if (config.orphan_handling == orphan_handling_discard) {\n                plVar33 = lang_output_section_statement_lookup("/DISCARD/",0,1);\n                if ((plVar33->addr_tree == (etree_union *)0x0) &&\n                   (((link_info._0_1_ & 3) == 2 || ((pbVar39->flags & 3) == 0)))) {\n                  peVar44 = exp_intop(0);\n                  plVar33->addr_tree = peVar44;\n                }\n                goto LAB_0011c659;\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                plVar33 = lang_output_section_statement_lookup("/DISCARD/",0,1);\n                if ((plVar33->addr_tree == (etree_union *)0x0) &&\n                   (((link_info._0_1_ & 3) == 2 || ((pbVar39->flags & 3) == 0)))) {\n                  peVar44 = exp_intop(0);\n                  plVar33->addr_tree = peVar44;\n                }\n                goto LAB_0011c659;\n              }" { (expression_statement "plVar33 = lang_output_section_statement_lookup("/DISCARD/",0,1);" (assignment_expression "plVar33 = 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 ((plVar33->addr_tree == (etree_union *)0x0) &&\n                   (((link_info._0_1_ & 3) == 2 || ((pbVar39->flags & 3) == 0)))) {\n                  peVar44 = exp_intop(0);\n                  plVar33->addr_tree = peVar44;\n                }" if (parenthesized_expression "((plVar33->addr_tree == (etree_union *)0x0) &&\n                   (((link_info._0_1_ & 3) == 2 || ((pbVar39->flags & 3) == 0))))" ( (binary_expression "(plVar33->addr_tree == (etree_union *)0x0) &&\n                   (((link_info._0_1_ & 3) == 2 || ((pbVar39->flags & 3) == 0)))" (parenthesized_expression "(plVar33->addr_tree == (etree_union *)0x0)" ( (binary_expression "plVar33->addr_tree == (etree_union *)0x0" (field_expression "plVar33->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 || ((pbVar39->flags & 3) == 0)))" ( (parenthesized_expression "((link_info._0_1_ & 3) == 2 || ((pbVar39->flags & 3) == 0))" ( (binary_expression "(link_info._0_1_ & 3) == 2 || ((pbVar39->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 "((pbVar39->flags & 3) == 0)" ( (binary_expression "(pbVar39->flags & 3) == 0" (parenthesized_expression "(pbVar39->flags & 3)" ( (binary_expression "pbVar39->flags & 3" (field_expression "pbVar39->flags" identifier -> field_identifier) & number_literal) )) == number_literal) ))) )) ))) )) (compound_statement "{\n                  peVar44 = exp_intop(0);\n                  plVar33->addr_tree = peVar44;\n                }" { (expression_statement "peVar44 = exp_intop(0);" (assignment_expression "peVar44 = exp_intop(0)" identifier = (call_expression "exp_intop(0)" identifier (argument_list "(0)" ( number_literal )))) ;) (expression_statement "plVar33->addr_tree = peVar44;" (assignment_expression "plVar33->addr_tree = peVar44" (field_expression "plVar33->addr_tree" identifier -> field_identifier) = identifier) ;) })) (goto_statement "goto LAB_0011c659;" goto statement_identifier ;) })) (if_statement "if (config.orphan_handling == orphan_handling_error) {\n                pbVar69 = pbVar39->owner;\n                pcVar27 = (char *)dcgettext(0,\n                                            "%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n"\n                                            ,5);\n                einfo(pcVar27,pbVar39,pbVar69);\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                pbVar69 = pbVar39->owner;\n                pcVar27 = (char *)dcgettext(0,\n                                            "%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n"\n                                            ,5);\n                einfo(pcVar27,pbVar39,pbVar69);\n              }" { (expression_statement "pbVar69 = pbVar39->owner;" (assignment_expression "pbVar69 = pbVar39->owner" identifier = (field_expression "pbVar39->owner" identifier -> field_identifier)) ;) (expression_statement "pcVar27 = (char *)dcgettext(0,\n                                            "%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n"\n                                            ,5);" (assignment_expression "pcVar27 = (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(pcVar27,pbVar39,pbVar69);" (call_expression "einfo(pcVar27,pbVar39,pbVar69)" identifier (argument_list "(pcVar27,pbVar39,pbVar69)" ( identifier , identifier , identifier ))) ;) })) (if_statement "if ((config.unique_orphan_sections == 0) &&\n                 (bVar26 = unique_section_p(pbVar39,(lang_output_section_statement_type *)0x0),\n                 bVar26 == 0)) {\n                iVar25 = 0;\n              }\n              else {\n                iVar25 = 0x17e;\n              }" if (parenthesized_expression "((config.unique_orphan_sections == 0) &&\n                 (bVar26 = unique_section_p(pbVar39,(lang_output_section_statement_type *)0x0),\n                 bVar26 == 0))" ( (binary_expression "(config.unique_orphan_sections == 0) &&\n                 (bVar26 = unique_section_p(pbVar39,(lang_output_section_statement_type *)0x0),\n                 bVar26 == 0)" (parenthesized_expression "(config.unique_orphan_sections == 0)" ( (binary_expression "config.unique_orphan_sections == 0" (field_expression "config.unique_orphan_sections" identifier . field_identifier) == number_literal) )) && (parenthesized_expression "(bVar26 = unique_section_p(pbVar39,(lang_output_section_statement_type *)0x0),\n                 bVar26 == 0)" ( (comma_expression "bVar26 = unique_section_p(pbVar39,(lang_output_section_statement_type *)0x0),\n                 bVar26 == 0" (assignment_expression "bVar26 = unique_section_p(pbVar39,(lang_output_section_statement_type *)0x0)" identifier = (call_expression "unique_section_p(pbVar39,(lang_output_section_statement_type *)0x0)" identifier (argument_list "(pbVar39,(lang_output_section_statement_type *)0x0)" ( identifier , (cast_expression "(lang_output_section_statement_type *)0x0" ( (type_descriptor "lang_output_section_statement_type *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) )))) , (binary_expression "bVar26 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n                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 "plVar33 = ldemul_place_orphan(pbVar39,(char *)pbVar7,iVar25);" (assignment_expression "plVar33 = ldemul_place_orphan(pbVar39,(char *)pbVar7,iVar25)" identifier = (call_expression "ldemul_place_orphan(pbVar39,(char *)pbVar7,iVar25)" identifier (argument_list "(pbVar39,(char *)pbVar7,iVar25)" ( identifier , (cast_expression "(char *)pbVar7" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , identifier )))) ;) (if_statement "if (plVar33 == (lang_output_section_statement_type *)0x0) {\n                plVar33 = lang_output_section_statement_lookup((char *)pbVar7,iVar25,1);\n                if ((plVar33->addr_tree == (etree_union *)0x0) &&\n                   (((link_info._0_1_ & 3) == 2 || ((pbVar39->flags & 3) == 0)))) {\n                  peVar44 = exp_intop(0);\n                  plVar33->addr_tree = peVar44;\n                }\n                lang_add_section(&plVar33->children,pbVar39,(flag_info *)0x0,plVar33);\n              }" if (parenthesized_expression "(plVar33 == (lang_output_section_statement_type *)0x0)" ( (binary_expression "plVar33 == (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                plVar33 = lang_output_section_statement_lookup((char *)pbVar7,iVar25,1);\n                if ((plVar33->addr_tree == (etree_union *)0x0) &&\n                   (((link_info._0_1_ & 3) == 2 || ((pbVar39->flags & 3) == 0)))) {\n                  peVar44 = exp_intop(0);\n                  plVar33->addr_tree = peVar44;\n                }\n                lang_add_section(&plVar33->children,pbVar39,(flag_info *)0x0,plVar33);\n              }" { (expression_statement "plVar33 = lang_output_section_statement_lookup((char *)pbVar7,iVar25,1);" (assignment_expression "plVar33 = lang_output_section_statement_lookup((char *)pbVar7,iVar25,1)" identifier = (call_expression "lang_output_section_statement_lookup((char *)pbVar7,iVar25,1)" identifier (argument_list "((char *)pbVar7,iVar25,1)" ( (cast_expression "(char *)pbVar7" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , identifier , number_literal )))) ;) (if_statement "if ((plVar33->addr_tree == (etree_union *)0x0) &&\n                   (((link_info._0_1_ & 3) == 2 || ((pbVar39->flags & 3) == 0)))) {\n                  peVar44 = exp_intop(0);\n                  plVar33->addr_tree = peVar44;\n                }" if (parenthesized_expression "((plVar33->addr_tree == (etree_union *)0x0) &&\n                   (((link_info._0_1_ & 3) == 2 || ((pbVar39->flags & 3) == 0))))" ( (binary_expression "(plVar33->addr_tree == (etree_union *)0x0) &&\n                   (((link_info._0_1_ & 3) == 2 || ((pbVar39->flags & 3) == 0)))" (parenthesized_expression "(plVar33->addr_tree == (etree_union *)0x0)" ( (binary_expression "plVar33->addr_tree == (etree_union *)0x0" (field_expression "plVar33->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 || ((pbVar39->flags & 3) == 0)))" ( (parenthesized_expression "((link_info._0_1_ & 3) == 2 || ((pbVar39->flags & 3) == 0))" ( (binary_expression "(link_info._0_1_ & 3) == 2 || ((pbVar39->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 "((pbVar39->flags & 3) == 0)" ( (binary_expression "(pbVar39->flags & 3) == 0" (parenthesized_expression "(pbVar39->flags & 3)" ( (binary_expression "pbVar39->flags & 3" (field_expression "pbVar39->flags" identifier -> field_identifier) & number_literal) )) == number_literal) ))) )) ))) )) (compound_statement "{\n                  peVar44 = exp_intop(0);\n                  plVar33->addr_tree = peVar44;\n                }" { (expression_statement "peVar44 = exp_intop(0);" (assignment_expression "peVar44 = exp_intop(0)" identifier = (call_expression "exp_intop(0)" identifier (argument_list "(0)" ( number_literal )))) ;) (expression_statement "plVar33->addr_tree = peVar44;" (assignment_expression "plVar33->addr_tree = peVar44" (field_expression "plVar33->addr_tree" identifier -> field_identifier) = identifier) ;) })) (expression_statement "lang_add_section(&plVar33->children,pbVar39,(flag_info *)0x0,plVar33);" (call_expression "lang_add_section(&plVar33->children,pbVar39,(flag_info *)0x0,plVar33)" identifier (argument_list "(&plVar33->children,pbVar39,(flag_info *)0x0,plVar33)" ( (pointer_expression "&plVar33->children" & (field_expression "plVar33->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                pbVar69 = pbVar39->owner;\n                pcVar27 = (char *)dcgettext(0,\n                                            "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                            ,5);\n                einfo(pcVar27,pbVar39,pbVar69);\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                pbVar69 = pbVar39->owner;\n                pcVar27 = (char *)dcgettext(0,\n                                            "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                            ,5);\n                einfo(pcVar27,pbVar39,pbVar69);\n              }" { (expression_statement "pbVar69 = pbVar39->owner;" (assignment_expression "pbVar69 = pbVar39->owner" identifier = (field_expression "pbVar39->owner" identifier -> field_identifier)) ;) (expression_statement "pcVar27 = (char *)dcgettext(0,\n                                            "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                            ,5);" (assignment_expression "pcVar27 = (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(pcVar27,pbVar39,pbVar69);" (call_expression "einfo(pcVar27,pbVar39,pbVar69)" identifier (argument_list "(pcVar27,pbVar39,pbVar69)" ( identifier , identifier , identifier ))) ;) })) }))) }) (else_clause "else {\n            pbVar39->output_section = (bfd_section *)(_bfd_std_section + 0x230);\n          }" else (compound_statement "{\n            pbVar39->output_section = (bfd_section *)(_bfd_std_section + 0x230);\n          }" { (expression_statement "pbVar39->output_section = (bfd_section *)(_bfd_std_section + 0x230);" (assignment_expression "pbVar39->output_section = (bfd_section *)(_bfd_std_section + 0x230)" (field_expression "pbVar39->output_section" identifier -> field_identifier) = (cast_expression "(bfd_section *)(_bfd_std_section + 0x230)" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(_bfd_std_section + 0x230)" ( (binary_expression "_bfd_std_section + 0x230" identifier + number_literal) )))) ;) }))) })) (expression_statement "pbVar39 = pbVar39->next;" (assignment_expression "pbVar39 = pbVar39->next" identifier = (field_expression "pbVar39->next" identifier -> field_identifier)) ;) (if_statement "if (pbVar39 == (bfd_section *)0x0) break;" if (parenthesized_expression "(pbVar39 == (bfd_section *)0x0)" ( (binary_expression "pbVar39 == (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 "bVar68 = link_info._0_1_ & 3;" (assignment_expression "bVar68 = 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 "ppbVar55 = start_stop_syms;" (assignment_expression "ppbVar55 = start_stop_syms" identifier = identifier) ;) (expression_statement "plVar51 = lang_output_section_statement.head;" (assignment_expression "plVar51 = lang_output_section_statement.head" identifier = (field_expression "lang_output_section_statement.head" identifier . field_identifier)) ;) (expression_statement "pbVar69 = link_info.output_bfd;" (assignment_expression "pbVar69 = link_info.output_bfd" identifier = (field_expression "link_info.output_bfd" identifier . field_identifier)) ;) (if_statement "if (bVar68 != 2) {\n    (*(link_info.output_bfd)->xvec->_bfd_merge_sections)(link_info.output_bfd,&link_info);\n    lVar29 = bfd_get_section_by_name(link_info.output_bfd);\n    if (lVar29 == 0) {\n      bVar68 = link_info._0_1_ & 3;\n      ppbVar55 = start_stop_syms;\n      plVar51 = lang_output_section_statement.head;\n      pbVar69 = link_info.output_bfd;\n    }\n    else {\n      bVar68 = link_info._0_1_ & 3;\n      if (config.text_read_only == 0) {\n        *(uint *)(lVar29 + 0x20) = *(uint *)(lVar29 + 0x20) & 0xfffffff7;\n        ppbVar55 = start_stop_syms;\n        plVar51 = lang_output_section_statement.head;\n        pbVar69 = link_info.output_bfd;\n      }\n      else {\n        *(uint *)(lVar29 + 0x20) = *(uint *)(lVar29 + 0x20) | 8;\n        ppbVar55 = start_stop_syms;\n        plVar51 = lang_output_section_statement.head;\n        pbVar69 = link_info.output_bfd;\n      }\n    }\n  }" if (parenthesized_expression "(bVar68 != 2)" ( (binary_expression "bVar68 != 2" identifier != number_literal) )) (compound_statement "{\n    (*(link_info.output_bfd)->xvec->_bfd_merge_sections)(link_info.output_bfd,&link_info);\n    lVar29 = bfd_get_section_by_name(link_info.output_bfd);\n    if (lVar29 == 0) {\n      bVar68 = link_info._0_1_ & 3;\n      ppbVar55 = start_stop_syms;\n      plVar51 = lang_output_section_statement.head;\n      pbVar69 = link_info.output_bfd;\n    }\n    else {\n      bVar68 = link_info._0_1_ & 3;\n      if (config.text_read_only == 0) {\n        *(uint *)(lVar29 + 0x20) = *(uint *)(lVar29 + 0x20) & 0xfffffff7;\n        ppbVar55 = start_stop_syms;\n        plVar51 = lang_output_section_statement.head;\n        pbVar69 = link_info.output_bfd;\n      }\n      else {\n        *(uint *)(lVar29 + 0x20) = *(uint *)(lVar29 + 0x20) | 8;\n        ppbVar55 = start_stop_syms;\n        plVar51 = lang_output_section_statement.head;\n        pbVar69 = 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 "lVar29 = bfd_get_section_by_name(link_info.output_bfd);" (assignment_expression "lVar29 = bfd_get_section_by_name(link_info.output_bfd)" identifier = (call_expression "bfd_get_section_by_name(link_info.output_bfd)" identifier (argument_list "(link_info.output_bfd)" ( (field_expression "link_info.output_bfd" identifier . field_identifier) )))) ;) (if_statement "if (lVar29 == 0) {\n      bVar68 = link_info._0_1_ & 3;\n      ppbVar55 = start_stop_syms;\n      plVar51 = lang_output_section_statement.head;\n      pbVar69 = link_info.output_bfd;\n    }\n    else {\n      bVar68 = link_info._0_1_ & 3;\n      if (config.text_read_only == 0) {\n        *(uint *)(lVar29 + 0x20) = *(uint *)(lVar29 + 0x20) & 0xfffffff7;\n        ppbVar55 = start_stop_syms;\n        plVar51 = lang_output_section_statement.head;\n        pbVar69 = link_info.output_bfd;\n      }\n      else {\n        *(uint *)(lVar29 + 0x20) = *(uint *)(lVar29 + 0x20) | 8;\n        ppbVar55 = start_stop_syms;\n        plVar51 = lang_output_section_statement.head;\n        pbVar69 = link_info.output_bfd;\n      }\n    }" if (parenthesized_expression "(lVar29 == 0)" ( (binary_expression "lVar29 == 0" identifier == number_literal) )) (compound_statement "{\n      bVar68 = link_info._0_1_ & 3;\n      ppbVar55 = start_stop_syms;\n      plVar51 = lang_output_section_statement.head;\n      pbVar69 = link_info.output_bfd;\n    }" { (expression_statement "bVar68 = link_info._0_1_ & 3;" (assignment_expression "bVar68 = 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 "ppbVar55 = start_stop_syms;" (assignment_expression "ppbVar55 = start_stop_syms" identifier = identifier) ;) (expression_statement "plVar51 = lang_output_section_statement.head;" (assignment_expression "plVar51 = lang_output_section_statement.head" identifier = (field_expression "lang_output_section_statement.head" identifier . field_identifier)) ;) (expression_statement "pbVar69 = link_info.output_bfd;" (assignment_expression "pbVar69 = link_info.output_bfd" identifier = (field_expression "link_info.output_bfd" identifier . field_identifier)) ;) }) (else_clause "else {\n      bVar68 = link_info._0_1_ & 3;\n      if (config.text_read_only == 0) {\n        *(uint *)(lVar29 + 0x20) = *(uint *)(lVar29 + 0x20) & 0xfffffff7;\n        ppbVar55 = start_stop_syms;\n        plVar51 = lang_output_section_statement.head;\n        pbVar69 = link_info.output_bfd;\n      }\n      else {\n        *(uint *)(lVar29 + 0x20) = *(uint *)(lVar29 + 0x20) | 8;\n        ppbVar55 = start_stop_syms;\n        plVar51 = lang_output_section_statement.head;\n        pbVar69 = link_info.output_bfd;\n      }\n    }" else (compound_statement "{\n      bVar68 = link_info._0_1_ & 3;\n      if (config.text_read_only == 0) {\n        *(uint *)(lVar29 + 0x20) = *(uint *)(lVar29 + 0x20) & 0xfffffff7;\n        ppbVar55 = start_stop_syms;\n        plVar51 = lang_output_section_statement.head;\n        pbVar69 = link_info.output_bfd;\n      }\n      else {\n        *(uint *)(lVar29 + 0x20) = *(uint *)(lVar29 + 0x20) | 8;\n        ppbVar55 = start_stop_syms;\n        plVar51 = lang_output_section_statement.head;\n        pbVar69 = link_info.output_bfd;\n      }\n    }" { (expression_statement "bVar68 = link_info._0_1_ & 3;" (assignment_expression "bVar68 = 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 *)(lVar29 + 0x20) = *(uint *)(lVar29 + 0x20) & 0xfffffff7;\n        ppbVar55 = start_stop_syms;\n        plVar51 = lang_output_section_statement.head;\n        pbVar69 = link_info.output_bfd;\n      }\n      else {\n        *(uint *)(lVar29 + 0x20) = *(uint *)(lVar29 + 0x20) | 8;\n        ppbVar55 = start_stop_syms;\n        plVar51 = lang_output_section_statement.head;\n        pbVar69 = 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 *)(lVar29 + 0x20) = *(uint *)(lVar29 + 0x20) & 0xfffffff7;\n        ppbVar55 = start_stop_syms;\n        plVar51 = lang_output_section_statement.head;\n        pbVar69 = link_info.output_bfd;\n      }" { (expression_statement "*(uint *)(lVar29 + 0x20) = *(uint *)(lVar29 + 0x20) & 0xfffffff7;" (assignment_expression "*(uint *)(lVar29 + 0x20) = *(uint *)(lVar29 + 0x20) & 0xfffffff7" (pointer_expression "*(uint *)(lVar29 + 0x20)" * (cast_expression "(uint *)(lVar29 + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar29 + 0x20)" ( (binary_expression "lVar29 + 0x20" identifier + number_literal) )))) = (binary_expression "*(uint *)(lVar29 + 0x20) & 0xfffffff7" (pointer_expression "*(uint *)(lVar29 + 0x20)" * (cast_expression "(uint *)(lVar29 + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar29 + 0x20)" ( (binary_expression "lVar29 + 0x20" identifier + number_literal) )))) & number_literal)) ;) (expression_statement "ppbVar55 = start_stop_syms;" (assignment_expression "ppbVar55 = start_stop_syms" identifier = identifier) ;) (expression_statement "plVar51 = lang_output_section_statement.head;" (assignment_expression "plVar51 = lang_output_section_statement.head" identifier = (field_expression "lang_output_section_statement.head" identifier . field_identifier)) ;) (expression_statement "pbVar69 = link_info.output_bfd;" (assignment_expression "pbVar69 = link_info.output_bfd" identifier = (field_expression "link_info.output_bfd" identifier . field_identifier)) ;) }) (else_clause "else {\n        *(uint *)(lVar29 + 0x20) = *(uint *)(lVar29 + 0x20) | 8;\n        ppbVar55 = start_stop_syms;\n        plVar51 = lang_output_section_statement.head;\n        pbVar69 = link_info.output_bfd;\n      }" else (compound_statement "{\n        *(uint *)(lVar29 + 0x20) = *(uint *)(lVar29 + 0x20) | 8;\n        ppbVar55 = start_stop_syms;\n        plVar51 = lang_output_section_statement.head;\n        pbVar69 = link_info.output_bfd;\n      }" { (expression_statement "*(uint *)(lVar29 + 0x20) = *(uint *)(lVar29 + 0x20) | 8;" (assignment_expression "*(uint *)(lVar29 + 0x20) = *(uint *)(lVar29 + 0x20) | 8" (pointer_expression "*(uint *)(lVar29 + 0x20)" * (cast_expression "(uint *)(lVar29 + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar29 + 0x20)" ( (binary_expression "lVar29 + 0x20" identifier + number_literal) )))) = (binary_expression "*(uint *)(lVar29 + 0x20) | 8" (pointer_expression "*(uint *)(lVar29 + 0x20)" * (cast_expression "(uint *)(lVar29 + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar29 + 0x20)" ( (binary_expression "lVar29 + 0x20" identifier + number_literal) )))) | number_literal)) ;) (expression_statement "ppbVar55 = start_stop_syms;" (assignment_expression "ppbVar55 = start_stop_syms" identifier = identifier) ;) (expression_statement "plVar51 = lang_output_section_statement.head;" (assignment_expression "plVar51 = lang_output_section_statement.head" identifier = (field_expression "lang_output_section_statement.head" identifier . field_identifier)) ;) (expression_statement "pbVar69 = link_info.output_bfd;" (assignment_expression "pbVar69 = link_info.output_bfd" identifier = (field_expression "link_info.output_bfd" identifier . field_identifier)) ;) }))) }))) })) (for_statement "for (; start_stop_syms = ppbVar55, link_info.output_bfd = pbVar69,\n      plVar51 != (lang_statement_union *)0x0;\n      plVar51 = (lang_statement_union *)(plVar51->wild_statement).section_list) {\n    paVar59 = (plVar51->data_statement).output_section;\n    if ((((paVar59 != (asection *)0x0) &&\n         ((plVar51->wild_statement).walk_wild_section_handler == (walk_wild_section_handler_t)0x0))\n        && ((plVar51->wild_statement).handler_data[2] == (wildcard_list *)0x0)) &&\n       (((plVar51->wild_statement).handler_data[1] == (wildcard_list *)0x0 &&\n        ((plVar51->wild_statement).exclude_name_list == (name_list *)paVar59->rawsize)))) {\n      (plVar51->wild_statement).walk_wild_section_handler =\n           (walk_wild_section_handler_t)paVar59->compressed_size;\n    }\n    ppbVar55 = start_stop_syms;\n    pbVar69 = link_info.output_bfd;\n  }" for ( ; (comma_expression "start_stop_syms = ppbVar55, link_info.output_bfd = pbVar69,\n      plVar51 != (lang_statement_union *)0x0" (assignment_expression "start_stop_syms = ppbVar55" identifier = identifier) , (comma_expression "link_info.output_bfd = pbVar69,\n      plVar51 != (lang_statement_union *)0x0" (assignment_expression "link_info.output_bfd = pbVar69" (field_expression "link_info.output_bfd" identifier . field_identifier) = identifier) , (binary_expression "plVar51 != (lang_statement_union *)0x0" identifier != (cast_expression "(lang_statement_union *)0x0" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)))) ; (assignment_expression "plVar51 = (lang_statement_union *)(plVar51->wild_statement).section_list" identifier = (cast_expression "(lang_statement_union *)(plVar51->wild_statement).section_list" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(plVar51->wild_statement).section_list" (parenthesized_expression "(plVar51->wild_statement)" ( (field_expression "plVar51->wild_statement" identifier -> field_identifier) )) . field_identifier))) ) (compound_statement "{\n    paVar59 = (plVar51->data_statement).output_section;\n    if ((((paVar59 != (asection *)0x0) &&\n         ((plVar51->wild_statement).walk_wild_section_handler == (walk_wild_section_handler_t)0x0))\n        && ((plVar51->wild_statement).handler_data[2] == (wildcard_list *)0x0)) &&\n       (((plVar51->wild_statement).handler_data[1] == (wildcard_list *)0x0 &&\n        ((plVar51->wild_statement).exclude_name_list == (name_list *)paVar59->rawsize)))) {\n      (plVar51->wild_statement).walk_wild_section_handler =\n           (walk_wild_section_handler_t)paVar59->compressed_size;\n    }\n    ppbVar55 = start_stop_syms;\n    pbVar69 = link_info.output_bfd;\n  }" { (expression_statement "paVar59 = (plVar51->data_statement).output_section;" (assignment_expression "paVar59 = (plVar51->data_statement).output_section" identifier = (field_expression "(plVar51->data_statement).output_section" (parenthesized_expression "(plVar51->data_statement)" ( (field_expression "plVar51->data_statement" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if ((((paVar59 != (asection *)0x0) &&\n         ((plVar51->wild_statement).walk_wild_section_handler == (walk_wild_section_handler_t)0x0))\n        && ((plVar51->wild_statement).handler_data[2] == (wildcard_list *)0x0)) &&\n       (((plVar51->wild_statement).handler_data[1] == (wildcard_list *)0x0 &&\n        ((plVar51->wild_statement).exclude_name_list == (name_list *)paVar59->rawsize)))) {\n      (plVar51->wild_statement).walk_wild_section_handler =\n           (walk_wild_section_handler_t)paVar59->compressed_size;\n    }" if (parenthesized_expression "((((paVar59 != (asection *)0x0) &&\n         ((plVar51->wild_statement).walk_wild_section_handler == (walk_wild_section_handler_t)0x0))\n        && ((plVar51->wild_statement).handler_data[2] == (wildcard_list *)0x0)) &&\n       (((plVar51->wild_statement).handler_data[1] == (wildcard_list *)0x0 &&\n        ((plVar51->wild_statement).exclude_name_list == (name_list *)paVar59->rawsize))))" ( (binary_expression "(((paVar59 != (asection *)0x0) &&\n         ((plVar51->wild_statement).walk_wild_section_handler == (walk_wild_section_handler_t)0x0))\n        && ((plVar51->wild_statement).handler_data[2] == (wildcard_list *)0x0)) &&\n       (((plVar51->wild_statement).handler_data[1] == (wildcard_list *)0x0 &&\n        ((plVar51->wild_statement).exclude_name_list == (name_list *)paVar59->rawsize)))" (parenthesized_expression "(((paVar59 != (asection *)0x0) &&\n         ((plVar51->wild_statement).walk_wild_section_handler == (walk_wild_section_handler_t)0x0))\n        && ((plVar51->wild_statement).handler_data[2] == (wildcard_list *)0x0))" ( (binary_expression "((paVar59 != (asection *)0x0) &&\n         ((plVar51->wild_statement).walk_wild_section_handler == (walk_wild_section_handler_t)0x0))\n        && ((plVar51->wild_statement).handler_data[2] == (wildcard_list *)0x0)" (parenthesized_expression "((paVar59 != (asection *)0x0) &&\n         ((plVar51->wild_statement).walk_wild_section_handler == (walk_wild_section_handler_t)0x0))" ( (binary_expression "(paVar59 != (asection *)0x0) &&\n         ((plVar51->wild_statement).walk_wild_section_handler == (walk_wild_section_handler_t)0x0)" (parenthesized_expression "(paVar59 != (asection *)0x0)" ( (binary_expression "paVar59 != (asection *)0x0" identifier != (cast_expression "(asection *)0x0" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "((plVar51->wild_statement).walk_wild_section_handler == (walk_wild_section_handler_t)0x0)" ( (binary_expression "(plVar51->wild_statement).walk_wild_section_handler == (walk_wild_section_handler_t)0x0" (field_expression "(plVar51->wild_statement).walk_wild_section_handler" (parenthesized_expression "(plVar51->wild_statement)" ( (field_expression "plVar51->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 "((plVar51->wild_statement).handler_data[2] == (wildcard_list *)0x0)" ( (binary_expression "(plVar51->wild_statement).handler_data[2] == (wildcard_list *)0x0" (subscript_expression "(plVar51->wild_statement).handler_data[2]" (field_expression "(plVar51->wild_statement).handler_data" (parenthesized_expression "(plVar51->wild_statement)" ( (field_expression "plVar51->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 "(((plVar51->wild_statement).handler_data[1] == (wildcard_list *)0x0 &&\n        ((plVar51->wild_statement).exclude_name_list == (name_list *)paVar59->rawsize)))" ( (parenthesized_expression "((plVar51->wild_statement).handler_data[1] == (wildcard_list *)0x0 &&\n        ((plVar51->wild_statement).exclude_name_list == (name_list *)paVar59->rawsize))" ( (binary_expression "(plVar51->wild_statement).handler_data[1] == (wildcard_list *)0x0 &&\n        ((plVar51->wild_statement).exclude_name_list == (name_list *)paVar59->rawsize)" (binary_expression "(plVar51->wild_statement).handler_data[1] == (wildcard_list *)0x0" (subscript_expression "(plVar51->wild_statement).handler_data[1]" (field_expression "(plVar51->wild_statement).handler_data" (parenthesized_expression "(plVar51->wild_statement)" ( (field_expression "plVar51->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 "((plVar51->wild_statement).exclude_name_list == (name_list *)paVar59->rawsize)" ( (binary_expression "(plVar51->wild_statement).exclude_name_list == (name_list *)paVar59->rawsize" (field_expression "(plVar51->wild_statement).exclude_name_list" (parenthesized_expression "(plVar51->wild_statement)" ( (field_expression "plVar51->wild_statement" identifier -> field_identifier) )) . field_identifier) == (cast_expression "(name_list *)paVar59->rawsize" ( (type_descriptor "name_list *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "paVar59->rawsize" identifier -> field_identifier))) ))) )) ))) )) (compound_statement "{\n      (plVar51->wild_statement).walk_wild_section_handler =\n           (walk_wild_section_handler_t)paVar59->compressed_size;\n    }" { (expression_statement "(plVar51->wild_statement).walk_wild_section_handler =\n           (walk_wild_section_handler_t)paVar59->compressed_size;" (assignment_expression "(plVar51->wild_statement).walk_wild_section_handler =\n           (walk_wild_section_handler_t)paVar59->compressed_size" (field_expression "(plVar51->wild_statement).walk_wild_section_handler" (parenthesized_expression "(plVar51->wild_statement)" ( (field_expression "plVar51->wild_statement" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(walk_wild_section_handler_t)paVar59->compressed_size" ( (type_descriptor "walk_wild_section_handler_t" type_identifier) ) (field_expression "paVar59->compressed_size" identifier -> field_identifier))) ;) })) (expression_statement "ppbVar55 = start_stop_syms;" (assignment_expression "ppbVar55 = start_stop_syms" identifier = identifier) ;) (expression_statement "pbVar69 = link_info.output_bfd;" (assignment_expression "pbVar69 = 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    ppbVar35 = ppbVar55 + start_stop_count;\n    do {\n      pbVar8 = *ppbVar55;\n      if ((pbVar8->field_0x19 & 8) == 0) {\n        pbVar65 = (pbVar8->u).undef.abfd;\n        ppbVar12 = (pbVar65->section_htab).table;\n        if (((ppbVar12 == (bfd_hash_entry **)0x0) || ((bfd *)ppbVar12[0x1e] != pbVar69)) ||\n           (iVar25 = strcmp(pbVar65->filename,(char *)*ppbVar12), iVar25 != 0)) {\n          pbVar8->field_0x18 = 1;\n          (pbVar8->u).undef.abfd = (bfd *)0x0;\n        }\n      }\n      ppbVar55 = ppbVar55 + 1;\n    } while (ppbVar35 != ppbVar55);\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    ppbVar35 = ppbVar55 + start_stop_count;\n    do {\n      pbVar8 = *ppbVar55;\n      if ((pbVar8->field_0x19 & 8) == 0) {\n        pbVar65 = (pbVar8->u).undef.abfd;\n        ppbVar12 = (pbVar65->section_htab).table;\n        if (((ppbVar12 == (bfd_hash_entry **)0x0) || ((bfd *)ppbVar12[0x1e] != pbVar69)) ||\n           (iVar25 = strcmp(pbVar65->filename,(char *)*ppbVar12), iVar25 != 0)) {\n          pbVar8->field_0x18 = 1;\n          (pbVar8->u).undef.abfd = (bfd *)0x0;\n        }\n      }\n      ppbVar55 = ppbVar55 + 1;\n    } while (ppbVar35 != ppbVar55);\n  }" { (expression_statement "ppbVar35 = ppbVar55 + start_stop_count;" (assignment_expression "ppbVar35 = ppbVar55 + start_stop_count" identifier = (binary_expression "ppbVar55 + start_stop_count" identifier + identifier)) ;) (do_statement "do {\n      pbVar8 = *ppbVar55;\n      if ((pbVar8->field_0x19 & 8) == 0) {\n        pbVar65 = (pbVar8->u).undef.abfd;\n        ppbVar12 = (pbVar65->section_htab).table;\n        if (((ppbVar12 == (bfd_hash_entry **)0x0) || ((bfd *)ppbVar12[0x1e] != pbVar69)) ||\n           (iVar25 = strcmp(pbVar65->filename,(char *)*ppbVar12), iVar25 != 0)) {\n          pbVar8->field_0x18 = 1;\n          (pbVar8->u).undef.abfd = (bfd *)0x0;\n        }\n      }\n      ppbVar55 = ppbVar55 + 1;\n    } while (ppbVar35 != ppbVar55);" do (compound_statement "{\n      pbVar8 = *ppbVar55;\n      if ((pbVar8->field_0x19 & 8) == 0) {\n        pbVar65 = (pbVar8->u).undef.abfd;\n        ppbVar12 = (pbVar65->section_htab).table;\n        if (((ppbVar12 == (bfd_hash_entry **)0x0) || ((bfd *)ppbVar12[0x1e] != pbVar69)) ||\n           (iVar25 = strcmp(pbVar65->filename,(char *)*ppbVar12), iVar25 != 0)) {\n          pbVar8->field_0x18 = 1;\n          (pbVar8->u).undef.abfd = (bfd *)0x0;\n        }\n      }\n      ppbVar55 = ppbVar55 + 1;\n    }" { (expression_statement "pbVar8 = *ppbVar55;" (assignment_expression "pbVar8 = *ppbVar55" identifier = (pointer_expression "*ppbVar55" * identifier)) ;) (if_statement "if ((pbVar8->field_0x19 & 8) == 0) {\n        pbVar65 = (pbVar8->u).undef.abfd;\n        ppbVar12 = (pbVar65->section_htab).table;\n        if (((ppbVar12 == (bfd_hash_entry **)0x0) || ((bfd *)ppbVar12[0x1e] != pbVar69)) ||\n           (iVar25 = strcmp(pbVar65->filename,(char *)*ppbVar12), iVar25 != 0)) {\n          pbVar8->field_0x18 = 1;\n          (pbVar8->u).undef.abfd = (bfd *)0x0;\n        }\n      }" if (parenthesized_expression "((pbVar8->field_0x19 & 8) == 0)" ( (binary_expression "(pbVar8->field_0x19 & 8) == 0" (parenthesized_expression "(pbVar8->field_0x19 & 8)" ( (binary_expression "pbVar8->field_0x19 & 8" (field_expression "pbVar8->field_0x19" identifier -> field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n        pbVar65 = (pbVar8->u).undef.abfd;\n        ppbVar12 = (pbVar65->section_htab).table;\n        if (((ppbVar12 == (bfd_hash_entry **)0x0) || ((bfd *)ppbVar12[0x1e] != pbVar69)) ||\n           (iVar25 = strcmp(pbVar65->filename,(char *)*ppbVar12), iVar25 != 0)) {\n          pbVar8->field_0x18 = 1;\n          (pbVar8->u).undef.abfd = (bfd *)0x0;\n        }\n      }" { (expression_statement "pbVar65 = (pbVar8->u).undef.abfd;" (assignment_expression "pbVar65 = (pbVar8->u).undef.abfd" identifier = (field_expression "(pbVar8->u).undef.abfd" (field_expression "(pbVar8->u).undef" (parenthesized_expression "(pbVar8->u)" ( (field_expression "pbVar8->u" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) (expression_statement "ppbVar12 = (pbVar65->section_htab).table;" (assignment_expression "ppbVar12 = (pbVar65->section_htab).table" identifier = (field_expression "(pbVar65->section_htab).table" (parenthesized_expression "(pbVar65->section_htab)" ( (field_expression "pbVar65->section_htab" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if (((ppbVar12 == (bfd_hash_entry **)0x0) || ((bfd *)ppbVar12[0x1e] != pbVar69)) ||\n           (iVar25 = strcmp(pbVar65->filename,(char *)*ppbVar12), iVar25 != 0)) {\n          pbVar8->field_0x18 = 1;\n          (pbVar8->u).undef.abfd = (bfd *)0x0;\n        }" if (parenthesized_expression "(((ppbVar12 == (bfd_hash_entry **)0x0) || ((bfd *)ppbVar12[0x1e] != pbVar69)) ||\n           (iVar25 = strcmp(pbVar65->filename,(char *)*ppbVar12), iVar25 != 0))" ( (binary_expression "((ppbVar12 == (bfd_hash_entry **)0x0) || ((bfd *)ppbVar12[0x1e] != pbVar69)) ||\n           (iVar25 = strcmp(pbVar65->filename,(char *)*ppbVar12), iVar25 != 0)" (parenthesized_expression "((ppbVar12 == (bfd_hash_entry **)0x0) || ((bfd *)ppbVar12[0x1e] != pbVar69))" ( (binary_expression "(ppbVar12 == (bfd_hash_entry **)0x0) || ((bfd *)ppbVar12[0x1e] != pbVar69)" (parenthesized_expression "(ppbVar12 == (bfd_hash_entry **)0x0)" ( (binary_expression "ppbVar12 == (bfd_hash_entry **)0x0" identifier == (cast_expression "(bfd_hash_entry **)0x0" ( (type_descriptor "bfd_hash_entry **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) || (parenthesized_expression "((bfd *)ppbVar12[0x1e] != pbVar69)" ( (binary_expression "(bfd *)ppbVar12[0x1e] != pbVar69" (cast_expression "(bfd *)ppbVar12[0x1e]" ( (type_descriptor "bfd *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppbVar12[0x1e]" identifier [ number_literal ])) != identifier) ))) )) || (parenthesized_expression "(iVar25 = strcmp(pbVar65->filename,(char *)*ppbVar12), iVar25 != 0)" ( (comma_expression "iVar25 = strcmp(pbVar65->filename,(char *)*ppbVar12), iVar25 != 0" (assignment_expression "iVar25 = strcmp(pbVar65->filename,(char *)*ppbVar12)" identifier = (call_expression "strcmp(pbVar65->filename,(char *)*ppbVar12)" identifier (argument_list "(pbVar65->filename,(char *)*ppbVar12)" ( (field_expression "pbVar65->filename" identifier -> field_identifier) , (cast_expression "(char *)*ppbVar12" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*ppbVar12" * identifier)) )))) , (binary_expression "iVar25 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n          pbVar8->field_0x18 = 1;\n          (pbVar8->u).undef.abfd = (bfd *)0x0;\n        }" { (expression_statement "pbVar8->field_0x18 = 1;" (assignment_expression "pbVar8->field_0x18 = 1" (field_expression "pbVar8->field_0x18" identifier -> field_identifier) = number_literal) ;) (expression_statement "(pbVar8->u).undef.abfd = (bfd *)0x0;" (assignment_expression "(pbVar8->u).undef.abfd = (bfd *)0x0" (field_expression "(pbVar8->u).undef.abfd" (field_expression "(pbVar8->u).undef" (parenthesized_expression "(pbVar8->u)" ( (field_expression "pbVar8->u" identifier -> field_identifier) )) . field_identifier) . field_identifier) = (cast_expression "(bfd *)0x0" ( (type_descriptor "bfd *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) })) (expression_statement "ppbVar55 = ppbVar55 + 1;" (assignment_expression "ppbVar55 = ppbVar55 + 1" identifier = (binary_expression "ppbVar55 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(ppbVar35 != ppbVar55)" ( (binary_expression "ppbVar35 != ppbVar55" identifier != identifier) )) ;) })) (if_statement "if (bVar68 != 2) {\n    for (paVar59 = (link_info.output_bfd)->sections; paVar59 != (asection *)0x0;\n        paVar59 = paVar59->next) {\n      pcVar27 = paVar59->name;\n      sVar28 = strlen(pcVar27);\n      pcVar36 = (char *)xmalloc(sVar28 + 10);\n      sprintf(pcVar36,".startof.%s",pcVar27);\n      lang_define_start_stop(pcVar36,paVar59);\n      builtin_strncpy(pcVar36 + 1,".size",5);\n      lang_define_start_stop(pcVar36 + 1,paVar59);\n      free(pcVar36);\n    }\n  }" if (parenthesized_expression "(bVar68 != 2)" ( (binary_expression "bVar68 != 2" identifier != number_literal) )) (compound_statement "{\n    for (paVar59 = (link_info.output_bfd)->sections; paVar59 != (asection *)0x0;\n        paVar59 = paVar59->next) {\n      pcVar27 = paVar59->name;\n      sVar28 = strlen(pcVar27);\n      pcVar36 = (char *)xmalloc(sVar28 + 10);\n      sprintf(pcVar36,".startof.%s",pcVar27);\n      lang_define_start_stop(pcVar36,paVar59);\n      builtin_strncpy(pcVar36 + 1,".size",5);\n      lang_define_start_stop(pcVar36 + 1,paVar59);\n      free(pcVar36);\n    }\n  }" { (for_statement "for (paVar59 = (link_info.output_bfd)->sections; paVar59 != (asection *)0x0;\n        paVar59 = paVar59->next) {\n      pcVar27 = paVar59->name;\n      sVar28 = strlen(pcVar27);\n      pcVar36 = (char *)xmalloc(sVar28 + 10);\n      sprintf(pcVar36,".startof.%s",pcVar27);\n      lang_define_start_stop(pcVar36,paVar59);\n      builtin_strncpy(pcVar36 + 1,".size",5);\n      lang_define_start_stop(pcVar36 + 1,paVar59);\n      free(pcVar36);\n    }" for ( (assignment_expression "paVar59 = (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 "paVar59 != (asection *)0x0" identifier != (cast_expression "(asection *)0x0" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "paVar59 = paVar59->next" identifier = (field_expression "paVar59->next" identifier -> field_identifier)) ) (compound_statement "{\n      pcVar27 = paVar59->name;\n      sVar28 = strlen(pcVar27);\n      pcVar36 = (char *)xmalloc(sVar28 + 10);\n      sprintf(pcVar36,".startof.%s",pcVar27);\n      lang_define_start_stop(pcVar36,paVar59);\n      builtin_strncpy(pcVar36 + 1,".size",5);\n      lang_define_start_stop(pcVar36 + 1,paVar59);\n      free(pcVar36);\n    }" { (expression_statement "pcVar27 = paVar59->name;" (assignment_expression "pcVar27 = paVar59->name" identifier = (field_expression "paVar59->name" identifier -> field_identifier)) ;) (expression_statement "sVar28 = strlen(pcVar27);" (assignment_expression "sVar28 = strlen(pcVar27)" identifier = (call_expression "strlen(pcVar27)" identifier (argument_list "(pcVar27)" ( identifier )))) ;) (expression_statement "pcVar36 = (char *)xmalloc(sVar28 + 10);" (assignment_expression "pcVar36 = (char *)xmalloc(sVar28 + 10)" identifier = (cast_expression "(char *)xmalloc(sVar28 + 10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(sVar28 + 10)" identifier (argument_list "(sVar28 + 10)" ( (binary_expression "sVar28 + 10" identifier + number_literal) ))))) ;) (expression_statement "sprintf(pcVar36,".startof.%s",pcVar27);" (call_expression "sprintf(pcVar36,".startof.%s",pcVar27)" identifier (argument_list "(pcVar36,".startof.%s",pcVar27)" ( identifier , (string_literal "".startof.%s"" " string_content ") , identifier ))) ;) (expression_statement "lang_define_start_stop(pcVar36,paVar59);" (call_expression "lang_define_start_stop(pcVar36,paVar59)" identifier (argument_list "(pcVar36,paVar59)" ( identifier , identifier ))) ;) (expression_statement "builtin_strncpy(pcVar36 + 1,".size",5);" (call_expression "builtin_strncpy(pcVar36 + 1,".size",5)" identifier (argument_list "(pcVar36 + 1,".size",5)" ( (binary_expression "pcVar36 + 1" identifier + number_literal) , (string_literal "".size"" " string_content ") , number_literal ))) ;) (expression_statement "lang_define_start_stop(pcVar36 + 1,paVar59);" (call_expression "lang_define_start_stop(pcVar36 + 1,paVar59)" identifier (argument_list "(pcVar36 + 1,paVar59)" ( (binary_expression "pcVar36 + 1" identifier + number_literal) , identifier ))) ;) (expression_statement "free(pcVar36);" (call_expression "free(pcVar36)" identifier (argument_list "(pcVar36)" ( identifier ))) ;) })) })) (expression_statement "ldemul_before_allocation();" (call_expression "ldemul_before_allocation()" identifier (argument_list "()" ( ))) ;) (expression_statement "plVar54 = (lang_output_section_phdr_list *)0x0;" (assignment_expression "plVar54 = (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 "__ptr = (void *)xmalloc(0x50);" (assignment_expression "__ptr = (void *)xmalloc(0x50)" identifier = (cast_expression "(void *)xmalloc(0x50)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(0x50)" identifier (argument_list "(0x50)" ( number_literal ))))) ;) (expression_statement "uVar3 = 10;" (assignment_expression "uVar3 = 10" identifier = number_literal) ;) (for_statement "for (plVar6 = lang_phdr_list; plVar6 != (lang_phdr *)0x0; plVar6 = plVar6->next) {\n    uVar53 = 0;\n    for (plVar51 = lang_output_section_statement.head; plVar51 != (lang_statement_union *)0x0;\n        plVar51 = (lang_statement_union *)(plVar51->wild_statement).section_list) {\n      if (-1 < (plVar51->output_section_statement).constraint) {\n        plVar58 = (plVar51->output_section_statement).phdrs;\n        if (plVar58 == (lang_output_section_phdr_list *)0x0) {\n          if ((((plVar51->output_section_statement).sectype != noload_section) &&\n              ((plVar51->output_section_statement).bfd_section != (asection *)0x0)) &&\n             (((((plVar51->output_section_statement).bfd_section)->flags & 1) != 0 &&\n              (plVar58 = plVar54, plVar43 = plVar51, plVar6->type != 3)))) {\n            while( true ) {\n              plVar54 = plVar58;\n              if (plVar58 != (lang_output_section_phdr_list *)0x0) goto LAB_0011c7fd;\n              plVar43 = (lang_statement_union *)(plVar43->output_section_statement).next;\n              if (plVar43 == (lang_statement_union *)0x0) break;\n              plVar58 = (plVar43->output_section_statement).phdrs;\n            }\n            plVar54 = (lang_output_section_phdr_list *)0x0;\n            pcVar27 = (char *)dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            einfo(pcVar27);\n          }\n        }\n        else {\n          plVar54 = plVar58;\n          plVar18 = (lang_output_section_phdr_list *)(plVar51->wild_statement).children.tail;\n          while (plVar18 != (lang_output_section_phdr_list *)0x0) {\nLAB_0011c7fd:\n            iVar25 = strcmp(plVar58->name,plVar6->name);\n            uVar50 = uVar53;\n            if (iVar25 == 0) {\n              if (uVar3 <= (uint)uVar53) {\n                uVar3 = uVar3 << 1;\n                __ptr = (void *)xrealloc(__ptr,(ulong)uVar3 << 3);\n              }\n              uVar50 = (ulong)((uint)uVar53 + 1);\n              *(lang_statement_union ***)((long)__ptr + uVar53 * 8) =\n                   (plVar51->wild_statement).children.tail;\n              plVar58->used = 1;\n            }\n            plVar58 = plVar58->next;\n            uVar53 = uVar50;\n            plVar18 = plVar58;\n          }\n        }\n      }\n    }\n    uVar50 = 0;\n    if (plVar6->flags != (etree_type *)0x0) {\n      bVar34 = exp_get_vma(plVar6->flags,0,"phdr flags");\n      uVar50 = bVar34 & 0xffffffff;\n    }\n    peVar44 = plVar6->at;\n    bVar34 = 0;\n    if (peVar44 != (etree_type *)0x0) {\n      bVar34 = exp_get_vma(peVar44,0,"phdr load address");\n      peVar44 = plVar6->at;\n    }\n    iVar25 = bfd_record_phdr(link_info.output_bfd,plVar6->type,plVar6->flags != (etree_type *)0x0,\n                             uVar50,peVar44 != (etree_type *)0x0,bVar34,plVar6->filehdr,\n                             plVar6->phdrs,uVar53,__ptr);\n    if (iVar25 == 0) {\n      pcVar27 = (char *)dcgettext(0,"%F%P: bfd_record_phdr failed: %E\n",5);\n      einfo(pcVar27);\n    }\n  }" for ( (assignment_expression "plVar6 = lang_phdr_list" identifier = identifier) ; (binary_expression "plVar6 != (lang_phdr *)0x0" identifier != (cast_expression "(lang_phdr *)0x0" ( (type_descriptor "lang_phdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "plVar6 = plVar6->next" identifier = (field_expression "plVar6->next" identifier -> field_identifier)) ) (compound_statement "{\n    uVar53 = 0;\n    for (plVar51 = lang_output_section_statement.head; plVar51 != (lang_statement_union *)0x0;\n        plVar51 = (lang_statement_union *)(plVar51->wild_statement).section_list) {\n      if (-1 < (plVar51->output_section_statement).constraint) {\n        plVar58 = (plVar51->output_section_statement).phdrs;\n        if (plVar58 == (lang_output_section_phdr_list *)0x0) {\n          if ((((plVar51->output_section_statement).sectype != noload_section) &&\n              ((plVar51->output_section_statement).bfd_section != (asection *)0x0)) &&\n             (((((plVar51->output_section_statement).bfd_section)->flags & 1) != 0 &&\n              (plVar58 = plVar54, plVar43 = plVar51, plVar6->type != 3)))) {\n            while( true ) {\n              plVar54 = plVar58;\n              if (plVar58 != (lang_output_section_phdr_list *)0x0) goto LAB_0011c7fd;\n              plVar43 = (lang_statement_union *)(plVar43->output_section_statement).next;\n              if (plVar43 == (lang_statement_union *)0x0) break;\n              plVar58 = (plVar43->output_section_statement).phdrs;\n            }\n            plVar54 = (lang_output_section_phdr_list *)0x0;\n            pcVar27 = (char *)dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            einfo(pcVar27);\n          }\n        }\n        else {\n          plVar54 = plVar58;\n          plVar18 = (lang_output_section_phdr_list *)(plVar51->wild_statement).children.tail;\n          while (plVar18 != (lang_output_section_phdr_list *)0x0) {\nLAB_0011c7fd:\n            iVar25 = strcmp(plVar58->name,plVar6->name);\n            uVar50 = uVar53;\n            if (iVar25 == 0) {\n              if (uVar3 <= (uint)uVar53) {\n                uVar3 = uVar3 << 1;\n                __ptr = (void *)xrealloc(__ptr,(ulong)uVar3 << 3);\n              }\n              uVar50 = (ulong)((uint)uVar53 + 1);\n              *(lang_statement_union ***)((long)__ptr + uVar53 * 8) =\n                   (plVar51->wild_statement).children.tail;\n              plVar58->used = 1;\n            }\n            plVar58 = plVar58->next;\n            uVar53 = uVar50;\n            plVar18 = plVar58;\n          }\n        }\n      }\n    }\n    uVar50 = 0;\n    if (plVar6->flags != (etree_type *)0x0) {\n      bVar34 = exp_get_vma(plVar6->flags,0,"phdr flags");\n      uVar50 = bVar34 & 0xffffffff;\n    }\n    peVar44 = plVar6->at;\n    bVar34 = 0;\n    if (peVar44 != (etree_type *)0x0) {\n      bVar34 = exp_get_vma(peVar44,0,"phdr load address");\n      peVar44 = plVar6->at;\n    }\n    iVar25 = bfd_record_phdr(link_info.output_bfd,plVar6->type,plVar6->flags != (etree_type *)0x0,\n                             uVar50,peVar44 != (etree_type *)0x0,bVar34,plVar6->filehdr,\n                             plVar6->phdrs,uVar53,__ptr);\n    if (iVar25 == 0) {\n      pcVar27 = (char *)dcgettext(0,"%F%P: bfd_record_phdr failed: %E\n",5);\n      einfo(pcVar27);\n    }\n  }" { (expression_statement "uVar53 = 0;" (assignment_expression "uVar53 = 0" identifier = number_literal) ;) (for_statement "for (plVar51 = lang_output_section_statement.head; plVar51 != (lang_statement_union *)0x0;\n        plVar51 = (lang_statement_union *)(plVar51->wild_statement).section_list) {\n      if (-1 < (plVar51->output_section_statement).constraint) {\n        plVar58 = (plVar51->output_section_statement).phdrs;\n        if (plVar58 == (lang_output_section_phdr_list *)0x0) {\n          if ((((plVar51->output_section_statement).sectype != noload_section) &&\n              ((plVar51->output_section_statement).bfd_section != (asection *)0x0)) &&\n             (((((plVar51->output_section_statement).bfd_section)->flags & 1) != 0 &&\n              (plVar58 = plVar54, plVar43 = plVar51, plVar6->type != 3)))) {\n            while( true ) {\n              plVar54 = plVar58;\n              if (plVar58 != (lang_output_section_phdr_list *)0x0) goto LAB_0011c7fd;\n              plVar43 = (lang_statement_union *)(plVar43->output_section_statement).next;\n              if (plVar43 == (lang_statement_union *)0x0) break;\n              plVar58 = (plVar43->output_section_statement).phdrs;\n            }\n            plVar54 = (lang_output_section_phdr_list *)0x0;\n            pcVar27 = (char *)dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            einfo(pcVar27);\n          }\n        }\n        else {\n          plVar54 = plVar58;\n          plVar18 = (lang_output_section_phdr_list *)(plVar51->wild_statement).children.tail;\n          while (plVar18 != (lang_output_section_phdr_list *)0x0) {\nLAB_0011c7fd:\n            iVar25 = strcmp(plVar58->name,plVar6->name);\n            uVar50 = uVar53;\n            if (iVar25 == 0) {\n              if (uVar3 <= (uint)uVar53) {\n                uVar3 = uVar3 << 1;\n                __ptr = (void *)xrealloc(__ptr,(ulong)uVar3 << 3);\n              }\n              uVar50 = (ulong)((uint)uVar53 + 1);\n              *(lang_statement_union ***)((long)__ptr + uVar53 * 8) =\n                   (plVar51->wild_statement).children.tail;\n              plVar58->used = 1;\n            }\n            plVar58 = plVar58->next;\n            uVar53 = uVar50;\n            plVar18 = plVar58;\n          }\n        }\n      }\n    }" for ( (assignment_expression "plVar51 = lang_output_section_statement.head" identifier = (field_expression "lang_output_section_statement.head" identifier . field_identifier)) ; (binary_expression "plVar51 != (lang_statement_union *)0x0" identifier != (cast_expression "(lang_statement_union *)0x0" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "plVar51 = (lang_statement_union *)(plVar51->wild_statement).section_list" identifier = (cast_expression "(lang_statement_union *)(plVar51->wild_statement).section_list" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(plVar51->wild_statement).section_list" (parenthesized_expression "(plVar51->wild_statement)" ( (field_expression "plVar51->wild_statement" identifier -> field_identifier) )) . field_identifier))) ) (compound_statement "{\n      if (-1 < (plVar51->output_section_statement).constraint) {\n        plVar58 = (plVar51->output_section_statement).phdrs;\n        if (plVar58 == (lang_output_section_phdr_list *)0x0) {\n          if ((((plVar51->output_section_statement).sectype != noload_section) &&\n              ((plVar51->output_section_statement).bfd_section != (asection *)0x0)) &&\n             (((((plVar51->output_section_statement).bfd_section)->flags & 1) != 0 &&\n              (plVar58 = plVar54, plVar43 = plVar51, plVar6->type != 3)))) {\n            while( true ) {\n              plVar54 = plVar58;\n              if (plVar58 != (lang_output_section_phdr_list *)0x0) goto LAB_0011c7fd;\n              plVar43 = (lang_statement_union *)(plVar43->output_section_statement).next;\n              if (plVar43 == (lang_statement_union *)0x0) break;\n              plVar58 = (plVar43->output_section_statement).phdrs;\n            }\n            plVar54 = (lang_output_section_phdr_list *)0x0;\n            pcVar27 = (char *)dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            einfo(pcVar27);\n          }\n        }\n        else {\n          plVar54 = plVar58;\n          plVar18 = (lang_output_section_phdr_list *)(plVar51->wild_statement).children.tail;\n          while (plVar18 != (lang_output_section_phdr_list *)0x0) {\nLAB_0011c7fd:\n            iVar25 = strcmp(plVar58->name,plVar6->name);\n            uVar50 = uVar53;\n            if (iVar25 == 0) {\n              if (uVar3 <= (uint)uVar53) {\n                uVar3 = uVar3 << 1;\n                __ptr = (void *)xrealloc(__ptr,(ulong)uVar3 << 3);\n              }\n              uVar50 = (ulong)((uint)uVar53 + 1);\n              *(lang_statement_union ***)((long)__ptr + uVar53 * 8) =\n                   (plVar51->wild_statement).children.tail;\n              plVar58->used = 1;\n            }\n            plVar58 = plVar58->next;\n            uVar53 = uVar50;\n            plVar18 = plVar58;\n          }\n        }\n      }\n    }" { (if_statement "if (-1 < (plVar51->output_section_statement).constraint) {\n        plVar58 = (plVar51->output_section_statement).phdrs;\n        if (plVar58 == (lang_output_section_phdr_list *)0x0) {\n          if ((((plVar51->output_section_statement).sectype != noload_section) &&\n              ((plVar51->output_section_statement).bfd_section != (asection *)0x0)) &&\n             (((((plVar51->output_section_statement).bfd_section)->flags & 1) != 0 &&\n              (plVar58 = plVar54, plVar43 = plVar51, plVar6->type != 3)))) {\n            while( true ) {\n              plVar54 = plVar58;\n              if (plVar58 != (lang_output_section_phdr_list *)0x0) goto LAB_0011c7fd;\n              plVar43 = (lang_statement_union *)(plVar43->output_section_statement).next;\n              if (plVar43 == (lang_statement_union *)0x0) break;\n              plVar58 = (plVar43->output_section_statement).phdrs;\n            }\n            plVar54 = (lang_output_section_phdr_list *)0x0;\n            pcVar27 = (char *)dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            einfo(pcVar27);\n          }\n        }\n        else {\n          plVar54 = plVar58;\n          plVar18 = (lang_output_section_phdr_list *)(plVar51->wild_statement).children.tail;\n          while (plVar18 != (lang_output_section_phdr_list *)0x0) {\nLAB_0011c7fd:\n            iVar25 = strcmp(plVar58->name,plVar6->name);\n            uVar50 = uVar53;\n            if (iVar25 == 0) {\n              if (uVar3 <= (uint)uVar53) {\n                uVar3 = uVar3 << 1;\n                __ptr = (void *)xrealloc(__ptr,(ulong)uVar3 << 3);\n              }\n              uVar50 = (ulong)((uint)uVar53 + 1);\n              *(lang_statement_union ***)((long)__ptr + uVar53 * 8) =\n                   (plVar51->wild_statement).children.tail;\n              plVar58->used = 1;\n            }\n            plVar58 = plVar58->next;\n            uVar53 = uVar50;\n            plVar18 = plVar58;\n          }\n        }\n      }" if (parenthesized_expression "(-1 < (plVar51->output_section_statement).constraint)" ( (binary_expression "-1 < (plVar51->output_section_statement).constraint" number_literal < (field_expression "(plVar51->output_section_statement).constraint" (parenthesized_expression "(plVar51->output_section_statement)" ( (field_expression "plVar51->output_section_statement" identifier -> field_identifier) )) . field_identifier)) )) (compound_statement "{\n        plVar58 = (plVar51->output_section_statement).phdrs;\n        if (plVar58 == (lang_output_section_phdr_list *)0x0) {\n          if ((((plVar51->output_section_statement).sectype != noload_section) &&\n              ((plVar51->output_section_statement).bfd_section != (asection *)0x0)) &&\n             (((((plVar51->output_section_statement).bfd_section)->flags & 1) != 0 &&\n              (plVar58 = plVar54, plVar43 = plVar51, plVar6->type != 3)))) {\n            while( true ) {\n              plVar54 = plVar58;\n              if (plVar58 != (lang_output_section_phdr_list *)0x0) goto LAB_0011c7fd;\n              plVar43 = (lang_statement_union *)(plVar43->output_section_statement).next;\n              if (plVar43 == (lang_statement_union *)0x0) break;\n              plVar58 = (plVar43->output_section_statement).phdrs;\n            }\n            plVar54 = (lang_output_section_phdr_list *)0x0;\n            pcVar27 = (char *)dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            einfo(pcVar27);\n          }\n        }\n        else {\n          plVar54 = plVar58;\n          plVar18 = (lang_output_section_phdr_list *)(plVar51->wild_statement).children.tail;\n          while (plVar18 != (lang_output_section_phdr_list *)0x0) {\nLAB_0011c7fd:\n            iVar25 = strcmp(plVar58->name,plVar6->name);\n            uVar50 = uVar53;\n            if (iVar25 == 0) {\n              if (uVar3 <= (uint)uVar53) {\n                uVar3 = uVar3 << 1;\n                __ptr = (void *)xrealloc(__ptr,(ulong)uVar3 << 3);\n              }\n              uVar50 = (ulong)((uint)uVar53 + 1);\n              *(lang_statement_union ***)((long)__ptr + uVar53 * 8) =\n                   (plVar51->wild_statement).children.tail;\n              plVar58->used = 1;\n            }\n            plVar58 = plVar58->next;\n            uVar53 = uVar50;\n            plVar18 = plVar58;\n          }\n        }\n      }" { (expression_statement "plVar58 = (plVar51->output_section_statement).phdrs;" (assignment_expression "plVar58 = (plVar51->output_section_statement).phdrs" identifier = (field_expression "(plVar51->output_section_statement).phdrs" (parenthesized_expression "(plVar51->output_section_statement)" ( (field_expression "plVar51->output_section_statement" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if (plVar58 == (lang_output_section_phdr_list *)0x0) {\n          if ((((plVar51->output_section_statement).sectype != noload_section) &&\n              ((plVar51->output_section_statement).bfd_section != (asection *)0x0)) &&\n             (((((plVar51->output_section_statement).bfd_section)->flags & 1) != 0 &&\n              (plVar58 = plVar54, plVar43 = plVar51, plVar6->type != 3)))) {\n            while( true ) {\n              plVar54 = plVar58;\n              if (plVar58 != (lang_output_section_phdr_list *)0x0) goto LAB_0011c7fd;\n              plVar43 = (lang_statement_union *)(plVar43->output_section_statement).next;\n              if (plVar43 == (lang_statement_union *)0x0) break;\n              plVar58 = (plVar43->output_section_statement).phdrs;\n            }\n            plVar54 = (lang_output_section_phdr_list *)0x0;\n            pcVar27 = (char *)dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            einfo(pcVar27);\n          }\n        }\n        else {\n          plVar54 = plVar58;\n          plVar18 = (lang_output_section_phdr_list *)(plVar51->wild_statement).children.tail;\n          while (plVar18 != (lang_output_section_phdr_list *)0x0) {\nLAB_0011c7fd:\n            iVar25 = strcmp(plVar58->name,plVar6->name);\n            uVar50 = uVar53;\n            if (iVar25 == 0) {\n              if (uVar3 <= (uint)uVar53) {\n                uVar3 = uVar3 << 1;\n                __ptr = (void *)xrealloc(__ptr,(ulong)uVar3 << 3);\n              }\n              uVar50 = (ulong)((uint)uVar53 + 1);\n              *(lang_statement_union ***)((long)__ptr + uVar53 * 8) =\n                   (plVar51->wild_statement).children.tail;\n              plVar58->used = 1;\n            }\n            plVar58 = plVar58->next;\n            uVar53 = uVar50;\n            plVar18 = plVar58;\n          }\n        }" if (parenthesized_expression "(plVar58 == (lang_output_section_phdr_list *)0x0)" ( (binary_expression "plVar58 == (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 ((((plVar51->output_section_statement).sectype != noload_section) &&\n              ((plVar51->output_section_statement).bfd_section != (asection *)0x0)) &&\n             (((((plVar51->output_section_statement).bfd_section)->flags & 1) != 0 &&\n              (plVar58 = plVar54, plVar43 = plVar51, plVar6->type != 3)))) {\n            while( true ) {\n              plVar54 = plVar58;\n              if (plVar58 != (lang_output_section_phdr_list *)0x0) goto LAB_0011c7fd;\n              plVar43 = (lang_statement_union *)(plVar43->output_section_statement).next;\n              if (plVar43 == (lang_statement_union *)0x0) break;\n              plVar58 = (plVar43->output_section_statement).phdrs;\n            }\n            plVar54 = (lang_output_section_phdr_list *)0x0;\n            pcVar27 = (char *)dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            einfo(pcVar27);\n          }\n        }" { (if_statement "if ((((plVar51->output_section_statement).sectype != noload_section) &&\n              ((plVar51->output_section_statement).bfd_section != (asection *)0x0)) &&\n             (((((plVar51->output_section_statement).bfd_section)->flags & 1) != 0 &&\n              (plVar58 = plVar54, plVar43 = plVar51, plVar6->type != 3)))) {\n            while( true ) {\n              plVar54 = plVar58;\n              if (plVar58 != (lang_output_section_phdr_list *)0x0) goto LAB_0011c7fd;\n              plVar43 = (lang_statement_union *)(plVar43->output_section_statement).next;\n              if (plVar43 == (lang_statement_union *)0x0) break;\n              plVar58 = (plVar43->output_section_statement).phdrs;\n            }\n            plVar54 = (lang_output_section_phdr_list *)0x0;\n            pcVar27 = (char *)dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            einfo(pcVar27);\n          }" if (parenthesized_expression "((((plVar51->output_section_statement).sectype != noload_section) &&\n              ((plVar51->output_section_statement).bfd_section != (asection *)0x0)) &&\n             (((((plVar51->output_section_statement).bfd_section)->flags & 1) != 0 &&\n              (plVar58 = plVar54, plVar43 = plVar51, plVar6->type != 3))))" ( (binary_expression "(((plVar51->output_section_statement).sectype != noload_section) &&\n              ((plVar51->output_section_statement).bfd_section != (asection *)0x0)) &&\n             (((((plVar51->output_section_statement).bfd_section)->flags & 1) != 0 &&\n              (plVar58 = plVar54, plVar43 = plVar51, plVar6->type != 3)))" (parenthesized_expression "(((plVar51->output_section_statement).sectype != noload_section) &&\n              ((plVar51->output_section_statement).bfd_section != (asection *)0x0))" ( (binary_expression "((plVar51->output_section_statement).sectype != noload_section) &&\n              ((plVar51->output_section_statement).bfd_section != (asection *)0x0)" (parenthesized_expression "((plVar51->output_section_statement).sectype != noload_section)" ( (binary_expression "(plVar51->output_section_statement).sectype != noload_section" (field_expression "(plVar51->output_section_statement).sectype" (parenthesized_expression "(plVar51->output_section_statement)" ( (field_expression "plVar51->output_section_statement" identifier -> field_identifier) )) . field_identifier) != identifier) )) && (parenthesized_expression "((plVar51->output_section_statement).bfd_section != (asection *)0x0)" ( (binary_expression "(plVar51->output_section_statement).bfd_section != (asection *)0x0" (field_expression "(plVar51->output_section_statement).bfd_section" (parenthesized_expression "(plVar51->output_section_statement)" ( (field_expression "plVar51->output_section_statement" identifier -> field_identifier) )) . field_identifier) != (cast_expression "(asection *)0x0" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) && (parenthesized_expression "(((((plVar51->output_section_statement).bfd_section)->flags & 1) != 0 &&\n              (plVar58 = plVar54, plVar43 = plVar51, plVar6->type != 3)))" ( (parenthesized_expression "((((plVar51->output_section_statement).bfd_section)->flags & 1) != 0 &&\n              (plVar58 = plVar54, plVar43 = plVar51, plVar6->type != 3))" ( (binary_expression "(((plVar51->output_section_statement).bfd_section)->flags & 1) != 0 &&\n              (plVar58 = plVar54, plVar43 = plVar51, plVar6->type != 3)" (binary_expression "(((plVar51->output_section_statement).bfd_section)->flags & 1) != 0" (parenthesized_expression "(((plVar51->output_section_statement).bfd_section)->flags & 1)" ( (binary_expression "((plVar51->output_section_statement).bfd_section)->flags & 1" (field_expression "((plVar51->output_section_statement).bfd_section)->flags" (parenthesized_expression "((plVar51->output_section_statement).bfd_section)" ( (field_expression "(plVar51->output_section_statement).bfd_section" (parenthesized_expression "(plVar51->output_section_statement)" ( (field_expression "plVar51->output_section_statement" identifier -> field_identifier) )) . field_identifier) )) -> field_identifier) & number_literal) )) != number_literal) && (parenthesized_expression "(plVar58 = plVar54, plVar43 = plVar51, plVar6->type != 3)" ( (comma_expression "plVar58 = plVar54, plVar43 = plVar51, plVar6->type != 3" (assignment_expression "plVar58 = plVar54" identifier = identifier) , (comma_expression "plVar43 = plVar51, plVar6->type != 3" (assignment_expression "plVar43 = plVar51" identifier = identifier) , (binary_expression "plVar6->type != 3" (field_expression "plVar6->type" identifier -> field_identifier) != number_literal))) ))) )) ))) )) (compound_statement "{\n            while( true ) {\n              plVar54 = plVar58;\n              if (plVar58 != (lang_output_section_phdr_list *)0x0) goto LAB_0011c7fd;\n              plVar43 = (lang_statement_union *)(plVar43->output_section_statement).next;\n              if (plVar43 == (lang_statement_union *)0x0) break;\n              plVar58 = (plVar43->output_section_statement).phdrs;\n            }\n            plVar54 = (lang_output_section_phdr_list *)0x0;\n            pcVar27 = (char *)dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            einfo(pcVar27);\n          }" { (while_statement "while( true ) {\n              plVar54 = plVar58;\n              if (plVar58 != (lang_output_section_phdr_list *)0x0) goto LAB_0011c7fd;\n              plVar43 = (lang_statement_union *)(plVar43->output_section_statement).next;\n              if (plVar43 == (lang_statement_union *)0x0) break;\n              plVar58 = (plVar43->output_section_statement).phdrs;\n            }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n              plVar54 = plVar58;\n              if (plVar58 != (lang_output_section_phdr_list *)0x0) goto LAB_0011c7fd;\n              plVar43 = (lang_statement_union *)(plVar43->output_section_statement).next;\n              if (plVar43 == (lang_statement_union *)0x0) break;\n              plVar58 = (plVar43->output_section_statement).phdrs;\n            }" { (expression_statement "plVar54 = plVar58;" (assignment_expression "plVar54 = plVar58" identifier = identifier) ;) (if_statement "if (plVar58 != (lang_output_section_phdr_list *)0x0) goto LAB_0011c7fd;" if (parenthesized_expression "(plVar58 != (lang_output_section_phdr_list *)0x0)" ( (binary_expression "plVar58 != (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_0011c7fd;" goto statement_identifier ;)) (expression_statement "plVar43 = (lang_statement_union *)(plVar43->output_section_statement).next;" (assignment_expression "plVar43 = (lang_statement_union *)(plVar43->output_section_statement).next" identifier = (cast_expression "(lang_statement_union *)(plVar43->output_section_statement).next" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(plVar43->output_section_statement).next" (parenthesized_expression "(plVar43->output_section_statement)" ( (field_expression "plVar43->output_section_statement" identifier -> field_identifier) )) . field_identifier))) ;) (if_statement "if (plVar43 == (lang_statement_union *)0x0) break;" if (parenthesized_expression "(plVar43 == (lang_statement_union *)0x0)" ( (binary_expression "plVar43 == (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 "plVar58 = (plVar43->output_section_statement).phdrs;" (assignment_expression "plVar58 = (plVar43->output_section_statement).phdrs" identifier = (field_expression "(plVar43->output_section_statement).phdrs" (parenthesized_expression "(plVar43->output_section_statement)" ( (field_expression "plVar43->output_section_statement" identifier -> field_identifier) )) . field_identifier)) ;) })) (expression_statement "plVar54 = (lang_output_section_phdr_list *)0x0;" (assignment_expression "plVar54 = (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 "pcVar27 = (char *)dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);" (assignment_expression "pcVar27 = (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(pcVar27);" (call_expression "einfo(pcVar27)" identifier (argument_list "(pcVar27)" ( identifier ))) ;) })) }) (else_clause "else {\n          plVar54 = plVar58;\n          plVar18 = (lang_output_section_phdr_list *)(plVar51->wild_statement).children.tail;\n          while (plVar18 != (lang_output_section_phdr_list *)0x0) {\nLAB_0011c7fd:\n            iVar25 = strcmp(plVar58->name,plVar6->name);\n            uVar50 = uVar53;\n            if (iVar25 == 0) {\n              if (uVar3 <= (uint)uVar53) {\n                uVar3 = uVar3 << 1;\n                __ptr = (void *)xrealloc(__ptr,(ulong)uVar3 << 3);\n              }\n              uVar50 = (ulong)((uint)uVar53 + 1);\n              *(lang_statement_union ***)((long)__ptr + uVar53 * 8) =\n                   (plVar51->wild_statement).children.tail;\n              plVar58->used = 1;\n            }\n            plVar58 = plVar58->next;\n            uVar53 = uVar50;\n            plVar18 = plVar58;\n          }\n        }" else (compound_statement "{\n          plVar54 = plVar58;\n          plVar18 = (lang_output_section_phdr_list *)(plVar51->wild_statement).children.tail;\n          while (plVar18 != (lang_output_section_phdr_list *)0x0) {\nLAB_0011c7fd:\n            iVar25 = strcmp(plVar58->name,plVar6->name);\n            uVar50 = uVar53;\n            if (iVar25 == 0) {\n              if (uVar3 <= (uint)uVar53) {\n                uVar3 = uVar3 << 1;\n                __ptr = (void *)xrealloc(__ptr,(ulong)uVar3 << 3);\n              }\n              uVar50 = (ulong)((uint)uVar53 + 1);\n              *(lang_statement_union ***)((long)__ptr + uVar53 * 8) =\n                   (plVar51->wild_statement).children.tail;\n              plVar58->used = 1;\n            }\n            plVar58 = plVar58->next;\n            uVar53 = uVar50;\n            plVar18 = plVar58;\n          }\n        }" { (expression_statement "plVar54 = plVar58;" (assignment_expression "plVar54 = plVar58" identifier = identifier) ;) (expression_statement "plVar18 = (lang_output_section_phdr_list *)(plVar51->wild_statement).children.tail;" (assignment_expression "plVar18 = (lang_output_section_phdr_list *)(plVar51->wild_statement).children.tail" identifier = (cast_expression "(lang_output_section_phdr_list *)(plVar51->wild_statement).children.tail" ( (type_descriptor "lang_output_section_phdr_list *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(plVar51->wild_statement).children.tail" (field_expression "(plVar51->wild_statement).children" (parenthesized_expression "(plVar51->wild_statement)" ( (field_expression "plVar51->wild_statement" identifier -> field_identifier) )) . field_identifier) . field_identifier))) ;) (while_statement "while (plVar18 != (lang_output_section_phdr_list *)0x0) {\nLAB_0011c7fd:\n            iVar25 = strcmp(plVar58->name,plVar6->name);\n            uVar50 = uVar53;\n            if (iVar25 == 0) {\n              if (uVar3 <= (uint)uVar53) {\n                uVar3 = uVar3 << 1;\n                __ptr = (void *)xrealloc(__ptr,(ulong)uVar3 << 3);\n              }\n              uVar50 = (ulong)((uint)uVar53 + 1);\n              *(lang_statement_union ***)((long)__ptr + uVar53 * 8) =\n                   (plVar51->wild_statement).children.tail;\n              plVar58->used = 1;\n            }\n            plVar58 = plVar58->next;\n            uVar53 = uVar50;\n            plVar18 = plVar58;\n          }" while (parenthesized_expression "(plVar18 != (lang_output_section_phdr_list *)0x0)" ( (binary_expression "plVar18 != (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_0011c7fd:\n            iVar25 = strcmp(plVar58->name,plVar6->name);\n            uVar50 = uVar53;\n            if (iVar25 == 0) {\n              if (uVar3 <= (uint)uVar53) {\n                uVar3 = uVar3 << 1;\n                __ptr = (void *)xrealloc(__ptr,(ulong)uVar3 << 3);\n              }\n              uVar50 = (ulong)((uint)uVar53 + 1);\n              *(lang_statement_union ***)((long)__ptr + uVar53 * 8) =\n                   (plVar51->wild_statement).children.tail;\n              plVar58->used = 1;\n            }\n            plVar58 = plVar58->next;\n            uVar53 = uVar50;\n            plVar18 = plVar58;\n          }" { (labeled_statement "LAB_0011c7fd:\n            iVar25 = strcmp(plVar58->name,plVar6->name);" statement_identifier : (expression_statement "iVar25 = strcmp(plVar58->name,plVar6->name);" (assignment_expression "iVar25 = strcmp(plVar58->name,plVar6->name)" identifier = (call_expression "strcmp(plVar58->name,plVar6->name)" identifier (argument_list "(plVar58->name,plVar6->name)" ( (field_expression "plVar58->name" identifier -> field_identifier) , (field_expression "plVar6->name" identifier -> field_identifier) )))) ;)) (expression_statement "uVar50 = uVar53;" (assignment_expression "uVar50 = uVar53" identifier = identifier) ;) (if_statement "if (iVar25 == 0) {\n              if (uVar3 <= (uint)uVar53) {\n                uVar3 = uVar3 << 1;\n                __ptr = (void *)xrealloc(__ptr,(ulong)uVar3 << 3);\n              }\n              uVar50 = (ulong)((uint)uVar53 + 1);\n              *(lang_statement_union ***)((long)__ptr + uVar53 * 8) =\n                   (plVar51->wild_statement).children.tail;\n              plVar58->used = 1;\n            }" if (parenthesized_expression "(iVar25 == 0)" ( (binary_expression "iVar25 == 0" identifier == number_literal) )) (compound_statement "{\n              if (uVar3 <= (uint)uVar53) {\n                uVar3 = uVar3 << 1;\n                __ptr = (void *)xrealloc(__ptr,(ulong)uVar3 << 3);\n              }\n              uVar50 = (ulong)((uint)uVar53 + 1);\n              *(lang_statement_union ***)((long)__ptr + uVar53 * 8) =\n                   (plVar51->wild_statement).children.tail;\n              plVar58->used = 1;\n            }" { (if_statement "if (uVar3 <= (uint)uVar53) {\n                uVar3 = uVar3 << 1;\n                __ptr = (void *)xrealloc(__ptr,(ulong)uVar3 << 3);\n              }" if (parenthesized_expression "(uVar3 <= (uint)uVar53)" ( (binary_expression "uVar3 <= (uint)uVar53" identifier <= (cast_expression "(uint)uVar53" ( (type_descriptor "uint" type_identifier) ) identifier)) )) (compound_statement "{\n                uVar3 = uVar3 << 1;\n                __ptr = (void *)xrealloc(__ptr,(ulong)uVar3 << 3);\n              }" { (expression_statement "uVar3 = uVar3 << 1;" (assignment_expression "uVar3 = uVar3 << 1" identifier = (binary_expression "uVar3 << 1" identifier << number_literal)) ;) (expression_statement "__ptr = (void *)xrealloc(__ptr,(ulong)uVar3 << 3);" (assignment_expression "__ptr = (void *)xrealloc(__ptr,(ulong)uVar3 << 3)" identifier = (cast_expression "(void *)xrealloc(__ptr,(ulong)uVar3 << 3)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xrealloc(__ptr,(ulong)uVar3 << 3)" identifier (argument_list "(__ptr,(ulong)uVar3 << 3)" ( identifier , (binary_expression "(ulong)uVar3 << 3" (cast_expression "(ulong)uVar3" ( (type_descriptor "ulong" type_identifier) ) identifier) << number_literal) ))))) ;) })) (expression_statement "uVar50 = (ulong)((uint)uVar53 + 1);" (assignment_expression "uVar50 = (ulong)((uint)uVar53 + 1)" identifier = (call_expression "(ulong)((uint)uVar53 + 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((uint)uVar53 + 1)" ( (binary_expression "(uint)uVar53 + 1" (cast_expression "(uint)uVar53" ( (type_descriptor "uint" type_identifier) ) identifier) + number_literal) )))) ;) (expression_statement "*(lang_statement_union ***)((long)__ptr + uVar53 * 8) =\n                   (plVar51->wild_statement).children.tail;" (assignment_expression "*(lang_statement_union ***)((long)__ptr + uVar53 * 8) =\n                   (plVar51->wild_statement).children.tail" (pointer_expression "*(lang_statement_union ***)((long)__ptr + uVar53 * 8)" * (cast_expression "(lang_statement_union ***)((long)__ptr + uVar53 * 8)" ( (type_descriptor "lang_statement_union ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((long)__ptr + uVar53 * 8)" ( (binary_expression "(long)__ptr + uVar53 * 8" (cast_expression "(long)__ptr" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (binary_expression "uVar53 * 8" identifier * number_literal)) )))) = (field_expression "(plVar51->wild_statement).children.tail" (field_expression "(plVar51->wild_statement).children" (parenthesized_expression "(plVar51->wild_statement)" ( (field_expression "plVar51->wild_statement" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) (expression_statement "plVar58->used = 1;" (assignment_expression "plVar58->used = 1" (field_expression "plVar58->used" identifier -> field_identifier) = number_literal) ;) })) (expression_statement "plVar58 = plVar58->next;" (assignment_expression "plVar58 = plVar58->next" identifier = (field_expression "plVar58->next" identifier -> field_identifier)) ;) (expression_statement "uVar53 = uVar50;" (assignment_expression "uVar53 = uVar50" identifier = identifier) ;) (expression_statement "plVar18 = plVar58;" (assignment_expression "plVar18 = plVar58" identifier = identifier) ;) })) }))) })) })) (expression_statement "uVar50 = 0;" (assignment_expression "uVar50 = 0" identifier = number_literal) ;) (if_statement "if (plVar6->flags != (etree_type *)0x0) {\n      bVar34 = exp_get_vma(plVar6->flags,0,"phdr flags");\n      uVar50 = bVar34 & 0xffffffff;\n    }" if (parenthesized_expression "(plVar6->flags != (etree_type *)0x0)" ( (binary_expression "plVar6->flags != (etree_type *)0x0" (field_expression "plVar6->flags" identifier -> field_identifier) != (cast_expression "(etree_type *)0x0" ( (type_descriptor "etree_type *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      bVar34 = exp_get_vma(plVar6->flags,0,"phdr flags");\n      uVar50 = bVar34 & 0xffffffff;\n    }" { (expression_statement "bVar34 = exp_get_vma(plVar6->flags,0,"phdr flags");" (assignment_expression "bVar34 = exp_get_vma(plVar6->flags,0,"phdr flags")" identifier = (call_expression "exp_get_vma(plVar6->flags,0,"phdr flags")" identifier (argument_list "(plVar6->flags,0,"phdr flags")" ( (field_expression "plVar6->flags" identifier -> field_identifier) , number_literal , (string_literal ""phdr flags"" " string_content ") )))) ;) (expression_statement "uVar50 = bVar34 & 0xffffffff;" (assignment_expression "uVar50 = bVar34 & 0xffffffff" identifier = (binary_expression "bVar34 & 0xffffffff" identifier & number_literal)) ;) })) (expression_statement "peVar44 = plVar6->at;" (assignment_expression "peVar44 = plVar6->at" identifier = (field_expression "plVar6->at" identifier -> field_identifier)) ;) (expression_statement "bVar34 = 0;" (assignment_expression "bVar34 = 0" identifier = number_literal) ;) (if_statement "if (peVar44 != (etree_type *)0x0) {\n      bVar34 = exp_get_vma(peVar44,0,"phdr load address");\n      peVar44 = plVar6->at;\n    }" if (parenthesized_expression "(peVar44 != (etree_type *)0x0)" ( (binary_expression "peVar44 != (etree_type *)0x0" identifier != (cast_expression "(etree_type *)0x0" ( (type_descriptor "etree_type *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      bVar34 = exp_get_vma(peVar44,0,"phdr load address");\n      peVar44 = plVar6->at;\n    }" { (expression_statement "bVar34 = exp_get_vma(peVar44,0,"phdr load address");" (assignment_expression "bVar34 = exp_get_vma(peVar44,0,"phdr load address")" identifier = (call_expression "exp_get_vma(peVar44,0,"phdr load address")" identifier (argument_list "(peVar44,0,"phdr load address")" ( identifier , number_literal , (string_literal ""phdr load address"" " string_content ") )))) ;) (expression_statement "peVar44 = plVar6->at;" (assignment_expression "peVar44 = plVar6->at" identifier = (field_expression "plVar6->at" identifier -> field_identifier)) ;) })) (expression_statement "iVar25 = bfd_record_phdr(link_info.output_bfd,plVar6->type,plVar6->flags != (etree_type *)0x0,\n                             uVar50,peVar44 != (etree_type *)0x0,bVar34,plVar6->filehdr,\n                             plVar6->phdrs,uVar53,__ptr);" (assignment_expression "iVar25 = bfd_record_phdr(link_info.output_bfd,plVar6->type,plVar6->flags != (etree_type *)0x0,\n                             uVar50,peVar44 != (etree_type *)0x0,bVar34,plVar6->filehdr,\n                             plVar6->phdrs,uVar53,__ptr)" identifier = (call_expression "bfd_record_phdr(link_info.output_bfd,plVar6->type,plVar6->flags != (etree_type *)0x0,\n                             uVar50,peVar44 != (etree_type *)0x0,bVar34,plVar6->filehdr,\n                             plVar6->phdrs,uVar53,__ptr)" identifier (argument_list "(link_info.output_bfd,plVar6->type,plVar6->flags != (etree_type *)0x0,\n                             uVar50,peVar44 != (etree_type *)0x0,bVar34,plVar6->filehdr,\n                             plVar6->phdrs,uVar53,__ptr)" ( (field_expression "link_info.output_bfd" identifier . field_identifier) , (field_expression "plVar6->type" identifier -> field_identifier) , (binary_expression "plVar6->flags != (etree_type *)0x0" (field_expression "plVar6->flags" identifier -> field_identifier) != (cast_expression "(etree_type *)0x0" ( (type_descriptor "etree_type *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) , identifier , (binary_expression "peVar44 != (etree_type *)0x0" identifier != (cast_expression "(etree_type *)0x0" ( (type_descriptor "etree_type *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) , identifier , (field_expression "plVar6->filehdr" identifier -> field_identifier) , (field_expression "plVar6->phdrs" identifier -> field_identifier) , identifier , identifier )))) ;) (if_statement "if (iVar25 == 0) {\n      pcVar27 = (char *)dcgettext(0,"%F%P: bfd_record_phdr failed: %E\n",5);\n      einfo(pcVar27);\n    }" if (parenthesized_expression "(iVar25 == 0)" ( (binary_expression "iVar25 == 0" identifier == number_literal) )) (compound_statement "{\n      pcVar27 = (char *)dcgettext(0,"%F%P: bfd_record_phdr failed: %E\n",5);\n      einfo(pcVar27);\n    }" { (expression_statement "pcVar27 = (char *)dcgettext(0,"%F%P: bfd_record_phdr failed: %E\n",5);" (assignment_expression "pcVar27 = (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(pcVar27);" (call_expression "einfo(pcVar27)" identifier (argument_list "(pcVar27)" ( identifier ))) ;) })) })) (expression_statement "free(__ptr);" (call_expression "free(__ptr)" identifier (argument_list "(__ptr)" ( identifier ))) ;) (expression_statement "has_relro_section = extraout_RDX;" (assignment_expression "has_relro_section = extraout_RDX" identifier = identifier) ;) (for_statement "for (plVar51 = lang_output_section_statement.head; plVar51 != (lang_statement_union *)0x0;\n      plVar51 = (lang_statement_union *)(plVar51->wild_statement).section_list) {\n    if ((-1 < (plVar51->output_section_statement).constraint) &&\n       ((plVar51->wild_statement).children.tail != (lang_statement_union **)0x0)) {\n      plVar54 = (plVar51->output_section_statement).phdrs;\njoined_r0x0011c90a:\n      if (plVar54 != (lang_output_section_phdr_list *)0x0) {\n        do {\n          bVar72 = false;\n          bVar73 = plVar54->used == 0;\n          if (bVar73) {\n            pbVar7 = (byte *)plVar54->name;\n            lVar29 = 5;\n            pbVar38 = pbVar7;\n            pbVar63 = (byte *)0x130359;\n            do {\n              if (lVar29 == 0) break;\n              lVar29 = lVar29 + -1;\n              bVar72 = *pbVar38 < *pbVar63;\n              bVar73 = *pbVar38 == *pbVar63;\n              pbVar38 = pbVar38 + (ulong)bVar74 * -2 + 1;\n              pbVar63 = pbVar63 + (ulong)bVar74 * -2 + 1;\n            } while (bVar73);\n            if ((!bVar72 && !bVar73) != bVar72) goto code_r0x0011c93b;\n          }\n          plVar54 = plVar54->next;\n          if (plVar54 == (lang_output_section_phdr_list *)0x0) break;\n        } while( true );\n      }\n    }\n  }" for ( (assignment_expression "plVar51 = lang_output_section_statement.head" identifier = (field_expression "lang_output_section_statement.head" identifier . field_identifier)) ; (binary_expression "plVar51 != (lang_statement_union *)0x0" identifier != (cast_expression "(lang_statement_union *)0x0" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "plVar51 = (lang_statement_union *)(plVar51->wild_statement).section_list" identifier = (cast_expression "(lang_statement_union *)(plVar51->wild_statement).section_list" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(plVar51->wild_statement).section_list" (parenthesized_expression "(plVar51->wild_statement)" ( (field_expression "plVar51->wild_statement" identifier -> field_identifier) )) . field_identifier))) ) (compound_statement "{\n    if ((-1 < (plVar51->output_section_statement).constraint) &&\n       ((plVar51->wild_statement).children.tail != (lang_statement_union **)0x0)) {\n      plVar54 = (plVar51->output_section_statement).phdrs;\njoined_r0x0011c90a:\n      if (plVar54 != (lang_output_section_phdr_list *)0x0) {\n        do {\n          bVar72 = false;\n          bVar73 = plVar54->used == 0;\n          if (bVar73) {\n            pbVar7 = (byte *)plVar54->name;\n            lVar29 = 5;\n            pbVar38 = pbVar7;\n            pbVar63 = (byte *)0x130359;\n            do {\n              if (lVar29 == 0) break;\n              lVar29 = lVar29 + -1;\n              bVar72 = *pbVar38 < *pbVar63;\n              bVar73 = *pbVar38 == *pbVar63;\n              pbVar38 = pbVar38 + (ulong)bVar74 * -2 + 1;\n              pbVar63 = pbVar63 + (ulong)bVar74 * -2 + 1;\n            } while (bVar73);\n            if ((!bVar72 && !bVar73) != bVar72) goto code_r0x0011c93b;\n          }\n          plVar54 = plVar54->next;\n          if (plVar54 == (lang_output_section_phdr_list *)0x0) break;\n        } while( true );\n      }\n    }\n  }" { (if_statement "if ((-1 < (plVar51->output_section_statement).constraint) &&\n       ((plVar51->wild_statement).children.tail != (lang_statement_union **)0x0)) {\n      plVar54 = (plVar51->output_section_statement).phdrs;\njoined_r0x0011c90a:\n      if (plVar54 != (lang_output_section_phdr_list *)0x0) {\n        do {\n          bVar72 = false;\n          bVar73 = plVar54->used == 0;\n          if (bVar73) {\n            pbVar7 = (byte *)plVar54->name;\n            lVar29 = 5;\n            pbVar38 = pbVar7;\n            pbVar63 = (byte *)0x130359;\n            do {\n              if (lVar29 == 0) break;\n              lVar29 = lVar29 + -1;\n              bVar72 = *pbVar38 < *pbVar63;\n              bVar73 = *pbVar38 == *pbVar63;\n              pbVar38 = pbVar38 + (ulong)bVar74 * -2 + 1;\n              pbVar63 = pbVar63 + (ulong)bVar74 * -2 + 1;\n            } while (bVar73);\n            if ((!bVar72 && !bVar73) != bVar72) goto code_r0x0011c93b;\n          }\n          plVar54 = plVar54->next;\n          if (plVar54 == (lang_output_section_phdr_list *)0x0) break;\n        } while( true );\n      }\n    }" if (parenthesized_expression "((-1 < (plVar51->output_section_statement).constraint) &&\n       ((plVar51->wild_statement).children.tail != (lang_statement_union **)0x0))" ( (binary_expression "(-1 < (plVar51->output_section_statement).constraint) &&\n       ((plVar51->wild_statement).children.tail != (lang_statement_union **)0x0)" (parenthesized_expression "(-1 < (plVar51->output_section_statement).constraint)" ( (binary_expression "-1 < (plVar51->output_section_statement).constraint" number_literal < (field_expression "(plVar51->output_section_statement).constraint" (parenthesized_expression "(plVar51->output_section_statement)" ( (field_expression "plVar51->output_section_statement" identifier -> field_identifier) )) . field_identifier)) )) && (parenthesized_expression "((plVar51->wild_statement).children.tail != (lang_statement_union **)0x0)" ( (binary_expression "(plVar51->wild_statement).children.tail != (lang_statement_union **)0x0" (field_expression "(plVar51->wild_statement).children.tail" (field_expression "(plVar51->wild_statement).children" (parenthesized_expression "(plVar51->wild_statement)" ( (field_expression "plVar51->wild_statement" identifier -> field_identifier) )) . field_identifier) . field_identifier) != (cast_expression "(lang_statement_union **)0x0" ( (type_descriptor "lang_statement_union **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ))) )) (compound_statement "{\n      plVar54 = (plVar51->output_section_statement).phdrs;\njoined_r0x0011c90a:\n      if (plVar54 != (lang_output_section_phdr_list *)0x0) {\n        do {\n          bVar72 = false;\n          bVar73 = plVar54->used == 0;\n          if (bVar73) {\n            pbVar7 = (byte *)plVar54->name;\n            lVar29 = 5;\n            pbVar38 = pbVar7;\n            pbVar63 = (byte *)0x130359;\n            do {\n              if (lVar29 == 0) break;\n              lVar29 = lVar29 + -1;\n              bVar72 = *pbVar38 < *pbVar63;\n              bVar73 = *pbVar38 == *pbVar63;\n              pbVar38 = pbVar38 + (ulong)bVar74 * -2 + 1;\n              pbVar63 = pbVar63 + (ulong)bVar74 * -2 + 1;\n            } while (bVar73);\n            if ((!bVar72 && !bVar73) != bVar72) goto code_r0x0011c93b;\n          }\n          plVar54 = plVar54->next;\n          if (plVar54 == (lang_output_section_phdr_list *)0x0) break;\n        } while( true );\n      }\n    }" { (expression_statement "plVar54 = (plVar51->output_section_statement).phdrs;" (assignment_expression "plVar54 = (plVar51->output_section_statement).phdrs" identifier = (field_expression "(plVar51->output_section_statement).phdrs" (parenthesized_expression "(plVar51->output_section_statement)" ( (field_expression "plVar51->output_section_statement" identifier -> field_identifier) )) . field_identifier)) ;) (labeled_statement "joined_r0x0011c90a:\n      if (plVar54 != (lang_output_section_phdr_list *)0x0) {\n        do {\n          bVar72 = false;\n          bVar73 = plVar54->used == 0;\n          if (bVar73) {\n            pbVar7 = (byte *)plVar54->name;\n            lVar29 = 5;\n            pbVar38 = pbVar7;\n            pbVar63 = (byte *)0x130359;\n            do {\n              if (lVar29 == 0) break;\n              lVar29 = lVar29 + -1;\n              bVar72 = *pbVar38 < *pbVar63;\n              bVar73 = *pbVar38 == *pbVar63;\n              pbVar38 = pbVar38 + (ulong)bVar74 * -2 + 1;\n              pbVar63 = pbVar63 + (ulong)bVar74 * -2 + 1;\n            } while (bVar73);\n            if ((!bVar72 && !bVar73) != bVar72) goto code_r0x0011c93b;\n          }\n          plVar54 = plVar54->next;\n          if (plVar54 == (lang_output_section_phdr_list *)0x0) break;\n        } while( true );\n      }" statement_identifier : (if_statement "if (plVar54 != (lang_output_section_phdr_list *)0x0) {\n        do {\n          bVar72 = false;\n          bVar73 = plVar54->used == 0;\n          if (bVar73) {\n            pbVar7 = (byte *)plVar54->name;\n            lVar29 = 5;\n            pbVar38 = pbVar7;\n            pbVar63 = (byte *)0x130359;\n            do {\n              if (lVar29 == 0) break;\n              lVar29 = lVar29 + -1;\n              bVar72 = *pbVar38 < *pbVar63;\n              bVar73 = *pbVar38 == *pbVar63;\n              pbVar38 = pbVar38 + (ulong)bVar74 * -2 + 1;\n              pbVar63 = pbVar63 + (ulong)bVar74 * -2 + 1;\n            } while (bVar73);\n            if ((!bVar72 && !bVar73) != bVar72) goto code_r0x0011c93b;\n          }\n          plVar54 = plVar54->next;\n          if (plVar54 == (lang_output_section_phdr_list *)0x0) break;\n        } while( true );\n      }" if (parenthesized_expression "(plVar54 != (lang_output_section_phdr_list *)0x0)" ( (binary_expression "plVar54 != (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        do {\n          bVar72 = false;\n          bVar73 = plVar54->used == 0;\n          if (bVar73) {\n            pbVar7 = (byte *)plVar54->name;\n            lVar29 = 5;\n            pbVar38 = pbVar7;\n            pbVar63 = (byte *)0x130359;\n            do {\n              if (lVar29 == 0) break;\n              lVar29 = lVar29 + -1;\n              bVar72 = *pbVar38 < *pbVar63;\n              bVar73 = *pbVar38 == *pbVar63;\n              pbVar38 = pbVar38 + (ulong)bVar74 * -2 + 1;\n              pbVar63 = pbVar63 + (ulong)bVar74 * -2 + 1;\n            } while (bVar73);\n            if ((!bVar72 && !bVar73) != bVar72) goto code_r0x0011c93b;\n          }\n          plVar54 = plVar54->next;\n          if (plVar54 == (lang_output_section_phdr_list *)0x0) break;\n        } while( true );\n      }" { (do_statement "do {\n          bVar72 = false;\n          bVar73 = plVar54->used == 0;\n          if (bVar73) {\n            pbVar7 = (byte *)plVar54->name;\n            lVar29 = 5;\n            pbVar38 = pbVar7;\n            pbVar63 = (byte *)0x130359;\n            do {\n              if (lVar29 == 0) break;\n              lVar29 = lVar29 + -1;\n              bVar72 = *pbVar38 < *pbVar63;\n              bVar73 = *pbVar38 == *pbVar63;\n              pbVar38 = pbVar38 + (ulong)bVar74 * -2 + 1;\n              pbVar63 = pbVar63 + (ulong)bVar74 * -2 + 1;\n            } while (bVar73);\n            if ((!bVar72 && !bVar73) != bVar72) goto code_r0x0011c93b;\n          }\n          plVar54 = plVar54->next;\n          if (plVar54 == (lang_output_section_phdr_list *)0x0) break;\n        } while( true );" do (compound_statement "{\n          bVar72 = false;\n          bVar73 = plVar54->used == 0;\n          if (bVar73) {\n            pbVar7 = (byte *)plVar54->name;\n            lVar29 = 5;\n            pbVar38 = pbVar7;\n            pbVar63 = (byte *)0x130359;\n            do {\n              if (lVar29 == 0) break;\n              lVar29 = lVar29 + -1;\n              bVar72 = *pbVar38 < *pbVar63;\n              bVar73 = *pbVar38 == *pbVar63;\n              pbVar38 = pbVar38 + (ulong)bVar74 * -2 + 1;\n              pbVar63 = pbVar63 + (ulong)bVar74 * -2 + 1;\n            } while (bVar73);\n            if ((!bVar72 && !bVar73) != bVar72) goto code_r0x0011c93b;\n          }\n          plVar54 = plVar54->next;\n          if (plVar54 == (lang_output_section_phdr_list *)0x0) break;\n        }" { (expression_statement "bVar72 = false;" (assignment_expression "bVar72 = false" identifier = false) ;) (expression_statement "bVar73 = plVar54->used == 0;" (assignment_expression "bVar73 = plVar54->used == 0" identifier = (binary_expression "plVar54->used == 0" (field_expression "plVar54->used" identifier -> field_identifier) == number_literal)) ;) (if_statement "if (bVar73) {\n            pbVar7 = (byte *)plVar54->name;\n            lVar29 = 5;\n            pbVar38 = pbVar7;\n            pbVar63 = (byte *)0x130359;\n            do {\n              if (lVar29 == 0) break;\n              lVar29 = lVar29 + -1;\n              bVar72 = *pbVar38 < *pbVar63;\n              bVar73 = *pbVar38 == *pbVar63;\n              pbVar38 = pbVar38 + (ulong)bVar74 * -2 + 1;\n              pbVar63 = pbVar63 + (ulong)bVar74 * -2 + 1;\n            } while (bVar73);\n            if ((!bVar72 && !bVar73) != bVar72) goto code_r0x0011c93b;\n          }" if (parenthesized_expression "(bVar73)" ( identifier )) (compound_statement "{\n            pbVar7 = (byte *)plVar54->name;\n            lVar29 = 5;\n            pbVar38 = pbVar7;\n            pbVar63 = (byte *)0x130359;\n            do {\n              if (lVar29 == 0) break;\n              lVar29 = lVar29 + -1;\n              bVar72 = *pbVar38 < *pbVar63;\n              bVar73 = *pbVar38 == *pbVar63;\n              pbVar38 = pbVar38 + (ulong)bVar74 * -2 + 1;\n              pbVar63 = pbVar63 + (ulong)bVar74 * -2 + 1;\n            } while (bVar73);\n            if ((!bVar72 && !bVar73) != bVar72) goto code_r0x0011c93b;\n          }" { (expression_statement "pbVar7 = (byte *)plVar54->name;" (assignment_expression "pbVar7 = (byte *)plVar54->name" identifier = (cast_expression "(byte *)plVar54->name" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "plVar54->name" identifier -> field_identifier))) ;) (expression_statement "lVar29 = 5;" (assignment_expression "lVar29 = 5" identifier = number_literal) ;) (expression_statement "pbVar38 = pbVar7;" (assignment_expression "pbVar38 = pbVar7" identifier = identifier) ;) (expression_statement "pbVar63 = (byte *)0x130359;" (assignment_expression "pbVar63 = (byte *)0x130359" identifier = (cast_expression "(byte *)0x130359" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n              if (lVar29 == 0) break;\n              lVar29 = lVar29 + -1;\n              bVar72 = *pbVar38 < *pbVar63;\n              bVar73 = *pbVar38 == *pbVar63;\n              pbVar38 = pbVar38 + (ulong)bVar74 * -2 + 1;\n              pbVar63 = pbVar63 + (ulong)bVar74 * -2 + 1;\n            } while (bVar73);" do (compound_statement "{\n              if (lVar29 == 0) break;\n              lVar29 = lVar29 + -1;\n              bVar72 = *pbVar38 < *pbVar63;\n              bVar73 = *pbVar38 == *pbVar63;\n              pbVar38 = pbVar38 + (ulong)bVar74 * -2 + 1;\n              pbVar63 = pbVar63 + (ulong)bVar74 * -2 + 1;\n            }" { (if_statement "if (lVar29 == 0) break;" if (parenthesized_expression "(lVar29 == 0)" ( (binary_expression "lVar29 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar29 = lVar29 + -1;" (assignment_expression "lVar29 = lVar29 + -1" identifier = (binary_expression "lVar29 + -1" identifier + number_literal)) ;) (expression_statement "bVar72 = *pbVar38 < *pbVar63;" (assignment_expression "bVar72 = *pbVar38 < *pbVar63" identifier = (binary_expression "*pbVar38 < *pbVar63" (pointer_expression "*pbVar38" * identifier) < (pointer_expression "*pbVar63" * identifier))) ;) (expression_statement "bVar73 = *pbVar38 == *pbVar63;" (assignment_expression "bVar73 = *pbVar38 == *pbVar63" identifier = (binary_expression "*pbVar38 == *pbVar63" (pointer_expression "*pbVar38" * identifier) == (pointer_expression "*pbVar63" * identifier))) ;) (expression_statement "pbVar38 = pbVar38 + (ulong)bVar74 * -2 + 1;" (assignment_expression "pbVar38 = pbVar38 + (ulong)bVar74 * -2 + 1" identifier = (binary_expression "pbVar38 + (ulong)bVar74 * -2 + 1" (binary_expression "pbVar38 + (ulong)bVar74 * -2" identifier + (binary_expression "(ulong)bVar74 * -2" (cast_expression "(ulong)bVar74" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar63 = pbVar63 + (ulong)bVar74 * -2 + 1;" (assignment_expression "pbVar63 = pbVar63 + (ulong)bVar74 * -2 + 1" identifier = (binary_expression "pbVar63 + (ulong)bVar74 * -2 + 1" (binary_expression "pbVar63 + (ulong)bVar74 * -2" identifier + (binary_expression "(ulong)bVar74 * -2" (cast_expression "(ulong)bVar74" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar73)" ( identifier )) ;) (if_statement "if ((!bVar72 && !bVar73) != bVar72) goto code_r0x0011c93b;" if (parenthesized_expression "((!bVar72 && !bVar73) != bVar72)" ( (binary_expression "(!bVar72 && !bVar73) != bVar72" (parenthesized_expression "(!bVar72 && !bVar73)" ( (binary_expression "!bVar72 && !bVar73" (unary_expression "!bVar72" ! identifier) && (unary_expression "!bVar73" ! identifier)) )) != identifier) )) (goto_statement "goto code_r0x0011c93b;" goto statement_identifier ;)) })) (expression_statement "plVar54 = plVar54->next;" (assignment_expression "plVar54 = plVar54->next" identifier = (field_expression "plVar54->next" identifier -> field_identifier)) ;) (if_statement "if (plVar54 == (lang_output_section_phdr_list *)0x0) break;" if (parenthesized_expression "(plVar54 == (lang_output_section_phdr_list *)0x0)" ( (binary_expression "plVar54 == (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)) )) (break_statement "break;" break ;)) }) while (parenthesized_expression "( true )" ( true )) ;) }))) })) })) (if_statement "if (((link_info._3_1_ & 0x10) != 0) && ((link_info._0_1_ & 3) != 2)) {\n    power = 0;\n    lang_find_relro_sections_1\n              (expld.dataseg.relro_start_stat,(seg_align_type *)&power,has_relro_section);\n    if (power == 0) {\n      link_info._3_1_ = link_info._3_1_ & 0xef;\n    }\n  }" if (parenthesized_expression "(((link_info._3_1_ & 0x10) != 0) && ((link_info._0_1_ & 3) != 2))" ( (binary_expression "((link_info._3_1_ & 0x10) != 0) && ((link_info._0_1_ & 3) != 2)" (parenthesized_expression "((link_info._3_1_ & 0x10) != 0)" ( (binary_expression "(link_info._3_1_ & 0x10) != 0" (parenthesized_expression "(link_info._3_1_ & 0x10)" ( (binary_expression "link_info._3_1_ & 0x10" (field_expression "link_info._3_1_" identifier . field_identifier) & number_literal) )) != number_literal) )) && (parenthesized_expression "((link_info._0_1_ & 3) != 2)" ( (binary_expression "(link_info._0_1_ & 3) != 2" (parenthesized_expression "(link_info._0_1_ & 3)" ( (binary_expression "link_info._0_1_ & 3" (field_expression "link_info._0_1_" identifier . field_identifier) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n    power = 0;\n    lang_find_relro_sections_1\n              (expld.dataseg.relro_start_stat,(seg_align_type *)&power,has_relro_section);\n    if (power == 0) {\n      link_info._3_1_ = link_info._3_1_ & 0xef;\n    }\n  }" { (expression_statement "power = 0;" (assignment_expression "power = 0" identifier = number_literal) ;) (expression_statement "lang_find_relro_sections_1\n              (expld.dataseg.relro_start_stat,(seg_align_type *)&power,has_relro_section);" (call_expression "lang_find_relro_sections_1\n              (expld.dataseg.relro_start_stat,(seg_align_type *)&power,has_relro_section)" identifier (argument_list "(expld.dataseg.relro_start_stat,(seg_align_type *)&power,has_relro_section)" ( (field_expression "expld.dataseg.relro_start_stat" (field_expression "expld.dataseg" identifier . field_identifier) . field_identifier) , (cast_expression "(seg_align_type *)&power" ( (type_descriptor "seg_align_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&power" & identifier)) , identifier ))) ;) (if_statement "if (power == 0) {\n      link_info._3_1_ = link_info._3_1_ & 0xef;\n    }" if (parenthesized_expression "(power == 0)" ( (binary_expression "power == 0" identifier == number_literal) )) (compound_statement "{\n      link_info._3_1_ = link_info._3_1_ & 0xef;\n    }" { (expression_statement "link_info._3_1_ = link_info._3_1_ & 0xef;" (assignment_expression "link_info._3_1_ = link_info._3_1_ & 0xef" (field_expression "link_info._3_1_" identifier . field_identifier) = (binary_expression "link_info._3_1_ & 0xef" (field_expression "link_info._3_1_" identifier . field_identifier) & number_literal)) ;) })) })) (expression_statement "lang_size_sections((bfd_boolean *)0x0,\n                     (uint)(1 < (uint)link_info.disable_target_specific_optimizations));" (call_expression "lang_size_sections((bfd_boolean *)0x0,\n                     (uint)(1 < (uint)link_info.disable_target_specific_optimizations))" identifier (argument_list "((bfd_boolean *)0x0,\n                     (uint)(1 < (uint)link_info.disable_target_specific_optimizations))" ( (cast_expression "(bfd_boolean *)0x0" ( (type_descriptor "bfd_boolean *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (call_expression "(uint)(1 < (uint)link_info.disable_target_specific_optimizations)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(1 < (uint)link_info.disable_target_specific_optimizations)" ( (binary_expression "1 < (uint)link_info.disable_target_specific_optimizations" number_literal < (cast_expression "(uint)link_info.disable_target_specific_optimizations" ( (type_descriptor "uint" type_identifier) ) (field_expression "link_info.disable_target_specific_optimizations" identifier . field_identifier))) ))) ))) ;) (expression_statement "ldemul_after_allocation();" (call_expression "ldemul_after_allocation()" identifier (argument_list "()" ( ))) ;) (expression_statement "pbVar69 = link_info.output_bfd;" (assignment_expression "pbVar69 = link_info.output_bfd" identifier = (field_expression "link_info.output_bfd" identifier . field_identifier)) ;) (expression_statement "uVar3 = opb_shift;" (assignment_expression "uVar3 = opb_shift" identifier = identifier) ;) (if_statement "if (start_stop_count != 0) {\n    ppbVar55 = start_stop_syms + start_stop_count;\n    ppbVar35 = start_stop_syms;\n    do {\n      while (pbVar8 = *ppbVar35, (*(ushort *)&pbVar8->field_0x18 & 0x8ff) == 3) {\n        pcVar27 = (pbVar8->root).string;\n        if (*pcVar27 != '.') {\n          cVar24 = pbVar69->xvec->symbol_leading_char;\n          pbVar39 = ((pbVar8->u).def.section)->output_section;\n          (pbVar8->u).def.section = pbVar39;\n          if (pcVar27[(int)((cVar24 != '\0') + 4)] == 'o') {\n            (pbVar8->u).def.value = pbVar39->size >> ((byte)uVar3 & 0x3f);\n          }\n          break;\n        }\n        if (pcVar27[2] != 'i') break;\n        ppbVar35 = ppbVar35 + 1;\n        uVar53 = ((pbVar8->u).def.section)->size;\n        (pbVar8->u).undef.abfd = (bfd *)0x17ed50;\n        (pbVar8->u).def.value = uVar53 >> ((byte)uVar3 & 0x3f);\n        if (ppbVar35 == ppbVar55) goto LAB_0011ca60;\n      }\n      ppbVar35 = ppbVar35 + 1;\n    } while (ppbVar35 != ppbVar55);\n  }" if (parenthesized_expression "(start_stop_count != 0)" ( (binary_expression "start_stop_count != 0" identifier != number_literal) )) (compound_statement "{\n    ppbVar55 = start_stop_syms + start_stop_count;\n    ppbVar35 = start_stop_syms;\n    do {\n      while (pbVar8 = *ppbVar35, (*(ushort *)&pbVar8->field_0x18 & 0x8ff) == 3) {\n        pcVar27 = (pbVar8->root).string;\n        if (*pcVar27 != '.') {\n          cVar24 = pbVar69->xvec->symbol_leading_char;\n          pbVar39 = ((pbVar8->u).def.section)->output_section;\n          (pbVar8->u).def.section = pbVar39;\n          if (pcVar27[(int)((cVar24 != '\0') + 4)] == 'o') {\n            (pbVar8->u).def.value = pbVar39->size >> ((byte)uVar3 & 0x3f);\n          }\n          break;\n        }\n        if (pcVar27[2] != 'i') break;\n        ppbVar35 = ppbVar35 + 1;\n        uVar53 = ((pbVar8->u).def.section)->size;\n        (pbVar8->u).undef.abfd = (bfd *)0x17ed50;\n        (pbVar8->u).def.value = uVar53 >> ((byte)uVar3 & 0x3f);\n        if (ppbVar35 == ppbVar55) goto LAB_0011ca60;\n      }\n      ppbVar35 = ppbVar35 + 1;\n    } while (ppbVar35 != ppbVar55);\n  }" { (expression_statement "ppbVar55 = start_stop_syms + start_stop_count;" (assignment_expression "ppbVar55 = start_stop_syms + start_stop_count" identifier = (binary_expression "start_stop_syms + start_stop_count" identifier + identifier)) ;) (expression_statement "ppbVar35 = start_stop_syms;" (assignment_expression "ppbVar35 = start_stop_syms" identifier = identifier) ;) (do_statement "do {\n      while (pbVar8 = *ppbVar35, (*(ushort *)&pbVar8->field_0x18 & 0x8ff) == 3) {\n        pcVar27 = (pbVar8->root).string;\n        if (*pcVar27 != '.') {\n          cVar24 = pbVar69->xvec->symbol_leading_char;\n          pbVar39 = ((pbVar8->u).def.section)->output_section;\n          (pbVar8->u).def.section = pbVar39;\n          if (pcVar27[(int)((cVar24 != '\0') + 4)] == 'o') {\n            (pbVar8->u).def.value = pbVar39->size >> ((byte)uVar3 & 0x3f);\n          }\n          break;\n        }\n        if (pcVar27[2] != 'i') break;\n        ppbVar35 = ppbVar35 + 1;\n        uVar53 = ((pbVar8->u).def.section)->size;\n        (pbVar8->u).undef.abfd = (bfd *)0x17ed50;\n        (pbVar8->u).def.value = uVar53 >> ((byte)uVar3 & 0x3f);\n        if (ppbVar35 == ppbVar55) goto LAB_0011ca60;\n      }\n      ppbVar35 = ppbVar35 + 1;\n    } while (ppbVar35 != ppbVar55);" do (compound_statement "{\n      while (pbVar8 = *ppbVar35, (*(ushort *)&pbVar8->field_0x18 & 0x8ff) == 3) {\n        pcVar27 = (pbVar8->root).string;\n        if (*pcVar27 != '.') {\n          cVar24 = pbVar69->xvec->symbol_leading_char;\n          pbVar39 = ((pbVar8->u).def.section)->output_section;\n          (pbVar8->u).def.section = pbVar39;\n          if (pcVar27[(int)((cVar24 != '\0') + 4)] == 'o') {\n            (pbVar8->u).def.value = pbVar39->size >> ((byte)uVar3 & 0x3f);\n          }\n          break;\n        }\n        if (pcVar27[2] != 'i') break;\n        ppbVar35 = ppbVar35 + 1;\n        uVar53 = ((pbVar8->u).def.section)->size;\n        (pbVar8->u).undef.abfd = (bfd *)0x17ed50;\n        (pbVar8->u).def.value = uVar53 >> ((byte)uVar3 & 0x3f);\n        if (ppbVar35 == ppbVar55) goto LAB_0011ca60;\n      }\n      ppbVar35 = ppbVar35 + 1;\n    }" { (while_statement "while (pbVar8 = *ppbVar35, (*(ushort *)&pbVar8->field_0x18 & 0x8ff) == 3) {\n        pcVar27 = (pbVar8->root).string;\n        if (*pcVar27 != '.') {\n          cVar24 = pbVar69->xvec->symbol_leading_char;\n          pbVar39 = ((pbVar8->u).def.section)->output_section;\n          (pbVar8->u).def.section = pbVar39;\n          if (pcVar27[(int)((cVar24 != '\0') + 4)] == 'o') {\n            (pbVar8->u).def.value = pbVar39->size >> ((byte)uVar3 & 0x3f);\n          }\n          break;\n        }\n        if (pcVar27[2] != 'i') break;\n        ppbVar35 = ppbVar35 + 1;\n        uVar53 = ((pbVar8->u).def.section)->size;\n        (pbVar8->u).undef.abfd = (bfd *)0x17ed50;\n        (pbVar8->u).def.value = uVar53 >> ((byte)uVar3 & 0x3f);\n        if (ppbVar35 == ppbVar55) goto LAB_0011ca60;\n      }" while (parenthesized_expression "(pbVar8 = *ppbVar35, (*(ushort *)&pbVar8->field_0x18 & 0x8ff) == 3)" ( (comma_expression "pbVar8 = *ppbVar35, (*(ushort *)&pbVar8->field_0x18 & 0x8ff) == 3" (assignment_expression "pbVar8 = *ppbVar35" identifier = (pointer_expression "*ppbVar35" * identifier)) , (binary_expression "(*(ushort *)&pbVar8->field_0x18 & 0x8ff) == 3" (parenthesized_expression "(*(ushort *)&pbVar8->field_0x18 & 0x8ff)" ( (binary_expression "*(ushort *)&pbVar8->field_0x18 & 0x8ff" (pointer_expression "*(ushort *)&pbVar8->field_0x18" * (cast_expression "(ushort *)&pbVar8->field_0x18" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pbVar8->field_0x18" & (field_expression "pbVar8->field_0x18" identifier -> field_identifier)))) & number_literal) )) == number_literal)) )) (compound_statement "{\n        pcVar27 = (pbVar8->root).string;\n        if (*pcVar27 != '.') {\n          cVar24 = pbVar69->xvec->symbol_leading_char;\n          pbVar39 = ((pbVar8->u).def.section)->output_section;\n          (pbVar8->u).def.section = pbVar39;\n          if (pcVar27[(int)((cVar24 != '\0') + 4)] == 'o') {\n            (pbVar8->u).def.value = pbVar39->size >> ((byte)uVar3 & 0x3f);\n          }\n          break;\n        }\n        if (pcVar27[2] != 'i') break;\n        ppbVar35 = ppbVar35 + 1;\n        uVar53 = ((pbVar8->u).def.section)->size;\n        (pbVar8->u).undef.abfd = (bfd *)0x17ed50;\n        (pbVar8->u).def.value = uVar53 >> ((byte)uVar3 & 0x3f);\n        if (ppbVar35 == ppbVar55) goto LAB_0011ca60;\n      }" { (expression_statement "pcVar27 = (pbVar8->root).string;" (assignment_expression "pcVar27 = (pbVar8->root).string" identifier = (field_expression "(pbVar8->root).string" (parenthesized_expression "(pbVar8->root)" ( (field_expression "pbVar8->root" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if (*pcVar27 != '.') {\n          cVar24 = pbVar69->xvec->symbol_leading_char;\n          pbVar39 = ((pbVar8->u).def.section)->output_section;\n          (pbVar8->u).def.section = pbVar39;\n          if (pcVar27[(int)((cVar24 != '\0') + 4)] == 'o') {\n            (pbVar8->u).def.value = pbVar39->size >> ((byte)uVar3 & 0x3f);\n          }\n          break;\n        }" if (parenthesized_expression "(*pcVar27 != '.')" ( (binary_expression "*pcVar27 != '.'" (pointer_expression "*pcVar27" * identifier) != (char_literal "'.'" ' character ')) )) (compound_statement "{\n          cVar24 = pbVar69->xvec->symbol_leading_char;\n          pbVar39 = ((pbVar8->u).def.section)->output_section;\n          (pbVar8->u).def.section = pbVar39;\n          if (pcVar27[(int)((cVar24 != '\0') + 4)] == 'o') {\n            (pbVar8->u).def.value = pbVar39->size >> ((byte)uVar3 & 0x3f);\n          }\n          break;\n        }" { (expression_statement "cVar24 = pbVar69->xvec->symbol_leading_char;" (assignment_expression "cVar24 = pbVar69->xvec->symbol_leading_char" identifier = (field_expression "pbVar69->xvec->symbol_leading_char" (field_expression "pbVar69->xvec" identifier -> field_identifier) -> field_identifier)) ;) (expression_statement "pbVar39 = ((pbVar8->u).def.section)->output_section;" (assignment_expression "pbVar39 = ((pbVar8->u).def.section)->output_section" identifier = (field_expression "((pbVar8->u).def.section)->output_section" (parenthesized_expression "((pbVar8->u).def.section)" ( (field_expression "(pbVar8->u).def.section" (field_expression "(pbVar8->u).def" (parenthesized_expression "(pbVar8->u)" ( (field_expression "pbVar8->u" identifier -> field_identifier) )) . field_identifier) . field_identifier) )) -> field_identifier)) ;) (expression_statement "(pbVar8->u).def.section = pbVar39;" (assignment_expression "(pbVar8->u).def.section = pbVar39" (field_expression "(pbVar8->u).def.section" (field_expression "(pbVar8->u).def" (parenthesized_expression "(pbVar8->u)" ( (field_expression "pbVar8->u" identifier -> field_identifier) )) . field_identifier) . field_identifier) = identifier) ;) (if_statement "if (pcVar27[(int)((cVar24 != '\0') + 4)] == 'o') {\n            (pbVar8->u).def.value = pbVar39->size >> ((byte)uVar3 & 0x3f);\n          }" if (parenthesized_expression "(pcVar27[(int)((cVar24 != '\0') + 4)] == 'o')" ( (binary_expression "pcVar27[(int)((cVar24 != '\0') + 4)] == 'o'" (subscript_expression "pcVar27[(int)((cVar24 != '\0') + 4)]" identifier [ (cast_expression "(int)((cVar24 != '\0') + 4)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((cVar24 != '\0') + 4)" ( (binary_expression "(cVar24 != '\0') + 4" (parenthesized_expression "(cVar24 != '\0')" ( (binary_expression "cVar24 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) + number_literal) ))) ]) == (char_literal "'o'" ' character ')) )) (compound_statement "{\n            (pbVar8->u).def.value = pbVar39->size >> ((byte)uVar3 & 0x3f);\n          }" { (expression_statement "(pbVar8->u).def.value = pbVar39->size >> ((byte)uVar3 & 0x3f);" (assignment_expression "(pbVar8->u).def.value = pbVar39->size >> ((byte)uVar3 & 0x3f)" (field_expression "(pbVar8->u).def.value" (field_expression "(pbVar8->u).def" (parenthesized_expression "(pbVar8->u)" ( (field_expression "pbVar8->u" identifier -> field_identifier) )) . field_identifier) . field_identifier) = (binary_expression "pbVar39->size >> ((byte)uVar3 & 0x3f)" (field_expression "pbVar39->size" identifier -> field_identifier) >> (parenthesized_expression "((byte)uVar3 & 0x3f)" ( (binary_expression "(byte)uVar3 & 0x3f" (cast_expression "(byte)uVar3" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )))) ;) })) (break_statement "break;" break ;) })) (if_statement "if (pcVar27[2] != 'i') break;" if (parenthesized_expression "(pcVar27[2] != 'i')" ( (binary_expression "pcVar27[2] != 'i'" (subscript_expression "pcVar27[2]" identifier [ number_literal ]) != (char_literal "'i'" ' character ')) )) (break_statement "break;" break ;)) (expression_statement "ppbVar35 = ppbVar35 + 1;" (assignment_expression "ppbVar35 = ppbVar35 + 1" identifier = (binary_expression "ppbVar35 + 1" identifier + number_literal)) ;) (expression_statement "uVar53 = ((pbVar8->u).def.section)->size;" (assignment_expression "uVar53 = ((pbVar8->u).def.section)->size" identifier = (field_expression "((pbVar8->u).def.section)->size" (parenthesized_expression "((pbVar8->u).def.section)" ( (field_expression "(pbVar8->u).def.section" (field_expression "(pbVar8->u).def" (parenthesized_expression "(pbVar8->u)" ( (field_expression "pbVar8->u" identifier -> field_identifier) )) . field_identifier) . field_identifier) )) -> field_identifier)) ;) (expression_statement "(pbVar8->u).undef.abfd = (bfd *)0x17ed50;" (assignment_expression "(pbVar8->u).undef.abfd = (bfd *)0x17ed50" (field_expression "(pbVar8->u).undef.abfd" (field_expression "(pbVar8->u).undef" (parenthesized_expression "(pbVar8->u)" ( (field_expression "pbVar8->u" identifier -> field_identifier) )) . field_identifier) . field_identifier) = (cast_expression "(bfd *)0x17ed50" ( (type_descriptor "bfd *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "(pbVar8->u).def.value = uVar53 >> ((byte)uVar3 & 0x3f);" (assignment_expression "(pbVar8->u).def.value = uVar53 >> ((byte)uVar3 & 0x3f)" (field_expression "(pbVar8->u).def.value" (field_expression "(pbVar8->u).def" (parenthesized_expression "(pbVar8->u)" ( (field_expression "pbVar8->u" identifier -> field_identifier) )) . field_identifier) . field_identifier) = (binary_expression "uVar53 >> ((byte)uVar3 & 0x3f)" identifier >> (parenthesized_expression "((byte)uVar3 & 0x3f)" ( (binary_expression "(byte)uVar3 & 0x3f" (cast_expression "(byte)uVar3" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )))) ;) (if_statement "if (ppbVar35 == ppbVar55) goto LAB_0011ca60;" if (parenthesized_expression "(ppbVar35 == ppbVar55)" ( (binary_expression "ppbVar35 == ppbVar55" identifier == identifier) )) (goto_statement "goto LAB_0011ca60;" goto statement_identifier ;)) })) (expression_statement "ppbVar35 = ppbVar35 + 1;" (assignment_expression "ppbVar35 = ppbVar35 + 1" identifier = (binary_expression "ppbVar35 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(ppbVar35 != ppbVar55)" ( (binary_expression "ppbVar35 != ppbVar55" identifier != identifier) )) ;) })) (labeled_statement "LAB_0011ca60:\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 "prVar17 = require_defined_symbol_list;" (assignment_expression "prVar17 = require_defined_symbol_list" identifier = identifier) ;) (if_statement "if (command_line.check_section_addresses != '\0') {\n    cVar24 = bfd_arch_bits_per_address(link_info.output_bfd);\n    pbVar39 = (link_info.output_bfd)->sections;\n    uVar53 = (1L << (cVar24 - 1U & 0x3f)) * 2 - 1;\n    if (pbVar39 != (bfd_section *)0x0) {\n      do {\n        if ((pbVar39->flags & 1) != 0) {\n          uVar50 = pbVar39->vma + pbVar39->size & uVar53;\n          if ((uVar50 == 0) || ((pbVar39->vma & uVar53) <= uVar50)) {\n            uVar50 = pbVar39->size + pbVar39->lma & uVar53;\n            if ((uVar50 == 0) || ((pbVar39->lma & uVar53) <= uVar50)) goto LAB_0011d2f0;\n            pcVar27 = pbVar39->name;\n            pcVar36 = "%X%P: section %s LMA wraps around address space\n";\n          }\n          else {\n            pcVar27 = pbVar39->name;\n            pcVar36 = "%X%P: section %s VMA wraps around address space\n";\n          }\n          pcVar36 = (char *)dcgettext(0,pcVar36,5);\n          einfo(pcVar36,pcVar27);\n        }\nLAB_0011d2f0:\n        pbVar39 = pbVar39->next;\n      } while (pbVar39 != (bfd_section *)0x0);\n    }\n    prVar17 = require_defined_symbol_list;\n    if (1 < (link_info.output_bfd)->section_count) {\n      uVar53 = 0;\n      __ptr_00 = (long *)xmalloc((ulong)(link_info.output_bfd)->section_count << 4);\n      pbVar39 = (link_info.output_bfd)->sections;\n      if (pbVar39 != (bfd_section *)0x0) {\n        do {\n          uVar50 = uVar53;\n          if ((((pbVar39->flags & 1) != 0) && ((pbVar39->flags & 0x402) != 0x400)) &&\n             (pbVar39->size != 0)) {\n            uVar50 = uVar53 + 1;\n            __ptr_00[uVar53 * 2] = (long)pbVar39;\n            *(undefined4 *)(__ptr_00 + uVar53 * 2 + 1) = 0;\n          }\n          pbVar39 = pbVar39->next;\n          uVar53 = uVar50;\n        } while (pbVar39 != (bfd_section *)0x0);\n        if (1 < uVar50) {\n          qsort(__ptr_00,uVar50,0x10,sort_sections_by_lma);\n          puVar40 = (undefined8 *)0x0;\n          plVar56 = __ptr_00;\n          uVar53 = 0;\n          uVar45 = 0;\n          do {\n            puVar60 = (undefined8 *)*plVar56;\n            puVar41 = puVar40;\n            uVar67 = uVar53;\n            uVar42 = uVar45;\n            if ((*(byte *)(puVar60 + 4) & 2) != 0) {\n              uVar67 = puVar60[6];\n              uVar42 = (uVar67 - 1) + ((ulong)puVar60[7] >> ((byte)opb_shift & 0x3f));\n              puVar41 = puVar60;\n              if ((puVar40 != (undefined8 *)0x0) && ((uVar67 <= uVar45 || (uVar45 < uVar53)))) {\n                uVar37 = *puVar40;\n                uVar16 = *puVar60;\n                pcVar27 = (char *)dcgettext(0,\n                                            "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n"\n                                            ,5);\n                einfo(pcVar27,uVar16,uVar67,uVar42,uVar37,uVar53,uVar45);\n                *(undefined4 *)(plVar56 + 1) = 1;\n              }\n            }\n            plVar56 = plVar56 + 2;\n            puVar40 = puVar41;\n            uVar53 = uVar67;\n            uVar45 = uVar42;\n          } while (plVar56 != __ptr_00 + uVar50 * 2);\n          qsort(__ptr_00,uVar50,0x10,sort_sections_by_vma);\n          puVar40 = (undefined8 *)*__ptr_00;\n          uVar42 = 1;\n          uVar53 = puVar40[5];\n          uVar45 = uVar53;\n          do {\n            lVar29 = uVar42 * 2;\n            if (*(ulong *)(__ptr_00[lVar29] + 0x28) == uVar45) goto LAB_0011d4c4;\n            uVar42 = uVar42 + 1;\n            uVar45 = *(ulong *)(__ptr_00[lVar29] + 0x28);\n          } while (uVar42 != uVar50);\n          uVar42 = 0;\n          uVar45 = (uVar53 - 1) + ((ulong)puVar40[7] >> ((byte)opb_shift & 0x3f));\n          plVar56 = __ptr_00;\n          while( true ) {\n            uVar71 = uVar45;\n            uVar67 = uVar53;\n            puVar60 = puVar40;\n            plVar57 = plVar56 + 2;\n            uVar42 = uVar42 + 1;\n            if (uVar42 == uVar50) break;\n            puVar40 = (undefined8 *)*plVar57;\n            plVar1 = plVar56 + 3;\n            uVar53 = puVar40[5];\n            uVar45 = (uVar53 - 1) + ((ulong)puVar40[7] >> ((byte)opb_shift & 0x3f));\n            plVar56 = plVar57;\n            if (((int)*plVar1 == 0) && ((uVar53 <= uVar71 || (uVar71 < uVar67)))) {\n              uVar37 = *puVar60;\n              uVar16 = *puVar40;\n              pcVar27 = (char *)dcgettext(0,\n                                          "%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n"\n                                          ,5);\n              einfo(pcVar27,uVar16,uVar53,uVar45,uVar37,uVar67,uVar71);\n            }\n          }\nLAB_0011d4c4:\n          free(__ptr_00);\n          for (pmVar52 = lang_memory_region_list; prVar17 = require_defined_symbol_list,\n              pmVar52 != (lang_memory_region_type *)0x0; pmVar52 = pmVar52->next) {\n            if (pmVar52->had_full_message != 0) {\n              pcVar27 = (pmVar52->name_list).name;\n              lVar29 = pmVar52->current - (pmVar52->length + pmVar52->origin);\n              pcVar36 = (char *)dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                           "%X%P: region `%s\' overflowed by %lu bytes\n",lVar29,5);\n              einfo(pcVar36,pcVar27,lVar29);\n            }\n          }\n          goto joined_r0x0011ca92;\n        }\n      }\n      free(__ptr_00);\n      prVar17 = 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    cVar24 = bfd_arch_bits_per_address(link_info.output_bfd);\n    pbVar39 = (link_info.output_bfd)->sections;\n    uVar53 = (1L << (cVar24 - 1U & 0x3f)) * 2 - 1;\n    if (pbVar39 != (bfd_section *)0x0) {\n      do {\n        if ((pbVar39->flags & 1) != 0) {\n          uVar50 = pbVar39->vma + pbVar39->size & uVar53;\n          if ((uVar50 == 0) || ((pbVar39->vma & uVar53) <= uVar50)) {\n            uVar50 = pbVar39->size + pbVar39->lma & uVar53;\n            if ((uVar50 == 0) || ((pbVar39->lma & uVar53) <= uVar50)) goto LAB_0011d2f0;\n            pcVar27 = pbVar39->name;\n            pcVar36 = "%X%P: section %s LMA wraps around address space\n";\n          }\n          else {\n            pcVar27 = pbVar39->name;\n            pcVar36 = "%X%P: section %s VMA wraps around address space\n";\n          }\n          pcVar36 = (char *)dcgettext(0,pcVar36,5);\n          einfo(pcVar36,pcVar27);\n        }\nLAB_0011d2f0:\n        pbVar39 = pbVar39->next;\n      } while (pbVar39 != (bfd_section *)0x0);\n    }\n    prVar17 = require_defined_symbol_list;\n    if (1 < (link_info.output_bfd)->section_count) {\n      uVar53 = 0;\n      __ptr_00 = (long *)xmalloc((ulong)(link_info.output_bfd)->section_count << 4);\n      pbVar39 = (link_info.output_bfd)->sections;\n      if (pbVar39 != (bfd_section *)0x0) {\n        do {\n          uVar50 = uVar53;\n          if ((((pbVar39->flags & 1) != 0) && ((pbVar39->flags & 0x402) != 0x400)) &&\n             (pbVar39->size != 0)) {\n            uVar50 = uVar53 + 1;\n            __ptr_00[uVar53 * 2] = (long)pbVar39;\n            *(undefined4 *)(__ptr_00 + uVar53 * 2 + 1) = 0;\n          }\n          pbVar39 = pbVar39->next;\n          uVar53 = uVar50;\n        } while (pbVar39 != (bfd_section *)0x0);\n        if (1 < uVar50) {\n          qsort(__ptr_00,uVar50,0x10,sort_sections_by_lma);\n          puVar40 = (undefined8 *)0x0;\n          plVar56 = __ptr_00;\n          uVar53 = 0;\n          uVar45 = 0;\n          do {\n            puVar60 = (undefined8 *)*plVar56;\n            puVar41 = puVar40;\n            uVar67 = uVar53;\n            uVar42 = uVar45;\n            if ((*(byte *)(puVar60 + 4) & 2) != 0) {\n              uVar67 = puVar60[6];\n              uVar42 = (uVar67 - 1) + ((ulong)puVar60[7] >> ((byte)opb_shift & 0x3f));\n              puVar41 = puVar60;\n              if ((puVar40 != (undefined8 *)0x0) && ((uVar67 <= uVar45 || (uVar45 < uVar53)))) {\n                uVar37 = *puVar40;\n                uVar16 = *puVar60;\n                pcVar27 = (char *)dcgettext(0,\n                                            "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n"\n                                            ,5);\n                einfo(pcVar27,uVar16,uVar67,uVar42,uVar37,uVar53,uVar45);\n                *(undefined4 *)(plVar56 + 1) = 1;\n              }\n            }\n            plVar56 = plVar56 + 2;\n            puVar40 = puVar41;\n            uVar53 = uVar67;\n            uVar45 = uVar42;\n          } while (plVar56 != __ptr_00 + uVar50 * 2);\n          qsort(__ptr_00,uVar50,0x10,sort_sections_by_vma);\n          puVar40 = (undefined8 *)*__ptr_00;\n          uVar42 = 1;\n          uVar53 = puVar40[5];\n          uVar45 = uVar53;\n          do {\n            lVar29 = uVar42 * 2;\n            if (*(ulong *)(__ptr_00[lVar29] + 0x28) == uVar45) goto LAB_0011d4c4;\n            uVar42 = uVar42 + 1;\n            uVar45 = *(ulong *)(__ptr_00[lVar29] + 0x28);\n          } while (uVar42 != uVar50);\n          uVar42 = 0;\n          uVar45 = (uVar53 - 1) + ((ulong)puVar40[7] >> ((byte)opb_shift & 0x3f));\n          plVar56 = __ptr_00;\n          while( true ) {\n            uVar71 = uVar45;\n            uVar67 = uVar53;\n            puVar60 = puVar40;\n            plVar57 = plVar56 + 2;\n            uVar42 = uVar42 + 1;\n            if (uVar42 == uVar50) break;\n            puVar40 = (undefined8 *)*plVar57;\n            plVar1 = plVar56 + 3;\n            uVar53 = puVar40[5];\n            uVar45 = (uVar53 - 1) + ((ulong)puVar40[7] >> ((byte)opb_shift & 0x3f));\n            plVar56 = plVar57;\n            if (((int)*plVar1 == 0) && ((uVar53 <= uVar71 || (uVar71 < uVar67)))) {\n              uVar37 = *puVar60;\n              uVar16 = *puVar40;\n              pcVar27 = (char *)dcgettext(0,\n                                          "%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n"\n                                          ,5);\n              einfo(pcVar27,uVar16,uVar53,uVar45,uVar37,uVar67,uVar71);\n            }\n          }\nLAB_0011d4c4:\n          free(__ptr_00);\n          for (pmVar52 = lang_memory_region_list; prVar17 = require_defined_symbol_list,\n              pmVar52 != (lang_memory_region_type *)0x0; pmVar52 = pmVar52->next) {\n            if (pmVar52->had_full_message != 0) {\n              pcVar27 = (pmVar52->name_list).name;\n              lVar29 = pmVar52->current - (pmVar52->length + pmVar52->origin);\n              pcVar36 = (char *)dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                           "%X%P: region `%s\' overflowed by %lu bytes\n",lVar29,5);\n              einfo(pcVar36,pcVar27,lVar29);\n            }\n          }\n          goto joined_r0x0011ca92;\n        }\n      }\n      free(__ptr_00);\n      prVar17 = require_defined_symbol_list;\n    }\n  }" { (expression_statement "cVar24 = bfd_arch_bits_per_address(link_info.output_bfd);" (assignment_expression "cVar24 = 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 "pbVar39 = (link_info.output_bfd)->sections;" (assignment_expression "pbVar39 = (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 "uVar53 = (1L << (cVar24 - 1U & 0x3f)) * 2 - 1;" (assignment_expression "uVar53 = (1L << (cVar24 - 1U & 0x3f)) * 2 - 1" identifier = (binary_expression "(1L << (cVar24 - 1U & 0x3f)) * 2 - 1" (binary_expression "(1L << (cVar24 - 1U & 0x3f)) * 2" (parenthesized_expression "(1L << (cVar24 - 1U & 0x3f))" ( (binary_expression "1L << (cVar24 - 1U & 0x3f)" number_literal << (parenthesized_expression "(cVar24 - 1U & 0x3f)" ( (binary_expression "cVar24 - 1U & 0x3f" (binary_expression "cVar24 - 1U" identifier - number_literal) & number_literal) ))) )) * number_literal) - number_literal)) ;) (if_statement "if (pbVar39 != (bfd_section *)0x0) {\n      do {\n        if ((pbVar39->flags & 1) != 0) {\n          uVar50 = pbVar39->vma + pbVar39->size & uVar53;\n          if ((uVar50 == 0) || ((pbVar39->vma & uVar53) <= uVar50)) {\n            uVar50 = pbVar39->size + pbVar39->lma & uVar53;\n            if ((uVar50 == 0) || ((pbVar39->lma & uVar53) <= uVar50)) goto LAB_0011d2f0;\n            pcVar27 = pbVar39->name;\n            pcVar36 = "%X%P: section %s LMA wraps around address space\n";\n          }\n          else {\n            pcVar27 = pbVar39->name;\n            pcVar36 = "%X%P: section %s VMA wraps around address space\n";\n          }\n          pcVar36 = (char *)dcgettext(0,pcVar36,5);\n          einfo(pcVar36,pcVar27);\n        }\nLAB_0011d2f0:\n        pbVar39 = pbVar39->next;\n      } while (pbVar39 != (bfd_section *)0x0);\n    }" if (parenthesized_expression "(pbVar39 != (bfd_section *)0x0)" ( (binary_expression "pbVar39 != (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 ((pbVar39->flags & 1) != 0) {\n          uVar50 = pbVar39->vma + pbVar39->size & uVar53;\n          if ((uVar50 == 0) || ((pbVar39->vma & uVar53) <= uVar50)) {\n            uVar50 = pbVar39->size + pbVar39->lma & uVar53;\n            if ((uVar50 == 0) || ((pbVar39->lma & uVar53) <= uVar50)) goto LAB_0011d2f0;\n            pcVar27 = pbVar39->name;\n            pcVar36 = "%X%P: section %s LMA wraps around address space\n";\n          }\n          else {\n            pcVar27 = pbVar39->name;\n            pcVar36 = "%X%P: section %s VMA wraps around address space\n";\n          }\n          pcVar36 = (char *)dcgettext(0,pcVar36,5);\n          einfo(pcVar36,pcVar27);\n        }\nLAB_0011d2f0:\n        pbVar39 = pbVar39->next;\n      } while (pbVar39 != (bfd_section *)0x0);\n    }" { (do_statement "do {\n        if ((pbVar39->flags & 1) != 0) {\n          uVar50 = pbVar39->vma + pbVar39->size & uVar53;\n          if ((uVar50 == 0) || ((pbVar39->vma & uVar53) <= uVar50)) {\n            uVar50 = pbVar39->size + pbVar39->lma & uVar53;\n            if ((uVar50 == 0) || ((pbVar39->lma & uVar53) <= uVar50)) goto LAB_0011d2f0;\n            pcVar27 = pbVar39->name;\n            pcVar36 = "%X%P: section %s LMA wraps around address space\n";\n          }\n          else {\n            pcVar27 = pbVar39->name;\n            pcVar36 = "%X%P: section %s VMA wraps around address space\n";\n          }\n          pcVar36 = (char *)dcgettext(0,pcVar36,5);\n          einfo(pcVar36,pcVar27);\n        }\nLAB_0011d2f0:\n        pbVar39 = pbVar39->next;\n      } while (pbVar39 != (bfd_section *)0x0);" do (compound_statement "{\n        if ((pbVar39->flags & 1) != 0) {\n          uVar50 = pbVar39->vma + pbVar39->size & uVar53;\n          if ((uVar50 == 0) || ((pbVar39->vma & uVar53) <= uVar50)) {\n            uVar50 = pbVar39->size + pbVar39->lma & uVar53;\n            if ((uVar50 == 0) || ((pbVar39->lma & uVar53) <= uVar50)) goto LAB_0011d2f0;\n            pcVar27 = pbVar39->name;\n            pcVar36 = "%X%P: section %s LMA wraps around address space\n";\n          }\n          else {\n            pcVar27 = pbVar39->name;\n            pcVar36 = "%X%P: section %s VMA wraps around address space\n";\n          }\n          pcVar36 = (char *)dcgettext(0,pcVar36,5);\n          einfo(pcVar36,pcVar27);\n        }\nLAB_0011d2f0:\n        pbVar39 = pbVar39->next;\n      }" { (if_statement "if ((pbVar39->flags & 1) != 0) {\n          uVar50 = pbVar39->vma + pbVar39->size & uVar53;\n          if ((uVar50 == 0) || ((pbVar39->vma & uVar53) <= uVar50)) {\n            uVar50 = pbVar39->size + pbVar39->lma & uVar53;\n            if ((uVar50 == 0) || ((pbVar39->lma & uVar53) <= uVar50)) goto LAB_0011d2f0;\n            pcVar27 = pbVar39->name;\n            pcVar36 = "%X%P: section %s LMA wraps around address space\n";\n          }\n          else {\n            pcVar27 = pbVar39->name;\n            pcVar36 = "%X%P: section %s VMA wraps around address space\n";\n          }\n          pcVar36 = (char *)dcgettext(0,pcVar36,5);\n          einfo(pcVar36,pcVar27);\n        }" if (parenthesized_expression "((pbVar39->flags & 1) != 0)" ( (binary_expression "(pbVar39->flags & 1) != 0" (parenthesized_expression "(pbVar39->flags & 1)" ( (binary_expression "pbVar39->flags & 1" (field_expression "pbVar39->flags" identifier -> field_identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n          uVar50 = pbVar39->vma + pbVar39->size & uVar53;\n          if ((uVar50 == 0) || ((pbVar39->vma & uVar53) <= uVar50)) {\n            uVar50 = pbVar39->size + pbVar39->lma & uVar53;\n            if ((uVar50 == 0) || ((pbVar39->lma & uVar53) <= uVar50)) goto LAB_0011d2f0;\n            pcVar27 = pbVar39->name;\n            pcVar36 = "%X%P: section %s LMA wraps around address space\n";\n          }\n          else {\n            pcVar27 = pbVar39->name;\n            pcVar36 = "%X%P: section %s VMA wraps around address space\n";\n          }\n          pcVar36 = (char *)dcgettext(0,pcVar36,5);\n          einfo(pcVar36,pcVar27);\n        }" { (expression_statement "uVar50 = pbVar39->vma + pbVar39->size & uVar53;" (assignment_expression "uVar50 = pbVar39->vma + pbVar39->size & uVar53" identifier = (binary_expression "pbVar39->vma + pbVar39->size & uVar53" (binary_expression "pbVar39->vma + pbVar39->size" (field_expression "pbVar39->vma" identifier -> field_identifier) + (field_expression "pbVar39->size" identifier -> field_identifier)) & identifier)) ;) (if_statement "if ((uVar50 == 0) || ((pbVar39->vma & uVar53) <= uVar50)) {\n            uVar50 = pbVar39->size + pbVar39->lma & uVar53;\n            if ((uVar50 == 0) || ((pbVar39->lma & uVar53) <= uVar50)) goto LAB_0011d2f0;\n            pcVar27 = pbVar39->name;\n            pcVar36 = "%X%P: section %s LMA wraps around address space\n";\n          }\n          else {\n            pcVar27 = pbVar39->name;\n            pcVar36 = "%X%P: section %s VMA wraps around address space\n";\n          }" if (parenthesized_expression "((uVar50 == 0) || ((pbVar39->vma & uVar53) <= uVar50))" ( (binary_expression "(uVar50 == 0) || ((pbVar39->vma & uVar53) <= uVar50)" (parenthesized_expression "(uVar50 == 0)" ( (binary_expression "uVar50 == 0" identifier == number_literal) )) || (parenthesized_expression "((pbVar39->vma & uVar53) <= uVar50)" ( (binary_expression "(pbVar39->vma & uVar53) <= uVar50" (parenthesized_expression "(pbVar39->vma & uVar53)" ( (binary_expression "pbVar39->vma & uVar53" (field_expression "pbVar39->vma" identifier -> field_identifier) & identifier) )) <= identifier) ))) )) (compound_statement "{\n            uVar50 = pbVar39->size + pbVar39->lma & uVar53;\n            if ((uVar50 == 0) || ((pbVar39->lma & uVar53) <= uVar50)) goto LAB_0011d2f0;\n            pcVar27 = pbVar39->name;\n            pcVar36 = "%X%P: section %s LMA wraps around address space\n";\n          }" { (expression_statement "uVar50 = pbVar39->size + pbVar39->lma & uVar53;" (assignment_expression "uVar50 = pbVar39->size + pbVar39->lma & uVar53" identifier = (binary_expression "pbVar39->size + pbVar39->lma & uVar53" (binary_expression "pbVar39->size + pbVar39->lma" (field_expression "pbVar39->size" identifier -> field_identifier) + (field_expression "pbVar39->lma" identifier -> field_identifier)) & identifier)) ;) (if_statement "if ((uVar50 == 0) || ((pbVar39->lma & uVar53) <= uVar50)) goto LAB_0011d2f0;" if (parenthesized_expression "((uVar50 == 0) || ((pbVar39->lma & uVar53) <= uVar50))" ( (binary_expression "(uVar50 == 0) || ((pbVar39->lma & uVar53) <= uVar50)" (parenthesized_expression "(uVar50 == 0)" ( (binary_expression "uVar50 == 0" identifier == number_literal) )) || (parenthesized_expression "((pbVar39->lma & uVar53) <= uVar50)" ( (binary_expression "(pbVar39->lma & uVar53) <= uVar50" (parenthesized_expression "(pbVar39->lma & uVar53)" ( (binary_expression "pbVar39->lma & uVar53" (field_expression "pbVar39->lma" identifier -> field_identifier) & identifier) )) <= identifier) ))) )) (goto_statement "goto LAB_0011d2f0;" goto statement_identifier ;)) (expression_statement "pcVar27 = pbVar39->name;" (assignment_expression "pcVar27 = pbVar39->name" identifier = (field_expression "pbVar39->name" identifier -> field_identifier)) ;) (expression_statement "pcVar36 = "%X%P: section %s LMA wraps around address space\n";" (assignment_expression "pcVar36 = "%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            pcVar27 = pbVar39->name;\n            pcVar36 = "%X%P: section %s VMA wraps around address space\n";\n          }" else (compound_statement "{\n            pcVar27 = pbVar39->name;\n            pcVar36 = "%X%P: section %s VMA wraps around address space\n";\n          }" { (expression_statement "pcVar27 = pbVar39->name;" (assignment_expression "pcVar27 = pbVar39->name" identifier = (field_expression "pbVar39->name" identifier -> field_identifier)) ;) (expression_statement "pcVar36 = "%X%P: section %s VMA wraps around address space\n";" (assignment_expression "pcVar36 = "%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 "pcVar36 = (char *)dcgettext(0,pcVar36,5);" (assignment_expression "pcVar36 = (char *)dcgettext(0,pcVar36,5)" identifier = (cast_expression "(char *)dcgettext(0,pcVar36,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,pcVar36,5)" identifier (argument_list "(0,pcVar36,5)" ( number_literal , identifier , number_literal ))))) ;) (expression_statement "einfo(pcVar36,pcVar27);" (call_expression "einfo(pcVar36,pcVar27)" identifier (argument_list "(pcVar36,pcVar27)" ( identifier , identifier ))) ;) })) (labeled_statement "LAB_0011d2f0:\n        pbVar39 = pbVar39->next;" statement_identifier : (expression_statement "pbVar39 = pbVar39->next;" (assignment_expression "pbVar39 = pbVar39->next" identifier = (field_expression "pbVar39->next" identifier -> field_identifier)) ;)) }) while (parenthesized_expression "(pbVar39 != (bfd_section *)0x0)" ( (binary_expression "pbVar39 != (bfd_section *)0x0" identifier != (cast_expression "(bfd_section *)0x0" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) (expression_statement "prVar17 = require_defined_symbol_list;" (assignment_expression "prVar17 = require_defined_symbol_list" identifier = identifier) ;) (if_statement "if (1 < (link_info.output_bfd)->section_count) {\n      uVar53 = 0;\n      __ptr_00 = (long *)xmalloc((ulong)(link_info.output_bfd)->section_count << 4);\n      pbVar39 = (link_info.output_bfd)->sections;\n      if (pbVar39 != (bfd_section *)0x0) {\n        do {\n          uVar50 = uVar53;\n          if ((((pbVar39->flags & 1) != 0) && ((pbVar39->flags & 0x402) != 0x400)) &&\n             (pbVar39->size != 0)) {\n            uVar50 = uVar53 + 1;\n            __ptr_00[uVar53 * 2] = (long)pbVar39;\n            *(undefined4 *)(__ptr_00 + uVar53 * 2 + 1) = 0;\n          }\n          pbVar39 = pbVar39->next;\n          uVar53 = uVar50;\n        } while (pbVar39 != (bfd_section *)0x0);\n        if (1 < uVar50) {\n          qsort(__ptr_00,uVar50,0x10,sort_sections_by_lma);\n          puVar40 = (undefined8 *)0x0;\n          plVar56 = __ptr_00;\n          uVar53 = 0;\n          uVar45 = 0;\n          do {\n            puVar60 = (undefined8 *)*plVar56;\n            puVar41 = puVar40;\n            uVar67 = uVar53;\n            uVar42 = uVar45;\n            if ((*(byte *)(puVar60 + 4) & 2) != 0) {\n              uVar67 = puVar60[6];\n              uVar42 = (uVar67 - 1) + ((ulong)puVar60[7] >> ((byte)opb_shift & 0x3f));\n              puVar41 = puVar60;\n              if ((puVar40 != (undefined8 *)0x0) && ((uVar67 <= uVar45 || (uVar45 < uVar53)))) {\n                uVar37 = *puVar40;\n                uVar16 = *puVar60;\n                pcVar27 = (char *)dcgettext(0,\n                                            "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n"\n                                            ,5);\n                einfo(pcVar27,uVar16,uVar67,uVar42,uVar37,uVar53,uVar45);\n                *(undefined4 *)(plVar56 + 1) = 1;\n              }\n            }\n            plVar56 = plVar56 + 2;\n            puVar40 = puVar41;\n            uVar53 = uVar67;\n            uVar45 = uVar42;\n          } while (plVar56 != __ptr_00 + uVar50 * 2);\n          qsort(__ptr_00,uVar50,0x10,sort_sections_by_vma);\n          puVar40 = (undefined8 *)*__ptr_00;\n          uVar42 = 1;\n          uVar53 = puVar40[5];\n          uVar45 = uVar53;\n          do {\n            lVar29 = uVar42 * 2;\n            if (*(ulong *)(__ptr_00[lVar29] + 0x28) == uVar45) goto LAB_0011d4c4;\n            uVar42 = uVar42 + 1;\n            uVar45 = *(ulong *)(__ptr_00[lVar29] + 0x28);\n          } while (uVar42 != uVar50);\n          uVar42 = 0;\n          uVar45 = (uVar53 - 1) + ((ulong)puVar40[7] >> ((byte)opb_shift & 0x3f));\n          plVar56 = __ptr_00;\n          while( true ) {\n            uVar71 = uVar45;\n            uVar67 = uVar53;\n            puVar60 = puVar40;\n            plVar57 = plVar56 + 2;\n            uVar42 = uVar42 + 1;\n            if (uVar42 == uVar50) break;\n            puVar40 = (undefined8 *)*plVar57;\n            plVar1 = plVar56 + 3;\n            uVar53 = puVar40[5];\n            uVar45 = (uVar53 - 1) + ((ulong)puVar40[7] >> ((byte)opb_shift & 0x3f));\n            plVar56 = plVar57;\n            if (((int)*plVar1 == 0) && ((uVar53 <= uVar71 || (uVar71 < uVar67)))) {\n              uVar37 = *puVar60;\n              uVar16 = *puVar40;\n              pcVar27 = (char *)dcgettext(0,\n                                          "%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n"\n                                          ,5);\n              einfo(pcVar27,uVar16,uVar53,uVar45,uVar37,uVar67,uVar71);\n            }\n          }\nLAB_0011d4c4:\n          free(__ptr_00);\n          for (pmVar52 = lang_memory_region_list; prVar17 = require_defined_symbol_list,\n              pmVar52 != (lang_memory_region_type *)0x0; pmVar52 = pmVar52->next) {\n            if (pmVar52->had_full_message != 0) {\n              pcVar27 = (pmVar52->name_list).name;\n              lVar29 = pmVar52->current - (pmVar52->length + pmVar52->origin);\n              pcVar36 = (char *)dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                           "%X%P: region `%s\' overflowed by %lu bytes\n",lVar29,5);\n              einfo(pcVar36,pcVar27,lVar29);\n            }\n          }\n          goto joined_r0x0011ca92;\n        }\n      }\n      free(__ptr_00);\n      prVar17 = 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      uVar53 = 0;\n      __ptr_00 = (long *)xmalloc((ulong)(link_info.output_bfd)->section_count << 4);\n      pbVar39 = (link_info.output_bfd)->sections;\n      if (pbVar39 != (bfd_section *)0x0) {\n        do {\n          uVar50 = uVar53;\n          if ((((pbVar39->flags & 1) != 0) && ((pbVar39->flags & 0x402) != 0x400)) &&\n             (pbVar39->size != 0)) {\n            uVar50 = uVar53 + 1;\n            __ptr_00[uVar53 * 2] = (long)pbVar39;\n            *(undefined4 *)(__ptr_00 + uVar53 * 2 + 1) = 0;\n          }\n          pbVar39 = pbVar39->next;\n          uVar53 = uVar50;\n        } while (pbVar39 != (bfd_section *)0x0);\n        if (1 < uVar50) {\n          qsort(__ptr_00,uVar50,0x10,sort_sections_by_lma);\n          puVar40 = (undefined8 *)0x0;\n          plVar56 = __ptr_00;\n          uVar53 = 0;\n          uVar45 = 0;\n          do {\n            puVar60 = (undefined8 *)*plVar56;\n            puVar41 = puVar40;\n            uVar67 = uVar53;\n            uVar42 = uVar45;\n            if ((*(byte *)(puVar60 + 4) & 2) != 0) {\n              uVar67 = puVar60[6];\n              uVar42 = (uVar67 - 1) + ((ulong)puVar60[7] >> ((byte)opb_shift & 0x3f));\n              puVar41 = puVar60;\n              if ((puVar40 != (undefined8 *)0x0) && ((uVar67 <= uVar45 || (uVar45 < uVar53)))) {\n                uVar37 = *puVar40;\n                uVar16 = *puVar60;\n                pcVar27 = (char *)dcgettext(0,\n                                            "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n"\n                                            ,5);\n                einfo(pcVar27,uVar16,uVar67,uVar42,uVar37,uVar53,uVar45);\n                *(undefined4 *)(plVar56 + 1) = 1;\n              }\n            }\n            plVar56 = plVar56 + 2;\n            puVar40 = puVar41;\n            uVar53 = uVar67;\n            uVar45 = uVar42;\n          } while (plVar56 != __ptr_00 + uVar50 * 2);\n          qsort(__ptr_00,uVar50,0x10,sort_sections_by_vma);\n          puVar40 = (undefined8 *)*__ptr_00;\n          uVar42 = 1;\n          uVar53 = puVar40[5];\n          uVar45 = uVar53;\n          do {\n            lVar29 = uVar42 * 2;\n            if (*(ulong *)(__ptr_00[lVar29] + 0x28) == uVar45) goto LAB_0011d4c4;\n            uVar42 = uVar42 + 1;\n            uVar45 = *(ulong *)(__ptr_00[lVar29] + 0x28);\n          } while (uVar42 != uVar50);\n          uVar42 = 0;\n          uVar45 = (uVar53 - 1) + ((ulong)puVar40[7] >> ((byte)opb_shift & 0x3f));\n          plVar56 = __ptr_00;\n          while( true ) {\n            uVar71 = uVar45;\n            uVar67 = uVar53;\n            puVar60 = puVar40;\n            plVar57 = plVar56 + 2;\n            uVar42 = uVar42 + 1;\n            if (uVar42 == uVar50) break;\n            puVar40 = (undefined8 *)*plVar57;\n            plVar1 = plVar56 + 3;\n            uVar53 = puVar40[5];\n            uVar45 = (uVar53 - 1) + ((ulong)puVar40[7] >> ((byte)opb_shift & 0x3f));\n            plVar56 = plVar57;\n            if (((int)*plVar1 == 0) && ((uVar53 <= uVar71 || (uVar71 < uVar67)))) {\n              uVar37 = *puVar60;\n              uVar16 = *puVar40;\n              pcVar27 = (char *)dcgettext(0,\n                                          "%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n"\n                                          ,5);\n              einfo(pcVar27,uVar16,uVar53,uVar45,uVar37,uVar67,uVar71);\n            }\n          }\nLAB_0011d4c4:\n          free(__ptr_00);\n          for (pmVar52 = lang_memory_region_list; prVar17 = require_defined_symbol_list,\n              pmVar52 != (lang_memory_region_type *)0x0; pmVar52 = pmVar52->next) {\n            if (pmVar52->had_full_message != 0) {\n              pcVar27 = (pmVar52->name_list).name;\n              lVar29 = pmVar52->current - (pmVar52->length + pmVar52->origin);\n              pcVar36 = (char *)dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                           "%X%P: region `%s\' overflowed by %lu bytes\n",lVar29,5);\n              einfo(pcVar36,pcVar27,lVar29);\n            }\n          }\n          goto joined_r0x0011ca92;\n        }\n      }\n      free(__ptr_00);\n      prVar17 = require_defined_symbol_list;\n    }" { (expression_statement "uVar53 = 0;" (assignment_expression "uVar53 = 0" identifier = number_literal) ;) (expression_statement "__ptr_00 = (long *)xmalloc((ulong)(link_info.output_bfd)->section_count << 4);" (assignment_expression "__ptr_00 = (long *)xmalloc((ulong)(link_info.output_bfd)->section_count << 4)" identifier = (cast_expression "(long *)xmalloc((ulong)(link_info.output_bfd)->section_count << 4)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc((ulong)(link_info.output_bfd)->section_count << 4)" identifier (argument_list "((ulong)(link_info.output_bfd)->section_count << 4)" ( (binary_expression "(ulong)(link_info.output_bfd)->section_count << 4" (field_expression "(ulong)(link_info.output_bfd)->section_count" (call_expression "(ulong)(link_info.output_bfd)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(link_info.output_bfd)" ( (field_expression "link_info.output_bfd" identifier . field_identifier) ))) -> field_identifier) << number_literal) ))))) ;) (expression_statement "pbVar39 = (link_info.output_bfd)->sections;" (assignment_expression "pbVar39 = (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 (pbVar39 != (bfd_section *)0x0) {\n        do {\n          uVar50 = uVar53;\n          if ((((pbVar39->flags & 1) != 0) && ((pbVar39->flags & 0x402) != 0x400)) &&\n             (pbVar39->size != 0)) {\n            uVar50 = uVar53 + 1;\n            __ptr_00[uVar53 * 2] = (long)pbVar39;\n            *(undefined4 *)(__ptr_00 + uVar53 * 2 + 1) = 0;\n          }\n          pbVar39 = pbVar39->next;\n          uVar53 = uVar50;\n        } while (pbVar39 != (bfd_section *)0x0);\n        if (1 < uVar50) {\n          qsort(__ptr_00,uVar50,0x10,sort_sections_by_lma);\n          puVar40 = (undefined8 *)0x0;\n          plVar56 = __ptr_00;\n          uVar53 = 0;\n          uVar45 = 0;\n          do {\n            puVar60 = (undefined8 *)*plVar56;\n            puVar41 = puVar40;\n            uVar67 = uVar53;\n            uVar42 = uVar45;\n            if ((*(byte *)(puVar60 + 4) & 2) != 0) {\n              uVar67 = puVar60[6];\n              uVar42 = (uVar67 - 1) + ((ulong)puVar60[7] >> ((byte)opb_shift & 0x3f));\n              puVar41 = puVar60;\n              if ((puVar40 != (undefined8 *)0x0) && ((uVar67 <= uVar45 || (uVar45 < uVar53)))) {\n                uVar37 = *puVar40;\n                uVar16 = *puVar60;\n                pcVar27 = (char *)dcgettext(0,\n                                            "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n"\n                                            ,5);\n                einfo(pcVar27,uVar16,uVar67,uVar42,uVar37,uVar53,uVar45);\n                *(undefined4 *)(plVar56 + 1) = 1;\n              }\n            }\n            plVar56 = plVar56 + 2;\n            puVar40 = puVar41;\n            uVar53 = uVar67;\n            uVar45 = uVar42;\n          } while (plVar56 != __ptr_00 + uVar50 * 2);\n          qsort(__ptr_00,uVar50,0x10,sort_sections_by_vma);\n          puVar40 = (undefined8 *)*__ptr_00;\n          uVar42 = 1;\n          uVar53 = puVar40[5];\n          uVar45 = uVar53;\n          do {\n            lVar29 = uVar42 * 2;\n            if (*(ulong *)(__ptr_00[lVar29] + 0x28) == uVar45) goto LAB_0011d4c4;\n            uVar42 = uVar42 + 1;\n            uVar45 = *(ulong *)(__ptr_00[lVar29] + 0x28);\n          } while (uVar42 != uVar50);\n          uVar42 = 0;\n          uVar45 = (uVar53 - 1) + ((ulong)puVar40[7] >> ((byte)opb_shift & 0x3f));\n          plVar56 = __ptr_00;\n          while( true ) {\n            uVar71 = uVar45;\n            uVar67 = uVar53;\n            puVar60 = puVar40;\n            plVar57 = plVar56 + 2;\n            uVar42 = uVar42 + 1;\n            if (uVar42 == uVar50) break;\n            puVar40 = (undefined8 *)*plVar57;\n            plVar1 = plVar56 + 3;\n            uVar53 = puVar40[5];\n            uVar45 = (uVar53 - 1) + ((ulong)puVar40[7] >> ((byte)opb_shift & 0x3f));\n            plVar56 = plVar57;\n            if (((int)*plVar1 == 0) && ((uVar53 <= uVar71 || (uVar71 < uVar67)))) {\n              uVar37 = *puVar60;\n              uVar16 = *puVar40;\n              pcVar27 = (char *)dcgettext(0,\n                                          "%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n"\n                                          ,5);\n              einfo(pcVar27,uVar16,uVar53,uVar45,uVar37,uVar67,uVar71);\n            }\n          }\nLAB_0011d4c4:\n          free(__ptr_00);\n          for (pmVar52 = lang_memory_region_list; prVar17 = require_defined_symbol_list,\n              pmVar52 != (lang_memory_region_type *)0x0; pmVar52 = pmVar52->next) {\n            if (pmVar52->had_full_message != 0) {\n              pcVar27 = (pmVar52->name_list).name;\n              lVar29 = pmVar52->current - (pmVar52->length + pmVar52->origin);\n              pcVar36 = (char *)dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                           "%X%P: region `%s\' overflowed by %lu bytes\n",lVar29,5);\n              einfo(pcVar36,pcVar27,lVar29);\n            }\n          }\n          goto joined_r0x0011ca92;\n        }\n      }" if (parenthesized_expression "(pbVar39 != (bfd_section *)0x0)" ( (binary_expression "pbVar39 != (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          uVar50 = uVar53;\n          if ((((pbVar39->flags & 1) != 0) && ((pbVar39->flags & 0x402) != 0x400)) &&\n             (pbVar39->size != 0)) {\n            uVar50 = uVar53 + 1;\n            __ptr_00[uVar53 * 2] = (long)pbVar39;\n            *(undefined4 *)(__ptr_00 + uVar53 * 2 + 1) = 0;\n          }\n          pbVar39 = pbVar39->next;\n          uVar53 = uVar50;\n        } while (pbVar39 != (bfd_section *)0x0);\n        if (1 < uVar50) {\n          qsort(__ptr_00,uVar50,0x10,sort_sections_by_lma);\n          puVar40 = (undefined8 *)0x0;\n          plVar56 = __ptr_00;\n          uVar53 = 0;\n          uVar45 = 0;\n          do {\n            puVar60 = (undefined8 *)*plVar56;\n            puVar41 = puVar40;\n            uVar67 = uVar53;\n            uVar42 = uVar45;\n            if ((*(byte *)(puVar60 + 4) & 2) != 0) {\n              uVar67 = puVar60[6];\n              uVar42 = (uVar67 - 1) + ((ulong)puVar60[7] >> ((byte)opb_shift & 0x3f));\n              puVar41 = puVar60;\n              if ((puVar40 != (undefined8 *)0x0) && ((uVar67 <= uVar45 || (uVar45 < uVar53)))) {\n                uVar37 = *puVar40;\n                uVar16 = *puVar60;\n                pcVar27 = (char *)dcgettext(0,\n                                            "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n"\n                                            ,5);\n                einfo(pcVar27,uVar16,uVar67,uVar42,uVar37,uVar53,uVar45);\n                *(undefined4 *)(plVar56 + 1) = 1;\n              }\n            }\n            plVar56 = plVar56 + 2;\n            puVar40 = puVar41;\n            uVar53 = uVar67;\n            uVar45 = uVar42;\n          } while (plVar56 != __ptr_00 + uVar50 * 2);\n          qsort(__ptr_00,uVar50,0x10,sort_sections_by_vma);\n          puVar40 = (undefined8 *)*__ptr_00;\n          uVar42 = 1;\n          uVar53 = puVar40[5];\n          uVar45 = uVar53;\n          do {\n            lVar29 = uVar42 * 2;\n            if (*(ulong *)(__ptr_00[lVar29] + 0x28) == uVar45) goto LAB_0011d4c4;\n            uVar42 = uVar42 + 1;\n            uVar45 = *(ulong *)(__ptr_00[lVar29] + 0x28);\n          } while (uVar42 != uVar50);\n          uVar42 = 0;\n          uVar45 = (uVar53 - 1) + ((ulong)puVar40[7] >> ((byte)opb_shift & 0x3f));\n          plVar56 = __ptr_00;\n          while( true ) {\n            uVar71 = uVar45;\n            uVar67 = uVar53;\n            puVar60 = puVar40;\n            plVar57 = plVar56 + 2;\n            uVar42 = uVar42 + 1;\n            if (uVar42 == uVar50) break;\n            puVar40 = (undefined8 *)*plVar57;\n            plVar1 = plVar56 + 3;\n            uVar53 = puVar40[5];\n            uVar45 = (uVar53 - 1) + ((ulong)puVar40[7] >> ((byte)opb_shift & 0x3f));\n            plVar56 = plVar57;\n            if (((int)*plVar1 == 0) && ((uVar53 <= uVar71 || (uVar71 < uVar67)))) {\n              uVar37 = *puVar60;\n              uVar16 = *puVar40;\n              pcVar27 = (char *)dcgettext(0,\n                                          "%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n"\n                                          ,5);\n              einfo(pcVar27,uVar16,uVar53,uVar45,uVar37,uVar67,uVar71);\n            }\n          }\nLAB_0011d4c4:\n          free(__ptr_00);\n          for (pmVar52 = lang_memory_region_list; prVar17 = require_defined_symbol_list,\n              pmVar52 != (lang_memory_region_type *)0x0; pmVar52 = pmVar52->next) {\n            if (pmVar52->had_full_message != 0) {\n              pcVar27 = (pmVar52->name_list).name;\n              lVar29 = pmVar52->current - (pmVar52->length + pmVar52->origin);\n              pcVar36 = (char *)dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                           "%X%P: region `%s\' overflowed by %lu bytes\n",lVar29,5);\n              einfo(pcVar36,pcVar27,lVar29);\n            }\n          }\n          goto joined_r0x0011ca92;\n        }\n      }" { (do_statement "do {\n          uVar50 = uVar53;\n          if ((((pbVar39->flags & 1) != 0) && ((pbVar39->flags & 0x402) != 0x400)) &&\n             (pbVar39->size != 0)) {\n            uVar50 = uVar53 + 1;\n            __ptr_00[uVar53 * 2] = (long)pbVar39;\n            *(undefined4 *)(__ptr_00 + uVar53 * 2 + 1) = 0;\n          }\n          pbVar39 = pbVar39->next;\n          uVar53 = uVar50;\n        } while (pbVar39 != (bfd_section *)0x0);" do (compound_statement "{\n          uVar50 = uVar53;\n          if ((((pbVar39->flags & 1) != 0) && ((pbVar39->flags & 0x402) != 0x400)) &&\n             (pbVar39->size != 0)) {\n            uVar50 = uVar53 + 1;\n            __ptr_00[uVar53 * 2] = (long)pbVar39;\n            *(undefined4 *)(__ptr_00 + uVar53 * 2 + 1) = 0;\n          }\n          pbVar39 = pbVar39->next;\n          uVar53 = uVar50;\n        }" { (expression_statement "uVar50 = uVar53;" (assignment_expression "uVar50 = uVar53" identifier = identifier) ;) (if_statement "if ((((pbVar39->flags & 1) != 0) && ((pbVar39->flags & 0x402) != 0x400)) &&\n             (pbVar39->size != 0)) {\n            uVar50 = uVar53 + 1;\n            __ptr_00[uVar53 * 2] = (long)pbVar39;\n            *(undefined4 *)(__ptr_00 + uVar53 * 2 + 1) = 0;\n          }" if (parenthesized_expression "((((pbVar39->flags & 1) != 0) && ((pbVar39->flags & 0x402) != 0x400)) &&\n             (pbVar39->size != 0))" ( (binary_expression "(((pbVar39->flags & 1) != 0) && ((pbVar39->flags & 0x402) != 0x400)) &&\n             (pbVar39->size != 0)" (parenthesized_expression "(((pbVar39->flags & 1) != 0) && ((pbVar39->flags & 0x402) != 0x400))" ( (binary_expression "((pbVar39->flags & 1) != 0) && ((pbVar39->flags & 0x402) != 0x400)" (parenthesized_expression "((pbVar39->flags & 1) != 0)" ( (binary_expression "(pbVar39->flags & 1) != 0" (parenthesized_expression "(pbVar39->flags & 1)" ( (binary_expression "pbVar39->flags & 1" (field_expression "pbVar39->flags" identifier -> field_identifier) & number_literal) )) != number_literal) )) && (parenthesized_expression "((pbVar39->flags & 0x402) != 0x400)" ( (binary_expression "(pbVar39->flags & 0x402) != 0x400" (parenthesized_expression "(pbVar39->flags & 0x402)" ( (binary_expression "pbVar39->flags & 0x402" (field_expression "pbVar39->flags" identifier -> field_identifier) & number_literal) )) != number_literal) ))) )) && (parenthesized_expression "(pbVar39->size != 0)" ( (binary_expression "pbVar39->size != 0" (field_expression "pbVar39->size" identifier -> field_identifier) != number_literal) ))) )) (compound_statement "{\n            uVar50 = uVar53 + 1;\n            __ptr_00[uVar53 * 2] = (long)pbVar39;\n            *(undefined4 *)(__ptr_00 + uVar53 * 2 + 1) = 0;\n          }" { (expression_statement "uVar50 = uVar53 + 1;" (assignment_expression "uVar50 = uVar53 + 1" identifier = (binary_expression "uVar53 + 1" identifier + number_literal)) ;) (expression_statement "__ptr_00[uVar53 * 2] = (long)pbVar39;" (assignment_expression "__ptr_00[uVar53 * 2] = (long)pbVar39" (subscript_expression "__ptr_00[uVar53 * 2]" identifier [ (binary_expression "uVar53 * 2" identifier * number_literal) ]) = (cast_expression "(long)pbVar39" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) (expression_statement "*(undefined4 *)(__ptr_00 + uVar53 * 2 + 1) = 0;" (assignment_expression "*(undefined4 *)(__ptr_00 + uVar53 * 2 + 1) = 0" (pointer_expression "*(undefined4 *)(__ptr_00 + uVar53 * 2 + 1)" * (cast_expression "(undefined4 *)(__ptr_00 + uVar53 * 2 + 1)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(__ptr_00 + uVar53 * 2 + 1)" ( (binary_expression "__ptr_00 + uVar53 * 2 + 1" (binary_expression "__ptr_00 + uVar53 * 2" identifier + (binary_expression "uVar53 * 2" identifier * number_literal)) + number_literal) )))) = number_literal) ;) })) (expression_statement "pbVar39 = pbVar39->next;" (assignment_expression "pbVar39 = pbVar39->next" identifier = (field_expression "pbVar39->next" identifier -> field_identifier)) ;) (expression_statement "uVar53 = uVar50;" (assignment_expression "uVar53 = uVar50" identifier = identifier) ;) }) while (parenthesized_expression "(pbVar39 != (bfd_section *)0x0)" ( (binary_expression "pbVar39 != (bfd_section *)0x0" identifier != (cast_expression "(bfd_section *)0x0" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (if_statement "if (1 < uVar50) {\n          qsort(__ptr_00,uVar50,0x10,sort_sections_by_lma);\n          puVar40 = (undefined8 *)0x0;\n          plVar56 = __ptr_00;\n          uVar53 = 0;\n          uVar45 = 0;\n          do {\n            puVar60 = (undefined8 *)*plVar56;\n            puVar41 = puVar40;\n            uVar67 = uVar53;\n            uVar42 = uVar45;\n            if ((*(byte *)(puVar60 + 4) & 2) != 0) {\n              uVar67 = puVar60[6];\n              uVar42 = (uVar67 - 1) + ((ulong)puVar60[7] >> ((byte)opb_shift & 0x3f));\n              puVar41 = puVar60;\n              if ((puVar40 != (undefined8 *)0x0) && ((uVar67 <= uVar45 || (uVar45 < uVar53)))) {\n                uVar37 = *puVar40;\n                uVar16 = *puVar60;\n                pcVar27 = (char *)dcgettext(0,\n                                            "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n"\n                                            ,5);\n                einfo(pcVar27,uVar16,uVar67,uVar42,uVar37,uVar53,uVar45);\n                *(undefined4 *)(plVar56 + 1) = 1;\n              }\n            }\n            plVar56 = plVar56 + 2;\n            puVar40 = puVar41;\n            uVar53 = uVar67;\n            uVar45 = uVar42;\n          } while (plVar56 != __ptr_00 + uVar50 * 2);\n          qsort(__ptr_00,uVar50,0x10,sort_sections_by_vma);\n          puVar40 = (undefined8 *)*__ptr_00;\n          uVar42 = 1;\n          uVar53 = puVar40[5];\n          uVar45 = uVar53;\n          do {\n            lVar29 = uVar42 * 2;\n            if (*(ulong *)(__ptr_00[lVar29] + 0x28) == uVar45) goto LAB_0011d4c4;\n            uVar42 = uVar42 + 1;\n            uVar45 = *(ulong *)(__ptr_00[lVar29] + 0x28);\n          } while (uVar42 != uVar50);\n          uVar42 = 0;\n          uVar45 = (uVar53 - 1) + ((ulong)puVar40[7] >> ((byte)opb_shift & 0x3f));\n          plVar56 = __ptr_00;\n          while( true ) {\n            uVar71 = uVar45;\n            uVar67 = uVar53;\n            puVar60 = puVar40;\n            plVar57 = plVar56 + 2;\n            uVar42 = uVar42 + 1;\n            if (uVar42 == uVar50) break;\n            puVar40 = (undefined8 *)*plVar57;\n            plVar1 = plVar56 + 3;\n            uVar53 = puVar40[5];\n            uVar45 = (uVar53 - 1) + ((ulong)puVar40[7] >> ((byte)opb_shift & 0x3f));\n            plVar56 = plVar57;\n            if (((int)*plVar1 == 0) && ((uVar53 <= uVar71 || (uVar71 < uVar67)))) {\n              uVar37 = *puVar60;\n              uVar16 = *puVar40;\n              pcVar27 = (char *)dcgettext(0,\n                                          "%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n"\n                                          ,5);\n              einfo(pcVar27,uVar16,uVar53,uVar45,uVar37,uVar67,uVar71);\n            }\n          }\nLAB_0011d4c4:\n          free(__ptr_00);\n          for (pmVar52 = lang_memory_region_list; prVar17 = require_defined_symbol_list,\n              pmVar52 != (lang_memory_region_type *)0x0; pmVar52 = pmVar52->next) {\n            if (pmVar52->had_full_message != 0) {\n              pcVar27 = (pmVar52->name_list).name;\n              lVar29 = pmVar52->current - (pmVar52->length + pmVar52->origin);\n              pcVar36 = (char *)dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                           "%X%P: region `%s\' overflowed by %lu bytes\n",lVar29,5);\n              einfo(pcVar36,pcVar27,lVar29);\n            }\n          }\n          goto joined_r0x0011ca92;\n        }" if (parenthesized_expression "(1 < uVar50)" ( (binary_expression "1 < uVar50" number_literal < identifier) )) (compound_statement "{\n          qsort(__ptr_00,uVar50,0x10,sort_sections_by_lma);\n          puVar40 = (undefined8 *)0x0;\n          plVar56 = __ptr_00;\n          uVar53 = 0;\n          uVar45 = 0;\n          do {\n            puVar60 = (undefined8 *)*plVar56;\n            puVar41 = puVar40;\n            uVar67 = uVar53;\n            uVar42 = uVar45;\n            if ((*(byte *)(puVar60 + 4) & 2) != 0) {\n              uVar67 = puVar60[6];\n              uVar42 = (uVar67 - 1) + ((ulong)puVar60[7] >> ((byte)opb_shift & 0x3f));\n              puVar41 = puVar60;\n              if ((puVar40 != (undefined8 *)0x0) && ((uVar67 <= uVar45 || (uVar45 < uVar53)))) {\n                uVar37 = *puVar40;\n                uVar16 = *puVar60;\n                pcVar27 = (char *)dcgettext(0,\n                                            "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n"\n                                            ,5);\n                einfo(pcVar27,uVar16,uVar67,uVar42,uVar37,uVar53,uVar45);\n                *(undefined4 *)(plVar56 + 1) = 1;\n              }\n            }\n            plVar56 = plVar56 + 2;\n            puVar40 = puVar41;\n            uVar53 = uVar67;\n            uVar45 = uVar42;\n          } while (plVar56 != __ptr_00 + uVar50 * 2);\n          qsort(__ptr_00,uVar50,0x10,sort_sections_by_vma);\n          puVar40 = (undefined8 *)*__ptr_00;\n          uVar42 = 1;\n          uVar53 = puVar40[5];\n          uVar45 = uVar53;\n          do {\n            lVar29 = uVar42 * 2;\n            if (*(ulong *)(__ptr_00[lVar29] + 0x28) == uVar45) goto LAB_0011d4c4;\n            uVar42 = uVar42 + 1;\n            uVar45 = *(ulong *)(__ptr_00[lVar29] + 0x28);\n          } while (uVar42 != uVar50);\n          uVar42 = 0;\n          uVar45 = (uVar53 - 1) + ((ulong)puVar40[7] >> ((byte)opb_shift & 0x3f));\n          plVar56 = __ptr_00;\n          while( true ) {\n            uVar71 = uVar45;\n            uVar67 = uVar53;\n            puVar60 = puVar40;\n            plVar57 = plVar56 + 2;\n            uVar42 = uVar42 + 1;\n            if (uVar42 == uVar50) break;\n            puVar40 = (undefined8 *)*plVar57;\n            plVar1 = plVar56 + 3;\n            uVar53 = puVar40[5];\n            uVar45 = (uVar53 - 1) + ((ulong)puVar40[7] >> ((byte)opb_shift & 0x3f));\n            plVar56 = plVar57;\n            if (((int)*plVar1 == 0) && ((uVar53 <= uVar71 || (uVar71 < uVar67)))) {\n              uVar37 = *puVar60;\n              uVar16 = *puVar40;\n              pcVar27 = (char *)dcgettext(0,\n                                          "%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n"\n                                          ,5);\n              einfo(pcVar27,uVar16,uVar53,uVar45,uVar37,uVar67,uVar71);\n            }\n          }\nLAB_0011d4c4:\n          free(__ptr_00);\n          for (pmVar52 = lang_memory_region_list; prVar17 = require_defined_symbol_list,\n              pmVar52 != (lang_memory_region_type *)0x0; pmVar52 = pmVar52->next) {\n            if (pmVar52->had_full_message != 0) {\n              pcVar27 = (pmVar52->name_list).name;\n              lVar29 = pmVar52->current - (pmVar52->length + pmVar52->origin);\n              pcVar36 = (char *)dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                           "%X%P: region `%s\' overflowed by %lu bytes\n",lVar29,5);\n              einfo(pcVar36,pcVar27,lVar29);\n            }\n          }\n          goto joined_r0x0011ca92;\n        }" { (expression_statement "qsort(__ptr_00,uVar50,0x10,sort_sections_by_lma);" (call_expression "qsort(__ptr_00,uVar50,0x10,sort_sections_by_lma)" identifier (argument_list "(__ptr_00,uVar50,0x10,sort_sections_by_lma)" ( identifier , identifier , number_literal , identifier ))) ;) (expression_statement "puVar40 = (undefined8 *)0x0;" (assignment_expression "puVar40 = (undefined8 *)0x0" identifier = (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "plVar56 = __ptr_00;" (assignment_expression "plVar56 = __ptr_00" identifier = identifier) ;) (expression_statement "uVar53 = 0;" (assignment_expression "uVar53 = 0" identifier = number_literal) ;) (expression_statement "uVar45 = 0;" (assignment_expression "uVar45 = 0" identifier = number_literal) ;) (do_statement "do {\n            puVar60 = (undefined8 *)*plVar56;\n            puVar41 = puVar40;\n            uVar67 = uVar53;\n            uVar42 = uVar45;\n            if ((*(byte *)(puVar60 + 4) & 2) != 0) {\n              uVar67 = puVar60[6];\n              uVar42 = (uVar67 - 1) + ((ulong)puVar60[7] >> ((byte)opb_shift & 0x3f));\n              puVar41 = puVar60;\n              if ((puVar40 != (undefined8 *)0x0) && ((uVar67 <= uVar45 || (uVar45 < uVar53)))) {\n                uVar37 = *puVar40;\n                uVar16 = *puVar60;\n                pcVar27 = (char *)dcgettext(0,\n                                            "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n"\n                                            ,5);\n                einfo(pcVar27,uVar16,uVar67,uVar42,uVar37,uVar53,uVar45);\n                *(undefined4 *)(plVar56 + 1) = 1;\n              }\n            }\n            plVar56 = plVar56 + 2;\n            puVar40 = puVar41;\n            uVar53 = uVar67;\n            uVar45 = uVar42;\n          } while (plVar56 != __ptr_00 + uVar50 * 2);" do (compound_statement "{\n            puVar60 = (undefined8 *)*plVar56;\n            puVar41 = puVar40;\n            uVar67 = uVar53;\n            uVar42 = uVar45;\n            if ((*(byte *)(puVar60 + 4) & 2) != 0) {\n              uVar67 = puVar60[6];\n              uVar42 = (uVar67 - 1) + ((ulong)puVar60[7] >> ((byte)opb_shift & 0x3f));\n              puVar41 = puVar60;\n              if ((puVar40 != (undefined8 *)0x0) && ((uVar67 <= uVar45 || (uVar45 < uVar53)))) {\n                uVar37 = *puVar40;\n                uVar16 = *puVar60;\n                pcVar27 = (char *)dcgettext(0,\n                                            "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n"\n                                            ,5);\n                einfo(pcVar27,uVar16,uVar67,uVar42,uVar37,uVar53,uVar45);\n                *(undefined4 *)(plVar56 + 1) = 1;\n              }\n            }\n            plVar56 = plVar56 + 2;\n            puVar40 = puVar41;\n            uVar53 = uVar67;\n            uVar45 = uVar42;\n          }" { (expression_statement "puVar60 = (undefined8 *)*plVar56;" (assignment_expression "puVar60 = (undefined8 *)*plVar56" identifier = (cast_expression "(undefined8 *)*plVar56" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar56" * identifier))) ;) (expression_statement "puVar41 = puVar40;" (assignment_expression "puVar41 = puVar40" identifier = identifier) ;) (expression_statement "uVar67 = uVar53;" (assignment_expression "uVar67 = uVar53" identifier = identifier) ;) (expression_statement "uVar42 = uVar45;" (assignment_expression "uVar42 = uVar45" identifier = identifier) ;) (if_statement "if ((*(byte *)(puVar60 + 4) & 2) != 0) {\n              uVar67 = puVar60[6];\n              uVar42 = (uVar67 - 1) + ((ulong)puVar60[7] >> ((byte)opb_shift & 0x3f));\n              puVar41 = puVar60;\n              if ((puVar40 != (undefined8 *)0x0) && ((uVar67 <= uVar45 || (uVar45 < uVar53)))) {\n                uVar37 = *puVar40;\n                uVar16 = *puVar60;\n                pcVar27 = (char *)dcgettext(0,\n                                            "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n"\n                                            ,5);\n                einfo(pcVar27,uVar16,uVar67,uVar42,uVar37,uVar53,uVar45);\n                *(undefined4 *)(plVar56 + 1) = 1;\n              }\n            }" if (parenthesized_expression "((*(byte *)(puVar60 + 4) & 2) != 0)" ( (binary_expression "(*(byte *)(puVar60 + 4) & 2) != 0" (parenthesized_expression "(*(byte *)(puVar60 + 4) & 2)" ( (binary_expression "*(byte *)(puVar60 + 4) & 2" (pointer_expression "*(byte *)(puVar60 + 4)" * (cast_expression "(byte *)(puVar60 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar60 + 4)" ( (binary_expression "puVar60 + 4" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n              uVar67 = puVar60[6];\n              uVar42 = (uVar67 - 1) + ((ulong)puVar60[7] >> ((byte)opb_shift & 0x3f));\n              puVar41 = puVar60;\n              if ((puVar40 != (undefined8 *)0x0) && ((uVar67 <= uVar45 || (uVar45 < uVar53)))) {\n                uVar37 = *puVar40;\n                uVar16 = *puVar60;\n                pcVar27 = (char *)dcgettext(0,\n                                            "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n"\n                                            ,5);\n                einfo(pcVar27,uVar16,uVar67,uVar42,uVar37,uVar53,uVar45);\n                *(undefined4 *)(plVar56 + 1) = 1;\n              }\n            }" { (expression_statement "uVar67 = puVar60[6];" (assignment_expression "uVar67 = puVar60[6]" identifier = (subscript_expression "puVar60[6]" identifier [ number_literal ])) ;) (expression_statement "uVar42 = (uVar67 - 1) + ((ulong)puVar60[7] >> ((byte)opb_shift & 0x3f));" (assignment_expression "uVar42 = (uVar67 - 1) + ((ulong)puVar60[7] >> ((byte)opb_shift & 0x3f))" identifier = (binary_expression "(uVar67 - 1) + ((ulong)puVar60[7] >> ((byte)opb_shift & 0x3f))" (parenthesized_expression "(uVar67 - 1)" ( (binary_expression "uVar67 - 1" identifier - number_literal) )) + (parenthesized_expression "((ulong)puVar60[7] >> ((byte)opb_shift & 0x3f))" ( (binary_expression "(ulong)puVar60[7] >> ((byte)opb_shift & 0x3f)" (cast_expression "(ulong)puVar60[7]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "puVar60[7]" identifier [ number_literal ])) >> (parenthesized_expression "((byte)opb_shift & 0x3f)" ( (binary_expression "(byte)opb_shift & 0x3f" (cast_expression "(byte)opb_shift" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) )))) ;) (expression_statement "puVar41 = puVar60;" (assignment_expression "puVar41 = puVar60" identifier = identifier) ;) (if_statement "if ((puVar40 != (undefined8 *)0x0) && ((uVar67 <= uVar45 || (uVar45 < uVar53)))) {\n                uVar37 = *puVar40;\n                uVar16 = *puVar60;\n                pcVar27 = (char *)dcgettext(0,\n                                            "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n"\n                                            ,5);\n                einfo(pcVar27,uVar16,uVar67,uVar42,uVar37,uVar53,uVar45);\n                *(undefined4 *)(plVar56 + 1) = 1;\n              }" if (parenthesized_expression "((puVar40 != (undefined8 *)0x0) && ((uVar67 <= uVar45 || (uVar45 < uVar53))))" ( (binary_expression "(puVar40 != (undefined8 *)0x0) && ((uVar67 <= uVar45 || (uVar45 < uVar53)))" (parenthesized_expression "(puVar40 != (undefined8 *)0x0)" ( (binary_expression "puVar40 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "((uVar67 <= uVar45 || (uVar45 < uVar53)))" ( (parenthesized_expression "(uVar67 <= uVar45 || (uVar45 < uVar53))" ( (binary_expression "uVar67 <= uVar45 || (uVar45 < uVar53)" (binary_expression "uVar67 <= uVar45" identifier <= identifier) || (parenthesized_expression "(uVar45 < uVar53)" ( (binary_expression "uVar45 < uVar53" identifier < identifier) ))) )) ))) )) (compound_statement "{\n                uVar37 = *puVar40;\n                uVar16 = *puVar60;\n                pcVar27 = (char *)dcgettext(0,\n                                            "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n"\n                                            ,5);\n                einfo(pcVar27,uVar16,uVar67,uVar42,uVar37,uVar53,uVar45);\n                *(undefined4 *)(plVar56 + 1) = 1;\n              }" { (expression_statement "uVar37 = *puVar40;" (assignment_expression "uVar37 = *puVar40" identifier = (pointer_expression "*puVar40" * identifier)) ;) (expression_statement "uVar16 = *puVar60;" (assignment_expression "uVar16 = *puVar60" identifier = (pointer_expression "*puVar60" * identifier)) ;) (expression_statement "pcVar27 = (char *)dcgettext(0,\n                                            "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n"\n                                            ,5);" (assignment_expression "pcVar27 = (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(pcVar27,uVar16,uVar67,uVar42,uVar37,uVar53,uVar45);" (call_expression "einfo(pcVar27,uVar16,uVar67,uVar42,uVar37,uVar53,uVar45)" identifier (argument_list "(pcVar27,uVar16,uVar67,uVar42,uVar37,uVar53,uVar45)" ( identifier , identifier , identifier , identifier , identifier , identifier , identifier ))) ;) (expression_statement "*(undefined4 *)(plVar56 + 1) = 1;" (assignment_expression "*(undefined4 *)(plVar56 + 1) = 1" (pointer_expression "*(undefined4 *)(plVar56 + 1)" * (cast_expression "(undefined4 *)(plVar56 + 1)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar56 + 1)" ( (binary_expression "plVar56 + 1" identifier + number_literal) )))) = number_literal) ;) })) })) (expression_statement "plVar56 = plVar56 + 2;" (assignment_expression "plVar56 = plVar56 + 2" identifier = (binary_expression "plVar56 + 2" identifier + number_literal)) ;) (expression_statement "puVar40 = puVar41;" (assignment_expression "puVar40 = puVar41" identifier = identifier) ;) (expression_statement "uVar53 = uVar67;" (assignment_expression "uVar53 = uVar67" identifier = identifier) ;) (expression_statement "uVar45 = uVar42;" (assignment_expression "uVar45 = uVar42" identifier = identifier) ;) }) while (parenthesized_expression "(plVar56 != __ptr_00 + uVar50 * 2)" ( (binary_expression "plVar56 != __ptr_00 + uVar50 * 2" identifier != (binary_expression "__ptr_00 + uVar50 * 2" identifier + (binary_expression "uVar50 * 2" identifier * number_literal))) )) ;) (expression_statement "qsort(__ptr_00,uVar50,0x10,sort_sections_by_vma);" (call_expression "qsort(__ptr_00,uVar50,0x10,sort_sections_by_vma)" identifier (argument_list "(__ptr_00,uVar50,0x10,sort_sections_by_vma)" ( identifier , identifier , number_literal , identifier ))) ;) (expression_statement "puVar40 = (undefined8 *)*__ptr_00;" (assignment_expression "puVar40 = (undefined8 *)*__ptr_00" identifier = (cast_expression "(undefined8 *)*__ptr_00" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*__ptr_00" * identifier))) ;) (expression_statement "uVar42 = 1;" (assignment_expression "uVar42 = 1" identifier = number_literal) ;) (expression_statement "uVar53 = puVar40[5];" (assignment_expression "uVar53 = puVar40[5]" identifier = (subscript_expression "puVar40[5]" identifier [ number_literal ])) ;) (expression_statement "uVar45 = uVar53;" (assignment_expression "uVar45 = uVar53" identifier = identifier) ;) (do_statement "do {\n            lVar29 = uVar42 * 2;\n            if (*(ulong *)(__ptr_00[lVar29] + 0x28) == uVar45) goto LAB_0011d4c4;\n            uVar42 = uVar42 + 1;\n            uVar45 = *(ulong *)(__ptr_00[lVar29] + 0x28);\n          } while (uVar42 != uVar50);" do (compound_statement "{\n            lVar29 = uVar42 * 2;\n            if (*(ulong *)(__ptr_00[lVar29] + 0x28) == uVar45) goto LAB_0011d4c4;\n            uVar42 = uVar42 + 1;\n            uVar45 = *(ulong *)(__ptr_00[lVar29] + 0x28);\n          }" { (expression_statement "lVar29 = uVar42 * 2;" (assignment_expression "lVar29 = uVar42 * 2" identifier = (binary_expression "uVar42 * 2" identifier * number_literal)) ;) (if_statement "if (*(ulong *)(__ptr_00[lVar29] + 0x28) == uVar45) goto LAB_0011d4c4;" if (parenthesized_expression "(*(ulong *)(__ptr_00[lVar29] + 0x28) == uVar45)" ( (binary_expression "*(ulong *)(__ptr_00[lVar29] + 0x28) == uVar45" (pointer_expression "*(ulong *)(__ptr_00[lVar29] + 0x28)" * (cast_expression "(ulong *)(__ptr_00[lVar29] + 0x28)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(__ptr_00[lVar29] + 0x28)" ( (binary_expression "__ptr_00[lVar29] + 0x28" (subscript_expression "__ptr_00[lVar29]" identifier [ identifier ]) + number_literal) )))) == identifier) )) (goto_statement "goto LAB_0011d4c4;" goto statement_identifier ;)) (expression_statement "uVar42 = uVar42 + 1;" (assignment_expression "uVar42 = uVar42 + 1" identifier = (binary_expression "uVar42 + 1" identifier + number_literal)) ;) (expression_statement "uVar45 = *(ulong *)(__ptr_00[lVar29] + 0x28);" (assignment_expression "uVar45 = *(ulong *)(__ptr_00[lVar29] + 0x28)" identifier = (pointer_expression "*(ulong *)(__ptr_00[lVar29] + 0x28)" * (cast_expression "(ulong *)(__ptr_00[lVar29] + 0x28)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(__ptr_00[lVar29] + 0x28)" ( (binary_expression "__ptr_00[lVar29] + 0x28" (subscript_expression "__ptr_00[lVar29]" identifier [ identifier ]) + number_literal) ))))) ;) }) while (parenthesized_expression "(uVar42 != uVar50)" ( (binary_expression "uVar42 != uVar50" identifier != identifier) )) ;) (expression_statement "uVar42 = 0;" (assignment_expression "uVar42 = 0" identifier = number_literal) ;) (expression_statement "uVar45 = (uVar53 - 1) + ((ulong)puVar40[7] >> ((byte)opb_shift & 0x3f));" (assignment_expression "uVar45 = (uVar53 - 1) + ((ulong)puVar40[7] >> ((byte)opb_shift & 0x3f))" identifier = (binary_expression "(uVar53 - 1) + ((ulong)puVar40[7] >> ((byte)opb_shift & 0x3f))" (parenthesized_expression "(uVar53 - 1)" ( (binary_expression "uVar53 - 1" identifier - number_literal) )) + (parenthesized_expression "((ulong)puVar40[7] >> ((byte)opb_shift & 0x3f))" ( (binary_expression "(ulong)puVar40[7] >> ((byte)opb_shift & 0x3f)" (cast_expression "(ulong)puVar40[7]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "puVar40[7]" identifier [ number_literal ])) >> (parenthesized_expression "((byte)opb_shift & 0x3f)" ( (binary_expression "(byte)opb_shift & 0x3f" (cast_expression "(byte)opb_shift" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) )))) ;) (expression_statement "plVar56 = __ptr_00;" (assignment_expression "plVar56 = __ptr_00" identifier = identifier) ;) (while_statement "while( true ) {\n            uVar71 = uVar45;\n            uVar67 = uVar53;\n            puVar60 = puVar40;\n            plVar57 = plVar56 + 2;\n            uVar42 = uVar42 + 1;\n            if (uVar42 == uVar50) break;\n            puVar40 = (undefined8 *)*plVar57;\n            plVar1 = plVar56 + 3;\n            uVar53 = puVar40[5];\n            uVar45 = (uVar53 - 1) + ((ulong)puVar40[7] >> ((byte)opb_shift & 0x3f));\n            plVar56 = plVar57;\n            if (((int)*plVar1 == 0) && ((uVar53 <= uVar71 || (uVar71 < uVar67)))) {\n              uVar37 = *puVar60;\n              uVar16 = *puVar40;\n              pcVar27 = (char *)dcgettext(0,\n                                          "%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n"\n                                          ,5);\n              einfo(pcVar27,uVar16,uVar53,uVar45,uVar37,uVar67,uVar71);\n            }\n          }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n            uVar71 = uVar45;\n            uVar67 = uVar53;\n            puVar60 = puVar40;\n            plVar57 = plVar56 + 2;\n            uVar42 = uVar42 + 1;\n            if (uVar42 == uVar50) break;\n            puVar40 = (undefined8 *)*plVar57;\n            plVar1 = plVar56 + 3;\n            uVar53 = puVar40[5];\n            uVar45 = (uVar53 - 1) + ((ulong)puVar40[7] >> ((byte)opb_shift & 0x3f));\n            plVar56 = plVar57;\n            if (((int)*plVar1 == 0) && ((uVar53 <= uVar71 || (uVar71 < uVar67)))) {\n              uVar37 = *puVar60;\n              uVar16 = *puVar40;\n              pcVar27 = (char *)dcgettext(0,\n                                          "%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n"\n                                          ,5);\n              einfo(pcVar27,uVar16,uVar53,uVar45,uVar37,uVar67,uVar71);\n            }\n          }" { (expression_statement "uVar71 = uVar45;" (assignment_expression "uVar71 = uVar45" identifier = identifier) ;) (expression_statement "uVar67 = uVar53;" (assignment_expression "uVar67 = uVar53" identifier = identifier) ;) (expression_statement "puVar60 = puVar40;" (assignment_expression "puVar60 = puVar40" identifier = identifier) ;) (expression_statement "plVar57 = plVar56 + 2;" (assignment_expression "plVar57 = plVar56 + 2" identifier = (binary_expression "plVar56 + 2" identifier + number_literal)) ;) (expression_statement "uVar42 = uVar42 + 1;" (assignment_expression "uVar42 = uVar42 + 1" identifier = (binary_expression "uVar42 + 1" identifier + number_literal)) ;) (if_statement "if (uVar42 == uVar50) break;" if (parenthesized_expression "(uVar42 == uVar50)" ( (binary_expression "uVar42 == uVar50" identifier == identifier) )) (break_statement "break;" break ;)) (expression_statement "puVar40 = (undefined8 *)*plVar57;" (assignment_expression "puVar40 = (undefined8 *)*plVar57" identifier = (cast_expression "(undefined8 *)*plVar57" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar57" * identifier))) ;) (expression_statement "plVar1 = plVar56 + 3;" (assignment_expression "plVar1 = plVar56 + 3" identifier = (binary_expression "plVar56 + 3" identifier + number_literal)) ;) (expression_statement "uVar53 = puVar40[5];" (assignment_expression "uVar53 = puVar40[5]" identifier = (subscript_expression "puVar40[5]" identifier [ number_literal ])) ;) (expression_statement "uVar45 = (uVar53 - 1) + ((ulong)puVar40[7] >> ((byte)opb_shift & 0x3f));" (assignment_expression "uVar45 = (uVar53 - 1) + ((ulong)puVar40[7] >> ((byte)opb_shift & 0x3f))" identifier = (binary_expression "(uVar53 - 1) + ((ulong)puVar40[7] >> ((byte)opb_shift & 0x3f))" (parenthesized_expression "(uVar53 - 1)" ( (binary_expression "uVar53 - 1" identifier - number_literal) )) + (parenthesized_expression "((ulong)puVar40[7] >> ((byte)opb_shift & 0x3f))" ( (binary_expression "(ulong)puVar40[7] >> ((byte)opb_shift & 0x3f)" (cast_expression "(ulong)puVar40[7]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "puVar40[7]" identifier [ number_literal ])) >> (parenthesized_expression "((byte)opb_shift & 0x3f)" ( (binary_expression "(byte)opb_shift & 0x3f" (cast_expression "(byte)opb_shift" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) )))) ;) (expression_statement "plVar56 = plVar57;" (assignment_expression "plVar56 = plVar57" identifier = identifier) ;) (if_statement "if (((int)*plVar1 == 0) && ((uVar53 <= uVar71 || (uVar71 < uVar67)))) {\n              uVar37 = *puVar60;\n              uVar16 = *puVar40;\n              pcVar27 = (char *)dcgettext(0,\n                                          "%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n"\n                                          ,5);\n              einfo(pcVar27,uVar16,uVar53,uVar45,uVar37,uVar67,uVar71);\n            }" if (parenthesized_expression "(((int)*plVar1 == 0) && ((uVar53 <= uVar71 || (uVar71 < uVar67))))" ( (binary_expression "((int)*plVar1 == 0) && ((uVar53 <= uVar71 || (uVar71 < uVar67)))" (parenthesized_expression "((int)*plVar1 == 0)" ( (binary_expression "(int)*plVar1 == 0" (cast_expression "(int)*plVar1" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*plVar1" * identifier)) == number_literal) )) && (parenthesized_expression "((uVar53 <= uVar71 || (uVar71 < uVar67)))" ( (parenthesized_expression "(uVar53 <= uVar71 || (uVar71 < uVar67))" ( (binary_expression "uVar53 <= uVar71 || (uVar71 < uVar67)" (binary_expression "uVar53 <= uVar71" identifier <= identifier) || (parenthesized_expression "(uVar71 < uVar67)" ( (binary_expression "uVar71 < uVar67" identifier < identifier) ))) )) ))) )) (compound_statement "{\n              uVar37 = *puVar60;\n              uVar16 = *puVar40;\n              pcVar27 = (char *)dcgettext(0,\n                                          "%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n"\n                                          ,5);\n              einfo(pcVar27,uVar16,uVar53,uVar45,uVar37,uVar67,uVar71);\n            }" { (expression_statement "uVar37 = *puVar60;" (assignment_expression "uVar37 = *puVar60" identifier = (pointer_expression "*puVar60" * identifier)) ;) (expression_statement "uVar16 = *puVar40;" (assignment_expression "uVar16 = *puVar40" identifier = (pointer_expression "*puVar40" * identifier)) ;) (expression_statement "pcVar27 = (char *)dcgettext(0,\n                                          "%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n"\n                                          ,5);" (assignment_expression "pcVar27 = (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(pcVar27,uVar16,uVar53,uVar45,uVar37,uVar67,uVar71);" (call_expression "einfo(pcVar27,uVar16,uVar53,uVar45,uVar37,uVar67,uVar71)" identifier (argument_list "(pcVar27,uVar16,uVar53,uVar45,uVar37,uVar67,uVar71)" ( identifier , identifier , identifier , identifier , identifier , identifier , identifier ))) ;) })) })) (labeled_statement "LAB_0011d4c4:\n          free(__ptr_00);" statement_identifier : (expression_statement "free(__ptr_00);" (call_expression "free(__ptr_00)" identifier (argument_list "(__ptr_00)" ( identifier ))) ;)) (for_statement "for (pmVar52 = lang_memory_region_list; prVar17 = require_defined_symbol_list,\n              pmVar52 != (lang_memory_region_type *)0x0; pmVar52 = pmVar52->next) {\n            if (pmVar52->had_full_message != 0) {\n              pcVar27 = (pmVar52->name_list).name;\n              lVar29 = pmVar52->current - (pmVar52->length + pmVar52->origin);\n              pcVar36 = (char *)dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                           "%X%P: region `%s\' overflowed by %lu bytes\n",lVar29,5);\n              einfo(pcVar36,pcVar27,lVar29);\n            }\n          }" for ( (assignment_expression "pmVar52 = lang_memory_region_list" identifier = identifier) ; (comma_expression "prVar17 = require_defined_symbol_list,\n              pmVar52 != (lang_memory_region_type *)0x0" (assignment_expression "prVar17 = require_defined_symbol_list" identifier = identifier) , (binary_expression "pmVar52 != (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 "pmVar52 = pmVar52->next" identifier = (field_expression "pmVar52->next" identifier -> field_identifier)) ) (compound_statement "{\n            if (pmVar52->had_full_message != 0) {\n              pcVar27 = (pmVar52->name_list).name;\n              lVar29 = pmVar52->current - (pmVar52->length + pmVar52->origin);\n              pcVar36 = (char *)dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                           "%X%P: region `%s\' overflowed by %lu bytes\n",lVar29,5);\n              einfo(pcVar36,pcVar27,lVar29);\n            }\n          }" { (if_statement "if (pmVar52->had_full_message != 0) {\n              pcVar27 = (pmVar52->name_list).name;\n              lVar29 = pmVar52->current - (pmVar52->length + pmVar52->origin);\n              pcVar36 = (char *)dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                           "%X%P: region `%s\' overflowed by %lu bytes\n",lVar29,5);\n              einfo(pcVar36,pcVar27,lVar29);\n            }" if (parenthesized_expression "(pmVar52->had_full_message != 0)" ( (binary_expression "pmVar52->had_full_message != 0" (field_expression "pmVar52->had_full_message" identifier -> field_identifier) != number_literal) )) (compound_statement "{\n              pcVar27 = (pmVar52->name_list).name;\n              lVar29 = pmVar52->current - (pmVar52->length + pmVar52->origin);\n              pcVar36 = (char *)dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                           "%X%P: region `%s\' overflowed by %lu bytes\n",lVar29,5);\n              einfo(pcVar36,pcVar27,lVar29);\n            }" { (expression_statement "pcVar27 = (pmVar52->name_list).name;" (assignment_expression "pcVar27 = (pmVar52->name_list).name" identifier = (field_expression "(pmVar52->name_list).name" (parenthesized_expression "(pmVar52->name_list)" ( (field_expression "pmVar52->name_list" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "lVar29 = pmVar52->current - (pmVar52->length + pmVar52->origin);" (assignment_expression "lVar29 = pmVar52->current - (pmVar52->length + pmVar52->origin)" identifier = (binary_expression "pmVar52->current - (pmVar52->length + pmVar52->origin)" (field_expression "pmVar52->current" identifier -> field_identifier) - (parenthesized_expression "(pmVar52->length + pmVar52->origin)" ( (binary_expression "pmVar52->length + pmVar52->origin" (field_expression "pmVar52->length" identifier -> field_identifier) + (field_expression "pmVar52->origin" identifier -> field_identifier)) )))) ;) (expression_statement "pcVar36 = (char *)dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                           "%X%P: region `%s\' overflowed by %lu bytes\n",lVar29,5);" (assignment_expression "pcVar36 = (char *)dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                           "%X%P: region `%s\' overflowed by %lu bytes\n",lVar29,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",lVar29,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",lVar29,5)" identifier (argument_list "(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                           "%X%P: region `%s\' overflowed by %lu bytes\n",lVar29,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(pcVar36,pcVar27,lVar29);" (call_expression "einfo(pcVar36,pcVar27,lVar29)" identifier (argument_list "(pcVar36,pcVar27,lVar29)" ( identifier , identifier , identifier ))) ;) })) })) (goto_statement "goto joined_r0x0011ca92;" goto statement_identifier ;) })) })) (expression_statement "free(__ptr_00);" (call_expression "free(__ptr_00)" identifier (argument_list "(__ptr_00)" ( identifier ))) ;) (expression_statement "prVar17 = require_defined_symbol_list;" (assignment_expression "prVar17 = require_defined_symbol_list" identifier = identifier) ;) })) })) (labeled_statement "joined_r0x0011ca92:\n  for (; prVar17 != (require_defined_symbol *)0x0; prVar17 = prVar17->next) {\n    lVar29 = bfd_link_hash_lookup(link_info.hash,prVar17->name,0,0,1);\n    if ((lVar29 == 0) || (1 < (byte)(*(char *)(lVar29 + 0x18) - 3U))) {\n      pcVar27 = prVar17->name;\n      pcVar36 = (char *)dcgettext(0,"%X%P: required symbol `%s\' not defined\n",5);\n      einfo(pcVar36,pcVar27);\n    }\n  }" statement_identifier : (for_statement "for (; prVar17 != (require_defined_symbol *)0x0; prVar17 = prVar17->next) {\n    lVar29 = bfd_link_hash_lookup(link_info.hash,prVar17->name,0,0,1);\n    if ((lVar29 == 0) || (1 < (byte)(*(char *)(lVar29 + 0x18) - 3U))) {\n      pcVar27 = prVar17->name;\n      pcVar36 = (char *)dcgettext(0,"%X%P: required symbol `%s\' not defined\n",5);\n      einfo(pcVar36,pcVar27);\n    }\n  }" for ( ; (binary_expression "prVar17 != (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 "prVar17 = prVar17->next" identifier = (field_expression "prVar17->next" identifier -> field_identifier)) ) (compound_statement "{\n    lVar29 = bfd_link_hash_lookup(link_info.hash,prVar17->name,0,0,1);\n    if ((lVar29 == 0) || (1 < (byte)(*(char *)(lVar29 + 0x18) - 3U))) {\n      pcVar27 = prVar17->name;\n      pcVar36 = (char *)dcgettext(0,"%X%P: required symbol `%s\' not defined\n",5);\n      einfo(pcVar36,pcVar27);\n    }\n  }" { (expression_statement "lVar29 = bfd_link_hash_lookup(link_info.hash,prVar17->name,0,0,1);" (assignment_expression "lVar29 = bfd_link_hash_lookup(link_info.hash,prVar17->name,0,0,1)" identifier = (call_expression "bfd_link_hash_lookup(link_info.hash,prVar17->name,0,0,1)" identifier (argument_list "(link_info.hash,prVar17->name,0,0,1)" ( (field_expression "link_info.hash" identifier . field_identifier) , (field_expression "prVar17->name" identifier -> field_identifier) , number_literal , number_literal , number_literal )))) ;) (if_statement "if ((lVar29 == 0) || (1 < (byte)(*(char *)(lVar29 + 0x18) - 3U))) {\n      pcVar27 = prVar17->name;\n      pcVar36 = (char *)dcgettext(0,"%X%P: required symbol `%s\' not defined\n",5);\n      einfo(pcVar36,pcVar27);\n    }" if (parenthesized_expression "((lVar29 == 0) || (1 < (byte)(*(char *)(lVar29 + 0x18) - 3U)))" ( (binary_expression "(lVar29 == 0) || (1 < (byte)(*(char *)(lVar29 + 0x18) - 3U))" (parenthesized_expression "(lVar29 == 0)" ( (binary_expression "lVar29 == 0" identifier == number_literal) )) || (parenthesized_expression "(1 < (byte)(*(char *)(lVar29 + 0x18) - 3U))" ( (binary_expression "1 < (byte)(*(char *)(lVar29 + 0x18) - 3U)" number_literal < (call_expression "(byte)(*(char *)(lVar29 + 0x18) - 3U)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(*(char *)(lVar29 + 0x18) - 3U)" ( (binary_expression "*(char *)(lVar29 + 0x18) - 3U" (pointer_expression "*(char *)(lVar29 + 0x18)" * (cast_expression "(char *)(lVar29 + 0x18)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar29 + 0x18)" ( (binary_expression "lVar29 + 0x18" identifier + number_literal) )))) - number_literal) )))) ))) )) (compound_statement "{\n      pcVar27 = prVar17->name;\n      pcVar36 = (char *)dcgettext(0,"%X%P: required symbol `%s\' not defined\n",5);\n      einfo(pcVar36,pcVar27);\n    }" { (expression_statement "pcVar27 = prVar17->name;" (assignment_expression "pcVar27 = prVar17->name" identifier = (field_expression "prVar17->name" identifier -> field_identifier)) ;) (expression_statement "pcVar36 = (char *)dcgettext(0,"%X%P: required symbol `%s\' not defined\n",5);" (assignment_expression "pcVar36 = (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(pcVar36,pcVar27);" (call_expression "einfo(pcVar36,pcVar27)" identifier (argument_list "(pcVar36,pcVar27)" ( 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    pcVar27 = (char *)dcgettext(0,\n                                "%F%P: gc-sections requires either an entry or an undefined symbol\n"\n                                ,5);\n    einfo(pcVar27);\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    pcVar27 = (char *)dcgettext(0,\n                                "%F%P: gc-sections requires either an entry or an undefined symbol\n"\n                                ,5);\n    einfo(pcVar27);\n  }" { (expression_statement "pcVar27 = (char *)dcgettext(0,\n                                "%F%P: gc-sections requires either an entry or an undefined symbol\n"\n                                ,5);" (assignment_expression "pcVar27 = (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(pcVar27);" (call_expression "einfo(pcVar27)" identifier (argument_list "(pcVar27)" ( 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 "lVar29 = bfd_link_hash_lookup(link_info.hash,entry_symbol.name,0,0,1);" (assignment_expression "lVar29 = 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 ((lVar29 != 0) && ((byte)(*(char *)(lVar29 + 0x18) - 3U) < 2)) {\n    lVar11 = *(long *)(*(long *)(lVar29 + 0x28) + 0x68);\n    if (lVar11 != 0) {\n      iVar25 = bfd_set_start_address\n                         (link_info.output_bfd,\n                          *(long *)(lVar11 + 0x28) +\n                          *(long *)(*(long *)(lVar29 + 0x28) + 0x60) + *(long *)(lVar29 + 0x30));\n      if (iVar25 != 0) {\n        return;\n      }\n      pcVar27 = "%F%P: %s: can\'t set start address\n";\n      goto LAB_0011cf37;\n    }\n  }" if (parenthesized_expression "((lVar29 != 0) && ((byte)(*(char *)(lVar29 + 0x18) - 3U) < 2))" ( (binary_expression "(lVar29 != 0) && ((byte)(*(char *)(lVar29 + 0x18) - 3U) < 2)" (parenthesized_expression "(lVar29 != 0)" ( (binary_expression "lVar29 != 0" identifier != number_literal) )) && (parenthesized_expression "((byte)(*(char *)(lVar29 + 0x18) - 3U) < 2)" ( (binary_expression "(byte)(*(char *)(lVar29 + 0x18) - 3U) < 2" (call_expression "(byte)(*(char *)(lVar29 + 0x18) - 3U)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(*(char *)(lVar29 + 0x18) - 3U)" ( (binary_expression "*(char *)(lVar29 + 0x18) - 3U" (pointer_expression "*(char *)(lVar29 + 0x18)" * (cast_expression "(char *)(lVar29 + 0x18)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar29 + 0x18)" ( (binary_expression "lVar29 + 0x18" identifier + number_literal) )))) - number_literal) ))) < number_literal) ))) )) (compound_statement "{\n    lVar11 = *(long *)(*(long *)(lVar29 + 0x28) + 0x68);\n    if (lVar11 != 0) {\n      iVar25 = bfd_set_start_address\n                         (link_info.output_bfd,\n                          *(long *)(lVar11 + 0x28) +\n                          *(long *)(*(long *)(lVar29 + 0x28) + 0x60) + *(long *)(lVar29 + 0x30));\n      if (iVar25 != 0) {\n        return;\n      }\n      pcVar27 = "%F%P: %s: can\'t set start address\n";\n      goto LAB_0011cf37;\n    }\n  }" { (expression_statement "lVar11 = *(long *)(*(long *)(lVar29 + 0x28) + 0x68);" (assignment_expression "lVar11 = *(long *)(*(long *)(lVar29 + 0x28) + 0x68)" identifier = (pointer_expression "*(long *)(*(long *)(lVar29 + 0x28) + 0x68)" * (cast_expression "(long *)(*(long *)(lVar29 + 0x28) + 0x68)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(lVar29 + 0x28) + 0x68)" ( (binary_expression "*(long *)(lVar29 + 0x28) + 0x68" (pointer_expression "*(long *)(lVar29 + 0x28)" * (cast_expression "(long *)(lVar29 + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar29 + 0x28)" ( (binary_expression "lVar29 + 0x28" identifier + number_literal) )))) + number_literal) ))))) ;) (if_statement "if (lVar11 != 0) {\n      iVar25 = bfd_set_start_address\n                         (link_info.output_bfd,\n                          *(long *)(lVar11 + 0x28) +\n                          *(long *)(*(long *)(lVar29 + 0x28) + 0x60) + *(long *)(lVar29 + 0x30));\n      if (iVar25 != 0) {\n        return;\n      }\n      pcVar27 = "%F%P: %s: can\'t set start address\n";\n      goto LAB_0011cf37;\n    }" if (parenthesized_expression "(lVar11 != 0)" ( (binary_expression "lVar11 != 0" identifier != number_literal) )) (compound_statement "{\n      iVar25 = bfd_set_start_address\n                         (link_info.output_bfd,\n                          *(long *)(lVar11 + 0x28) +\n                          *(long *)(*(long *)(lVar29 + 0x28) + 0x60) + *(long *)(lVar29 + 0x30));\n      if (iVar25 != 0) {\n        return;\n      }\n      pcVar27 = "%F%P: %s: can\'t set start address\n";\n      goto LAB_0011cf37;\n    }" { (expression_statement "iVar25 = bfd_set_start_address\n                         (link_info.output_bfd,\n                          *(long *)(lVar11 + 0x28) +\n                          *(long *)(*(long *)(lVar29 + 0x28) + 0x60) + *(long *)(lVar29 + 0x30));" (assignment_expression "iVar25 = bfd_set_start_address\n                         (link_info.output_bfd,\n                          *(long *)(lVar11 + 0x28) +\n                          *(long *)(*(long *)(lVar29 + 0x28) + 0x60) + *(long *)(lVar29 + 0x30))" identifier = (call_expression "bfd_set_start_address\n                         (link_info.output_bfd,\n                          *(long *)(lVar11 + 0x28) +\n                          *(long *)(*(long *)(lVar29 + 0x28) + 0x60) + *(long *)(lVar29 + 0x30))" identifier (argument_list "(link_info.output_bfd,\n                          *(long *)(lVar11 + 0x28) +\n                          *(long *)(*(long *)(lVar29 + 0x28) + 0x60) + *(long *)(lVar29 + 0x30))" ( (field_expression "link_info.output_bfd" identifier . field_identifier) , (binary_expression "*(long *)(lVar11 + 0x28) +\n                          *(long *)(*(long *)(lVar29 + 0x28) + 0x60) + *(long *)(lVar29 + 0x30)" (binary_expression "*(long *)(lVar11 + 0x28) +\n                          *(long *)(*(long *)(lVar29 + 0x28) + 0x60)" (pointer_expression "*(long *)(lVar11 + 0x28)" * (cast_expression "(long *)(lVar11 + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar11 + 0x28)" ( (binary_expression "lVar11 + 0x28" identifier + number_literal) )))) + (pointer_expression "*(long *)(*(long *)(lVar29 + 0x28) + 0x60)" * (cast_expression "(long *)(*(long *)(lVar29 + 0x28) + 0x60)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(lVar29 + 0x28) + 0x60)" ( (binary_expression "*(long *)(lVar29 + 0x28) + 0x60" (pointer_expression "*(long *)(lVar29 + 0x28)" * (cast_expression "(long *)(lVar29 + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar29 + 0x28)" ( (binary_expression "lVar29 + 0x28" identifier + number_literal) )))) + number_literal) ))))) + (pointer_expression "*(long *)(lVar29 + 0x30)" * (cast_expression "(long *)(lVar29 + 0x30)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar29 + 0x30)" ( (binary_expression "lVar29 + 0x30" 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 "pcVar27 = "%F%P: %s: can\'t set start address\n";" (assignment_expression "pcVar27 = "%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_0011cf37;" goto statement_identifier ;) })) })) (expression_statement "uVar37 = bfd_scan_vma(entry_symbol.name,&power,0);" (assignment_expression "uVar37 = 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 *)CONCAT44(uStack_3c,power) == '\0') {\n    iVar25 = bfd_set_start_address(link_info.output_bfd,uVar37);\n  }\n  else {\n    lVar29 = bfd_get_section_by_name(link_info.output_bfd,entry_section);\n    pcVar27 = entry_symbol.name;\n    if (lVar29 == 0) {\n      if (iVar25 == 0) {\n        return;\n      }\n      pcVar27 = "%P: warning: cannot find entry symbol %s; not setting start address\n";\nLAB_0011cf37:\n      pcVar36 = entry_symbol.name;\n      pcVar27 = (char *)dcgettext(0,pcVar27,5);\n      einfo(pcVar27,pcVar36);\n      return;\n    }\n    uVar37 = *(undefined8 *)(lVar29 + 0x28);\n    if (iVar25 != 0) {\n      pcVar36 = (char *)dcgettext(0,"%P: warning: cannot find entry symbol %s; defaulting to %V\n",5\n                                 );\n      einfo(pcVar36,pcVar27,uVar37);\n      uVar37 = *(undefined8 *)(lVar29 + 0x28);\n    }\n    iVar25 = bfd_set_start_address(link_info.output_bfd,uVar37);\n  }" if (parenthesized_expression "(*(char *)CONCAT44(uStack_3c,power) == '\0')" ( (binary_expression "*(char *)CONCAT44(uStack_3c,power) == '\0'" (pointer_expression "*(char *)CONCAT44(uStack_3c,power)" * (cast_expression "(char *)CONCAT44(uStack_3c,power)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "CONCAT44(uStack_3c,power)" identifier (argument_list "(uStack_3c,power)" ( identifier , identifier ))))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    iVar25 = bfd_set_start_address(link_info.output_bfd,uVar37);\n  }" { (expression_statement "iVar25 = bfd_set_start_address(link_info.output_bfd,uVar37);" (assignment_expression "iVar25 = bfd_set_start_address(link_info.output_bfd,uVar37)" identifier = (call_expression "bfd_set_start_address(link_info.output_bfd,uVar37)" identifier (argument_list "(link_info.output_bfd,uVar37)" ( (field_expression "link_info.output_bfd" identifier . field_identifier) , identifier )))) ;) }) (else_clause "else {\n    lVar29 = bfd_get_section_by_name(link_info.output_bfd,entry_section);\n    pcVar27 = entry_symbol.name;\n    if (lVar29 == 0) {\n      if (iVar25 == 0) {\n        return;\n      }\n      pcVar27 = "%P: warning: cannot find entry symbol %s; not setting start address\n";\nLAB_0011cf37:\n      pcVar36 = entry_symbol.name;\n      pcVar27 = (char *)dcgettext(0,pcVar27,5);\n      einfo(pcVar27,pcVar36);\n      return;\n    }\n    uVar37 = *(undefined8 *)(lVar29 + 0x28);\n    if (iVar25 != 0) {\n      pcVar36 = (char *)dcgettext(0,"%P: warning: cannot find entry symbol %s; defaulting to %V\n",5\n                                 );\n      einfo(pcVar36,pcVar27,uVar37);\n      uVar37 = *(undefined8 *)(lVar29 + 0x28);\n    }\n    iVar25 = bfd_set_start_address(link_info.output_bfd,uVar37);\n  }" else (compound_statement "{\n    lVar29 = bfd_get_section_by_name(link_info.output_bfd,entry_section);\n    pcVar27 = entry_symbol.name;\n    if (lVar29 == 0) {\n      if (iVar25 == 0) {\n        return;\n      }\n      pcVar27 = "%P: warning: cannot find entry symbol %s; not setting start address\n";\nLAB_0011cf37:\n      pcVar36 = entry_symbol.name;\n      pcVar27 = (char *)dcgettext(0,pcVar27,5);\n      einfo(pcVar27,pcVar36);\n      return;\n    }\n    uVar37 = *(undefined8 *)(lVar29 + 0x28);\n    if (iVar25 != 0) {\n      pcVar36 = (char *)dcgettext(0,"%P: warning: cannot find entry symbol %s; defaulting to %V\n",5\n                                 );\n      einfo(pcVar36,pcVar27,uVar37);\n      uVar37 = *(undefined8 *)(lVar29 + 0x28);\n    }\n    iVar25 = bfd_set_start_address(link_info.output_bfd,uVar37);\n  }" { (expression_statement "lVar29 = bfd_get_section_by_name(link_info.output_bfd,entry_section);" (assignment_expression "lVar29 = 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 "pcVar27 = entry_symbol.name;" (assignment_expression "pcVar27 = entry_symbol.name" identifier = (field_expression "entry_symbol.name" identifier . field_identifier)) ;) (if_statement "if (lVar29 == 0) {\n      if (iVar25 == 0) {\n        return;\n      }\n      pcVar27 = "%P: warning: cannot find entry symbol %s; not setting start address\n";\nLAB_0011cf37:\n      pcVar36 = entry_symbol.name;\n      pcVar27 = (char *)dcgettext(0,pcVar27,5);\n      einfo(pcVar27,pcVar36);\n      return;\n    }" if (parenthesized_expression "(lVar29 == 0)" ( (binary_expression "lVar29 == 0" identifier == number_literal) )) (compound_statement "{\n      if (iVar25 == 0) {\n        return;\n      }\n      pcVar27 = "%P: warning: cannot find entry symbol %s; not setting start address\n";\nLAB_0011cf37:\n      pcVar36 = entry_symbol.name;\n      pcVar27 = (char *)dcgettext(0,pcVar27,5);\n      einfo(pcVar27,pcVar36);\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 "pcVar27 = "%P: warning: cannot find entry symbol %s; not setting start address\n";" (assignment_expression "pcVar27 = "%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_0011cf37:\n      pcVar36 = entry_symbol.name;" statement_identifier : (expression_statement "pcVar36 = entry_symbol.name;" (assignment_expression "pcVar36 = entry_symbol.name" identifier = (field_expression "entry_symbol.name" identifier . field_identifier)) ;)) (expression_statement "pcVar27 = (char *)dcgettext(0,pcVar27,5);" (assignment_expression "pcVar27 = (char *)dcgettext(0,pcVar27,5)" identifier = (cast_expression "(char *)dcgettext(0,pcVar27,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,pcVar27,5)" identifier (argument_list "(0,pcVar27,5)" ( number_literal , identifier , number_literal ))))) ;) (expression_statement "einfo(pcVar27,pcVar36);" (call_expression "einfo(pcVar27,pcVar36)" identifier (argument_list "(pcVar27,pcVar36)" ( identifier , identifier ))) ;) (return_statement "return;" return ;) })) (expression_statement "uVar37 = *(undefined8 *)(lVar29 + 0x28);" (assignment_expression "uVar37 = *(undefined8 *)(lVar29 + 0x28)" identifier = (pointer_expression "*(undefined8 *)(lVar29 + 0x28)" * (cast_expression "(undefined8 *)(lVar29 + 0x28)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar29 + 0x28)" ( (binary_expression "lVar29 + 0x28" identifier + number_literal) ))))) ;) (if_statement "if (iVar25 != 0) {\n      pcVar36 = (char *)dcgettext(0,"%P: warning: cannot find entry symbol %s; defaulting to %V\n",5\n                                 );\n      einfo(pcVar36,pcVar27,uVar37);\n      uVar37 = *(undefined8 *)(lVar29 + 0x28);\n    }" if (parenthesized_expression "(iVar25 != 0)" ( (binary_expression "iVar25 != 0" identifier != number_literal) )) (compound_statement "{\n      pcVar36 = (char *)dcgettext(0,"%P: warning: cannot find entry symbol %s; defaulting to %V\n",5\n                                 );\n      einfo(pcVar36,pcVar27,uVar37);\n      uVar37 = *(undefined8 *)(lVar29 + 0x28);\n    }" { (expression_statement "pcVar36 = (char *)dcgettext(0,"%P: warning: cannot find entry symbol %s; defaulting to %V\n",5\n                                 );" (assignment_expression "pcVar36 = (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(pcVar36,pcVar27,uVar37);" (call_expression "einfo(pcVar36,pcVar27,uVar37)" identifier (argument_list "(pcVar36,pcVar27,uVar37)" ( identifier , identifier , identifier ))) ;) (expression_statement "uVar37 = *(undefined8 *)(lVar29 + 0x28);" (assignment_expression "uVar37 = *(undefined8 *)(lVar29 + 0x28)" identifier = (pointer_expression "*(undefined8 *)(lVar29 + 0x28)" * (cast_expression "(undefined8 *)(lVar29 + 0x28)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar29 + 0x28)" ( (binary_expression "lVar29 + 0x28" identifier + number_literal) ))))) ;) })) (expression_statement "iVar25 = bfd_set_start_address(link_info.output_bfd,uVar37);" (assignment_expression "iVar25 = bfd_set_start_address(link_info.output_bfd,uVar37)" identifier = (call_expression "bfd_set_start_address(link_info.output_bfd,uVar37)" identifier (argument_list "(link_info.output_bfd,uVar37)" ( (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 "pcVar27 = (char *)dcgettext(0,"%F%P: can\'t set start address\n",5);" (assignment_expression "pcVar27 = (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(pcVar27);" (call_expression "einfo(pcVar27)" identifier (argument_list "(pcVar27)" ( identifier ))) ;) (return_statement "return;" return ;) (labeled_statement "code_r0x0011c5be:\n  plVar51 = (plVar51->wild_statement).children.head;" statement_identifier : (expression_statement "plVar51 = (plVar51->wild_statement).children.head;" (assignment_expression "plVar51 = (plVar51->wild_statement).children.head" identifier = (field_expression "(plVar51->wild_statement).children.head" (field_expression "(plVar51->wild_statement).children" (parenthesized_expression "(plVar51->wild_statement)" ( (field_expression "plVar51->wild_statement" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;)) (goto_statement "goto joined_r0x0011be7f;" goto statement_identifier ;) (labeled_statement "LAB_0011c1d0:\n  pcVar27 = (pmVar52->name_list).name;" statement_identifier : (expression_statement "pcVar27 = (pmVar52->name_list).name;" (assignment_expression "pcVar27 = (pmVar52->name_list).name" identifier = (field_expression "(pmVar52->name_list).name" (parenthesized_expression "(pmVar52->name_list)" ( (field_expression "pmVar52->name_list" identifier -> field_identifier) )) . field_identifier)) ;)) (expression_statement "pcVar36 = (char *)dcgettext(0,"%F%P: invalid length for memory region %s\n",5);" (assignment_expression "pcVar36 = (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(pcVar36,pcVar27);" (call_expression "einfo(pcVar36,pcVar27)" identifier (argument_list "(pcVar36,pcVar27)" ( identifier , identifier ))) ;) (expression_statement "pmVar52 = pmVar52->next;" (assignment_expression "pmVar52 = pmVar52->next" identifier = (field_expression "pmVar52->next" identifier -> field_identifier)) ;) (goto_statement "goto joined_r0x0011bfdf;" goto statement_identifier ;) (labeled_statement "code_r0x0011c493:\n  (*((plVar51->input_statement).the_bfd)->xvec->_bfd_link_just_syms)(pbVar39,&link_info);" statement_identifier : (expression_statement "(*((plVar51->input_statement).the_bfd)->xvec->_bfd_link_just_syms)(pbVar39,&link_info);" (call_expression "(*((plVar51->input_statement).the_bfd)->xvec->_bfd_link_just_syms)(pbVar39,&link_info)" (parenthesized_expression "(*((plVar51->input_statement).the_bfd)->xvec->_bfd_link_just_syms)" ( (pointer_expression "*((plVar51->input_statement).the_bfd)->xvec->_bfd_link_just_syms" * (field_expression "((plVar51->input_statement).the_bfd)->xvec->_bfd_link_just_syms" (field_expression "((plVar51->input_statement).the_bfd)->xvec" (parenthesized_expression "((plVar51->input_statement).the_bfd)" ( (field_expression "(plVar51->input_statement).the_bfd" (parenthesized_expression "(plVar51->input_statement)" ( (field_expression "plVar51->input_statement" identifier -> field_identifier) )) . field_identifier) )) -> field_identifier) -> field_identifier)) )) (argument_list "(pbVar39,&link_info)" ( identifier , (pointer_expression "&link_info" & identifier) ))) ;)) (expression_statement "pbVar39 = pbVar39->next;" (assignment_expression "pbVar39 = pbVar39->next" identifier = (field_expression "pbVar39->next" identifier -> field_identifier)) ;) (goto_statement "goto joined_r0x0011c46e;" goto statement_identifier ;) (labeled_statement "code_r0x0011c93b:\n  plVar43 = (plVar51->wild_statement).children.head;" statement_identifier : (expression_statement "plVar43 = (plVar51->wild_statement).children.head;" (assignment_expression "plVar43 = (plVar51->wild_statement).children.head" identifier = (field_expression "(plVar51->wild_statement).children.head" (field_expression "(plVar51->wild_statement).children" (parenthesized_expression "(plVar51->wild_statement)" ( (field_expression "plVar51->wild_statement" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;)) (expression_statement "pcVar27 = (char *)dcgettext(0,"%X%P: section `%s\' assigned to non-existent phdr `%s\'\n",5);" (assignment_expression "pcVar27 = (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(pcVar27,plVar43,pbVar7);" (call_expression "einfo(pcVar27,plVar43,pbVar7)" identifier (argument_list "(pcVar27,plVar43,pbVar7)" ( identifier , identifier , identifier ))) ;) (expression_statement "plVar54 = plVar54->next;" (assignment_expression "plVar54 = plVar54->next" identifier = (field_expression "plVar54->next" identifier -> field_identifier)) ;) (expression_statement "has_relro_section = extraout_RDX_00;" (assignment_expression "has_relro_section = extraout_RDX_00" identifier = identifier) ;) (goto_statement "goto joined_r0x0011c90a;" goto statement_identifier ;) })))
(translation_unit "void FUN_0011bca0(void)\n\n{\n  byte bVar1;\n  uint uVar2;\n  long *plVar3;\n  byte *pbVar4;\n  long lVar5;\n  long *plVar6;\n  undefined *puVar7;\n  char cVar8;\n  int iVar9;\n  undefined4 uVar10;\n  undefined8 uVar11;\n  size_t sVar12;\n  long lVar13;\n  undefined8 uVar14;\n  long lVar15;\n  long lVar16;\n  long *plVar17;\n  void *__ptr;\n  long *plVar18;\n  char *pcVar19;\n  byte *pbVar20;\n  undefined8 *puVar21;\n  undefined8 *puVar22;\n  ulong uVar23;\n  undefined8 uVar24;\n  ulong uVar25;\n  long *plVar26;\n  undefined8 *puVar27;\n  long lVar28;\n  ulong uVar29;\n  ulong uVar30;\n  char *pcVar31;\n  byte *pbVar32;\n  long lVar33;\n  ulong uVar34;\n  byte bVar35;\n  long *plVar36;\n  ulong uVar37;\n  bool bVar38;\n  bool bVar39;\n  byte bVar40;\n  uint local_40;\n  undefined4 uStack_3c;\n  \n  bVar40 = 0;\n  if (DAT_0017fb98 != 0) {\n    FUN_00112d70();\n  }\n  DAT_0017f440 = DAT_0017fcc8;\n  FUN_00115a50(FUN_001182b0,DAT_0017f430);\n  FUN_00113540();\n  FUN_00123c10();\n  for (puVar21 = DAT_0017f2e0; puVar21 != (undefined8 *)0x0; puVar21 = (undefined8 *)*puVar21) {\n    FUN_00112b40(puVar21[1]);\n  }\n  iVar9 = bfd_section_already_linked_table_init();\n  if (iVar9 == 0) {\n    uVar11 = dcgettext(0,"%F%P: can not create hash table: %E\n",5);\n    FUN_001251f0(uVar11);\n  }\n  _DAT_0017f2c0 = _DAT_0017f2c0 + 1;\n  DAT_0017f440 = DAT_0017fcc8;\n  FUN_00119910(DAT_0017f430,0);\n  plVar3 = DAT_0017fa28;\n  plVar26 = DAT_0017fa20;\n  plVar18 = DAT_0017f2f8;\n  plVar17 = DAT_0017f2f0;\n  if ((DAT_0017fac1 & 2) != 0) {\n    lVar16 = *(long *)PTR_DAT_0017e650;\n    plVar36 = *(long **)(PTR_DAT_0017e650 + 8);\n    iVar9 = FUN_00128bb0();\n    if (iVar9 != 0) {\n      uVar11 = FUN_00128550();\n      uVar14 = dcgettext(0,"%F%P: %s: plugin reported error after all symbols read\n",5);\n      FUN_001251f0(uVar14,uVar11);\n    }\n    FUN_00119910(*plVar36,0);\n    puVar7 = PTR_DAT_0017e650;\n    if (*(long *)PTR_DAT_0017e650 != lVar16) {\n      FUN_001252b0("../../ld/ldlang.c",0x1baf);\n    }\n    plVar6 = *(long **)(puVar7 + 8);\n    lVar16 = *plVar36;\n    *(long **)(puVar7 + 8) = plVar36;\n    *plVar36 = 0;\n    if (DAT_0017f2f0 != plVar17) {\n      FUN_001252b0("../../ld/ldlang.c",0x1baf);\n    }\n    plVar36 = DAT_0017f2f8;\n    plVar17 = (long *)*plVar18;\n    DAT_0017f2f8 = plVar18;\n    *plVar18 = 0;\n    if (DAT_0017fa20 != plVar26) {\n      FUN_001252b0("../../ld/ldlang.c",0x1baf);\n    }\n    plVar26 = DAT_0017fa28;\n    lVar15 = *plVar3;\n    DAT_0017fa28 = plVar3;\n    *plVar3 = 0;\n    plVar18 = DAT_0017f2f0;\n    plVar3 = DAT_0017fa20;\n    if (lVar16 != 0) {\n      for (; DAT_0017f380 = plVar3, plVar18 != (long *)0x0; plVar18 = (long *)plVar18[6]) {\n        if ((*(byte *)((long)plVar18 + 0x49) & 0x20) != 0) {\n          if ((*(byte *)((long)plVar18 + 0x49) & 0x40) == 0) goto LAB_0011d6c0;\n          break;\n        }\n        if ((plVar18[4] != 0) && (*(long *)(plVar18[4] + 0xd0) == 0)) {\n          DAT_0017f380 = plVar18;\n        }\n        plVar3 = DAT_0017f380;\n      }\n      plVar18 = DAT_0017f380;\n      if (DAT_0017f380 == (long *)0x0) {\n        FUN_001252b0("../../ld/ldlang.c",0x1c32);\n        plVar18 = DAT_0017f380;\n      }\nLAB_0011d6c0:\n      DAT_0017f380 = plVar18;\n      plVar18 = DAT_0017f380;\n      puVar7 = PTR_DAT_0017e650;\n      *plVar6 = *DAT_0017f380;\n      *plVar18 = lVar16;\n      if (plVar18 == *(long **)(puVar7 + 8)) {\n        *(long **)(puVar7 + 8) = plVar6;\n      }\n      *plVar26 = plVar18[7];\n      bVar38 = DAT_0017fa28 == plVar18 + 7;\n      plVar18[7] = lVar15;\n      plVar3 = DAT_0017f2f8;\n      if (bVar38) {\n        DAT_0017fa28 = plVar26;\n      }\n      if (plVar18[2] == 0) {\n        *plVar36 = (long)DAT_0017f2f0;\n        DAT_0017f2f0 = plVar17;\n        if ((long **)plVar3 != &DAT_0017f2f0) {\n          plVar36 = DAT_0017f2f8;\n        }\n      }\n      else {\n        *plVar36 = plVar18[6];\n        plVar18[6] = (long)plVar17;\n        if (plVar3 != plVar18 + 6) {\n          plVar36 = DAT_0017f2f8;\n        }\n      }\n      DAT_0017f2f8 = plVar36;\n      plVar18 = DAT_0017f2f8;\n      plVar17 = DAT_0017f2f0;\n      _DAT_0017f2c0 = _DAT_0017f2c0 + 1;\n      FUN_00119910(DAT_0017f430);\n      if (DAT_0017f2f0 != plVar17) {\n        FUN_001252b0("../../ld/ldlang.c");\n      }\n      lVar16 = *plVar18;\n      DAT_0017f2f8 = plVar18;\n      *plVar18 = 0;\n      while (lVar16 != 0) {\n        lVar15 = *(long *)(*(long *)(lVar16 + 0x20) + 0xd0);\n        lVar13 = *(long *)(lVar16 + 0x20);\n        if (lVar15 != 0) {\n          lVar13 = lVar15;\n        }\n        if (DAT_0017fa20 == (long *)0x0) {\nLAB_0011dad0:\n          plVar17 = DAT_0017f2f0;\n        }\n        else {\n          plVar26 = (long *)0x0;\n          plVar18 = DAT_0017fa20;\n          plVar17 = (long *)0x0;\n          do {\n            while (plVar18[4] != lVar13) {\n              if ((plVar18[4] != 0) && (plVar18[6] != 0)) {\n                plVar26 = plVar18;\n              }\n              plVar18 = (long *)plVar18[7];\n              if (plVar18 == (long *)0x0) goto LAB_0011d7f1;\n            }\n            lVar28 = plVar18[6];\n            if (lVar28 != 0) {\n              plVar17 = (long *)(lVar28 + 0x30);\n              lVar13 = *(long *)(lVar28 + 0x30);\n              goto LAB_0011d835;\n            }\n            plVar18 = (long *)plVar18[7];\n            plVar17 = plVar26;\n          } while (plVar18 != (long *)0x0);\nLAB_0011d7f1:\n          if (plVar17 == (long *)0x0) goto LAB_0011dad0;\n        }\n        plVar17 = plVar17 + 6;\n        for (lVar13 = *plVar17; lVar13 != 0; lVar13 = *(long *)(lVar13 + 0x30)) {\n          if (((*(byte *)(lVar13 + 0x49) & 0x40) == 0) &&\n             (*(long *)(*(long *)(lVar13 + 0x20) + 0xd0) == 0)) {\n            lVar13 = *plVar17;\n            break;\n          }\n          plVar17 = (long *)(lVar13 + 0x30);\n        }\nLAB_0011d835:\n        plVar18 = (long *)(lVar16 + 0x30);\n        if (lVar15 == 0) {\n          *plVar17 = lVar16;\n          lVar15 = *(long *)(lVar16 + 0x30);\n          *(long *)(lVar16 + 0x30) = lVar13;\n          lVar16 = lVar15;\n        }\n        else {\n          lVar28 = *(long *)(lVar16 + 0x30);\n          if (lVar28 != 0) {\n            lVar5 = *(long *)(*(long *)(lVar28 + 0x20) + 0xd0);\n            while (lVar15 == lVar5) {\n              plVar18 = (long *)(lVar28 + 0x30);\n              lVar28 = *(long *)(lVar28 + 0x30);\n              if (lVar28 == 0) break;\n              lVar5 = *(long *)(*(long *)(lVar28 + 0x20) + 0xd0);\n            }\n          }\n          *plVar17 = lVar16;\n          lVar16 = *plVar18;\n          *plVar18 = lVar13;\n          if (*(long *)(lVar15 + 0x100) != 0) {\n            *(long **)(*(long *)(lVar15 + 0x100) + 0x30) = plVar18 + -6;\n          }\n        }\n      }\n    }\n  }\n  if (DAT_0017fb38 != (undefined8 *)0x0) {\n    FUN_001252b0("../../ld/ldlang.c",0x1c67);\n  }\n  DAT_0017fb38 = &DAT_0017f2e0;\n  if (DAT_0017f2e8 == (undefined *)0x0) {\n    DAT_0017fb38 = DAT_0017f2e0;\n    if (PTR_s_start_0017e660 != (undefined *)0x0) {\n      FUN_00115880();\n    }\n  }\n  if (DAT_0017fb48 != 0) {\n    FUN_00115880();\n  }\n  if (DAT_0017fb50 != 0) {\n    FUN_00115880();\n  }\n  FUN_00123b90();\n  if ((DAT_0017fc98 != 0) && (DAT_0017f3d0 != (undefined8 *)0x0)) {\n    uVar11 = dcgettext(0,"\nAs-needed library included to satisfy reference by file (symbol)\n\n",5)\n    ;\n    FUN_001252f0(uVar11);\n    for (puVar21 = DAT_0017f3d0; puVar21 != (undefined8 *)0x0; puVar21 = (undefined8 *)*puVar21) {\n      FUN_001252f0(&DAT_0013efee,puVar21[1]);\n      sVar12 = strlen((char *)puVar21[1]);\n      if (0x1c < sVar12) {\n        FUN_00124290();\n        sVar12 = 0;\n      }\n      do {\n        FUN_00124270();\n        sVar12 = sVar12 + 1;\n      } while (sVar12 != 0x1e);\n      if (puVar21[2] != 0) {\n        FUN_001252f0(&DAT_0013f279);\n      }\n      FUN_001252f0("(%pT)\n",puVar21[3]);\n    }\n  }\n  bfd_section_already_linked_table_free();\n  plVar17 = DAT_0017f2f0;\njoined_r0x0011be7f:\n  if (plVar17 != (long *)0x0) {\n    do {\n      if ((*(byte *)((long)plVar17 + 0x49) & 0x20) == 0) {\n        lVar16 = plVar17[4];\n        lVar13 = bfd_arch_get_compatible(lVar16,DAT_0017fb10,DAT_0017fbdc);\n        lVar15 = DAT_0017fb10;\n        if (((DAT_0017fac0 & 3) == 2) || ((DAT_0017fac3 & 8) != 0)) {\n          if (lVar13 != 0) {\n            puVar21 = *(undefined8 **)(lVar16 + 8);\n            puVar27 = *(undefined8 **)(DAT_0017fb10 + 8);\n            if ((*(int *)(puVar21 + 1) != *(int *)(puVar27 + 1)) &&\n               ((*(byte *)(lVar16 + 0x44) & 0x20) != 0)) goto LAB_0011c12e;\n            goto LAB_0011bed4;\n          }\n          if ((*(byte *)(lVar16 + 0x44) & 0x20) != 0) {\n            puVar21 = *(undefined8 **)(lVar16 + 8);\n            puVar27 = *(undefined8 **)(DAT_0017fb10 + 8);\nLAB_0011c12e:\n            uVar11 = *puVar27;\n            uVar14 = *puVar21;\n            uVar24 = 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_001251f0(uVar24,uVar14,lVar16,uVar11,lVar15);\n            goto joined_r0x0011c167;\n          }\n        }\n        else {\njoined_r0x0011c167:\n          if (lVar13 != 0) {\nLAB_0011bed4:\n            if (*(int *)(lVar16 + 0xa0) == 0) goto LAB_0011bf30;\n            uVar11 = 0;\n            if (DAT_0017fbd0 == 0) {\n              uVar11 = bfd_set_error_handler(FUN_00112380);\n            }\n            iVar9 = (**(code **)(*(long *)(DAT_0017fb10 + 8) + 0x140))(lVar16,&DAT_0017fac0);\n            if (iVar9 == 0) {\n              if (DAT_0017fbd0 != 0) {\n                uVar14 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);\n                FUN_001251f0(uVar14,lVar16);\n                goto LAB_0011c5b0;\n              }\n            }\n            else {\nLAB_0011c5b0:\n              if (DAT_0017fbd0 != 0) goto code_r0x0011c5be;\n            }\n            bfd_set_error_handler(uVar11);\n            goto LAB_0011bf30;\n          }\n        }\n        if (DAT_0017fbd0 == 0) goto LAB_0011bf30;\n        uVar11 = bfd_printable_name(DAT_0017fb10);\n        uVar14 = bfd_printable_name(lVar16);\n        uVar24 = dcgettext(0,\n                           "%X%P: %s architecture of input file `%pB\' is incompatible with %s output\n"\n                           ,5);\n        FUN_001251f0(uVar24,uVar14,lVar16,uVar11);\n        plVar17 = (long *)plVar17[6];\n      }\n      else {\nLAB_0011bf30:\n        plVar17 = (long *)plVar17[6];\n      }\n      if (plVar17 == (long *)0x0) break;\n    } while( true );\n  }\n  if (DAT_0017fc30 != 0) {\n    uVar11 = 0;\n    for (plVar17 = DAT_0017f2f0; plVar17 != (long *)0x0; plVar17 = (long *)plVar17[6]) {\n      lVar16 = bfd_get_section_by_name(plVar17[4],".exports");\n      if (lVar16 != 0) {\n        lVar15 = *(long *)(lVar16 + 0x38);\n        pcVar31 = (char *)xmalloc(lVar15);\n        iVar9 = bfd_get_section_contents(plVar17[4],lVar16,pcVar31,0,lVar15);\n        if (iVar9 == 0) {\n          uVar14 = dcgettext(0,"%X%P: unable to read .exports section contents\n",5);\n          FUN_001251f0(uVar14,lVar16);\n        }\n        pcVar19 = pcVar31 + lVar15;\n        for (; pcVar31 < pcVar19; pcVar31 = pcVar31 + sVar12 + 1) {\n          uVar11 = FUN_0011b640(uVar11,pcVar31,0);\n          sVar12 = strlen(pcVar31);\n        }\n        *(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) | 0x208000;\n      }\n    }\n    uVar14 = FUN_0011b640(0,&DAT_0013f157,0,0);\n    lVar15 = xcalloc(1,0x70);\n    lVar16 = DAT_0017fc30;\n    *(undefined8 *)(lVar15 + 0x18) = uVar11;\n    *(undefined8 *)(lVar15 + 0x38) = uVar14;\n    *(code **)(lVar15 + 0x68) = FUN_00112f60;\n    *(undefined4 *)(lVar15 + 0x60) = 0xffffffff;\n    FUN_0011b860(lVar16,lVar15,0);\n  }\n  FUN_0011eaa0();\n  if ((DAT_0017fc4c != 0) &&\n     (cVar8 = *(char *)(*(long *)(DAT_0017fb10 + 8) + 0x1c), DAT_0017fb20 != 0)) {\n    lVar16 = DAT_0017fb20;\n    do {\n      for (puVar21 = *(undefined8 **)(lVar16 + 0x90); puVar21 != (undefined8 *)0x0;\n          puVar21 = (undefined8 *)puVar21[2]) {\n        while( true ) {\n          pbVar4 = (byte *)*puVar21;\n          bVar35 = *pbVar4;\n          if (bVar35 == 0) break;\n          bVar1 = _sch_istable[(ulong)bVar35 * 2];\n          pbVar20 = pbVar4;\n          while (((bVar1 & 0x8c) != 0 || (bVar35 == 0x5f))) {\n            pbVar20 = pbVar20 + 1;\n            bVar35 = *pbVar20;\n            if (bVar35 == 0) goto LAB_0011d178;\n            bVar1 = _sch_istable[(ulong)bVar35 * 2];\n          }\n          puVar21 = (undefined8 *)puVar21[2];\n          if (puVar21 == (undefined8 *)0x0) goto LAB_0011d163;\n        }\nLAB_0011d178:\n        sVar12 = strlen((char *)pbVar4);\n        pcVar31 = (char *)xmalloc(sVar12 + 10);\n        *pcVar31 = cVar8;\n        sprintf(pcVar31 + (cVar8 != '\0'),"__start_%s",pbVar4);\n        FUN_00112ee0(pcVar31,puVar21);\n        pcVar31[1] = cVar8;\n        builtin_strncpy(pcVar31 + (2 - (ulong)(cVar8 == '\0')),"__stop",6);\n        FUN_00112ee0(pcVar31 + 1,puVar21);\n        free(pcVar31);\n      }\nLAB_0011d163:\n      lVar16 = *(long *)(lVar16 + 0xf0);\n    } while (lVar16 != 0);\n  }\n  FUN_001188a0(1);\n  puVar21 = DAT_0017f398;\njoined_r0x0011bfdf:\n  if (puVar21 != (undefined8 *)0x0) {\n    do {\n      if (puVar21[3] != 0) {\n        FUN_00123150();\n        uVar11 = DAT_0017fd20;\n        if (DAT_0017fd38 == 0) {\n          uVar11 = *puVar21;\n          uVar14 = dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);\n          FUN_001251f0(uVar14,uVar11);\n        }\n        else {\n          puVar21[4] = DAT_0017fd20;\n          puVar21[7] = uVar11;\n        }\n      }\n      if (puVar21[6] != 0) {\n        FUN_00123150();\n        if (DAT_0017fd38 == 0) goto LAB_0011c1d0;\n        puVar21[5] = DAT_0017fd20;\n      }\n      puVar21 = (undefined8 *)puVar21[2];\n      if (puVar21 == (undefined8 *)0x0) break;\n    } while( true );\n  }\n  DAT_0017fd00 = 0;\n  if (((DAT_0017fac7 & 0x20) == 0) && (((DAT_0017fac0 & 3) != 2 || (DAT_0017fbc0 != 0)))) {\n    if (DAT_0017fc6c == 0) {\n      bfd_link_hash_traverse(DAT_0017fae8,FUN_001145f0,0);\n    }\n    else {\n      if (DAT_0017fc6c == 2) {\n        local_40 = 4;\n        do {\n          bfd_link_hash_traverse(DAT_0017fae8,FUN_001145f0,&local_40);\n          local_40 = local_40 - 1;\n        } while (local_40 != 0);\n        local_40 = 0;\n      }\n      else {\n        local_40 = 0;\n        do {\n          bfd_link_hash_traverse(DAT_0017fae8,FUN_001145f0,&local_40);\n          local_40 = local_40 + 1;\n        } while (local_40 < 5);\n        local_40 = 0xffffffff;\n      }\n      bfd_link_hash_traverse(DAT_0017fae8,FUN_001145f0,&local_40);\n    }\n  }\n  FUN_00119400(DAT_0017f430);\n  bVar35 = DAT_0017fac0;\n  plVar17 = DAT_0017f2f0;\n  if ((DAT_0017fac0 & 3) == 2) {\n    for (; plVar17 != (long *)0x0; plVar17 = (long *)plVar17[6]) {\n      if ((*(byte *)((long)plVar17 + 0x49) & 0x20) == 0) {\n        for (lVar16 = *(long *)(plVar17[4] + 0x90); lVar16 != 0; lVar16 = *(long *)(lVar16 + 0x10))\n        {\n          if ((*(uint *)(lVar16 + 0x20) & 0x2000) == 0) {\n            *(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) & 0xffff7fff;\n          }\n        }\n      }\n    }\n  }\n  if ((bVar35 & 0x40) != 0) {\n    (**(code **)(*(long *)(DAT_0017fb10 + 8) + 0x2f0))(DAT_0017fb10,&DAT_0017fac0);\n  }\n  lVar16 = DAT_0017fb20;\n  if ((DAT_0017fac6 & 0x20) != 0) {\n    for (; lVar16 != 0; lVar16 = *(long *)(lVar16 + 0xf0)) {\n      iVar9 = bfd_link_check_relocs(lVar16,&DAT_0017fac0);\n      if (iVar9 == 0) {\n        DAT_0017fc44 = 0;\n      }\n    }\n  }\n  FUN_00123ba0();\n  FUN_001124e0(DAT_0017f430);\n  _DAT_0017f2c0 = _DAT_0017f2c0 + 1;\n  FUN_00119520(DAT_0017f430,0,0);\n  plVar18 = (long *)0x0;\n  plVar26 = (long *)0x0;\n  plVar17 = DAT_0017fa60;\n  while (plVar36 = plVar17, plVar3 = (long *)*plVar36, plVar3 != (long *)0x0) {\n    plVar17 = plVar3;\n    if ((int)plVar3[1] == 0) {\n      if ((plVar26 != (long *)0x0) && (plVar3 != (long *)plVar26[4])) {\n        FUN_001252b0("../../ld/ldlang.c",0xea0);\n        plVar17 = (long *)*plVar36;\n      }\n      *(int *)((long)plVar3 + 0x84) = -2 - *(int *)((long)plVar3 + 0x84);\n      plVar26 = plVar3;\n      if (plVar18 == (long *)0x0) {\n        plVar18 = plVar3;\n      }\n    }\n    else if ((int)plVar3[1] == 0xe) {\n      lVar16 = FUN_00116e20(plVar3[2],0,0);\n      if (lVar16 == 0) {\nLAB_0011c415:\n        lVar16 = plVar3[2];\n        uVar11 = dcgettext(0,"%F%P: %s not found for insert\n",5);\n        FUN_001251f0(uVar11,lVar16);\n        plVar17 = DAT_0017f2f0;\n        goto joined_r0x0011c458;\n      }\n      if ((int)plVar3[3] != 0) {\n        do {\n          lVar16 = *(long *)(lVar16 + 0x28);\n          if (lVar16 == 0) goto LAB_0011c415;\n        } while (*(int *)(lVar16 + 0x84) < 0);\n      }\n      if (plVar26 != (long *)0x0) {\n        lVar15 = plVar18[5];\n        lVar13 = plVar26[4];\n        *(long *)(lVar15 + 0x20) = lVar13;\n        if (lVar13 == 0) {\n          DAT_0017fa68 = (long *)(lVar15 + 0x20);\n        }\n        else {\n          *(long *)(lVar13 + 0x28) = lVar15;\n        }\n        plVar26[4] = *(long *)(lVar16 + 0x20);\n        if (*(long *)(lVar16 + 0x20) == 0) {\n          DAT_0017fa68 = plVar26 + 4;\n        }\n        else {\n          *(long **)(*(long *)(lVar16 + 0x20) + 0x28) = plVar26;\n        }\n        plVar18[5] = lVar16;\n        lVar13 = 0;\n        lVar15 = 0;\n        *(long **)(lVar16 + 0x20) = plVar18;\n        do {\n          *(int *)((long)plVar18 + 0x84) = -2 - *(int *)((long)plVar18 + 0x84);\n          lVar28 = plVar18[7];\n          if (((lVar28 != 0) && (*(long *)(lVar28 + 0xf0) != 0)) && (lVar13 = lVar28, lVar15 == 0))\n          {\n            lVar15 = lVar28;\n          }\n        } while ((plVar26 != plVar18) && (plVar18 = (long *)plVar18[4], plVar18 != (long *)0x0));\n        plVar18 = (long *)0x0;\n        if (lVar13 != 0) {\n          lVar28 = *(long *)(lVar16 + 0x38);\n          if (lVar28 == 0) {\n            plVar18 = *(long **)(lVar16 + 0x28);\n            if (plVar18 != (long *)0x0) {\n              do {\n                if (((-1 < *(int *)((long)plVar18 + 0x84)) && (lVar28 = plVar18[7], lVar28 != 0)) &&\n                   (*(long *)(lVar28 + 0xf0) != 0)) goto LAB_0011cd61;\n                plVar18 = (long *)plVar18[5];\n              } while (plVar18 != (long *)0x0);\n              plVar18 = (long *)0x0;\n            }\n          }\n          else {\nLAB_0011cd61:\n            plVar18 = (long *)0x0;\n            if (lVar28 != lVar13) {\n              lVar5 = *(long *)(lVar15 + 0x18);\n              lVar33 = *(long *)(lVar13 + 0x10);\n              if (lVar5 == 0) {\n                *(long *)(DAT_0017fb10 + 0x90) = lVar33;\n              }\n              else {\n                *(long *)(lVar5 + 0x10) = lVar33;\n                lVar33 = *(long *)(lVar13 + 0x10);\n              }\n              if (lVar33 == 0) {\n                *(long *)(DAT_0017fb10 + 0x98) = lVar5;\n              }\n              else {\n                *(long *)(lVar33 + 0x18) = lVar5;\n              }\n              lVar5 = *(long *)(lVar28 + 0x10);\n              *(long *)(lVar13 + 0x10) = lVar5;\n              if (lVar5 == 0) {\n                *(long *)(DAT_0017fb10 + 0x98) = lVar13;\n              }\n              else {\n                *(long *)(lVar5 + 0x18) = lVar13;\n              }\n              *(long *)(lVar15 + 0x18) = lVar28;\n              plVar18 = (long *)0x0;\n              *(long *)(lVar28 + 0x10) = lVar15;\n            }\n          }\n        }\n      }\n      plVar17 = (long *)FUN_00112240(lVar16);\n      lVar16 = *DAT_0017fa60;\n      *DAT_0017fa60 = *(long *)*plVar36;\n      lVar15 = *plVar17;\n      *plVar36 = lVar15;\n      if (lVar15 == 0) {\n        DAT_0017f438 = plVar36;\n      }\n      *plVar17 = lVar16;\n      plVar26 = (long *)0x0;\n      plVar17 = DAT_0017fa60;\n    }\n  }\n  for (; (plVar17 = DAT_0017f2f0, plVar18 != (long *)0x0 &&\n         (*(int *)((long)plVar18 + 0x84) = -2 - *(int *)((long)plVar18 + 0x84),\n         plVar17 = DAT_0017f2f0, plVar26 != plVar18)); plVar18 = (long *)plVar18[4]) {\n  }\njoined_r0x0011c458:\n  for (; plVar17 != (long *)0x0; plVar17 = (long *)plVar17[6]) {\n    puVar21 = *(undefined8 **)(plVar17[4] + 0x90);\njoined_r0x0011c46e:\n    if (puVar21 != (undefined8 *)0x0) {\n      do {\n        if (puVar21[0xd] == 0) {\n          if ((*(byte *)(plVar17 + 9) & 0x10) != 0) goto code_r0x0011c493;\n          iVar9 = FUN_00113350(*(undefined4 *)(puVar21 + 4));\n          bVar38 = false;\n          bVar39 = iVar9 == 0;\n          if (bVar39) {\n            pbVar4 = (byte *)*puVar21;\n            lVar16 = 7;\n            pbVar20 = pbVar4;\n            pbVar32 = (byte *)"COMMON";\n            do {\n              if (lVar16 == 0) break;\n              lVar16 = lVar16 + -1;\n              bVar38 = *pbVar20 < *pbVar32;\n              bVar39 = *pbVar20 == *pbVar32;\n              pbVar20 = pbVar20 + (ulong)bVar40 * -2 + 1;\n              pbVar32 = pbVar32 + (ulong)bVar40 * -2 + 1;\n            } while (bVar39);\n            if ((!bVar38 && !bVar39) == bVar38) {\n              if (((DAT_0017fac0 & 3) != 2) || (DAT_0017fbc0 != 0)) {\n                lVar16 = DAT_0017f458;\n                if (DAT_0017f458 == 0) {\n                  lVar16 = FUN_00116e20(".bss",0,1);\n                  DAT_0017f458 = lVar16;\n                }\nLAB_0011c659:\n                FUN_00117b90(lVar16 + 0x10,puVar21,0);\n              }\n            }\n            else {\n              if (DAT_0017fc5c == 1) {\n                lVar16 = FUN_00116e20("/DISCARD/",0,1);\n                if ((*(long *)(lVar16 + 0x58) == 0) &&\n                   (((DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0)))) {\n                  uVar11 = FUN_00123030(0);\n                  *(undefined8 *)(lVar16 + 0x58) = uVar11;\n                }\n                goto LAB_0011c659;\n              }\n              if (DAT_0017fc5c == 3) {\n                uVar11 = puVar21[0x1e];\n                uVar14 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_001251f0(uVar14,puVar21,uVar11);\n              }\n              if ((DAT_0017fc78 == 0) && (iVar9 = FUN_001150a0(puVar21,0), iVar9 == 0)) {\n                uVar10 = 0;\n              }\n              else {\n                uVar10 = 0x17e;\n              }\n              lVar16 = FUN_00123c60(puVar21,pbVar4,uVar10);\n              if (lVar16 == 0) {\n                lVar16 = FUN_00116e20(pbVar4,uVar10,1);\n                if ((*(long *)(lVar16 + 0x58) == 0) &&\n                   (((DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0)))) {\n                  uVar11 = FUN_00123030(0);\n                  *(undefined8 *)(lVar16 + 0x58) = uVar11;\n                }\n                FUN_00117b90(lVar16 + 0x10,puVar21,0);\n              }\n              if (DAT_0017fc5c == 2) {\n                uVar11 = puVar21[0x1e];\n                uVar14 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_001251f0(uVar14,puVar21,uVar11);\n              }\n            }\n          }\n          else {\n            puVar21[0xd] = 0x17ed50;\n          }\n        }\n        puVar21 = (undefined8 *)puVar21[2];\n        if (puVar21 == (undefined8 *)0x0) break;\n      } while( true );\n    }\n  }\n  bVar35 = DAT_0017fac0 & 3;\n  plVar17 = DAT_0017f358;\n  plVar18 = DAT_0017fa60;\n  lVar16 = DAT_0017fb10;\n  if (bVar35 != 2) {\n    (**(code **)(*(long *)(DAT_0017fb10 + 8) + 0x300))(DAT_0017fb10,&DAT_0017fac0);\n    lVar16 = bfd_get_section_by_name(DAT_0017fb10,".text");\n    if (lVar16 == 0) {\n      bVar35 = DAT_0017fac0 & 3;\n      plVar17 = DAT_0017f358;\n      plVar18 = DAT_0017fa60;\n      lVar16 = DAT_0017fb10;\n    }\n    else {\n      bVar35 = DAT_0017fac0 & 3;\n      if (DAT_0017fc70 == 0) {\n        *(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) & 0xfffffff7;\n        plVar17 = DAT_0017f358;\n        plVar18 = DAT_0017fa60;\n        lVar16 = DAT_0017fb10;\n      }\n      else {\n        *(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) | 8;\n        plVar17 = DAT_0017f358;\n        plVar18 = DAT_0017fa60;\n        lVar16 = DAT_0017fb10;\n      }\n    }\n  }\n  for (; DAT_0017f358 = plVar17, DAT_0017fb10 = lVar16, plVar18 != (long *)0x0;\n      plVar18 = (long *)plVar18[4]) {\n    lVar16 = plVar18[5];\n    if ((((lVar16 != 0) && (plVar18[9] == 0)) && (plVar18[0xc] == 0)) &&\n       ((plVar18[0xb] == 0 && (plVar18[8] == *(long *)(lVar16 + 0x40))))) {\n      plVar18[9] = *(long *)(lVar16 + 0x48);\n    }\n    plVar17 = DAT_0017f358;\n    lVar16 = DAT_0017fb10;\n  }\n  if ((DAT_0017fc4c != 0) && (DAT_0017f350 != 0)) {\n    plVar18 = plVar17 + DAT_0017f350;\n    do {\n      lVar15 = *plVar17;\n      if ((*(byte *)(lVar15 + 0x19) & 8) == 0) {\n        puVar21 = (undefined8 *)(*(undefined8 **)(lVar15 + 0x28))[0xd];\n        if (((puVar21 == (undefined8 *)0x0) || (puVar21[0x1e] != lVar16)) ||\n           (iVar9 = strcmp((char *)**(undefined8 **)(lVar15 + 0x28),(char *)*puVar21), iVar9 != 0))\n        {\n          *(undefined1 *)(lVar15 + 0x18) = 1;\n          *(undefined8 *)(lVar15 + 0x28) = 0;\n        }\n      }\n      plVar17 = plVar17 + 1;\n    } while (plVar18 != plVar17);\n  }\n  if (bVar35 != 2) {\n    for (puVar21 = *(undefined8 **)(DAT_0017fb10 + 0x90); puVar21 != (undefined8 *)0x0;\n        puVar21 = (undefined8 *)puVar21[2]) {\n      pcVar31 = (char *)*puVar21;\n      sVar12 = strlen(pcVar31);\n      pcVar19 = (char *)xmalloc(sVar12 + 10);\n      sprintf(pcVar19,".startof.%s",pcVar31);\n      FUN_00112ee0(pcVar19,puVar21);\n      builtin_strncpy(pcVar19 + 1,".size",5);\n      FUN_00112ee0(pcVar19 + 1,puVar21);\n      free(pcVar19);\n    }\n  }\n  FUN_00123bc0();\n  plVar17 = (long *)0x0;\n  __ptr = (void *)xmalloc(0x50);\n  uVar2 = 10;\n  for (puVar21 = DAT_0017fa50; puVar21 != (undefined8 *)0x0; puVar21 = (undefined8 *)*puVar21) {\n    uVar30 = 0;\n    for (plVar18 = DAT_0017fa60; plVar18 != (long *)0x0; plVar18 = (long *)plVar18[4]) {\n      if (-1 < *(int *)((long)plVar18 + 0x84)) {\n        plVar26 = (long *)plVar18[0xe];\n        if (plVar26 == (long *)0x0) {\n          if (((*(int *)((long)plVar18 + 0x8c) != 2) && (plVar18[7] != 0)) &&\n             (((*(byte *)(plVar18[7] + 0x20) & 1) != 0 &&\n              (plVar26 = plVar17, plVar3 = plVar18, puVar21[2] != 3)))) {\n            while( true ) {\n              plVar17 = plVar26;\n              if (plVar26 != (long *)0x0) goto LAB_0011c7fd;\n              plVar3 = (long *)plVar3[4];\n              if (plVar3 == (long *)0x0) break;\n              plVar26 = (long *)plVar3[0xe];\n            }\n            plVar17 = (long *)0x0;\n            dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            FUN_001251f0();\n          }\n        }\n        else {\n          plVar17 = plVar26;\n          plVar3 = (long *)plVar18[7];\n          while (plVar3 != (long *)0x0) {\nLAB_0011c7fd:\n            iVar9 = strcmp((char *)plVar26[1],(char *)puVar21[1]);\n            uVar29 = uVar30;\n            if (iVar9 == 0) {\n              if (uVar2 <= (uint)uVar30) {\n                uVar2 = uVar2 << 1;\n                __ptr = (void *)xrealloc(__ptr,(ulong)uVar2 << 3);\n              }\n              uVar29 = (ulong)((uint)uVar30 + 1);\n              *(long *)((long)__ptr + uVar30 * 8) = plVar18[7];\n              *(undefined4 *)(plVar26 + 2) = 1;\n            }\n            plVar26 = (long *)*plVar26;\n            uVar30 = uVar29;\n            plVar3 = plVar26;\n          }\n        }\n      }\n    }\n    uVar10 = 0;\n    if (puVar21[5] != 0) {\n      uVar10 = FUN_00123800(puVar21[5],0,"phdr flags");\n    }\n    lVar16 = puVar21[4];\n    uVar11 = 0;\n    if (lVar16 != 0) {\n      uVar11 = FUN_00123800(lVar16,0,"phdr load address");\n      lVar16 = puVar21[4];\n    }\n    iVar9 = bfd_record_phdr(DAT_0017fb10,puVar21[2],puVar21[5] != 0,uVar10,lVar16 != 0,uVar11,\n                            *(undefined4 *)(puVar21 + 3),*(undefined4 *)((long)puVar21 + 0x1c),\n                            uVar30,__ptr);\n    if (iVar9 == 0) {\n      dcgettext(0,"%F%P: bfd_record_phdr failed: %E\n",5);\n      FUN_001251f0();\n    }\n  }\n  free(__ptr);\n  for (plVar17 = DAT_0017fa60; plVar17 != (long *)0x0; plVar17 = (long *)plVar17[4]) {\n    if ((-1 < *(int *)((long)plVar17 + 0x84)) && (plVar17[7] != 0)) {\n      plVar18 = (long *)plVar17[0xe];\njoined_r0x0011c90a:\n      if (plVar18 != (long *)0x0) {\n        do {\n          bVar38 = false;\n          bVar39 = (int)plVar18[2] == 0;\n          if (bVar39) {\n            pbVar4 = (byte *)plVar18[1];\n            lVar16 = 5;\n            pbVar20 = pbVar4;\n            pbVar32 = (byte *)0x130359;\n            do {\n              if (lVar16 == 0) break;\n              lVar16 = lVar16 + -1;\n              bVar38 = *pbVar20 < *pbVar32;\n              bVar39 = *pbVar20 == *pbVar32;\n              pbVar20 = pbVar20 + (ulong)bVar40 * -2 + 1;\n              pbVar32 = pbVar32 + (ulong)bVar40 * -2 + 1;\n            } while (bVar39);\n            if ((!bVar38 && !bVar39) != bVar38) goto code_r0x0011c93b;\n          }\n          plVar18 = (long *)*plVar18;\n          if (plVar18 == (long *)0x0) break;\n        } while( true );\n      }\n    }\n  }\n  if (((DAT_0017fac3 & 0x10) != 0) && ((DAT_0017fac0 & 3) != 2)) {\n    local_40 = 0;\n    FUN_00119860(DAT_0017fd98,&local_40);\n    if (local_40 == 0) {\n      DAT_0017fac3 = DAT_0017fac3 & 0xef;\n    }\n  }\n  FUN_0011a050(0,1 < DAT_0017fad8);\n  FUN_00123bb0();\n  lVar16 = DAT_0017fb10;\n  uVar10 = DAT_0017f3c8;\n  if (DAT_0017f350 != 0) {\n    plVar17 = DAT_0017f358 + DAT_0017f350;\n    plVar18 = DAT_0017f358;\n    do {\n      while (lVar15 = *plVar18, (*(ushort *)(lVar15 + 0x18) & 0x8ff) == 3) {\n        pcVar31 = *(char **)(lVar15 + 8);\n        if (*pcVar31 != '.') {\n          cVar8 = *(char *)(*(long *)(lVar16 + 8) + 0x1c);\n          lVar13 = *(long *)(*(long *)(lVar15 + 0x28) + 0x68);\n          *(long *)(lVar15 + 0x28) = lVar13;\n          if (pcVar31[(int)((cVar8 != '\0') + 4)] == 'o') {\n            *(ulong *)(lVar15 + 0x30) = *(ulong *)(lVar13 + 0x38) >> ((byte)uVar10 & 0x3f);\n          }\n          break;\n        }\n        if (pcVar31[2] != 'i') break;\n        plVar18 = plVar18 + 1;\n        uVar30 = *(ulong *)(*(long *)(lVar15 + 0x28) + 0x38);\n        *(undefined8 *)(lVar15 + 0x28) = 0x17ed50;\n        *(ulong *)(lVar15 + 0x30) = uVar30 >> ((byte)uVar10 & 0x3f);\n        if (plVar18 == plVar17) goto LAB_0011ca60;\n      }\n      plVar18 = plVar18 + 1;\n    } while (plVar18 != plVar17);\n  }\nLAB_0011ca60:\n  FUN_001188a0(4);\n  FUN_00123be0();\n  FUN_00123b20();\n  puVar21 = DAT_0017f378;\n  if (DAT_0017fbd8 != '\0') {\n    cVar8 = bfd_arch_bits_per_address(DAT_0017fb10);\n    puVar21 = *(undefined8 **)(DAT_0017fb10 + 0x90);\n    uVar30 = (1L << (cVar8 - 1U & 0x3f)) * 2 - 1;\n    if (puVar21 != (undefined8 *)0x0) {\n      do {\n        if ((*(byte *)(puVar21 + 4) & 1) != 0) {\n          uVar29 = puVar21[5] + puVar21[7] & uVar30;\n          if ((uVar29 == 0) || ((puVar21[5] & uVar30) <= uVar29)) {\n            uVar29 = puVar21[7] + puVar21[6] & uVar30;\n            if ((uVar29 == 0) || ((puVar21[6] & uVar30) <= uVar29)) goto LAB_0011d2f0;\n            uVar11 = *puVar21;\n            pcVar31 = "%X%P: section %s LMA wraps around address space\n";\n          }\n          else {\n            uVar11 = *puVar21;\n            pcVar31 = "%X%P: section %s VMA wraps around address space\n";\n          }\n          uVar14 = dcgettext(0,pcVar31,5);\n          FUN_001251f0(uVar14,uVar11);\n        }\nLAB_0011d2f0:\n        puVar21 = (undefined8 *)puVar21[2];\n      } while (puVar21 != (undefined8 *)0x0);\n    }\n    puVar21 = DAT_0017f378;\n    if (1 < *(uint *)(DAT_0017fb10 + 0xa0)) {\n      uVar30 = 0;\n      plVar17 = (long *)xmalloc((ulong)*(uint *)(DAT_0017fb10 + 0xa0) << 4);\n      lVar16 = *(long *)(DAT_0017fb10 + 0x90);\n      if (lVar16 != 0) {\n        do {\n          uVar29 = uVar30;\n          if ((((*(uint *)(lVar16 + 0x20) & 1) != 0) &&\n              ((*(uint *)(lVar16 + 0x20) & 0x402) != 0x400)) && (*(long *)(lVar16 + 0x38) != 0)) {\n            uVar29 = uVar30 + 1;\n            plVar17[uVar30 * 2] = lVar16;\n            *(undefined4 *)(plVar17 + uVar30 * 2 + 1) = 0;\n          }\n          lVar16 = *(long *)(lVar16 + 0x10);\n          uVar30 = uVar29;\n        } while (lVar16 != 0);\n        if (1 < uVar29) {\n          qsort(plVar17,uVar29,0x10,FUN_00112320);\n          puVar21 = (undefined8 *)0x0;\n          plVar18 = plVar17;\n          uVar30 = 0;\n          uVar25 = 0;\n          do {\n            puVar27 = (undefined8 *)*plVar18;\n            puVar22 = puVar21;\n            uVar34 = uVar30;\n            uVar23 = uVar25;\n            if ((*(byte *)(puVar27 + 4) & 2) != 0) {\n              uVar34 = puVar27[6];\n              uVar23 = (uVar34 - 1) + ((ulong)puVar27[7] >> ((byte)DAT_0017f3c8 & 0x3f));\n              puVar22 = puVar27;\n              if ((puVar21 != (undefined8 *)0x0) && ((uVar34 <= uVar25 || (uVar25 < uVar30)))) {\n                uVar11 = *puVar21;\n                uVar14 = *puVar27;\n                uVar24 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);\n                FUN_001251f0(uVar24,uVar14,uVar34,uVar23,uVar11,uVar30,uVar25);\n                *(undefined4 *)(plVar18 + 1) = 1;\n              }\n            }\n            plVar18 = plVar18 + 2;\n            puVar21 = puVar22;\n            uVar30 = uVar34;\n            uVar25 = uVar23;\n          } while (plVar18 != plVar17 + uVar29 * 2);\n          qsort(plVar17,uVar29,0x10,FUN_00112350);\n          puVar21 = (undefined8 *)*plVar17;\n          uVar23 = 1;\n          uVar30 = puVar21[5];\n          uVar25 = uVar30;\n          do {\n            lVar16 = uVar23 * 2;\n            if (*(ulong *)(plVar17[lVar16] + 0x28) == uVar25) goto LAB_0011d4c4;\n            uVar23 = uVar23 + 1;\n            uVar25 = *(ulong *)(plVar17[lVar16] + 0x28);\n          } while (uVar23 != uVar29);\n          uVar23 = 0;\n          uVar25 = (uVar30 - 1) + ((ulong)puVar21[7] >> ((byte)DAT_0017f3c8 & 0x3f));\n          plVar18 = plVar17;\n          while( true ) {\n            uVar37 = uVar25;\n            uVar34 = uVar30;\n            puVar27 = puVar21;\n            plVar26 = plVar18 + 2;\n            uVar23 = uVar23 + 1;\n            if (uVar23 == uVar29) break;\n            puVar21 = (undefined8 *)*plVar26;\n            plVar3 = plVar18 + 3;\n            uVar30 = puVar21[5];\n            uVar25 = (uVar30 - 1) + ((ulong)puVar21[7] >> ((byte)DAT_0017f3c8 & 0x3f));\n            plVar18 = plVar26;\n            if (((int)*plVar3 == 0) && ((uVar30 <= uVar37 || (uVar37 < uVar34)))) {\n              uVar11 = *puVar27;\n              uVar14 = *puVar21;\n              uVar24 = dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",\n                                 5);\n              FUN_001251f0(uVar24,uVar14,uVar30,uVar25,uVar11,uVar34,uVar37);\n            }\n          }\nLAB_0011d4c4:\n          free(plVar17);\n          for (puVar27 = DAT_0017f398; puVar21 = DAT_0017f378, puVar27 != (undefined8 *)0x0;\n              puVar27 = (undefined8 *)puVar27[2]) {\n            if (*(int *)(puVar27 + 10) != 0) {\n              uVar11 = *puVar27;\n              lVar16 = puVar27[7] - (puVar27[5] + puVar27[4]);\n              uVar14 = dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",lVar16,5);\n              FUN_001251f0(uVar14,uVar11,lVar16);\n            }\n          }\n          goto joined_r0x0011ca92;\n        }\n      }\n      free(plVar17);\n      puVar21 = DAT_0017f378;\n    }\n  }\njoined_r0x0011ca92:\n  for (; puVar21 != (undefined8 *)0x0; puVar21 = (undefined8 *)puVar21[1]) {\n    lVar16 = bfd_link_hash_lookup(DAT_0017fae8,*puVar21,0,0,1);\n    if ((lVar16 == 0) || (1 < (byte)(*(char *)(lVar16 + 0x18) - 3U))) {\n      uVar11 = *puVar21;\n      uVar14 = dcgettext(0,"%X%P: required symbol `%s\' not defined\n",5);\n      FUN_001251f0(uVar14,uVar11);\n    }\n  }\n  iVar9 = DAT_0017fa0c;\n  if (((DAT_0017fac0 & 0x43) != 2) && ((DAT_0017fac0 & 3) != 3)) {\n    iVar9 = 1;\n  }\n  if (((DAT_0017fac0 & 0x43) == 0x42) && (DAT_0017fa0c == 0 && _DAT_0017fa08 == 0)) {\n    uVar11 = dcgettext(0,"%F%P: gc-sections requires either an entry or an undefined symbol\n",5);\n    FUN_001251f0(uVar11);\n  }\n  if (DAT_0017f2e8 == (undefined *)0x0) {\n    DAT_0017f2e8 = PTR_s_start_0017e660;\n    iVar9 = 0;\n  }\n  lVar16 = bfd_link_hash_lookup(DAT_0017fae8,DAT_0017f2e8,0,0,1);\n  if ((lVar16 != 0) && ((byte)(*(char *)(lVar16 + 0x18) - 3U) < 2)) {\n    lVar15 = *(long *)(*(long *)(lVar16 + 0x28) + 0x68);\n    if (lVar15 != 0) {\n      iVar9 = bfd_set_start_address\n                        (DAT_0017fb10,\n                         *(long *)(lVar15 + 0x28) +\n                         *(long *)(*(long *)(lVar16 + 0x28) + 0x60) + *(long *)(lVar16 + 0x30));\n      if (iVar9 != 0) {\n        return;\n      }\n      pcVar31 = "%F%P: %s: can\'t set start address\n";\n      goto LAB_0011cf37;\n    }\n  }\n  uVar11 = bfd_scan_vma(DAT_0017f2e8,&local_40,0);\n  if (*(char *)CONCAT44(uStack_3c,local_40) == '\0') {\n    iVar9 = bfd_set_start_address(DAT_0017fb10,uVar11);\n  }\n  else {\n    lVar16 = bfd_get_section_by_name(DAT_0017fb10,PTR_s__text_0017e648);\n    puVar7 = DAT_0017f2e8;\n    if (lVar16 == 0) {\n      if (iVar9 == 0) {\n        return;\n      }\n      pcVar31 = "%P: warning: cannot find entry symbol %s; not setting start address\n";\nLAB_0011cf37:\n      puVar7 = DAT_0017f2e8;\n      uVar11 = dcgettext(0,pcVar31,5);\n      FUN_001251f0(uVar11,puVar7);\n      return;\n    }\n    uVar11 = *(undefined8 *)(lVar16 + 0x28);\n    if (iVar9 != 0) {\n      uVar14 = dcgettext(0,"%P: warning: cannot find entry symbol %s; defaulting to %V\n",5);\n      FUN_001251f0(uVar14,puVar7,uVar11);\n      uVar11 = *(undefined8 *)(lVar16 + 0x28);\n    }\n    iVar9 = bfd_set_start_address(DAT_0017fb10,uVar11);\n  }\n  if (iVar9 != 0) {\n    return;\n  }\n  uVar11 = dcgettext(0,"%F%P: can\'t set start address\n",5);\n  FUN_001251f0(uVar11);\n  return;\ncode_r0x0011c5be:\n  plVar17 = (long *)plVar17[6];\n  goto joined_r0x0011be7f;\nLAB_0011c1d0:\n  uVar11 = *puVar21;\n  uVar14 = dcgettext(0,"%F%P: invalid length for memory region %s\n",5);\n  FUN_001251f0(uVar14,uVar11);\n  puVar21 = (undefined8 *)puVar21[2];\n  goto joined_r0x0011bfdf;\ncode_r0x0011c493:\n  (**(code **)(*(long *)(plVar17[4] + 8) + 0x2c8))(puVar21,&DAT_0017fac0);\n  puVar21 = (undefined8 *)puVar21[2];\n  goto joined_r0x0011c46e;\ncode_r0x0011c93b:\n  lVar16 = plVar17[6];\n  uVar11 = dcgettext(0,"%X%P: section `%s\' assigned to non-existent phdr `%s\'\n",5);\n  FUN_001251f0(uVar11,lVar16,pbVar4);\n  plVar18 = (long *)*plVar18;\n  goto joined_r0x0011c90a;\n}\n\n" (function_definition "void FUN_0011bca0(void)\n\n{\n  byte bVar1;\n  uint uVar2;\n  long *plVar3;\n  byte *pbVar4;\n  long lVar5;\n  long *plVar6;\n  undefined *puVar7;\n  char cVar8;\n  int iVar9;\n  undefined4 uVar10;\n  undefined8 uVar11;\n  size_t sVar12;\n  long lVar13;\n  undefined8 uVar14;\n  long lVar15;\n  long lVar16;\n  long *plVar17;\n  void *__ptr;\n  long *plVar18;\n  char *pcVar19;\n  byte *pbVar20;\n  undefined8 *puVar21;\n  undefined8 *puVar22;\n  ulong uVar23;\n  undefined8 uVar24;\n  ulong uVar25;\n  long *plVar26;\n  undefined8 *puVar27;\n  long lVar28;\n  ulong uVar29;\n  ulong uVar30;\n  char *pcVar31;\n  byte *pbVar32;\n  long lVar33;\n  ulong uVar34;\n  byte bVar35;\n  long *plVar36;\n  ulong uVar37;\n  bool bVar38;\n  bool bVar39;\n  byte bVar40;\n  uint local_40;\n  undefined4 uStack_3c;\n  \n  bVar40 = 0;\n  if (DAT_0017fb98 != 0) {\n    FUN_00112d70();\n  }\n  DAT_0017f440 = DAT_0017fcc8;\n  FUN_00115a50(FUN_001182b0,DAT_0017f430);\n  FUN_00113540();\n  FUN_00123c10();\n  for (puVar21 = DAT_0017f2e0; puVar21 != (undefined8 *)0x0; puVar21 = (undefined8 *)*puVar21) {\n    FUN_00112b40(puVar21[1]);\n  }\n  iVar9 = bfd_section_already_linked_table_init();\n  if (iVar9 == 0) {\n    uVar11 = dcgettext(0,"%F%P: can not create hash table: %E\n",5);\n    FUN_001251f0(uVar11);\n  }\n  _DAT_0017f2c0 = _DAT_0017f2c0 + 1;\n  DAT_0017f440 = DAT_0017fcc8;\n  FUN_00119910(DAT_0017f430,0);\n  plVar3 = DAT_0017fa28;\n  plVar26 = DAT_0017fa20;\n  plVar18 = DAT_0017f2f8;\n  plVar17 = DAT_0017f2f0;\n  if ((DAT_0017fac1 & 2) != 0) {\n    lVar16 = *(long *)PTR_DAT_0017e650;\n    plVar36 = *(long **)(PTR_DAT_0017e650 + 8);\n    iVar9 = FUN_00128bb0();\n    if (iVar9 != 0) {\n      uVar11 = FUN_00128550();\n      uVar14 = dcgettext(0,"%F%P: %s: plugin reported error after all symbols read\n",5);\n      FUN_001251f0(uVar14,uVar11);\n    }\n    FUN_00119910(*plVar36,0);\n    puVar7 = PTR_DAT_0017e650;\n    if (*(long *)PTR_DAT_0017e650 != lVar16) {\n      FUN_001252b0("../../ld/ldlang.c",0x1baf);\n    }\n    plVar6 = *(long **)(puVar7 + 8);\n    lVar16 = *plVar36;\n    *(long **)(puVar7 + 8) = plVar36;\n    *plVar36 = 0;\n    if (DAT_0017f2f0 != plVar17) {\n      FUN_001252b0("../../ld/ldlang.c",0x1baf);\n    }\n    plVar36 = DAT_0017f2f8;\n    plVar17 = (long *)*plVar18;\n    DAT_0017f2f8 = plVar18;\n    *plVar18 = 0;\n    if (DAT_0017fa20 != plVar26) {\n      FUN_001252b0("../../ld/ldlang.c",0x1baf);\n    }\n    plVar26 = DAT_0017fa28;\n    lVar15 = *plVar3;\n    DAT_0017fa28 = plVar3;\n    *plVar3 = 0;\n    plVar18 = DAT_0017f2f0;\n    plVar3 = DAT_0017fa20;\n    if (lVar16 != 0) {\n      for (; DAT_0017f380 = plVar3, plVar18 != (long *)0x0; plVar18 = (long *)plVar18[6]) {\n        if ((*(byte *)((long)plVar18 + 0x49) & 0x20) != 0) {\n          if ((*(byte *)((long)plVar18 + 0x49) & 0x40) == 0) goto LAB_0011d6c0;\n          break;\n        }\n        if ((plVar18[4] != 0) && (*(long *)(plVar18[4] + 0xd0) == 0)) {\n          DAT_0017f380 = plVar18;\n        }\n        plVar3 = DAT_0017f380;\n      }\n      plVar18 = DAT_0017f380;\n      if (DAT_0017f380 == (long *)0x0) {\n        FUN_001252b0("../../ld/ldlang.c",0x1c32);\n        plVar18 = DAT_0017f380;\n      }\nLAB_0011d6c0:\n      DAT_0017f380 = plVar18;\n      plVar18 = DAT_0017f380;\n      puVar7 = PTR_DAT_0017e650;\n      *plVar6 = *DAT_0017f380;\n      *plVar18 = lVar16;\n      if (plVar18 == *(long **)(puVar7 + 8)) {\n        *(long **)(puVar7 + 8) = plVar6;\n      }\n      *plVar26 = plVar18[7];\n      bVar38 = DAT_0017fa28 == plVar18 + 7;\n      plVar18[7] = lVar15;\n      plVar3 = DAT_0017f2f8;\n      if (bVar38) {\n        DAT_0017fa28 = plVar26;\n      }\n      if (plVar18[2] == 0) {\n        *plVar36 = (long)DAT_0017f2f0;\n        DAT_0017f2f0 = plVar17;\n        if ((long **)plVar3 != &DAT_0017f2f0) {\n          plVar36 = DAT_0017f2f8;\n        }\n      }\n      else {\n        *plVar36 = plVar18[6];\n        plVar18[6] = (long)plVar17;\n        if (plVar3 != plVar18 + 6) {\n          plVar36 = DAT_0017f2f8;\n        }\n      }\n      DAT_0017f2f8 = plVar36;\n      plVar18 = DAT_0017f2f8;\n      plVar17 = DAT_0017f2f0;\n      _DAT_0017f2c0 = _DAT_0017f2c0 + 1;\n      FUN_00119910(DAT_0017f430);\n      if (DAT_0017f2f0 != plVar17) {\n        FUN_001252b0("../../ld/ldlang.c");\n      }\n      lVar16 = *plVar18;\n      DAT_0017f2f8 = plVar18;\n      *plVar18 = 0;\n      while (lVar16 != 0) {\n        lVar15 = *(long *)(*(long *)(lVar16 + 0x20) + 0xd0);\n        lVar13 = *(long *)(lVar16 + 0x20);\n        if (lVar15 != 0) {\n          lVar13 = lVar15;\n        }\n        if (DAT_0017fa20 == (long *)0x0) {\nLAB_0011dad0:\n          plVar17 = DAT_0017f2f0;\n        }\n        else {\n          plVar26 = (long *)0x0;\n          plVar18 = DAT_0017fa20;\n          plVar17 = (long *)0x0;\n          do {\n            while (plVar18[4] != lVar13) {\n              if ((plVar18[4] != 0) && (plVar18[6] != 0)) {\n                plVar26 = plVar18;\n              }\n              plVar18 = (long *)plVar18[7];\n              if (plVar18 == (long *)0x0) goto LAB_0011d7f1;\n            }\n            lVar28 = plVar18[6];\n            if (lVar28 != 0) {\n              plVar17 = (long *)(lVar28 + 0x30);\n              lVar13 = *(long *)(lVar28 + 0x30);\n              goto LAB_0011d835;\n            }\n            plVar18 = (long *)plVar18[7];\n            plVar17 = plVar26;\n          } while (plVar18 != (long *)0x0);\nLAB_0011d7f1:\n          if (plVar17 == (long *)0x0) goto LAB_0011dad0;\n        }\n        plVar17 = plVar17 + 6;\n        for (lVar13 = *plVar17; lVar13 != 0; lVar13 = *(long *)(lVar13 + 0x30)) {\n          if (((*(byte *)(lVar13 + 0x49) & 0x40) == 0) &&\n             (*(long *)(*(long *)(lVar13 + 0x20) + 0xd0) == 0)) {\n            lVar13 = *plVar17;\n            break;\n          }\n          plVar17 = (long *)(lVar13 + 0x30);\n        }\nLAB_0011d835:\n        plVar18 = (long *)(lVar16 + 0x30);\n        if (lVar15 == 0) {\n          *plVar17 = lVar16;\n          lVar15 = *(long *)(lVar16 + 0x30);\n          *(long *)(lVar16 + 0x30) = lVar13;\n          lVar16 = lVar15;\n        }\n        else {\n          lVar28 = *(long *)(lVar16 + 0x30);\n          if (lVar28 != 0) {\n            lVar5 = *(long *)(*(long *)(lVar28 + 0x20) + 0xd0);\n            while (lVar15 == lVar5) {\n              plVar18 = (long *)(lVar28 + 0x30);\n              lVar28 = *(long *)(lVar28 + 0x30);\n              if (lVar28 == 0) break;\n              lVar5 = *(long *)(*(long *)(lVar28 + 0x20) + 0xd0);\n            }\n          }\n          *plVar17 = lVar16;\n          lVar16 = *plVar18;\n          *plVar18 = lVar13;\n          if (*(long *)(lVar15 + 0x100) != 0) {\n            *(long **)(*(long *)(lVar15 + 0x100) + 0x30) = plVar18 + -6;\n          }\n        }\n      }\n    }\n  }\n  if (DAT_0017fb38 != (undefined8 *)0x0) {\n    FUN_001252b0("../../ld/ldlang.c",0x1c67);\n  }\n  DAT_0017fb38 = &DAT_0017f2e0;\n  if (DAT_0017f2e8 == (undefined *)0x0) {\n    DAT_0017fb38 = DAT_0017f2e0;\n    if (PTR_s_start_0017e660 != (undefined *)0x0) {\n      FUN_00115880();\n    }\n  }\n  if (DAT_0017fb48 != 0) {\n    FUN_00115880();\n  }\n  if (DAT_0017fb50 != 0) {\n    FUN_00115880();\n  }\n  FUN_00123b90();\n  if ((DAT_0017fc98 != 0) && (DAT_0017f3d0 != (undefined8 *)0x0)) {\n    uVar11 = dcgettext(0,"\nAs-needed library included to satisfy reference by file (symbol)\n\n",5)\n    ;\n    FUN_001252f0(uVar11);\n    for (puVar21 = DAT_0017f3d0; puVar21 != (undefined8 *)0x0; puVar21 = (undefined8 *)*puVar21) {\n      FUN_001252f0(&DAT_0013efee,puVar21[1]);\n      sVar12 = strlen((char *)puVar21[1]);\n      if (0x1c < sVar12) {\n        FUN_00124290();\n        sVar12 = 0;\n      }\n      do {\n        FUN_00124270();\n        sVar12 = sVar12 + 1;\n      } while (sVar12 != 0x1e);\n      if (puVar21[2] != 0) {\n        FUN_001252f0(&DAT_0013f279);\n      }\n      FUN_001252f0("(%pT)\n",puVar21[3]);\n    }\n  }\n  bfd_section_already_linked_table_free();\n  plVar17 = DAT_0017f2f0;\njoined_r0x0011be7f:\n  if (plVar17 != (long *)0x0) {\n    do {\n      if ((*(byte *)((long)plVar17 + 0x49) & 0x20) == 0) {\n        lVar16 = plVar17[4];\n        lVar13 = bfd_arch_get_compatible(lVar16,DAT_0017fb10,DAT_0017fbdc);\n        lVar15 = DAT_0017fb10;\n        if (((DAT_0017fac0 & 3) == 2) || ((DAT_0017fac3 & 8) != 0)) {\n          if (lVar13 != 0) {\n            puVar21 = *(undefined8 **)(lVar16 + 8);\n            puVar27 = *(undefined8 **)(DAT_0017fb10 + 8);\n            if ((*(int *)(puVar21 + 1) != *(int *)(puVar27 + 1)) &&\n               ((*(byte *)(lVar16 + 0x44) & 0x20) != 0)) goto LAB_0011c12e;\n            goto LAB_0011bed4;\n          }\n          if ((*(byte *)(lVar16 + 0x44) & 0x20) != 0) {\n            puVar21 = *(undefined8 **)(lVar16 + 8);\n            puVar27 = *(undefined8 **)(DAT_0017fb10 + 8);\nLAB_0011c12e:\n            uVar11 = *puVar27;\n            uVar14 = *puVar21;\n            uVar24 = 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_001251f0(uVar24,uVar14,lVar16,uVar11,lVar15);\n            goto joined_r0x0011c167;\n          }\n        }\n        else {\njoined_r0x0011c167:\n          if (lVar13 != 0) {\nLAB_0011bed4:\n            if (*(int *)(lVar16 + 0xa0) == 0) goto LAB_0011bf30;\n            uVar11 = 0;\n            if (DAT_0017fbd0 == 0) {\n              uVar11 = bfd_set_error_handler(FUN_00112380);\n            }\n            iVar9 = (**(code **)(*(long *)(DAT_0017fb10 + 8) + 0x140))(lVar16,&DAT_0017fac0);\n            if (iVar9 == 0) {\n              if (DAT_0017fbd0 != 0) {\n                uVar14 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);\n                FUN_001251f0(uVar14,lVar16);\n                goto LAB_0011c5b0;\n              }\n            }\n            else {\nLAB_0011c5b0:\n              if (DAT_0017fbd0 != 0) goto code_r0x0011c5be;\n            }\n            bfd_set_error_handler(uVar11);\n            goto LAB_0011bf30;\n          }\n        }\n        if (DAT_0017fbd0 == 0) goto LAB_0011bf30;\n        uVar11 = bfd_printable_name(DAT_0017fb10);\n        uVar14 = bfd_printable_name(lVar16);\n        uVar24 = dcgettext(0,\n                           "%X%P: %s architecture of input file `%pB\' is incompatible with %s output\n"\n                           ,5);\n        FUN_001251f0(uVar24,uVar14,lVar16,uVar11);\n        plVar17 = (long *)plVar17[6];\n      }\n      else {\nLAB_0011bf30:\n        plVar17 = (long *)plVar17[6];\n      }\n      if (plVar17 == (long *)0x0) break;\n    } while( true );\n  }\n  if (DAT_0017fc30 != 0) {\n    uVar11 = 0;\n    for (plVar17 = DAT_0017f2f0; plVar17 != (long *)0x0; plVar17 = (long *)plVar17[6]) {\n      lVar16 = bfd_get_section_by_name(plVar17[4],".exports");\n      if (lVar16 != 0) {\n        lVar15 = *(long *)(lVar16 + 0x38);\n        pcVar31 = (char *)xmalloc(lVar15);\n        iVar9 = bfd_get_section_contents(plVar17[4],lVar16,pcVar31,0,lVar15);\n        if (iVar9 == 0) {\n          uVar14 = dcgettext(0,"%X%P: unable to read .exports section contents\n",5);\n          FUN_001251f0(uVar14,lVar16);\n        }\n        pcVar19 = pcVar31 + lVar15;\n        for (; pcVar31 < pcVar19; pcVar31 = pcVar31 + sVar12 + 1) {\n          uVar11 = FUN_0011b640(uVar11,pcVar31,0);\n          sVar12 = strlen(pcVar31);\n        }\n        *(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) | 0x208000;\n      }\n    }\n    uVar14 = FUN_0011b640(0,&DAT_0013f157,0,0);\n    lVar15 = xcalloc(1,0x70);\n    lVar16 = DAT_0017fc30;\n    *(undefined8 *)(lVar15 + 0x18) = uVar11;\n    *(undefined8 *)(lVar15 + 0x38) = uVar14;\n    *(code **)(lVar15 + 0x68) = FUN_00112f60;\n    *(undefined4 *)(lVar15 + 0x60) = 0xffffffff;\n    FUN_0011b860(lVar16,lVar15,0);\n  }\n  FUN_0011eaa0();\n  if ((DAT_0017fc4c != 0) &&\n     (cVar8 = *(char *)(*(long *)(DAT_0017fb10 + 8) + 0x1c), DAT_0017fb20 != 0)) {\n    lVar16 = DAT_0017fb20;\n    do {\n      for (puVar21 = *(undefined8 **)(lVar16 + 0x90); puVar21 != (undefined8 *)0x0;\n          puVar21 = (undefined8 *)puVar21[2]) {\n        while( true ) {\n          pbVar4 = (byte *)*puVar21;\n          bVar35 = *pbVar4;\n          if (bVar35 == 0) break;\n          bVar1 = _sch_istable[(ulong)bVar35 * 2];\n          pbVar20 = pbVar4;\n          while (((bVar1 & 0x8c) != 0 || (bVar35 == 0x5f))) {\n            pbVar20 = pbVar20 + 1;\n            bVar35 = *pbVar20;\n            if (bVar35 == 0) goto LAB_0011d178;\n            bVar1 = _sch_istable[(ulong)bVar35 * 2];\n          }\n          puVar21 = (undefined8 *)puVar21[2];\n          if (puVar21 == (undefined8 *)0x0) goto LAB_0011d163;\n        }\nLAB_0011d178:\n        sVar12 = strlen((char *)pbVar4);\n        pcVar31 = (char *)xmalloc(sVar12 + 10);\n        *pcVar31 = cVar8;\n        sprintf(pcVar31 + (cVar8 != '\0'),"__start_%s",pbVar4);\n        FUN_00112ee0(pcVar31,puVar21);\n        pcVar31[1] = cVar8;\n        builtin_strncpy(pcVar31 + (2 - (ulong)(cVar8 == '\0')),"__stop",6);\n        FUN_00112ee0(pcVar31 + 1,puVar21);\n        free(pcVar31);\n      }\nLAB_0011d163:\n      lVar16 = *(long *)(lVar16 + 0xf0);\n    } while (lVar16 != 0);\n  }\n  FUN_001188a0(1);\n  puVar21 = DAT_0017f398;\njoined_r0x0011bfdf:\n  if (puVar21 != (undefined8 *)0x0) {\n    do {\n      if (puVar21[3] != 0) {\n        FUN_00123150();\n        uVar11 = DAT_0017fd20;\n        if (DAT_0017fd38 == 0) {\n          uVar11 = *puVar21;\n          uVar14 = dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);\n          FUN_001251f0(uVar14,uVar11);\n        }\n        else {\n          puVar21[4] = DAT_0017fd20;\n          puVar21[7] = uVar11;\n        }\n      }\n      if (puVar21[6] != 0) {\n        FUN_00123150();\n        if (DAT_0017fd38 == 0) goto LAB_0011c1d0;\n        puVar21[5] = DAT_0017fd20;\n      }\n      puVar21 = (undefined8 *)puVar21[2];\n      if (puVar21 == (undefined8 *)0x0) break;\n    } while( true );\n  }\n  DAT_0017fd00 = 0;\n  if (((DAT_0017fac7 & 0x20) == 0) && (((DAT_0017fac0 & 3) != 2 || (DAT_0017fbc0 != 0)))) {\n    if (DAT_0017fc6c == 0) {\n      bfd_link_hash_traverse(DAT_0017fae8,FUN_001145f0,0);\n    }\n    else {\n      if (DAT_0017fc6c == 2) {\n        local_40 = 4;\n        do {\n          bfd_link_hash_traverse(DAT_0017fae8,FUN_001145f0,&local_40);\n          local_40 = local_40 - 1;\n        } while (local_40 != 0);\n        local_40 = 0;\n      }\n      else {\n        local_40 = 0;\n        do {\n          bfd_link_hash_traverse(DAT_0017fae8,FUN_001145f0,&local_40);\n          local_40 = local_40 + 1;\n        } while (local_40 < 5);\n        local_40 = 0xffffffff;\n      }\n      bfd_link_hash_traverse(DAT_0017fae8,FUN_001145f0,&local_40);\n    }\n  }\n  FUN_00119400(DAT_0017f430);\n  bVar35 = DAT_0017fac0;\n  plVar17 = DAT_0017f2f0;\n  if ((DAT_0017fac0 & 3) == 2) {\n    for (; plVar17 != (long *)0x0; plVar17 = (long *)plVar17[6]) {\n      if ((*(byte *)((long)plVar17 + 0x49) & 0x20) == 0) {\n        for (lVar16 = *(long *)(plVar17[4] + 0x90); lVar16 != 0; lVar16 = *(long *)(lVar16 + 0x10))\n        {\n          if ((*(uint *)(lVar16 + 0x20) & 0x2000) == 0) {\n            *(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) & 0xffff7fff;\n          }\n        }\n      }\n    }\n  }\n  if ((bVar35 & 0x40) != 0) {\n    (**(code **)(*(long *)(DAT_0017fb10 + 8) + 0x2f0))(DAT_0017fb10,&DAT_0017fac0);\n  }\n  lVar16 = DAT_0017fb20;\n  if ((DAT_0017fac6 & 0x20) != 0) {\n    for (; lVar16 != 0; lVar16 = *(long *)(lVar16 + 0xf0)) {\n      iVar9 = bfd_link_check_relocs(lVar16,&DAT_0017fac0);\n      if (iVar9 == 0) {\n        DAT_0017fc44 = 0;\n      }\n    }\n  }\n  FUN_00123ba0();\n  FUN_001124e0(DAT_0017f430);\n  _DAT_0017f2c0 = _DAT_0017f2c0 + 1;\n  FUN_00119520(DAT_0017f430,0,0);\n  plVar18 = (long *)0x0;\n  plVar26 = (long *)0x0;\n  plVar17 = DAT_0017fa60;\n  while (plVar36 = plVar17, plVar3 = (long *)*plVar36, plVar3 != (long *)0x0) {\n    plVar17 = plVar3;\n    if ((int)plVar3[1] == 0) {\n      if ((plVar26 != (long *)0x0) && (plVar3 != (long *)plVar26[4])) {\n        FUN_001252b0("../../ld/ldlang.c",0xea0);\n        plVar17 = (long *)*plVar36;\n      }\n      *(int *)((long)plVar3 + 0x84) = -2 - *(int *)((long)plVar3 + 0x84);\n      plVar26 = plVar3;\n      if (plVar18 == (long *)0x0) {\n        plVar18 = plVar3;\n      }\n    }\n    else if ((int)plVar3[1] == 0xe) {\n      lVar16 = FUN_00116e20(plVar3[2],0,0);\n      if (lVar16 == 0) {\nLAB_0011c415:\n        lVar16 = plVar3[2];\n        uVar11 = dcgettext(0,"%F%P: %s not found for insert\n",5);\n        FUN_001251f0(uVar11,lVar16);\n        plVar17 = DAT_0017f2f0;\n        goto joined_r0x0011c458;\n      }\n      if ((int)plVar3[3] != 0) {\n        do {\n          lVar16 = *(long *)(lVar16 + 0x28);\n          if (lVar16 == 0) goto LAB_0011c415;\n        } while (*(int *)(lVar16 + 0x84) < 0);\n      }\n      if (plVar26 != (long *)0x0) {\n        lVar15 = plVar18[5];\n        lVar13 = plVar26[4];\n        *(long *)(lVar15 + 0x20) = lVar13;\n        if (lVar13 == 0) {\n          DAT_0017fa68 = (long *)(lVar15 + 0x20);\n        }\n        else {\n          *(long *)(lVar13 + 0x28) = lVar15;\n        }\n        plVar26[4] = *(long *)(lVar16 + 0x20);\n        if (*(long *)(lVar16 + 0x20) == 0) {\n          DAT_0017fa68 = plVar26 + 4;\n        }\n        else {\n          *(long **)(*(long *)(lVar16 + 0x20) + 0x28) = plVar26;\n        }\n        plVar18[5] = lVar16;\n        lVar13 = 0;\n        lVar15 = 0;\n        *(long **)(lVar16 + 0x20) = plVar18;\n        do {\n          *(int *)((long)plVar18 + 0x84) = -2 - *(int *)((long)plVar18 + 0x84);\n          lVar28 = plVar18[7];\n          if (((lVar28 != 0) && (*(long *)(lVar28 + 0xf0) != 0)) && (lVar13 = lVar28, lVar15 == 0))\n          {\n            lVar15 = lVar28;\n          }\n        } while ((plVar26 != plVar18) && (plVar18 = (long *)plVar18[4], plVar18 != (long *)0x0));\n        plVar18 = (long *)0x0;\n        if (lVar13 != 0) {\n          lVar28 = *(long *)(lVar16 + 0x38);\n          if (lVar28 == 0) {\n            plVar18 = *(long **)(lVar16 + 0x28);\n            if (plVar18 != (long *)0x0) {\n              do {\n                if (((-1 < *(int *)((long)plVar18 + 0x84)) && (lVar28 = plVar18[7], lVar28 != 0)) &&\n                   (*(long *)(lVar28 + 0xf0) != 0)) goto LAB_0011cd61;\n                plVar18 = (long *)plVar18[5];\n              } while (plVar18 != (long *)0x0);\n              plVar18 = (long *)0x0;\n            }\n          }\n          else {\nLAB_0011cd61:\n            plVar18 = (long *)0x0;\n            if (lVar28 != lVar13) {\n              lVar5 = *(long *)(lVar15 + 0x18);\n              lVar33 = *(long *)(lVar13 + 0x10);\n              if (lVar5 == 0) {\n                *(long *)(DAT_0017fb10 + 0x90) = lVar33;\n              }\n              else {\n                *(long *)(lVar5 + 0x10) = lVar33;\n                lVar33 = *(long *)(lVar13 + 0x10);\n              }\n              if (lVar33 == 0) {\n                *(long *)(DAT_0017fb10 + 0x98) = lVar5;\n              }\n              else {\n                *(long *)(lVar33 + 0x18) = lVar5;\n              }\n              lVar5 = *(long *)(lVar28 + 0x10);\n              *(long *)(lVar13 + 0x10) = lVar5;\n              if (lVar5 == 0) {\n                *(long *)(DAT_0017fb10 + 0x98) = lVar13;\n              }\n              else {\n                *(long *)(lVar5 + 0x18) = lVar13;\n              }\n              *(long *)(lVar15 + 0x18) = lVar28;\n              plVar18 = (long *)0x0;\n              *(long *)(lVar28 + 0x10) = lVar15;\n            }\n          }\n        }\n      }\n      plVar17 = (long *)FUN_00112240(lVar16);\n      lVar16 = *DAT_0017fa60;\n      *DAT_0017fa60 = *(long *)*plVar36;\n      lVar15 = *plVar17;\n      *plVar36 = lVar15;\n      if (lVar15 == 0) {\n        DAT_0017f438 = plVar36;\n      }\n      *plVar17 = lVar16;\n      plVar26 = (long *)0x0;\n      plVar17 = DAT_0017fa60;\n    }\n  }\n  for (; (plVar17 = DAT_0017f2f0, plVar18 != (long *)0x0 &&\n         (*(int *)((long)plVar18 + 0x84) = -2 - *(int *)((long)plVar18 + 0x84),\n         plVar17 = DAT_0017f2f0, plVar26 != plVar18)); plVar18 = (long *)plVar18[4]) {\n  }\njoined_r0x0011c458:\n  for (; plVar17 != (long *)0x0; plVar17 = (long *)plVar17[6]) {\n    puVar21 = *(undefined8 **)(plVar17[4] + 0x90);\njoined_r0x0011c46e:\n    if (puVar21 != (undefined8 *)0x0) {\n      do {\n        if (puVar21[0xd] == 0) {\n          if ((*(byte *)(plVar17 + 9) & 0x10) != 0) goto code_r0x0011c493;\n          iVar9 = FUN_00113350(*(undefined4 *)(puVar21 + 4));\n          bVar38 = false;\n          bVar39 = iVar9 == 0;\n          if (bVar39) {\n            pbVar4 = (byte *)*puVar21;\n            lVar16 = 7;\n            pbVar20 = pbVar4;\n            pbVar32 = (byte *)"COMMON";\n            do {\n              if (lVar16 == 0) break;\n              lVar16 = lVar16 + -1;\n              bVar38 = *pbVar20 < *pbVar32;\n              bVar39 = *pbVar20 == *pbVar32;\n              pbVar20 = pbVar20 + (ulong)bVar40 * -2 + 1;\n              pbVar32 = pbVar32 + (ulong)bVar40 * -2 + 1;\n            } while (bVar39);\n            if ((!bVar38 && !bVar39) == bVar38) {\n              if (((DAT_0017fac0 & 3) != 2) || (DAT_0017fbc0 != 0)) {\n                lVar16 = DAT_0017f458;\n                if (DAT_0017f458 == 0) {\n                  lVar16 = FUN_00116e20(".bss",0,1);\n                  DAT_0017f458 = lVar16;\n                }\nLAB_0011c659:\n                FUN_00117b90(lVar16 + 0x10,puVar21,0);\n              }\n            }\n            else {\n              if (DAT_0017fc5c == 1) {\n                lVar16 = FUN_00116e20("/DISCARD/",0,1);\n                if ((*(long *)(lVar16 + 0x58) == 0) &&\n                   (((DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0)))) {\n                  uVar11 = FUN_00123030(0);\n                  *(undefined8 *)(lVar16 + 0x58) = uVar11;\n                }\n                goto LAB_0011c659;\n              }\n              if (DAT_0017fc5c == 3) {\n                uVar11 = puVar21[0x1e];\n                uVar14 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_001251f0(uVar14,puVar21,uVar11);\n              }\n              if ((DAT_0017fc78 == 0) && (iVar9 = FUN_001150a0(puVar21,0), iVar9 == 0)) {\n                uVar10 = 0;\n              }\n              else {\n                uVar10 = 0x17e;\n              }\n              lVar16 = FUN_00123c60(puVar21,pbVar4,uVar10);\n              if (lVar16 == 0) {\n                lVar16 = FUN_00116e20(pbVar4,uVar10,1);\n                if ((*(long *)(lVar16 + 0x58) == 0) &&\n                   (((DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0)))) {\n                  uVar11 = FUN_00123030(0);\n                  *(undefined8 *)(lVar16 + 0x58) = uVar11;\n                }\n                FUN_00117b90(lVar16 + 0x10,puVar21,0);\n              }\n              if (DAT_0017fc5c == 2) {\n                uVar11 = puVar21[0x1e];\n                uVar14 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_001251f0(uVar14,puVar21,uVar11);\n              }\n            }\n          }\n          else {\n            puVar21[0xd] = 0x17ed50;\n          }\n        }\n        puVar21 = (undefined8 *)puVar21[2];\n        if (puVar21 == (undefined8 *)0x0) break;\n      } while( true );\n    }\n  }\n  bVar35 = DAT_0017fac0 & 3;\n  plVar17 = DAT_0017f358;\n  plVar18 = DAT_0017fa60;\n  lVar16 = DAT_0017fb10;\n  if (bVar35 != 2) {\n    (**(code **)(*(long *)(DAT_0017fb10 + 8) + 0x300))(DAT_0017fb10,&DAT_0017fac0);\n    lVar16 = bfd_get_section_by_name(DAT_0017fb10,".text");\n    if (lVar16 == 0) {\n      bVar35 = DAT_0017fac0 & 3;\n      plVar17 = DAT_0017f358;\n      plVar18 = DAT_0017fa60;\n      lVar16 = DAT_0017fb10;\n    }\n    else {\n      bVar35 = DAT_0017fac0 & 3;\n      if (DAT_0017fc70 == 0) {\n        *(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) & 0xfffffff7;\n        plVar17 = DAT_0017f358;\n        plVar18 = DAT_0017fa60;\n        lVar16 = DAT_0017fb10;\n      }\n      else {\n        *(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) | 8;\n        plVar17 = DAT_0017f358;\n        plVar18 = DAT_0017fa60;\n        lVar16 = DAT_0017fb10;\n      }\n    }\n  }\n  for (; DAT_0017f358 = plVar17, DAT_0017fb10 = lVar16, plVar18 != (long *)0x0;\n      plVar18 = (long *)plVar18[4]) {\n    lVar16 = plVar18[5];\n    if ((((lVar16 != 0) && (plVar18[9] == 0)) && (plVar18[0xc] == 0)) &&\n       ((plVar18[0xb] == 0 && (plVar18[8] == *(long *)(lVar16 + 0x40))))) {\n      plVar18[9] = *(long *)(lVar16 + 0x48);\n    }\n    plVar17 = DAT_0017f358;\n    lVar16 = DAT_0017fb10;\n  }\n  if ((DAT_0017fc4c != 0) && (DAT_0017f350 != 0)) {\n    plVar18 = plVar17 + DAT_0017f350;\n    do {\n      lVar15 = *plVar17;\n      if ((*(byte *)(lVar15 + 0x19) & 8) == 0) {\n        puVar21 = (undefined8 *)(*(undefined8 **)(lVar15 + 0x28))[0xd];\n        if (((puVar21 == (undefined8 *)0x0) || (puVar21[0x1e] != lVar16)) ||\n           (iVar9 = strcmp((char *)**(undefined8 **)(lVar15 + 0x28),(char *)*puVar21), iVar9 != 0))\n        {\n          *(undefined1 *)(lVar15 + 0x18) = 1;\n          *(undefined8 *)(lVar15 + 0x28) = 0;\n        }\n      }\n      plVar17 = plVar17 + 1;\n    } while (plVar18 != plVar17);\n  }\n  if (bVar35 != 2) {\n    for (puVar21 = *(undefined8 **)(DAT_0017fb10 + 0x90); puVar21 != (undefined8 *)0x0;\n        puVar21 = (undefined8 *)puVar21[2]) {\n      pcVar31 = (char *)*puVar21;\n      sVar12 = strlen(pcVar31);\n      pcVar19 = (char *)xmalloc(sVar12 + 10);\n      sprintf(pcVar19,".startof.%s",pcVar31);\n      FUN_00112ee0(pcVar19,puVar21);\n      builtin_strncpy(pcVar19 + 1,".size",5);\n      FUN_00112ee0(pcVar19 + 1,puVar21);\n      free(pcVar19);\n    }\n  }\n  FUN_00123bc0();\n  plVar17 = (long *)0x0;\n  __ptr = (void *)xmalloc(0x50);\n  uVar2 = 10;\n  for (puVar21 = DAT_0017fa50; puVar21 != (undefined8 *)0x0; puVar21 = (undefined8 *)*puVar21) {\n    uVar30 = 0;\n    for (plVar18 = DAT_0017fa60; plVar18 != (long *)0x0; plVar18 = (long *)plVar18[4]) {\n      if (-1 < *(int *)((long)plVar18 + 0x84)) {\n        plVar26 = (long *)plVar18[0xe];\n        if (plVar26 == (long *)0x0) {\n          if (((*(int *)((long)plVar18 + 0x8c) != 2) && (plVar18[7] != 0)) &&\n             (((*(byte *)(plVar18[7] + 0x20) & 1) != 0 &&\n              (plVar26 = plVar17, plVar3 = plVar18, puVar21[2] != 3)))) {\n            while( true ) {\n              plVar17 = plVar26;\n              if (plVar26 != (long *)0x0) goto LAB_0011c7fd;\n              plVar3 = (long *)plVar3[4];\n              if (plVar3 == (long *)0x0) break;\n              plVar26 = (long *)plVar3[0xe];\n            }\n            plVar17 = (long *)0x0;\n            dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            FUN_001251f0();\n          }\n        }\n        else {\n          plVar17 = plVar26;\n          plVar3 = (long *)plVar18[7];\n          while (plVar3 != (long *)0x0) {\nLAB_0011c7fd:\n            iVar9 = strcmp((char *)plVar26[1],(char *)puVar21[1]);\n            uVar29 = uVar30;\n            if (iVar9 == 0) {\n              if (uVar2 <= (uint)uVar30) {\n                uVar2 = uVar2 << 1;\n                __ptr = (void *)xrealloc(__ptr,(ulong)uVar2 << 3);\n              }\n              uVar29 = (ulong)((uint)uVar30 + 1);\n              *(long *)((long)__ptr + uVar30 * 8) = plVar18[7];\n              *(undefined4 *)(plVar26 + 2) = 1;\n            }\n            plVar26 = (long *)*plVar26;\n            uVar30 = uVar29;\n            plVar3 = plVar26;\n          }\n        }\n      }\n    }\n    uVar10 = 0;\n    if (puVar21[5] != 0) {\n      uVar10 = FUN_00123800(puVar21[5],0,"phdr flags");\n    }\n    lVar16 = puVar21[4];\n    uVar11 = 0;\n    if (lVar16 != 0) {\n      uVar11 = FUN_00123800(lVar16,0,"phdr load address");\n      lVar16 = puVar21[4];\n    }\n    iVar9 = bfd_record_phdr(DAT_0017fb10,puVar21[2],puVar21[5] != 0,uVar10,lVar16 != 0,uVar11,\n                            *(undefined4 *)(puVar21 + 3),*(undefined4 *)((long)puVar21 + 0x1c),\n                            uVar30,__ptr);\n    if (iVar9 == 0) {\n      dcgettext(0,"%F%P: bfd_record_phdr failed: %E\n",5);\n      FUN_001251f0();\n    }\n  }\n  free(__ptr);\n  for (plVar17 = DAT_0017fa60; plVar17 != (long *)0x0; plVar17 = (long *)plVar17[4]) {\n    if ((-1 < *(int *)((long)plVar17 + 0x84)) && (plVar17[7] != 0)) {\n      plVar18 = (long *)plVar17[0xe];\njoined_r0x0011c90a:\n      if (plVar18 != (long *)0x0) {\n        do {\n          bVar38 = false;\n          bVar39 = (int)plVar18[2] == 0;\n          if (bVar39) {\n            pbVar4 = (byte *)plVar18[1];\n            lVar16 = 5;\n            pbVar20 = pbVar4;\n            pbVar32 = (byte *)0x130359;\n            do {\n              if (lVar16 == 0) break;\n              lVar16 = lVar16 + -1;\n              bVar38 = *pbVar20 < *pbVar32;\n              bVar39 = *pbVar20 == *pbVar32;\n              pbVar20 = pbVar20 + (ulong)bVar40 * -2 + 1;\n              pbVar32 = pbVar32 + (ulong)bVar40 * -2 + 1;\n            } while (bVar39);\n            if ((!bVar38 && !bVar39) != bVar38) goto code_r0x0011c93b;\n          }\n          plVar18 = (long *)*plVar18;\n          if (plVar18 == (long *)0x0) break;\n        } while( true );\n      }\n    }\n  }\n  if (((DAT_0017fac3 & 0x10) != 0) && ((DAT_0017fac0 & 3) != 2)) {\n    local_40 = 0;\n    FUN_00119860(DAT_0017fd98,&local_40);\n    if (local_40 == 0) {\n      DAT_0017fac3 = DAT_0017fac3 & 0xef;\n    }\n  }\n  FUN_0011a050(0,1 < DAT_0017fad8);\n  FUN_00123bb0();\n  lVar16 = DAT_0017fb10;\n  uVar10 = DAT_0017f3c8;\n  if (DAT_0017f350 != 0) {\n    plVar17 = DAT_0017f358 + DAT_0017f350;\n    plVar18 = DAT_0017f358;\n    do {\n      while (lVar15 = *plVar18, (*(ushort *)(lVar15 + 0x18) & 0x8ff) == 3) {\n        pcVar31 = *(char **)(lVar15 + 8);\n        if (*pcVar31 != '.') {\n          cVar8 = *(char *)(*(long *)(lVar16 + 8) + 0x1c);\n          lVar13 = *(long *)(*(long *)(lVar15 + 0x28) + 0x68);\n          *(long *)(lVar15 + 0x28) = lVar13;\n          if (pcVar31[(int)((cVar8 != '\0') + 4)] == 'o') {\n            *(ulong *)(lVar15 + 0x30) = *(ulong *)(lVar13 + 0x38) >> ((byte)uVar10 & 0x3f);\n          }\n          break;\n        }\n        if (pcVar31[2] != 'i') break;\n        plVar18 = plVar18 + 1;\n        uVar30 = *(ulong *)(*(long *)(lVar15 + 0x28) + 0x38);\n        *(undefined8 *)(lVar15 + 0x28) = 0x17ed50;\n        *(ulong *)(lVar15 + 0x30) = uVar30 >> ((byte)uVar10 & 0x3f);\n        if (plVar18 == plVar17) goto LAB_0011ca60;\n      }\n      plVar18 = plVar18 + 1;\n    } while (plVar18 != plVar17);\n  }\nLAB_0011ca60:\n  FUN_001188a0(4);\n  FUN_00123be0();\n  FUN_00123b20();\n  puVar21 = DAT_0017f378;\n  if (DAT_0017fbd8 != '\0') {\n    cVar8 = bfd_arch_bits_per_address(DAT_0017fb10);\n    puVar21 = *(undefined8 **)(DAT_0017fb10 + 0x90);\n    uVar30 = (1L << (cVar8 - 1U & 0x3f)) * 2 - 1;\n    if (puVar21 != (undefined8 *)0x0) {\n      do {\n        if ((*(byte *)(puVar21 + 4) & 1) != 0) {\n          uVar29 = puVar21[5] + puVar21[7] & uVar30;\n          if ((uVar29 == 0) || ((puVar21[5] & uVar30) <= uVar29)) {\n            uVar29 = puVar21[7] + puVar21[6] & uVar30;\n            if ((uVar29 == 0) || ((puVar21[6] & uVar30) <= uVar29)) goto LAB_0011d2f0;\n            uVar11 = *puVar21;\n            pcVar31 = "%X%P: section %s LMA wraps around address space\n";\n          }\n          else {\n            uVar11 = *puVar21;\n            pcVar31 = "%X%P: section %s VMA wraps around address space\n";\n          }\n          uVar14 = dcgettext(0,pcVar31,5);\n          FUN_001251f0(uVar14,uVar11);\n        }\nLAB_0011d2f0:\n        puVar21 = (undefined8 *)puVar21[2];\n      } while (puVar21 != (undefined8 *)0x0);\n    }\n    puVar21 = DAT_0017f378;\n    if (1 < *(uint *)(DAT_0017fb10 + 0xa0)) {\n      uVar30 = 0;\n      plVar17 = (long *)xmalloc((ulong)*(uint *)(DAT_0017fb10 + 0xa0) << 4);\n      lVar16 = *(long *)(DAT_0017fb10 + 0x90);\n      if (lVar16 != 0) {\n        do {\n          uVar29 = uVar30;\n          if ((((*(uint *)(lVar16 + 0x20) & 1) != 0) &&\n              ((*(uint *)(lVar16 + 0x20) & 0x402) != 0x400)) && (*(long *)(lVar16 + 0x38) != 0)) {\n            uVar29 = uVar30 + 1;\n            plVar17[uVar30 * 2] = lVar16;\n            *(undefined4 *)(plVar17 + uVar30 * 2 + 1) = 0;\n          }\n          lVar16 = *(long *)(lVar16 + 0x10);\n          uVar30 = uVar29;\n        } while (lVar16 != 0);\n        if (1 < uVar29) {\n          qsort(plVar17,uVar29,0x10,FUN_00112320);\n          puVar21 = (undefined8 *)0x0;\n          plVar18 = plVar17;\n          uVar30 = 0;\n          uVar25 = 0;\n          do {\n            puVar27 = (undefined8 *)*plVar18;\n            puVar22 = puVar21;\n            uVar34 = uVar30;\n            uVar23 = uVar25;\n            if ((*(byte *)(puVar27 + 4) & 2) != 0) {\n              uVar34 = puVar27[6];\n              uVar23 = (uVar34 - 1) + ((ulong)puVar27[7] >> ((byte)DAT_0017f3c8 & 0x3f));\n              puVar22 = puVar27;\n              if ((puVar21 != (undefined8 *)0x0) && ((uVar34 <= uVar25 || (uVar25 < uVar30)))) {\n                uVar11 = *puVar21;\n                uVar14 = *puVar27;\n                uVar24 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);\n                FUN_001251f0(uVar24,uVar14,uVar34,uVar23,uVar11,uVar30,uVar25);\n                *(undefined4 *)(plVar18 + 1) = 1;\n              }\n            }\n            plVar18 = plVar18 + 2;\n            puVar21 = puVar22;\n            uVar30 = uVar34;\n            uVar25 = uVar23;\n          } while (plVar18 != plVar17 + uVar29 * 2);\n          qsort(plVar17,uVar29,0x10,FUN_00112350);\n          puVar21 = (undefined8 *)*plVar17;\n          uVar23 = 1;\n          uVar30 = puVar21[5];\n          uVar25 = uVar30;\n          do {\n            lVar16 = uVar23 * 2;\n            if (*(ulong *)(plVar17[lVar16] + 0x28) == uVar25) goto LAB_0011d4c4;\n            uVar23 = uVar23 + 1;\n            uVar25 = *(ulong *)(plVar17[lVar16] + 0x28);\n          } while (uVar23 != uVar29);\n          uVar23 = 0;\n          uVar25 = (uVar30 - 1) + ((ulong)puVar21[7] >> ((byte)DAT_0017f3c8 & 0x3f));\n          plVar18 = plVar17;\n          while( true ) {\n            uVar37 = uVar25;\n            uVar34 = uVar30;\n            puVar27 = puVar21;\n            plVar26 = plVar18 + 2;\n            uVar23 = uVar23 + 1;\n            if (uVar23 == uVar29) break;\n            puVar21 = (undefined8 *)*plVar26;\n            plVar3 = plVar18 + 3;\n            uVar30 = puVar21[5];\n            uVar25 = (uVar30 - 1) + ((ulong)puVar21[7] >> ((byte)DAT_0017f3c8 & 0x3f));\n            plVar18 = plVar26;\n            if (((int)*plVar3 == 0) && ((uVar30 <= uVar37 || (uVar37 < uVar34)))) {\n              uVar11 = *puVar27;\n              uVar14 = *puVar21;\n              uVar24 = dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",\n                                 5);\n              FUN_001251f0(uVar24,uVar14,uVar30,uVar25,uVar11,uVar34,uVar37);\n            }\n          }\nLAB_0011d4c4:\n          free(plVar17);\n          for (puVar27 = DAT_0017f398; puVar21 = DAT_0017f378, puVar27 != (undefined8 *)0x0;\n              puVar27 = (undefined8 *)puVar27[2]) {\n            if (*(int *)(puVar27 + 10) != 0) {\n              uVar11 = *puVar27;\n              lVar16 = puVar27[7] - (puVar27[5] + puVar27[4]);\n              uVar14 = dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",lVar16,5);\n              FUN_001251f0(uVar14,uVar11,lVar16);\n            }\n          }\n          goto joined_r0x0011ca92;\n        }\n      }\n      free(plVar17);\n      puVar21 = DAT_0017f378;\n    }\n  }\njoined_r0x0011ca92:\n  for (; puVar21 != (undefined8 *)0x0; puVar21 = (undefined8 *)puVar21[1]) {\n    lVar16 = bfd_link_hash_lookup(DAT_0017fae8,*puVar21,0,0,1);\n    if ((lVar16 == 0) || (1 < (byte)(*(char *)(lVar16 + 0x18) - 3U))) {\n      uVar11 = *puVar21;\n      uVar14 = dcgettext(0,"%X%P: required symbol `%s\' not defined\n",5);\n      FUN_001251f0(uVar14,uVar11);\n    }\n  }\n  iVar9 = DAT_0017fa0c;\n  if (((DAT_0017fac0 & 0x43) != 2) && ((DAT_0017fac0 & 3) != 3)) {\n    iVar9 = 1;\n  }\n  if (((DAT_0017fac0 & 0x43) == 0x42) && (DAT_0017fa0c == 0 && _DAT_0017fa08 == 0)) {\n    uVar11 = dcgettext(0,"%F%P: gc-sections requires either an entry or an undefined symbol\n",5);\n    FUN_001251f0(uVar11);\n  }\n  if (DAT_0017f2e8 == (undefined *)0x0) {\n    DAT_0017f2e8 = PTR_s_start_0017e660;\n    iVar9 = 0;\n  }\n  lVar16 = bfd_link_hash_lookup(DAT_0017fae8,DAT_0017f2e8,0,0,1);\n  if ((lVar16 != 0) && ((byte)(*(char *)(lVar16 + 0x18) - 3U) < 2)) {\n    lVar15 = *(long *)(*(long *)(lVar16 + 0x28) + 0x68);\n    if (lVar15 != 0) {\n      iVar9 = bfd_set_start_address\n                        (DAT_0017fb10,\n                         *(long *)(lVar15 + 0x28) +\n                         *(long *)(*(long *)(lVar16 + 0x28) + 0x60) + *(long *)(lVar16 + 0x30));\n      if (iVar9 != 0) {\n        return;\n      }\n      pcVar31 = "%F%P: %s: can\'t set start address\n";\n      goto LAB_0011cf37;\n    }\n  }\n  uVar11 = bfd_scan_vma(DAT_0017f2e8,&local_40,0);\n  if (*(char *)CONCAT44(uStack_3c,local_40) == '\0') {\n    iVar9 = bfd_set_start_address(DAT_0017fb10,uVar11);\n  }\n  else {\n    lVar16 = bfd_get_section_by_name(DAT_0017fb10,PTR_s__text_0017e648);\n    puVar7 = DAT_0017f2e8;\n    if (lVar16 == 0) {\n      if (iVar9 == 0) {\n        return;\n      }\n      pcVar31 = "%P: warning: cannot find entry symbol %s; not setting start address\n";\nLAB_0011cf37:\n      puVar7 = DAT_0017f2e8;\n      uVar11 = dcgettext(0,pcVar31,5);\n      FUN_001251f0(uVar11,puVar7);\n      return;\n    }\n    uVar11 = *(undefined8 *)(lVar16 + 0x28);\n    if (iVar9 != 0) {\n      uVar14 = dcgettext(0,"%P: warning: cannot find entry symbol %s; defaulting to %V\n",5);\n      FUN_001251f0(uVar14,puVar7,uVar11);\n      uVar11 = *(undefined8 *)(lVar16 + 0x28);\n    }\n    iVar9 = bfd_set_start_address(DAT_0017fb10,uVar11);\n  }\n  if (iVar9 != 0) {\n    return;\n  }\n  uVar11 = dcgettext(0,"%F%P: can\'t set start address\n",5);\n  FUN_001251f0(uVar11);\n  return;\ncode_r0x0011c5be:\n  plVar17 = (long *)plVar17[6];\n  goto joined_r0x0011be7f;\nLAB_0011c1d0:\n  uVar11 = *puVar21;\n  uVar14 = dcgettext(0,"%F%P: invalid length for memory region %s\n",5);\n  FUN_001251f0(uVar14,uVar11);\n  puVar21 = (undefined8 *)puVar21[2];\n  goto joined_r0x0011bfdf;\ncode_r0x0011c493:\n  (**(code **)(*(long *)(plVar17[4] + 8) + 0x2c8))(puVar21,&DAT_0017fac0);\n  puVar21 = (undefined8 *)puVar21[2];\n  goto joined_r0x0011c46e;\ncode_r0x0011c93b:\n  lVar16 = plVar17[6];\n  uVar11 = dcgettext(0,"%X%P: section `%s\' assigned to non-existent phdr `%s\'\n",5);\n  FUN_001251f0(uVar11,lVar16,pbVar4);\n  plVar18 = (long *)*plVar18;\n  goto joined_r0x0011c90a;\n}" primitive_type (function_declarator "FUN_0011bca0(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  byte bVar1;\n  uint uVar2;\n  long *plVar3;\n  byte *pbVar4;\n  long lVar5;\n  long *plVar6;\n  undefined *puVar7;\n  char cVar8;\n  int iVar9;\n  undefined4 uVar10;\n  undefined8 uVar11;\n  size_t sVar12;\n  long lVar13;\n  undefined8 uVar14;\n  long lVar15;\n  long lVar16;\n  long *plVar17;\n  void *__ptr;\n  long *plVar18;\n  char *pcVar19;\n  byte *pbVar20;\n  undefined8 *puVar21;\n  undefined8 *puVar22;\n  ulong uVar23;\n  undefined8 uVar24;\n  ulong uVar25;\n  long *plVar26;\n  undefined8 *puVar27;\n  long lVar28;\n  ulong uVar29;\n  ulong uVar30;\n  char *pcVar31;\n  byte *pbVar32;\n  long lVar33;\n  ulong uVar34;\n  byte bVar35;\n  long *plVar36;\n  ulong uVar37;\n  bool bVar38;\n  bool bVar39;\n  byte bVar40;\n  uint local_40;\n  undefined4 uStack_3c;\n  \n  bVar40 = 0;\n  if (DAT_0017fb98 != 0) {\n    FUN_00112d70();\n  }\n  DAT_0017f440 = DAT_0017fcc8;\n  FUN_00115a50(FUN_001182b0,DAT_0017f430);\n  FUN_00113540();\n  FUN_00123c10();\n  for (puVar21 = DAT_0017f2e0; puVar21 != (undefined8 *)0x0; puVar21 = (undefined8 *)*puVar21) {\n    FUN_00112b40(puVar21[1]);\n  }\n  iVar9 = bfd_section_already_linked_table_init();\n  if (iVar9 == 0) {\n    uVar11 = dcgettext(0,"%F%P: can not create hash table: %E\n",5);\n    FUN_001251f0(uVar11);\n  }\n  _DAT_0017f2c0 = _DAT_0017f2c0 + 1;\n  DAT_0017f440 = DAT_0017fcc8;\n  FUN_00119910(DAT_0017f430,0);\n  plVar3 = DAT_0017fa28;\n  plVar26 = DAT_0017fa20;\n  plVar18 = DAT_0017f2f8;\n  plVar17 = DAT_0017f2f0;\n  if ((DAT_0017fac1 & 2) != 0) {\n    lVar16 = *(long *)PTR_DAT_0017e650;\n    plVar36 = *(long **)(PTR_DAT_0017e650 + 8);\n    iVar9 = FUN_00128bb0();\n    if (iVar9 != 0) {\n      uVar11 = FUN_00128550();\n      uVar14 = dcgettext(0,"%F%P: %s: plugin reported error after all symbols read\n",5);\n      FUN_001251f0(uVar14,uVar11);\n    }\n    FUN_00119910(*plVar36,0);\n    puVar7 = PTR_DAT_0017e650;\n    if (*(long *)PTR_DAT_0017e650 != lVar16) {\n      FUN_001252b0("../../ld/ldlang.c",0x1baf);\n    }\n    plVar6 = *(long **)(puVar7 + 8);\n    lVar16 = *plVar36;\n    *(long **)(puVar7 + 8) = plVar36;\n    *plVar36 = 0;\n    if (DAT_0017f2f0 != plVar17) {\n      FUN_001252b0("../../ld/ldlang.c",0x1baf);\n    }\n    plVar36 = DAT_0017f2f8;\n    plVar17 = (long *)*plVar18;\n    DAT_0017f2f8 = plVar18;\n    *plVar18 = 0;\n    if (DAT_0017fa20 != plVar26) {\n      FUN_001252b0("../../ld/ldlang.c",0x1baf);\n    }\n    plVar26 = DAT_0017fa28;\n    lVar15 = *plVar3;\n    DAT_0017fa28 = plVar3;\n    *plVar3 = 0;\n    plVar18 = DAT_0017f2f0;\n    plVar3 = DAT_0017fa20;\n    if (lVar16 != 0) {\n      for (; DAT_0017f380 = plVar3, plVar18 != (long *)0x0; plVar18 = (long *)plVar18[6]) {\n        if ((*(byte *)((long)plVar18 + 0x49) & 0x20) != 0) {\n          if ((*(byte *)((long)plVar18 + 0x49) & 0x40) == 0) goto LAB_0011d6c0;\n          break;\n        }\n        if ((plVar18[4] != 0) && (*(long *)(plVar18[4] + 0xd0) == 0)) {\n          DAT_0017f380 = plVar18;\n        }\n        plVar3 = DAT_0017f380;\n      }\n      plVar18 = DAT_0017f380;\n      if (DAT_0017f380 == (long *)0x0) {\n        FUN_001252b0("../../ld/ldlang.c",0x1c32);\n        plVar18 = DAT_0017f380;\n      }\nLAB_0011d6c0:\n      DAT_0017f380 = plVar18;\n      plVar18 = DAT_0017f380;\n      puVar7 = PTR_DAT_0017e650;\n      *plVar6 = *DAT_0017f380;\n      *plVar18 = lVar16;\n      if (plVar18 == *(long **)(puVar7 + 8)) {\n        *(long **)(puVar7 + 8) = plVar6;\n      }\n      *plVar26 = plVar18[7];\n      bVar38 = DAT_0017fa28 == plVar18 + 7;\n      plVar18[7] = lVar15;\n      plVar3 = DAT_0017f2f8;\n      if (bVar38) {\n        DAT_0017fa28 = plVar26;\n      }\n      if (plVar18[2] == 0) {\n        *plVar36 = (long)DAT_0017f2f0;\n        DAT_0017f2f0 = plVar17;\n        if ((long **)plVar3 != &DAT_0017f2f0) {\n          plVar36 = DAT_0017f2f8;\n        }\n      }\n      else {\n        *plVar36 = plVar18[6];\n        plVar18[6] = (long)plVar17;\n        if (plVar3 != plVar18 + 6) {\n          plVar36 = DAT_0017f2f8;\n        }\n      }\n      DAT_0017f2f8 = plVar36;\n      plVar18 = DAT_0017f2f8;\n      plVar17 = DAT_0017f2f0;\n      _DAT_0017f2c0 = _DAT_0017f2c0 + 1;\n      FUN_00119910(DAT_0017f430);\n      if (DAT_0017f2f0 != plVar17) {\n        FUN_001252b0("../../ld/ldlang.c");\n      }\n      lVar16 = *plVar18;\n      DAT_0017f2f8 = plVar18;\n      *plVar18 = 0;\n      while (lVar16 != 0) {\n        lVar15 = *(long *)(*(long *)(lVar16 + 0x20) + 0xd0);\n        lVar13 = *(long *)(lVar16 + 0x20);\n        if (lVar15 != 0) {\n          lVar13 = lVar15;\n        }\n        if (DAT_0017fa20 == (long *)0x0) {\nLAB_0011dad0:\n          plVar17 = DAT_0017f2f0;\n        }\n        else {\n          plVar26 = (long *)0x0;\n          plVar18 = DAT_0017fa20;\n          plVar17 = (long *)0x0;\n          do {\n            while (plVar18[4] != lVar13) {\n              if ((plVar18[4] != 0) && (plVar18[6] != 0)) {\n                plVar26 = plVar18;\n              }\n              plVar18 = (long *)plVar18[7];\n              if (plVar18 == (long *)0x0) goto LAB_0011d7f1;\n            }\n            lVar28 = plVar18[6];\n            if (lVar28 != 0) {\n              plVar17 = (long *)(lVar28 + 0x30);\n              lVar13 = *(long *)(lVar28 + 0x30);\n              goto LAB_0011d835;\n            }\n            plVar18 = (long *)plVar18[7];\n            plVar17 = plVar26;\n          } while (plVar18 != (long *)0x0);\nLAB_0011d7f1:\n          if (plVar17 == (long *)0x0) goto LAB_0011dad0;\n        }\n        plVar17 = plVar17 + 6;\n        for (lVar13 = *plVar17; lVar13 != 0; lVar13 = *(long *)(lVar13 + 0x30)) {\n          if (((*(byte *)(lVar13 + 0x49) & 0x40) == 0) &&\n             (*(long *)(*(long *)(lVar13 + 0x20) + 0xd0) == 0)) {\n            lVar13 = *plVar17;\n            break;\n          }\n          plVar17 = (long *)(lVar13 + 0x30);\n        }\nLAB_0011d835:\n        plVar18 = (long *)(lVar16 + 0x30);\n        if (lVar15 == 0) {\n          *plVar17 = lVar16;\n          lVar15 = *(long *)(lVar16 + 0x30);\n          *(long *)(lVar16 + 0x30) = lVar13;\n          lVar16 = lVar15;\n        }\n        else {\n          lVar28 = *(long *)(lVar16 + 0x30);\n          if (lVar28 != 0) {\n            lVar5 = *(long *)(*(long *)(lVar28 + 0x20) + 0xd0);\n            while (lVar15 == lVar5) {\n              plVar18 = (long *)(lVar28 + 0x30);\n              lVar28 = *(long *)(lVar28 + 0x30);\n              if (lVar28 == 0) break;\n              lVar5 = *(long *)(*(long *)(lVar28 + 0x20) + 0xd0);\n            }\n          }\n          *plVar17 = lVar16;\n          lVar16 = *plVar18;\n          *plVar18 = lVar13;\n          if (*(long *)(lVar15 + 0x100) != 0) {\n            *(long **)(*(long *)(lVar15 + 0x100) + 0x30) = plVar18 + -6;\n          }\n        }\n      }\n    }\n  }\n  if (DAT_0017fb38 != (undefined8 *)0x0) {\n    FUN_001252b0("../../ld/ldlang.c",0x1c67);\n  }\n  DAT_0017fb38 = &DAT_0017f2e0;\n  if (DAT_0017f2e8 == (undefined *)0x0) {\n    DAT_0017fb38 = DAT_0017f2e0;\n    if (PTR_s_start_0017e660 != (undefined *)0x0) {\n      FUN_00115880();\n    }\n  }\n  if (DAT_0017fb48 != 0) {\n    FUN_00115880();\n  }\n  if (DAT_0017fb50 != 0) {\n    FUN_00115880();\n  }\n  FUN_00123b90();\n  if ((DAT_0017fc98 != 0) && (DAT_0017f3d0 != (undefined8 *)0x0)) {\n    uVar11 = dcgettext(0,"\nAs-needed library included to satisfy reference by file (symbol)\n\n",5)\n    ;\n    FUN_001252f0(uVar11);\n    for (puVar21 = DAT_0017f3d0; puVar21 != (undefined8 *)0x0; puVar21 = (undefined8 *)*puVar21) {\n      FUN_001252f0(&DAT_0013efee,puVar21[1]);\n      sVar12 = strlen((char *)puVar21[1]);\n      if (0x1c < sVar12) {\n        FUN_00124290();\n        sVar12 = 0;\n      }\n      do {\n        FUN_00124270();\n        sVar12 = sVar12 + 1;\n      } while (sVar12 != 0x1e);\n      if (puVar21[2] != 0) {\n        FUN_001252f0(&DAT_0013f279);\n      }\n      FUN_001252f0("(%pT)\n",puVar21[3]);\n    }\n  }\n  bfd_section_already_linked_table_free();\n  plVar17 = DAT_0017f2f0;\njoined_r0x0011be7f:\n  if (plVar17 != (long *)0x0) {\n    do {\n      if ((*(byte *)((long)plVar17 + 0x49) & 0x20) == 0) {\n        lVar16 = plVar17[4];\n        lVar13 = bfd_arch_get_compatible(lVar16,DAT_0017fb10,DAT_0017fbdc);\n        lVar15 = DAT_0017fb10;\n        if (((DAT_0017fac0 & 3) == 2) || ((DAT_0017fac3 & 8) != 0)) {\n          if (lVar13 != 0) {\n            puVar21 = *(undefined8 **)(lVar16 + 8);\n            puVar27 = *(undefined8 **)(DAT_0017fb10 + 8);\n            if ((*(int *)(puVar21 + 1) != *(int *)(puVar27 + 1)) &&\n               ((*(byte *)(lVar16 + 0x44) & 0x20) != 0)) goto LAB_0011c12e;\n            goto LAB_0011bed4;\n          }\n          if ((*(byte *)(lVar16 + 0x44) & 0x20) != 0) {\n            puVar21 = *(undefined8 **)(lVar16 + 8);\n            puVar27 = *(undefined8 **)(DAT_0017fb10 + 8);\nLAB_0011c12e:\n            uVar11 = *puVar27;\n            uVar14 = *puVar21;\n            uVar24 = 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_001251f0(uVar24,uVar14,lVar16,uVar11,lVar15);\n            goto joined_r0x0011c167;\n          }\n        }\n        else {\njoined_r0x0011c167:\n          if (lVar13 != 0) {\nLAB_0011bed4:\n            if (*(int *)(lVar16 + 0xa0) == 0) goto LAB_0011bf30;\n            uVar11 = 0;\n            if (DAT_0017fbd0 == 0) {\n              uVar11 = bfd_set_error_handler(FUN_00112380);\n            }\n            iVar9 = (**(code **)(*(long *)(DAT_0017fb10 + 8) + 0x140))(lVar16,&DAT_0017fac0);\n            if (iVar9 == 0) {\n              if (DAT_0017fbd0 != 0) {\n                uVar14 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);\n                FUN_001251f0(uVar14,lVar16);\n                goto LAB_0011c5b0;\n              }\n            }\n            else {\nLAB_0011c5b0:\n              if (DAT_0017fbd0 != 0) goto code_r0x0011c5be;\n            }\n            bfd_set_error_handler(uVar11);\n            goto LAB_0011bf30;\n          }\n        }\n        if (DAT_0017fbd0 == 0) goto LAB_0011bf30;\n        uVar11 = bfd_printable_name(DAT_0017fb10);\n        uVar14 = bfd_printable_name(lVar16);\n        uVar24 = dcgettext(0,\n                           "%X%P: %s architecture of input file `%pB\' is incompatible with %s output\n"\n                           ,5);\n        FUN_001251f0(uVar24,uVar14,lVar16,uVar11);\n        plVar17 = (long *)plVar17[6];\n      }\n      else {\nLAB_0011bf30:\n        plVar17 = (long *)plVar17[6];\n      }\n      if (plVar17 == (long *)0x0) break;\n    } while( true );\n  }\n  if (DAT_0017fc30 != 0) {\n    uVar11 = 0;\n    for (plVar17 = DAT_0017f2f0; plVar17 != (long *)0x0; plVar17 = (long *)plVar17[6]) {\n      lVar16 = bfd_get_section_by_name(plVar17[4],".exports");\n      if (lVar16 != 0) {\n        lVar15 = *(long *)(lVar16 + 0x38);\n        pcVar31 = (char *)xmalloc(lVar15);\n        iVar9 = bfd_get_section_contents(plVar17[4],lVar16,pcVar31,0,lVar15);\n        if (iVar9 == 0) {\n          uVar14 = dcgettext(0,"%X%P: unable to read .exports section contents\n",5);\n          FUN_001251f0(uVar14,lVar16);\n        }\n        pcVar19 = pcVar31 + lVar15;\n        for (; pcVar31 < pcVar19; pcVar31 = pcVar31 + sVar12 + 1) {\n          uVar11 = FUN_0011b640(uVar11,pcVar31,0);\n          sVar12 = strlen(pcVar31);\n        }\n        *(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) | 0x208000;\n      }\n    }\n    uVar14 = FUN_0011b640(0,&DAT_0013f157,0,0);\n    lVar15 = xcalloc(1,0x70);\n    lVar16 = DAT_0017fc30;\n    *(undefined8 *)(lVar15 + 0x18) = uVar11;\n    *(undefined8 *)(lVar15 + 0x38) = uVar14;\n    *(code **)(lVar15 + 0x68) = FUN_00112f60;\n    *(undefined4 *)(lVar15 + 0x60) = 0xffffffff;\n    FUN_0011b860(lVar16,lVar15,0);\n  }\n  FUN_0011eaa0();\n  if ((DAT_0017fc4c != 0) &&\n     (cVar8 = *(char *)(*(long *)(DAT_0017fb10 + 8) + 0x1c), DAT_0017fb20 != 0)) {\n    lVar16 = DAT_0017fb20;\n    do {\n      for (puVar21 = *(undefined8 **)(lVar16 + 0x90); puVar21 != (undefined8 *)0x0;\n          puVar21 = (undefined8 *)puVar21[2]) {\n        while( true ) {\n          pbVar4 = (byte *)*puVar21;\n          bVar35 = *pbVar4;\n          if (bVar35 == 0) break;\n          bVar1 = _sch_istable[(ulong)bVar35 * 2];\n          pbVar20 = pbVar4;\n          while (((bVar1 & 0x8c) != 0 || (bVar35 == 0x5f))) {\n            pbVar20 = pbVar20 + 1;\n            bVar35 = *pbVar20;\n            if (bVar35 == 0) goto LAB_0011d178;\n            bVar1 = _sch_istable[(ulong)bVar35 * 2];\n          }\n          puVar21 = (undefined8 *)puVar21[2];\n          if (puVar21 == (undefined8 *)0x0) goto LAB_0011d163;\n        }\nLAB_0011d178:\n        sVar12 = strlen((char *)pbVar4);\n        pcVar31 = (char *)xmalloc(sVar12 + 10);\n        *pcVar31 = cVar8;\n        sprintf(pcVar31 + (cVar8 != '\0'),"__start_%s",pbVar4);\n        FUN_00112ee0(pcVar31,puVar21);\n        pcVar31[1] = cVar8;\n        builtin_strncpy(pcVar31 + (2 - (ulong)(cVar8 == '\0')),"__stop",6);\n        FUN_00112ee0(pcVar31 + 1,puVar21);\n        free(pcVar31);\n      }\nLAB_0011d163:\n      lVar16 = *(long *)(lVar16 + 0xf0);\n    } while (lVar16 != 0);\n  }\n  FUN_001188a0(1);\n  puVar21 = DAT_0017f398;\njoined_r0x0011bfdf:\n  if (puVar21 != (undefined8 *)0x0) {\n    do {\n      if (puVar21[3] != 0) {\n        FUN_00123150();\n        uVar11 = DAT_0017fd20;\n        if (DAT_0017fd38 == 0) {\n          uVar11 = *puVar21;\n          uVar14 = dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);\n          FUN_001251f0(uVar14,uVar11);\n        }\n        else {\n          puVar21[4] = DAT_0017fd20;\n          puVar21[7] = uVar11;\n        }\n      }\n      if (puVar21[6] != 0) {\n        FUN_00123150();\n        if (DAT_0017fd38 == 0) goto LAB_0011c1d0;\n        puVar21[5] = DAT_0017fd20;\n      }\n      puVar21 = (undefined8 *)puVar21[2];\n      if (puVar21 == (undefined8 *)0x0) break;\n    } while( true );\n  }\n  DAT_0017fd00 = 0;\n  if (((DAT_0017fac7 & 0x20) == 0) && (((DAT_0017fac0 & 3) != 2 || (DAT_0017fbc0 != 0)))) {\n    if (DAT_0017fc6c == 0) {\n      bfd_link_hash_traverse(DAT_0017fae8,FUN_001145f0,0);\n    }\n    else {\n      if (DAT_0017fc6c == 2) {\n        local_40 = 4;\n        do {\n          bfd_link_hash_traverse(DAT_0017fae8,FUN_001145f0,&local_40);\n          local_40 = local_40 - 1;\n        } while (local_40 != 0);\n        local_40 = 0;\n      }\n      else {\n        local_40 = 0;\n        do {\n          bfd_link_hash_traverse(DAT_0017fae8,FUN_001145f0,&local_40);\n          local_40 = local_40 + 1;\n        } while (local_40 < 5);\n        local_40 = 0xffffffff;\n      }\n      bfd_link_hash_traverse(DAT_0017fae8,FUN_001145f0,&local_40);\n    }\n  }\n  FUN_00119400(DAT_0017f430);\n  bVar35 = DAT_0017fac0;\n  plVar17 = DAT_0017f2f0;\n  if ((DAT_0017fac0 & 3) == 2) {\n    for (; plVar17 != (long *)0x0; plVar17 = (long *)plVar17[6]) {\n      if ((*(byte *)((long)plVar17 + 0x49) & 0x20) == 0) {\n        for (lVar16 = *(long *)(plVar17[4] + 0x90); lVar16 != 0; lVar16 = *(long *)(lVar16 + 0x10))\n        {\n          if ((*(uint *)(lVar16 + 0x20) & 0x2000) == 0) {\n            *(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) & 0xffff7fff;\n          }\n        }\n      }\n    }\n  }\n  if ((bVar35 & 0x40) != 0) {\n    (**(code **)(*(long *)(DAT_0017fb10 + 8) + 0x2f0))(DAT_0017fb10,&DAT_0017fac0);\n  }\n  lVar16 = DAT_0017fb20;\n  if ((DAT_0017fac6 & 0x20) != 0) {\n    for (; lVar16 != 0; lVar16 = *(long *)(lVar16 + 0xf0)) {\n      iVar9 = bfd_link_check_relocs(lVar16,&DAT_0017fac0);\n      if (iVar9 == 0) {\n        DAT_0017fc44 = 0;\n      }\n    }\n  }\n  FUN_00123ba0();\n  FUN_001124e0(DAT_0017f430);\n  _DAT_0017f2c0 = _DAT_0017f2c0 + 1;\n  FUN_00119520(DAT_0017f430,0,0);\n  plVar18 = (long *)0x0;\n  plVar26 = (long *)0x0;\n  plVar17 = DAT_0017fa60;\n  while (plVar36 = plVar17, plVar3 = (long *)*plVar36, plVar3 != (long *)0x0) {\n    plVar17 = plVar3;\n    if ((int)plVar3[1] == 0) {\n      if ((plVar26 != (long *)0x0) && (plVar3 != (long *)plVar26[4])) {\n        FUN_001252b0("../../ld/ldlang.c",0xea0);\n        plVar17 = (long *)*plVar36;\n      }\n      *(int *)((long)plVar3 + 0x84) = -2 - *(int *)((long)plVar3 + 0x84);\n      plVar26 = plVar3;\n      if (plVar18 == (long *)0x0) {\n        plVar18 = plVar3;\n      }\n    }\n    else if ((int)plVar3[1] == 0xe) {\n      lVar16 = FUN_00116e20(plVar3[2],0,0);\n      if (lVar16 == 0) {\nLAB_0011c415:\n        lVar16 = plVar3[2];\n        uVar11 = dcgettext(0,"%F%P: %s not found for insert\n",5);\n        FUN_001251f0(uVar11,lVar16);\n        plVar17 = DAT_0017f2f0;\n        goto joined_r0x0011c458;\n      }\n      if ((int)plVar3[3] != 0) {\n        do {\n          lVar16 = *(long *)(lVar16 + 0x28);\n          if (lVar16 == 0) goto LAB_0011c415;\n        } while (*(int *)(lVar16 + 0x84) < 0);\n      }\n      if (plVar26 != (long *)0x0) {\n        lVar15 = plVar18[5];\n        lVar13 = plVar26[4];\n        *(long *)(lVar15 + 0x20) = lVar13;\n        if (lVar13 == 0) {\n          DAT_0017fa68 = (long *)(lVar15 + 0x20);\n        }\n        else {\n          *(long *)(lVar13 + 0x28) = lVar15;\n        }\n        plVar26[4] = *(long *)(lVar16 + 0x20);\n        if (*(long *)(lVar16 + 0x20) == 0) {\n          DAT_0017fa68 = plVar26 + 4;\n        }\n        else {\n          *(long **)(*(long *)(lVar16 + 0x20) + 0x28) = plVar26;\n        }\n        plVar18[5] = lVar16;\n        lVar13 = 0;\n        lVar15 = 0;\n        *(long **)(lVar16 + 0x20) = plVar18;\n        do {\n          *(int *)((long)plVar18 + 0x84) = -2 - *(int *)((long)plVar18 + 0x84);\n          lVar28 = plVar18[7];\n          if (((lVar28 != 0) && (*(long *)(lVar28 + 0xf0) != 0)) && (lVar13 = lVar28, lVar15 == 0))\n          {\n            lVar15 = lVar28;\n          }\n        } while ((plVar26 != plVar18) && (plVar18 = (long *)plVar18[4], plVar18 != (long *)0x0));\n        plVar18 = (long *)0x0;\n        if (lVar13 != 0) {\n          lVar28 = *(long *)(lVar16 + 0x38);\n          if (lVar28 == 0) {\n            plVar18 = *(long **)(lVar16 + 0x28);\n            if (plVar18 != (long *)0x0) {\n              do {\n                if (((-1 < *(int *)((long)plVar18 + 0x84)) && (lVar28 = plVar18[7], lVar28 != 0)) &&\n                   (*(long *)(lVar28 + 0xf0) != 0)) goto LAB_0011cd61;\n                plVar18 = (long *)plVar18[5];\n              } while (plVar18 != (long *)0x0);\n              plVar18 = (long *)0x0;\n            }\n          }\n          else {\nLAB_0011cd61:\n            plVar18 = (long *)0x0;\n            if (lVar28 != lVar13) {\n              lVar5 = *(long *)(lVar15 + 0x18);\n              lVar33 = *(long *)(lVar13 + 0x10);\n              if (lVar5 == 0) {\n                *(long *)(DAT_0017fb10 + 0x90) = lVar33;\n              }\n              else {\n                *(long *)(lVar5 + 0x10) = lVar33;\n                lVar33 = *(long *)(lVar13 + 0x10);\n              }\n              if (lVar33 == 0) {\n                *(long *)(DAT_0017fb10 + 0x98) = lVar5;\n              }\n              else {\n                *(long *)(lVar33 + 0x18) = lVar5;\n              }\n              lVar5 = *(long *)(lVar28 + 0x10);\n              *(long *)(lVar13 + 0x10) = lVar5;\n              if (lVar5 == 0) {\n                *(long *)(DAT_0017fb10 + 0x98) = lVar13;\n              }\n              else {\n                *(long *)(lVar5 + 0x18) = lVar13;\n              }\n              *(long *)(lVar15 + 0x18) = lVar28;\n              plVar18 = (long *)0x0;\n              *(long *)(lVar28 + 0x10) = lVar15;\n            }\n          }\n        }\n      }\n      plVar17 = (long *)FUN_00112240(lVar16);\n      lVar16 = *DAT_0017fa60;\n      *DAT_0017fa60 = *(long *)*plVar36;\n      lVar15 = *plVar17;\n      *plVar36 = lVar15;\n      if (lVar15 == 0) {\n        DAT_0017f438 = plVar36;\n      }\n      *plVar17 = lVar16;\n      plVar26 = (long *)0x0;\n      plVar17 = DAT_0017fa60;\n    }\n  }\n  for (; (plVar17 = DAT_0017f2f0, plVar18 != (long *)0x0 &&\n         (*(int *)((long)plVar18 + 0x84) = -2 - *(int *)((long)plVar18 + 0x84),\n         plVar17 = DAT_0017f2f0, plVar26 != plVar18)); plVar18 = (long *)plVar18[4]) {\n  }\njoined_r0x0011c458:\n  for (; plVar17 != (long *)0x0; plVar17 = (long *)plVar17[6]) {\n    puVar21 = *(undefined8 **)(plVar17[4] + 0x90);\njoined_r0x0011c46e:\n    if (puVar21 != (undefined8 *)0x0) {\n      do {\n        if (puVar21[0xd] == 0) {\n          if ((*(byte *)(plVar17 + 9) & 0x10) != 0) goto code_r0x0011c493;\n          iVar9 = FUN_00113350(*(undefined4 *)(puVar21 + 4));\n          bVar38 = false;\n          bVar39 = iVar9 == 0;\n          if (bVar39) {\n            pbVar4 = (byte *)*puVar21;\n            lVar16 = 7;\n            pbVar20 = pbVar4;\n            pbVar32 = (byte *)"COMMON";\n            do {\n              if (lVar16 == 0) break;\n              lVar16 = lVar16 + -1;\n              bVar38 = *pbVar20 < *pbVar32;\n              bVar39 = *pbVar20 == *pbVar32;\n              pbVar20 = pbVar20 + (ulong)bVar40 * -2 + 1;\n              pbVar32 = pbVar32 + (ulong)bVar40 * -2 + 1;\n            } while (bVar39);\n            if ((!bVar38 && !bVar39) == bVar38) {\n              if (((DAT_0017fac0 & 3) != 2) || (DAT_0017fbc0 != 0)) {\n                lVar16 = DAT_0017f458;\n                if (DAT_0017f458 == 0) {\n                  lVar16 = FUN_00116e20(".bss",0,1);\n                  DAT_0017f458 = lVar16;\n                }\nLAB_0011c659:\n                FUN_00117b90(lVar16 + 0x10,puVar21,0);\n              }\n            }\n            else {\n              if (DAT_0017fc5c == 1) {\n                lVar16 = FUN_00116e20("/DISCARD/",0,1);\n                if ((*(long *)(lVar16 + 0x58) == 0) &&\n                   (((DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0)))) {\n                  uVar11 = FUN_00123030(0);\n                  *(undefined8 *)(lVar16 + 0x58) = uVar11;\n                }\n                goto LAB_0011c659;\n              }\n              if (DAT_0017fc5c == 3) {\n                uVar11 = puVar21[0x1e];\n                uVar14 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_001251f0(uVar14,puVar21,uVar11);\n              }\n              if ((DAT_0017fc78 == 0) && (iVar9 = FUN_001150a0(puVar21,0), iVar9 == 0)) {\n                uVar10 = 0;\n              }\n              else {\n                uVar10 = 0x17e;\n              }\n              lVar16 = FUN_00123c60(puVar21,pbVar4,uVar10);\n              if (lVar16 == 0) {\n                lVar16 = FUN_00116e20(pbVar4,uVar10,1);\n                if ((*(long *)(lVar16 + 0x58) == 0) &&\n                   (((DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0)))) {\n                  uVar11 = FUN_00123030(0);\n                  *(undefined8 *)(lVar16 + 0x58) = uVar11;\n                }\n                FUN_00117b90(lVar16 + 0x10,puVar21,0);\n              }\n              if (DAT_0017fc5c == 2) {\n                uVar11 = puVar21[0x1e];\n                uVar14 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_001251f0(uVar14,puVar21,uVar11);\n              }\n            }\n          }\n          else {\n            puVar21[0xd] = 0x17ed50;\n          }\n        }\n        puVar21 = (undefined8 *)puVar21[2];\n        if (puVar21 == (undefined8 *)0x0) break;\n      } while( true );\n    }\n  }\n  bVar35 = DAT_0017fac0 & 3;\n  plVar17 = DAT_0017f358;\n  plVar18 = DAT_0017fa60;\n  lVar16 = DAT_0017fb10;\n  if (bVar35 != 2) {\n    (**(code **)(*(long *)(DAT_0017fb10 + 8) + 0x300))(DAT_0017fb10,&DAT_0017fac0);\n    lVar16 = bfd_get_section_by_name(DAT_0017fb10,".text");\n    if (lVar16 == 0) {\n      bVar35 = DAT_0017fac0 & 3;\n      plVar17 = DAT_0017f358;\n      plVar18 = DAT_0017fa60;\n      lVar16 = DAT_0017fb10;\n    }\n    else {\n      bVar35 = DAT_0017fac0 & 3;\n      if (DAT_0017fc70 == 0) {\n        *(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) & 0xfffffff7;\n        plVar17 = DAT_0017f358;\n        plVar18 = DAT_0017fa60;\n        lVar16 = DAT_0017fb10;\n      }\n      else {\n        *(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) | 8;\n        plVar17 = DAT_0017f358;\n        plVar18 = DAT_0017fa60;\n        lVar16 = DAT_0017fb10;\n      }\n    }\n  }\n  for (; DAT_0017f358 = plVar17, DAT_0017fb10 = lVar16, plVar18 != (long *)0x0;\n      plVar18 = (long *)plVar18[4]) {\n    lVar16 = plVar18[5];\n    if ((((lVar16 != 0) && (plVar18[9] == 0)) && (plVar18[0xc] == 0)) &&\n       ((plVar18[0xb] == 0 && (plVar18[8] == *(long *)(lVar16 + 0x40))))) {\n      plVar18[9] = *(long *)(lVar16 + 0x48);\n    }\n    plVar17 = DAT_0017f358;\n    lVar16 = DAT_0017fb10;\n  }\n  if ((DAT_0017fc4c != 0) && (DAT_0017f350 != 0)) {\n    plVar18 = plVar17 + DAT_0017f350;\n    do {\n      lVar15 = *plVar17;\n      if ((*(byte *)(lVar15 + 0x19) & 8) == 0) {\n        puVar21 = (undefined8 *)(*(undefined8 **)(lVar15 + 0x28))[0xd];\n        if (((puVar21 == (undefined8 *)0x0) || (puVar21[0x1e] != lVar16)) ||\n           (iVar9 = strcmp((char *)**(undefined8 **)(lVar15 + 0x28),(char *)*puVar21), iVar9 != 0))\n        {\n          *(undefined1 *)(lVar15 + 0x18) = 1;\n          *(undefined8 *)(lVar15 + 0x28) = 0;\n        }\n      }\n      plVar17 = plVar17 + 1;\n    } while (plVar18 != plVar17);\n  }\n  if (bVar35 != 2) {\n    for (puVar21 = *(undefined8 **)(DAT_0017fb10 + 0x90); puVar21 != (undefined8 *)0x0;\n        puVar21 = (undefined8 *)puVar21[2]) {\n      pcVar31 = (char *)*puVar21;\n      sVar12 = strlen(pcVar31);\n      pcVar19 = (char *)xmalloc(sVar12 + 10);\n      sprintf(pcVar19,".startof.%s",pcVar31);\n      FUN_00112ee0(pcVar19,puVar21);\n      builtin_strncpy(pcVar19 + 1,".size",5);\n      FUN_00112ee0(pcVar19 + 1,puVar21);\n      free(pcVar19);\n    }\n  }\n  FUN_00123bc0();\n  plVar17 = (long *)0x0;\n  __ptr = (void *)xmalloc(0x50);\n  uVar2 = 10;\n  for (puVar21 = DAT_0017fa50; puVar21 != (undefined8 *)0x0; puVar21 = (undefined8 *)*puVar21) {\n    uVar30 = 0;\n    for (plVar18 = DAT_0017fa60; plVar18 != (long *)0x0; plVar18 = (long *)plVar18[4]) {\n      if (-1 < *(int *)((long)plVar18 + 0x84)) {\n        plVar26 = (long *)plVar18[0xe];\n        if (plVar26 == (long *)0x0) {\n          if (((*(int *)((long)plVar18 + 0x8c) != 2) && (plVar18[7] != 0)) &&\n             (((*(byte *)(plVar18[7] + 0x20) & 1) != 0 &&\n              (plVar26 = plVar17, plVar3 = plVar18, puVar21[2] != 3)))) {\n            while( true ) {\n              plVar17 = plVar26;\n              if (plVar26 != (long *)0x0) goto LAB_0011c7fd;\n              plVar3 = (long *)plVar3[4];\n              if (plVar3 == (long *)0x0) break;\n              plVar26 = (long *)plVar3[0xe];\n            }\n            plVar17 = (long *)0x0;\n            dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            FUN_001251f0();\n          }\n        }\n        else {\n          plVar17 = plVar26;\n          plVar3 = (long *)plVar18[7];\n          while (plVar3 != (long *)0x0) {\nLAB_0011c7fd:\n            iVar9 = strcmp((char *)plVar26[1],(char *)puVar21[1]);\n            uVar29 = uVar30;\n            if (iVar9 == 0) {\n              if (uVar2 <= (uint)uVar30) {\n                uVar2 = uVar2 << 1;\n                __ptr = (void *)xrealloc(__ptr,(ulong)uVar2 << 3);\n              }\n              uVar29 = (ulong)((uint)uVar30 + 1);\n              *(long *)((long)__ptr + uVar30 * 8) = plVar18[7];\n              *(undefined4 *)(plVar26 + 2) = 1;\n            }\n            plVar26 = (long *)*plVar26;\n            uVar30 = uVar29;\n            plVar3 = plVar26;\n          }\n        }\n      }\n    }\n    uVar10 = 0;\n    if (puVar21[5] != 0) {\n      uVar10 = FUN_00123800(puVar21[5],0,"phdr flags");\n    }\n    lVar16 = puVar21[4];\n    uVar11 = 0;\n    if (lVar16 != 0) {\n      uVar11 = FUN_00123800(lVar16,0,"phdr load address");\n      lVar16 = puVar21[4];\n    }\n    iVar9 = bfd_record_phdr(DAT_0017fb10,puVar21[2],puVar21[5] != 0,uVar10,lVar16 != 0,uVar11,\n                            *(undefined4 *)(puVar21 + 3),*(undefined4 *)((long)puVar21 + 0x1c),\n                            uVar30,__ptr);\n    if (iVar9 == 0) {\n      dcgettext(0,"%F%P: bfd_record_phdr failed: %E\n",5);\n      FUN_001251f0();\n    }\n  }\n  free(__ptr);\n  for (plVar17 = DAT_0017fa60; plVar17 != (long *)0x0; plVar17 = (long *)plVar17[4]) {\n    if ((-1 < *(int *)((long)plVar17 + 0x84)) && (plVar17[7] != 0)) {\n      plVar18 = (long *)plVar17[0xe];\njoined_r0x0011c90a:\n      if (plVar18 != (long *)0x0) {\n        do {\n          bVar38 = false;\n          bVar39 = (int)plVar18[2] == 0;\n          if (bVar39) {\n            pbVar4 = (byte *)plVar18[1];\n            lVar16 = 5;\n            pbVar20 = pbVar4;\n            pbVar32 = (byte *)0x130359;\n            do {\n              if (lVar16 == 0) break;\n              lVar16 = lVar16 + -1;\n              bVar38 = *pbVar20 < *pbVar32;\n              bVar39 = *pbVar20 == *pbVar32;\n              pbVar20 = pbVar20 + (ulong)bVar40 * -2 + 1;\n              pbVar32 = pbVar32 + (ulong)bVar40 * -2 + 1;\n            } while (bVar39);\n            if ((!bVar38 && !bVar39) != bVar38) goto code_r0x0011c93b;\n          }\n          plVar18 = (long *)*plVar18;\n          if (plVar18 == (long *)0x0) break;\n        } while( true );\n      }\n    }\n  }\n  if (((DAT_0017fac3 & 0x10) != 0) && ((DAT_0017fac0 & 3) != 2)) {\n    local_40 = 0;\n    FUN_00119860(DAT_0017fd98,&local_40);\n    if (local_40 == 0) {\n      DAT_0017fac3 = DAT_0017fac3 & 0xef;\n    }\n  }\n  FUN_0011a050(0,1 < DAT_0017fad8);\n  FUN_00123bb0();\n  lVar16 = DAT_0017fb10;\n  uVar10 = DAT_0017f3c8;\n  if (DAT_0017f350 != 0) {\n    plVar17 = DAT_0017f358 + DAT_0017f350;\n    plVar18 = DAT_0017f358;\n    do {\n      while (lVar15 = *plVar18, (*(ushort *)(lVar15 + 0x18) & 0x8ff) == 3) {\n        pcVar31 = *(char **)(lVar15 + 8);\n        if (*pcVar31 != '.') {\n          cVar8 = *(char *)(*(long *)(lVar16 + 8) + 0x1c);\n          lVar13 = *(long *)(*(long *)(lVar15 + 0x28) + 0x68);\n          *(long *)(lVar15 + 0x28) = lVar13;\n          if (pcVar31[(int)((cVar8 != '\0') + 4)] == 'o') {\n            *(ulong *)(lVar15 + 0x30) = *(ulong *)(lVar13 + 0x38) >> ((byte)uVar10 & 0x3f);\n          }\n          break;\n        }\n        if (pcVar31[2] != 'i') break;\n        plVar18 = plVar18 + 1;\n        uVar30 = *(ulong *)(*(long *)(lVar15 + 0x28) + 0x38);\n        *(undefined8 *)(lVar15 + 0x28) = 0x17ed50;\n        *(ulong *)(lVar15 + 0x30) = uVar30 >> ((byte)uVar10 & 0x3f);\n        if (plVar18 == plVar17) goto LAB_0011ca60;\n      }\n      plVar18 = plVar18 + 1;\n    } while (plVar18 != plVar17);\n  }\nLAB_0011ca60:\n  FUN_001188a0(4);\n  FUN_00123be0();\n  FUN_00123b20();\n  puVar21 = DAT_0017f378;\n  if (DAT_0017fbd8 != '\0') {\n    cVar8 = bfd_arch_bits_per_address(DAT_0017fb10);\n    puVar21 = *(undefined8 **)(DAT_0017fb10 + 0x90);\n    uVar30 = (1L << (cVar8 - 1U & 0x3f)) * 2 - 1;\n    if (puVar21 != (undefined8 *)0x0) {\n      do {\n        if ((*(byte *)(puVar21 + 4) & 1) != 0) {\n          uVar29 = puVar21[5] + puVar21[7] & uVar30;\n          if ((uVar29 == 0) || ((puVar21[5] & uVar30) <= uVar29)) {\n            uVar29 = puVar21[7] + puVar21[6] & uVar30;\n            if ((uVar29 == 0) || ((puVar21[6] & uVar30) <= uVar29)) goto LAB_0011d2f0;\n            uVar11 = *puVar21;\n            pcVar31 = "%X%P: section %s LMA wraps around address space\n";\n          }\n          else {\n            uVar11 = *puVar21;\n            pcVar31 = "%X%P: section %s VMA wraps around address space\n";\n          }\n          uVar14 = dcgettext(0,pcVar31,5);\n          FUN_001251f0(uVar14,uVar11);\n        }\nLAB_0011d2f0:\n        puVar21 = (undefined8 *)puVar21[2];\n      } while (puVar21 != (undefined8 *)0x0);\n    }\n    puVar21 = DAT_0017f378;\n    if (1 < *(uint *)(DAT_0017fb10 + 0xa0)) {\n      uVar30 = 0;\n      plVar17 = (long *)xmalloc((ulong)*(uint *)(DAT_0017fb10 + 0xa0) << 4);\n      lVar16 = *(long *)(DAT_0017fb10 + 0x90);\n      if (lVar16 != 0) {\n        do {\n          uVar29 = uVar30;\n          if ((((*(uint *)(lVar16 + 0x20) & 1) != 0) &&\n              ((*(uint *)(lVar16 + 0x20) & 0x402) != 0x400)) && (*(long *)(lVar16 + 0x38) != 0)) {\n            uVar29 = uVar30 + 1;\n            plVar17[uVar30 * 2] = lVar16;\n            *(undefined4 *)(plVar17 + uVar30 * 2 + 1) = 0;\n          }\n          lVar16 = *(long *)(lVar16 + 0x10);\n          uVar30 = uVar29;\n        } while (lVar16 != 0);\n        if (1 < uVar29) {\n          qsort(plVar17,uVar29,0x10,FUN_00112320);\n          puVar21 = (undefined8 *)0x0;\n          plVar18 = plVar17;\n          uVar30 = 0;\n          uVar25 = 0;\n          do {\n            puVar27 = (undefined8 *)*plVar18;\n            puVar22 = puVar21;\n            uVar34 = uVar30;\n            uVar23 = uVar25;\n            if ((*(byte *)(puVar27 + 4) & 2) != 0) {\n              uVar34 = puVar27[6];\n              uVar23 = (uVar34 - 1) + ((ulong)puVar27[7] >> ((byte)DAT_0017f3c8 & 0x3f));\n              puVar22 = puVar27;\n              if ((puVar21 != (undefined8 *)0x0) && ((uVar34 <= uVar25 || (uVar25 < uVar30)))) {\n                uVar11 = *puVar21;\n                uVar14 = *puVar27;\n                uVar24 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);\n                FUN_001251f0(uVar24,uVar14,uVar34,uVar23,uVar11,uVar30,uVar25);\n                *(undefined4 *)(plVar18 + 1) = 1;\n              }\n            }\n            plVar18 = plVar18 + 2;\n            puVar21 = puVar22;\n            uVar30 = uVar34;\n            uVar25 = uVar23;\n          } while (plVar18 != plVar17 + uVar29 * 2);\n          qsort(plVar17,uVar29,0x10,FUN_00112350);\n          puVar21 = (undefined8 *)*plVar17;\n          uVar23 = 1;\n          uVar30 = puVar21[5];\n          uVar25 = uVar30;\n          do {\n            lVar16 = uVar23 * 2;\n            if (*(ulong *)(plVar17[lVar16] + 0x28) == uVar25) goto LAB_0011d4c4;\n            uVar23 = uVar23 + 1;\n            uVar25 = *(ulong *)(plVar17[lVar16] + 0x28);\n          } while (uVar23 != uVar29);\n          uVar23 = 0;\n          uVar25 = (uVar30 - 1) + ((ulong)puVar21[7] >> ((byte)DAT_0017f3c8 & 0x3f));\n          plVar18 = plVar17;\n          while( true ) {\n            uVar37 = uVar25;\n            uVar34 = uVar30;\n            puVar27 = puVar21;\n            plVar26 = plVar18 + 2;\n            uVar23 = uVar23 + 1;\n            if (uVar23 == uVar29) break;\n            puVar21 = (undefined8 *)*plVar26;\n            plVar3 = plVar18 + 3;\n            uVar30 = puVar21[5];\n            uVar25 = (uVar30 - 1) + ((ulong)puVar21[7] >> ((byte)DAT_0017f3c8 & 0x3f));\n            plVar18 = plVar26;\n            if (((int)*plVar3 == 0) && ((uVar30 <= uVar37 || (uVar37 < uVar34)))) {\n              uVar11 = *puVar27;\n              uVar14 = *puVar21;\n              uVar24 = dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",\n                                 5);\n              FUN_001251f0(uVar24,uVar14,uVar30,uVar25,uVar11,uVar34,uVar37);\n            }\n          }\nLAB_0011d4c4:\n          free(plVar17);\n          for (puVar27 = DAT_0017f398; puVar21 = DAT_0017f378, puVar27 != (undefined8 *)0x0;\n              puVar27 = (undefined8 *)puVar27[2]) {\n            if (*(int *)(puVar27 + 10) != 0) {\n              uVar11 = *puVar27;\n              lVar16 = puVar27[7] - (puVar27[5] + puVar27[4]);\n              uVar14 = dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",lVar16,5);\n              FUN_001251f0(uVar14,uVar11,lVar16);\n            }\n          }\n          goto joined_r0x0011ca92;\n        }\n      }\n      free(plVar17);\n      puVar21 = DAT_0017f378;\n    }\n  }\njoined_r0x0011ca92:\n  for (; puVar21 != (undefined8 *)0x0; puVar21 = (undefined8 *)puVar21[1]) {\n    lVar16 = bfd_link_hash_lookup(DAT_0017fae8,*puVar21,0,0,1);\n    if ((lVar16 == 0) || (1 < (byte)(*(char *)(lVar16 + 0x18) - 3U))) {\n      uVar11 = *puVar21;\n      uVar14 = dcgettext(0,"%X%P: required symbol `%s\' not defined\n",5);\n      FUN_001251f0(uVar14,uVar11);\n    }\n  }\n  iVar9 = DAT_0017fa0c;\n  if (((DAT_0017fac0 & 0x43) != 2) && ((DAT_0017fac0 & 3) != 3)) {\n    iVar9 = 1;\n  }\n  if (((DAT_0017fac0 & 0x43) == 0x42) && (DAT_0017fa0c == 0 && _DAT_0017fa08 == 0)) {\n    uVar11 = dcgettext(0,"%F%P: gc-sections requires either an entry or an undefined symbol\n",5);\n    FUN_001251f0(uVar11);\n  }\n  if (DAT_0017f2e8 == (undefined *)0x0) {\n    DAT_0017f2e8 = PTR_s_start_0017e660;\n    iVar9 = 0;\n  }\n  lVar16 = bfd_link_hash_lookup(DAT_0017fae8,DAT_0017f2e8,0,0,1);\n  if ((lVar16 != 0) && ((byte)(*(char *)(lVar16 + 0x18) - 3U) < 2)) {\n    lVar15 = *(long *)(*(long *)(lVar16 + 0x28) + 0x68);\n    if (lVar15 != 0) {\n      iVar9 = bfd_set_start_address\n                        (DAT_0017fb10,\n                         *(long *)(lVar15 + 0x28) +\n                         *(long *)(*(long *)(lVar16 + 0x28) + 0x60) + *(long *)(lVar16 + 0x30));\n      if (iVar9 != 0) {\n        return;\n      }\n      pcVar31 = "%F%P: %s: can\'t set start address\n";\n      goto LAB_0011cf37;\n    }\n  }\n  uVar11 = bfd_scan_vma(DAT_0017f2e8,&local_40,0);\n  if (*(char *)CONCAT44(uStack_3c,local_40) == '\0') {\n    iVar9 = bfd_set_start_address(DAT_0017fb10,uVar11);\n  }\n  else {\n    lVar16 = bfd_get_section_by_name(DAT_0017fb10,PTR_s__text_0017e648);\n    puVar7 = DAT_0017f2e8;\n    if (lVar16 == 0) {\n      if (iVar9 == 0) {\n        return;\n      }\n      pcVar31 = "%P: warning: cannot find entry symbol %s; not setting start address\n";\nLAB_0011cf37:\n      puVar7 = DAT_0017f2e8;\n      uVar11 = dcgettext(0,pcVar31,5);\n      FUN_001251f0(uVar11,puVar7);\n      return;\n    }\n    uVar11 = *(undefined8 *)(lVar16 + 0x28);\n    if (iVar9 != 0) {\n      uVar14 = dcgettext(0,"%P: warning: cannot find entry symbol %s; defaulting to %V\n",5);\n      FUN_001251f0(uVar14,puVar7,uVar11);\n      uVar11 = *(undefined8 *)(lVar16 + 0x28);\n    }\n    iVar9 = bfd_set_start_address(DAT_0017fb10,uVar11);\n  }\n  if (iVar9 != 0) {\n    return;\n  }\n  uVar11 = dcgettext(0,"%F%P: can\'t set start address\n",5);\n  FUN_001251f0(uVar11);\n  return;\ncode_r0x0011c5be:\n  plVar17 = (long *)plVar17[6];\n  goto joined_r0x0011be7f;\nLAB_0011c1d0:\n  uVar11 = *puVar21;\n  uVar14 = dcgettext(0,"%F%P: invalid length for memory region %s\n",5);\n  FUN_001251f0(uVar14,uVar11);\n  puVar21 = (undefined8 *)puVar21[2];\n  goto joined_r0x0011bfdf;\ncode_r0x0011c493:\n  (**(code **)(*(long *)(plVar17[4] + 8) + 0x2c8))(puVar21,&DAT_0017fac0);\n  puVar21 = (undefined8 *)puVar21[2];\n  goto joined_r0x0011c46e;\ncode_r0x0011c93b:\n  lVar16 = plVar17[6];\n  uVar11 = dcgettext(0,"%X%P: section `%s\' assigned to non-existent phdr `%s\'\n",5);\n  FUN_001251f0(uVar11,lVar16,pbVar4);\n  plVar18 = (long *)*plVar18;\n  goto joined_r0x0011c90a;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "long *plVar3;" (sized_type_specifier "long" long) (pointer_declarator "*plVar3" * identifier) ;) (declaration "byte *pbVar4;" type_identifier (pointer_declarator "*pbVar4" * identifier) ;) (declaration "long lVar5;" (sized_type_specifier "long" long) identifier ;) (declaration "long *plVar6;" (sized_type_specifier "long" long) (pointer_declarator "*plVar6" * identifier) ;) (declaration "undefined *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "char cVar8;" primitive_type identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "undefined4 uVar10;" type_identifier identifier ;) (declaration "undefined8 uVar11;" type_identifier identifier ;) (declaration "size_t sVar12;" primitive_type identifier ;) (declaration "long lVar13;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 uVar14;" type_identifier identifier ;) (declaration "long lVar15;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar16;" (sized_type_specifier "long" long) identifier ;) (declaration "long *plVar17;" (sized_type_specifier "long" long) (pointer_declarator "*plVar17" * identifier) ;) (declaration "void *__ptr;" primitive_type (pointer_declarator "*__ptr" * identifier) ;) (declaration "long *plVar18;" (sized_type_specifier "long" long) (pointer_declarator "*plVar18" * identifier) ;) (declaration "char *pcVar19;" primitive_type (pointer_declarator "*pcVar19" * identifier) ;) (declaration "byte *pbVar20;" type_identifier (pointer_declarator "*pbVar20" * identifier) ;) (declaration "undefined8 *puVar21;" type_identifier (pointer_declarator "*puVar21" * identifier) ;) (declaration "undefined8 *puVar22;" type_identifier (pointer_declarator "*puVar22" * identifier) ;) (declaration "ulong uVar23;" type_identifier identifier ;) (declaration "undefined8 uVar24;" type_identifier identifier ;) (declaration "ulong uVar25;" type_identifier identifier ;) (declaration "long *plVar26;" (sized_type_specifier "long" long) (pointer_declarator "*plVar26" * identifier) ;) (declaration "undefined8 *puVar27;" type_identifier (pointer_declarator "*puVar27" * identifier) ;) (declaration "long lVar28;" (sized_type_specifier "long" long) identifier ;) (declaration "ulong uVar29;" type_identifier identifier ;) (declaration "ulong uVar30;" type_identifier identifier ;) (declaration "char *pcVar31;" primitive_type (pointer_declarator "*pcVar31" * identifier) ;) (declaration "byte *pbVar32;" type_identifier (pointer_declarator "*pbVar32" * identifier) ;) (declaration "long lVar33;" (sized_type_specifier "long" long) identifier ;) (declaration "ulong uVar34;" type_identifier identifier ;) (declaration "byte bVar35;" type_identifier identifier ;) (declaration "long *plVar36;" (sized_type_specifier "long" long) (pointer_declarator "*plVar36" * identifier) ;) (declaration "ulong uVar37;" type_identifier identifier ;) (declaration "bool bVar38;" primitive_type identifier ;) (declaration "bool bVar39;" primitive_type identifier ;) (declaration "byte bVar40;" type_identifier identifier ;) (declaration "uint local_40;" type_identifier identifier ;) (declaration "undefined4 uStack_3c;" type_identifier identifier ;) (expression_statement "bVar40 = 0;" (assignment_expression "bVar40 = 0" identifier = number_literal) ;) (if_statement "if (DAT_0017fb98 != 0) {\n    FUN_00112d70();\n  }" if (parenthesized_expression "(DAT_0017fb98 != 0)" ( (binary_expression "DAT_0017fb98 != 0" identifier != number_literal) )) (compound_statement "{\n    FUN_00112d70();\n  }" { (expression_statement "FUN_00112d70();" (call_expression "FUN_00112d70()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "DAT_0017f440 = DAT_0017fcc8;" (assignment_expression "DAT_0017f440 = DAT_0017fcc8" identifier = identifier) ;) (expression_statement "FUN_00115a50(FUN_001182b0,DAT_0017f430);" (call_expression "FUN_00115a50(FUN_001182b0,DAT_0017f430)" identifier (argument_list "(FUN_001182b0,DAT_0017f430)" ( identifier , identifier ))) ;) (expression_statement "FUN_00113540();" (call_expression "FUN_00113540()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00123c10();" (call_expression "FUN_00123c10()" identifier (argument_list "()" ( ))) ;) (for_statement "for (puVar21 = DAT_0017f2e0; puVar21 != (undefined8 *)0x0; puVar21 = (undefined8 *)*puVar21) {\n    FUN_00112b40(puVar21[1]);\n  }" for ( (assignment_expression "puVar21 = DAT_0017f2e0" identifier = identifier) ; (binary_expression "puVar21 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "puVar21 = (undefined8 *)*puVar21" identifier = (cast_expression "(undefined8 *)*puVar21" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar21" * identifier))) ) (compound_statement "{\n    FUN_00112b40(puVar21[1]);\n  }" { (expression_statement "FUN_00112b40(puVar21[1]);" (call_expression "FUN_00112b40(puVar21[1])" identifier (argument_list "(puVar21[1])" ( (subscript_expression "puVar21[1]" identifier [ number_literal ]) ))) ;) })) (expression_statement "iVar9 = bfd_section_already_linked_table_init();" (assignment_expression "iVar9 = bfd_section_already_linked_table_init()" identifier = (call_expression "bfd_section_already_linked_table_init()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar9 == 0) {\n    uVar11 = dcgettext(0,"%F%P: can not create hash table: %E\n",5);\n    FUN_001251f0(uVar11);\n  }" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (compound_statement "{\n    uVar11 = dcgettext(0,"%F%P: can not create hash table: %E\n",5);\n    FUN_001251f0(uVar11);\n  }" { (expression_statement "uVar11 = dcgettext(0,"%F%P: can not create hash table: %E\n",5);" (assignment_expression "uVar11 = 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_001251f0(uVar11);" (call_expression "FUN_001251f0(uVar11)" identifier (argument_list "(uVar11)" ( identifier ))) ;) })) (expression_statement "_DAT_0017f2c0 = _DAT_0017f2c0 + 1;" (assignment_expression "_DAT_0017f2c0 = _DAT_0017f2c0 + 1" identifier = (binary_expression "_DAT_0017f2c0 + 1" identifier + number_literal)) ;) (expression_statement "DAT_0017f440 = DAT_0017fcc8;" (assignment_expression "DAT_0017f440 = DAT_0017fcc8" identifier = identifier) ;) (expression_statement "FUN_00119910(DAT_0017f430,0);" (call_expression "FUN_00119910(DAT_0017f430,0)" identifier (argument_list "(DAT_0017f430,0)" ( identifier , number_literal ))) ;) (expression_statement "plVar3 = DAT_0017fa28;" (assignment_expression "plVar3 = DAT_0017fa28" identifier = identifier) ;) (expression_statement "plVar26 = DAT_0017fa20;" (assignment_expression "plVar26 = DAT_0017fa20" identifier = identifier) ;) (expression_statement "plVar18 = DAT_0017f2f8;" (assignment_expression "plVar18 = DAT_0017f2f8" identifier = identifier) ;) (expression_statement "plVar17 = DAT_0017f2f0;" (assignment_expression "plVar17 = DAT_0017f2f0" identifier = identifier) ;) (if_statement "if ((DAT_0017fac1 & 2) != 0) {\n    lVar16 = *(long *)PTR_DAT_0017e650;\n    plVar36 = *(long **)(PTR_DAT_0017e650 + 8);\n    iVar9 = FUN_00128bb0();\n    if (iVar9 != 0) {\n      uVar11 = FUN_00128550();\n      uVar14 = dcgettext(0,"%F%P: %s: plugin reported error after all symbols read\n",5);\n      FUN_001251f0(uVar14,uVar11);\n    }\n    FUN_00119910(*plVar36,0);\n    puVar7 = PTR_DAT_0017e650;\n    if (*(long *)PTR_DAT_0017e650 != lVar16) {\n      FUN_001252b0("../../ld/ldlang.c",0x1baf);\n    }\n    plVar6 = *(long **)(puVar7 + 8);\n    lVar16 = *plVar36;\n    *(long **)(puVar7 + 8) = plVar36;\n    *plVar36 = 0;\n    if (DAT_0017f2f0 != plVar17) {\n      FUN_001252b0("../../ld/ldlang.c",0x1baf);\n    }\n    plVar36 = DAT_0017f2f8;\n    plVar17 = (long *)*plVar18;\n    DAT_0017f2f8 = plVar18;\n    *plVar18 = 0;\n    if (DAT_0017fa20 != plVar26) {\n      FUN_001252b0("../../ld/ldlang.c",0x1baf);\n    }\n    plVar26 = DAT_0017fa28;\n    lVar15 = *plVar3;\n    DAT_0017fa28 = plVar3;\n    *plVar3 = 0;\n    plVar18 = DAT_0017f2f0;\n    plVar3 = DAT_0017fa20;\n    if (lVar16 != 0) {\n      for (; DAT_0017f380 = plVar3, plVar18 != (long *)0x0; plVar18 = (long *)plVar18[6]) {\n        if ((*(byte *)((long)plVar18 + 0x49) & 0x20) != 0) {\n          if ((*(byte *)((long)plVar18 + 0x49) & 0x40) == 0) goto LAB_0011d6c0;\n          break;\n        }\n        if ((plVar18[4] != 0) && (*(long *)(plVar18[4] + 0xd0) == 0)) {\n          DAT_0017f380 = plVar18;\n        }\n        plVar3 = DAT_0017f380;\n      }\n      plVar18 = DAT_0017f380;\n      if (DAT_0017f380 == (long *)0x0) {\n        FUN_001252b0("../../ld/ldlang.c",0x1c32);\n        plVar18 = DAT_0017f380;\n      }\nLAB_0011d6c0:\n      DAT_0017f380 = plVar18;\n      plVar18 = DAT_0017f380;\n      puVar7 = PTR_DAT_0017e650;\n      *plVar6 = *DAT_0017f380;\n      *plVar18 = lVar16;\n      if (plVar18 == *(long **)(puVar7 + 8)) {\n        *(long **)(puVar7 + 8) = plVar6;\n      }\n      *plVar26 = plVar18[7];\n      bVar38 = DAT_0017fa28 == plVar18 + 7;\n      plVar18[7] = lVar15;\n      plVar3 = DAT_0017f2f8;\n      if (bVar38) {\n        DAT_0017fa28 = plVar26;\n      }\n      if (plVar18[2] == 0) {\n        *plVar36 = (long)DAT_0017f2f0;\n        DAT_0017f2f0 = plVar17;\n        if ((long **)plVar3 != &DAT_0017f2f0) {\n          plVar36 = DAT_0017f2f8;\n        }\n      }\n      else {\n        *plVar36 = plVar18[6];\n        plVar18[6] = (long)plVar17;\n        if (plVar3 != plVar18 + 6) {\n          plVar36 = DAT_0017f2f8;\n        }\n      }\n      DAT_0017f2f8 = plVar36;\n      plVar18 = DAT_0017f2f8;\n      plVar17 = DAT_0017f2f0;\n      _DAT_0017f2c0 = _DAT_0017f2c0 + 1;\n      FUN_00119910(DAT_0017f430);\n      if (DAT_0017f2f0 != plVar17) {\n        FUN_001252b0("../../ld/ldlang.c");\n      }\n      lVar16 = *plVar18;\n      DAT_0017f2f8 = plVar18;\n      *plVar18 = 0;\n      while (lVar16 != 0) {\n        lVar15 = *(long *)(*(long *)(lVar16 + 0x20) + 0xd0);\n        lVar13 = *(long *)(lVar16 + 0x20);\n        if (lVar15 != 0) {\n          lVar13 = lVar15;\n        }\n        if (DAT_0017fa20 == (long *)0x0) {\nLAB_0011dad0:\n          plVar17 = DAT_0017f2f0;\n        }\n        else {\n          plVar26 = (long *)0x0;\n          plVar18 = DAT_0017fa20;\n          plVar17 = (long *)0x0;\n          do {\n            while (plVar18[4] != lVar13) {\n              if ((plVar18[4] != 0) && (plVar18[6] != 0)) {\n                plVar26 = plVar18;\n              }\n              plVar18 = (long *)plVar18[7];\n              if (plVar18 == (long *)0x0) goto LAB_0011d7f1;\n            }\n            lVar28 = plVar18[6];\n            if (lVar28 != 0) {\n              plVar17 = (long *)(lVar28 + 0x30);\n              lVar13 = *(long *)(lVar28 + 0x30);\n              goto LAB_0011d835;\n            }\n            plVar18 = (long *)plVar18[7];\n            plVar17 = plVar26;\n          } while (plVar18 != (long *)0x0);\nLAB_0011d7f1:\n          if (plVar17 == (long *)0x0) goto LAB_0011dad0;\n        }\n        plVar17 = plVar17 + 6;\n        for (lVar13 = *plVar17; lVar13 != 0; lVar13 = *(long *)(lVar13 + 0x30)) {\n          if (((*(byte *)(lVar13 + 0x49) & 0x40) == 0) &&\n             (*(long *)(*(long *)(lVar13 + 0x20) + 0xd0) == 0)) {\n            lVar13 = *plVar17;\n            break;\n          }\n          plVar17 = (long *)(lVar13 + 0x30);\n        }\nLAB_0011d835:\n        plVar18 = (long *)(lVar16 + 0x30);\n        if (lVar15 == 0) {\n          *plVar17 = lVar16;\n          lVar15 = *(long *)(lVar16 + 0x30);\n          *(long *)(lVar16 + 0x30) = lVar13;\n          lVar16 = lVar15;\n        }\n        else {\n          lVar28 = *(long *)(lVar16 + 0x30);\n          if (lVar28 != 0) {\n            lVar5 = *(long *)(*(long *)(lVar28 + 0x20) + 0xd0);\n            while (lVar15 == lVar5) {\n              plVar18 = (long *)(lVar28 + 0x30);\n              lVar28 = *(long *)(lVar28 + 0x30);\n              if (lVar28 == 0) break;\n              lVar5 = *(long *)(*(long *)(lVar28 + 0x20) + 0xd0);\n            }\n          }\n          *plVar17 = lVar16;\n          lVar16 = *plVar18;\n          *plVar18 = lVar13;\n          if (*(long *)(lVar15 + 0x100) != 0) {\n            *(long **)(*(long *)(lVar15 + 0x100) + 0x30) = plVar18 + -6;\n          }\n        }\n      }\n    }\n  }" if (parenthesized_expression "((DAT_0017fac1 & 2) != 0)" ( (binary_expression "(DAT_0017fac1 & 2) != 0" (parenthesized_expression "(DAT_0017fac1 & 2)" ( (binary_expression "DAT_0017fac1 & 2" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n    lVar16 = *(long *)PTR_DAT_0017e650;\n    plVar36 = *(long **)(PTR_DAT_0017e650 + 8);\n    iVar9 = FUN_00128bb0();\n    if (iVar9 != 0) {\n      uVar11 = FUN_00128550();\n      uVar14 = dcgettext(0,"%F%P: %s: plugin reported error after all symbols read\n",5);\n      FUN_001251f0(uVar14,uVar11);\n    }\n    FUN_00119910(*plVar36,0);\n    puVar7 = PTR_DAT_0017e650;\n    if (*(long *)PTR_DAT_0017e650 != lVar16) {\n      FUN_001252b0("../../ld/ldlang.c",0x1baf);\n    }\n    plVar6 = *(long **)(puVar7 + 8);\n    lVar16 = *plVar36;\n    *(long **)(puVar7 + 8) = plVar36;\n    *plVar36 = 0;\n    if (DAT_0017f2f0 != plVar17) {\n      FUN_001252b0("../../ld/ldlang.c",0x1baf);\n    }\n    plVar36 = DAT_0017f2f8;\n    plVar17 = (long *)*plVar18;\n    DAT_0017f2f8 = plVar18;\n    *plVar18 = 0;\n    if (DAT_0017fa20 != plVar26) {\n      FUN_001252b0("../../ld/ldlang.c",0x1baf);\n    }\n    plVar26 = DAT_0017fa28;\n    lVar15 = *plVar3;\n    DAT_0017fa28 = plVar3;\n    *plVar3 = 0;\n    plVar18 = DAT_0017f2f0;\n    plVar3 = DAT_0017fa20;\n    if (lVar16 != 0) {\n      for (; DAT_0017f380 = plVar3, plVar18 != (long *)0x0; plVar18 = (long *)plVar18[6]) {\n        if ((*(byte *)((long)plVar18 + 0x49) & 0x20) != 0) {\n          if ((*(byte *)((long)plVar18 + 0x49) & 0x40) == 0) goto LAB_0011d6c0;\n          break;\n        }\n        if ((plVar18[4] != 0) && (*(long *)(plVar18[4] + 0xd0) == 0)) {\n          DAT_0017f380 = plVar18;\n        }\n        plVar3 = DAT_0017f380;\n      }\n      plVar18 = DAT_0017f380;\n      if (DAT_0017f380 == (long *)0x0) {\n        FUN_001252b0("../../ld/ldlang.c",0x1c32);\n        plVar18 = DAT_0017f380;\n      }\nLAB_0011d6c0:\n      DAT_0017f380 = plVar18;\n      plVar18 = DAT_0017f380;\n      puVar7 = PTR_DAT_0017e650;\n      *plVar6 = *DAT_0017f380;\n      *plVar18 = lVar16;\n      if (plVar18 == *(long **)(puVar7 + 8)) {\n        *(long **)(puVar7 + 8) = plVar6;\n      }\n      *plVar26 = plVar18[7];\n      bVar38 = DAT_0017fa28 == plVar18 + 7;\n      plVar18[7] = lVar15;\n      plVar3 = DAT_0017f2f8;\n      if (bVar38) {\n        DAT_0017fa28 = plVar26;\n      }\n      if (plVar18[2] == 0) {\n        *plVar36 = (long)DAT_0017f2f0;\n        DAT_0017f2f0 = plVar17;\n        if ((long **)plVar3 != &DAT_0017f2f0) {\n          plVar36 = DAT_0017f2f8;\n        }\n      }\n      else {\n        *plVar36 = plVar18[6];\n        plVar18[6] = (long)plVar17;\n        if (plVar3 != plVar18 + 6) {\n          plVar36 = DAT_0017f2f8;\n        }\n      }\n      DAT_0017f2f8 = plVar36;\n      plVar18 = DAT_0017f2f8;\n      plVar17 = DAT_0017f2f0;\n      _DAT_0017f2c0 = _DAT_0017f2c0 + 1;\n      FUN_00119910(DAT_0017f430);\n      if (DAT_0017f2f0 != plVar17) {\n        FUN_001252b0("../../ld/ldlang.c");\n      }\n      lVar16 = *plVar18;\n      DAT_0017f2f8 = plVar18;\n      *plVar18 = 0;\n      while (lVar16 != 0) {\n        lVar15 = *(long *)(*(long *)(lVar16 + 0x20) + 0xd0);\n        lVar13 = *(long *)(lVar16 + 0x20);\n        if (lVar15 != 0) {\n          lVar13 = lVar15;\n        }\n        if (DAT_0017fa20 == (long *)0x0) {\nLAB_0011dad0:\n          plVar17 = DAT_0017f2f0;\n        }\n        else {\n          plVar26 = (long *)0x0;\n          plVar18 = DAT_0017fa20;\n          plVar17 = (long *)0x0;\n          do {\n            while (plVar18[4] != lVar13) {\n              if ((plVar18[4] != 0) && (plVar18[6] != 0)) {\n                plVar26 = plVar18;\n              }\n              plVar18 = (long *)plVar18[7];\n              if (plVar18 == (long *)0x0) goto LAB_0011d7f1;\n            }\n            lVar28 = plVar18[6];\n            if (lVar28 != 0) {\n              plVar17 = (long *)(lVar28 + 0x30);\n              lVar13 = *(long *)(lVar28 + 0x30);\n              goto LAB_0011d835;\n            }\n            plVar18 = (long *)plVar18[7];\n            plVar17 = plVar26;\n          } while (plVar18 != (long *)0x0);\nLAB_0011d7f1:\n          if (plVar17 == (long *)0x0) goto LAB_0011dad0;\n        }\n        plVar17 = plVar17 + 6;\n        for (lVar13 = *plVar17; lVar13 != 0; lVar13 = *(long *)(lVar13 + 0x30)) {\n          if (((*(byte *)(lVar13 + 0x49) & 0x40) == 0) &&\n             (*(long *)(*(long *)(lVar13 + 0x20) + 0xd0) == 0)) {\n            lVar13 = *plVar17;\n            break;\n          }\n          plVar17 = (long *)(lVar13 + 0x30);\n        }\nLAB_0011d835:\n        plVar18 = (long *)(lVar16 + 0x30);\n        if (lVar15 == 0) {\n          *plVar17 = lVar16;\n          lVar15 = *(long *)(lVar16 + 0x30);\n          *(long *)(lVar16 + 0x30) = lVar13;\n          lVar16 = lVar15;\n        }\n        else {\n          lVar28 = *(long *)(lVar16 + 0x30);\n          if (lVar28 != 0) {\n            lVar5 = *(long *)(*(long *)(lVar28 + 0x20) + 0xd0);\n            while (lVar15 == lVar5) {\n              plVar18 = (long *)(lVar28 + 0x30);\n              lVar28 = *(long *)(lVar28 + 0x30);\n              if (lVar28 == 0) break;\n              lVar5 = *(long *)(*(long *)(lVar28 + 0x20) + 0xd0);\n            }\n          }\n          *plVar17 = lVar16;\n          lVar16 = *plVar18;\n          *plVar18 = lVar13;\n          if (*(long *)(lVar15 + 0x100) != 0) {\n            *(long **)(*(long *)(lVar15 + 0x100) + 0x30) = plVar18 + -6;\n          }\n        }\n      }\n    }\n  }" { (expression_statement "lVar16 = *(long *)PTR_DAT_0017e650;" (assignment_expression "lVar16 = *(long *)PTR_DAT_0017e650" identifier = (pointer_expression "*(long *)PTR_DAT_0017e650" * (cast_expression "(long *)PTR_DAT_0017e650" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "plVar36 = *(long **)(PTR_DAT_0017e650 + 8);" (assignment_expression "plVar36 = *(long **)(PTR_DAT_0017e650 + 8)" identifier = (pointer_expression "*(long **)(PTR_DAT_0017e650 + 8)" * (cast_expression "(long **)(PTR_DAT_0017e650 + 8)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_DAT_0017e650 + 8)" ( (binary_expression "PTR_DAT_0017e650 + 8" identifier + number_literal) ))))) ;) (expression_statement "iVar9 = FUN_00128bb0();" (assignment_expression "iVar9 = FUN_00128bb0()" identifier = (call_expression "FUN_00128bb0()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar9 != 0) {\n      uVar11 = FUN_00128550();\n      uVar14 = dcgettext(0,"%F%P: %s: plugin reported error after all symbols read\n",5);\n      FUN_001251f0(uVar14,uVar11);\n    }" if (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) (compound_statement "{\n      uVar11 = FUN_00128550();\n      uVar14 = dcgettext(0,"%F%P: %s: plugin reported error after all symbols read\n",5);\n      FUN_001251f0(uVar14,uVar11);\n    }" { (expression_statement "uVar11 = FUN_00128550();" (assignment_expression "uVar11 = FUN_00128550()" identifier = (call_expression "FUN_00128550()" 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_001251f0(uVar14,uVar11);" (call_expression "FUN_001251f0(uVar14,uVar11)" identifier (argument_list "(uVar14,uVar11)" ( identifier , identifier ))) ;) })) (expression_statement "FUN_00119910(*plVar36,0);" (call_expression "FUN_00119910(*plVar36,0)" identifier (argument_list "(*plVar36,0)" ( (pointer_expression "*plVar36" * identifier) , number_literal ))) ;) (expression_statement "puVar7 = PTR_DAT_0017e650;" (assignment_expression "puVar7 = PTR_DAT_0017e650" identifier = identifier) ;) (if_statement "if (*(long *)PTR_DAT_0017e650 != lVar16) {\n      FUN_001252b0("../../ld/ldlang.c",0x1baf);\n    }" if (parenthesized_expression "(*(long *)PTR_DAT_0017e650 != lVar16)" ( (binary_expression "*(long *)PTR_DAT_0017e650 != lVar16" (pointer_expression "*(long *)PTR_DAT_0017e650" * (cast_expression "(long *)PTR_DAT_0017e650" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) identifier)) != identifier) )) (compound_statement "{\n      FUN_001252b0("../../ld/ldlang.c",0x1baf);\n    }" { (expression_statement "FUN_001252b0("../../ld/ldlang.c",0x1baf);" (call_expression "FUN_001252b0("../../ld/ldlang.c",0x1baf)" identifier (argument_list "("../../ld/ldlang.c",0x1baf)" ( (string_literal ""../../ld/ldlang.c"" " string_content ") , number_literal ))) ;) })) (expression_statement "plVar6 = *(long **)(puVar7 + 8);" (assignment_expression "plVar6 = *(long **)(puVar7 + 8)" identifier = (pointer_expression "*(long **)(puVar7 + 8)" * (cast_expression "(long **)(puVar7 + 8)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar7 + 8)" ( (binary_expression "puVar7 + 8" identifier + number_literal) ))))) ;) (expression_statement "lVar16 = *plVar36;" (assignment_expression "lVar16 = *plVar36" identifier = (pointer_expression "*plVar36" * identifier)) ;) (expression_statement "*(long **)(puVar7 + 8) = plVar36;" (assignment_expression "*(long **)(puVar7 + 8) = plVar36" (pointer_expression "*(long **)(puVar7 + 8)" * (cast_expression "(long **)(puVar7 + 8)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar7 + 8)" ( (binary_expression "puVar7 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*plVar36 = 0;" (assignment_expression "*plVar36 = 0" (pointer_expression "*plVar36" * identifier) = number_literal) ;) (if_statement "if (DAT_0017f2f0 != plVar17) {\n      FUN_001252b0("../../ld/ldlang.c",0x1baf);\n    }" if (parenthesized_expression "(DAT_0017f2f0 != plVar17)" ( (binary_expression "DAT_0017f2f0 != plVar17" identifier != identifier) )) (compound_statement "{\n      FUN_001252b0("../../ld/ldlang.c",0x1baf);\n    }" { (expression_statement "FUN_001252b0("../../ld/ldlang.c",0x1baf);" (call_expression "FUN_001252b0("../../ld/ldlang.c",0x1baf)" identifier (argument_list "("../../ld/ldlang.c",0x1baf)" ( (string_literal ""../../ld/ldlang.c"" " string_content ") , number_literal ))) ;) })) (expression_statement "plVar36 = DAT_0017f2f8;" (assignment_expression "plVar36 = DAT_0017f2f8" identifier = identifier) ;) (expression_statement "plVar17 = (long *)*plVar18;" (assignment_expression "plVar17 = (long *)*plVar18" identifier = (cast_expression "(long *)*plVar18" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar18" * identifier))) ;) (expression_statement "DAT_0017f2f8 = plVar18;" (assignment_expression "DAT_0017f2f8 = plVar18" identifier = identifier) ;) (expression_statement "*plVar18 = 0;" (assignment_expression "*plVar18 = 0" (pointer_expression "*plVar18" * identifier) = number_literal) ;) (if_statement "if (DAT_0017fa20 != plVar26) {\n      FUN_001252b0("../../ld/ldlang.c",0x1baf);\n    }" if (parenthesized_expression "(DAT_0017fa20 != plVar26)" ( (binary_expression "DAT_0017fa20 != plVar26" identifier != identifier) )) (compound_statement "{\n      FUN_001252b0("../../ld/ldlang.c",0x1baf);\n    }" { (expression_statement "FUN_001252b0("../../ld/ldlang.c",0x1baf);" (call_expression "FUN_001252b0("../../ld/ldlang.c",0x1baf)" identifier (argument_list "("../../ld/ldlang.c",0x1baf)" ( (string_literal ""../../ld/ldlang.c"" " string_content ") , number_literal ))) ;) })) (expression_statement "plVar26 = DAT_0017fa28;" (assignment_expression "plVar26 = DAT_0017fa28" identifier = identifier) ;) (expression_statement "lVar15 = *plVar3;" (assignment_expression "lVar15 = *plVar3" identifier = (pointer_expression "*plVar3" * identifier)) ;) (expression_statement "DAT_0017fa28 = plVar3;" (assignment_expression "DAT_0017fa28 = plVar3" identifier = identifier) ;) (expression_statement "*plVar3 = 0;" (assignment_expression "*plVar3 = 0" (pointer_expression "*plVar3" * identifier) = number_literal) ;) (expression_statement "plVar18 = DAT_0017f2f0;" (assignment_expression "plVar18 = DAT_0017f2f0" identifier = identifier) ;) (expression_statement "plVar3 = DAT_0017fa20;" (assignment_expression "plVar3 = DAT_0017fa20" identifier = identifier) ;) (if_statement "if (lVar16 != 0) {\n      for (; DAT_0017f380 = plVar3, plVar18 != (long *)0x0; plVar18 = (long *)plVar18[6]) {\n        if ((*(byte *)((long)plVar18 + 0x49) & 0x20) != 0) {\n          if ((*(byte *)((long)plVar18 + 0x49) & 0x40) == 0) goto LAB_0011d6c0;\n          break;\n        }\n        if ((plVar18[4] != 0) && (*(long *)(plVar18[4] + 0xd0) == 0)) {\n          DAT_0017f380 = plVar18;\n        }\n        plVar3 = DAT_0017f380;\n      }\n      plVar18 = DAT_0017f380;\n      if (DAT_0017f380 == (long *)0x0) {\n        FUN_001252b0("../../ld/ldlang.c",0x1c32);\n        plVar18 = DAT_0017f380;\n      }\nLAB_0011d6c0:\n      DAT_0017f380 = plVar18;\n      plVar18 = DAT_0017f380;\n      puVar7 = PTR_DAT_0017e650;\n      *plVar6 = *DAT_0017f380;\n      *plVar18 = lVar16;\n      if (plVar18 == *(long **)(puVar7 + 8)) {\n        *(long **)(puVar7 + 8) = plVar6;\n      }\n      *plVar26 = plVar18[7];\n      bVar38 = DAT_0017fa28 == plVar18 + 7;\n      plVar18[7] = lVar15;\n      plVar3 = DAT_0017f2f8;\n      if (bVar38) {\n        DAT_0017fa28 = plVar26;\n      }\n      if (plVar18[2] == 0) {\n        *plVar36 = (long)DAT_0017f2f0;\n        DAT_0017f2f0 = plVar17;\n        if ((long **)plVar3 != &DAT_0017f2f0) {\n          plVar36 = DAT_0017f2f8;\n        }\n      }\n      else {\n        *plVar36 = plVar18[6];\n        plVar18[6] = (long)plVar17;\n        if (plVar3 != plVar18 + 6) {\n          plVar36 = DAT_0017f2f8;\n        }\n      }\n      DAT_0017f2f8 = plVar36;\n      plVar18 = DAT_0017f2f8;\n      plVar17 = DAT_0017f2f0;\n      _DAT_0017f2c0 = _DAT_0017f2c0 + 1;\n      FUN_00119910(DAT_0017f430);\n      if (DAT_0017f2f0 != plVar17) {\n        FUN_001252b0("../../ld/ldlang.c");\n      }\n      lVar16 = *plVar18;\n      DAT_0017f2f8 = plVar18;\n      *plVar18 = 0;\n      while (lVar16 != 0) {\n        lVar15 = *(long *)(*(long *)(lVar16 + 0x20) + 0xd0);\n        lVar13 = *(long *)(lVar16 + 0x20);\n        if (lVar15 != 0) {\n          lVar13 = lVar15;\n        }\n        if (DAT_0017fa20 == (long *)0x0) {\nLAB_0011dad0:\n          plVar17 = DAT_0017f2f0;\n        }\n        else {\n          plVar26 = (long *)0x0;\n          plVar18 = DAT_0017fa20;\n          plVar17 = (long *)0x0;\n          do {\n            while (plVar18[4] != lVar13) {\n              if ((plVar18[4] != 0) && (plVar18[6] != 0)) {\n                plVar26 = plVar18;\n              }\n              plVar18 = (long *)plVar18[7];\n              if (plVar18 == (long *)0x0) goto LAB_0011d7f1;\n            }\n            lVar28 = plVar18[6];\n            if (lVar28 != 0) {\n              plVar17 = (long *)(lVar28 + 0x30);\n              lVar13 = *(long *)(lVar28 + 0x30);\n              goto LAB_0011d835;\n            }\n            plVar18 = (long *)plVar18[7];\n            plVar17 = plVar26;\n          } while (plVar18 != (long *)0x0);\nLAB_0011d7f1:\n          if (plVar17 == (long *)0x0) goto LAB_0011dad0;\n        }\n        plVar17 = plVar17 + 6;\n        for (lVar13 = *plVar17; lVar13 != 0; lVar13 = *(long *)(lVar13 + 0x30)) {\n          if (((*(byte *)(lVar13 + 0x49) & 0x40) == 0) &&\n             (*(long *)(*(long *)(lVar13 + 0x20) + 0xd0) == 0)) {\n            lVar13 = *plVar17;\n            break;\n          }\n          plVar17 = (long *)(lVar13 + 0x30);\n        }\nLAB_0011d835:\n        plVar18 = (long *)(lVar16 + 0x30);\n        if (lVar15 == 0) {\n          *plVar17 = lVar16;\n          lVar15 = *(long *)(lVar16 + 0x30);\n          *(long *)(lVar16 + 0x30) = lVar13;\n          lVar16 = lVar15;\n        }\n        else {\n          lVar28 = *(long *)(lVar16 + 0x30);\n          if (lVar28 != 0) {\n            lVar5 = *(long *)(*(long *)(lVar28 + 0x20) + 0xd0);\n            while (lVar15 == lVar5) {\n              plVar18 = (long *)(lVar28 + 0x30);\n              lVar28 = *(long *)(lVar28 + 0x30);\n              if (lVar28 == 0) break;\n              lVar5 = *(long *)(*(long *)(lVar28 + 0x20) + 0xd0);\n            }\n          }\n          *plVar17 = lVar16;\n          lVar16 = *plVar18;\n          *plVar18 = lVar13;\n          if (*(long *)(lVar15 + 0x100) != 0) {\n            *(long **)(*(long *)(lVar15 + 0x100) + 0x30) = plVar18 + -6;\n          }\n        }\n      }\n    }" if (parenthesized_expression "(lVar16 != 0)" ( (binary_expression "lVar16 != 0" identifier != number_literal) )) (compound_statement "{\n      for (; DAT_0017f380 = plVar3, plVar18 != (long *)0x0; plVar18 = (long *)plVar18[6]) {\n        if ((*(byte *)((long)plVar18 + 0x49) & 0x20) != 0) {\n          if ((*(byte *)((long)plVar18 + 0x49) & 0x40) == 0) goto LAB_0011d6c0;\n          break;\n        }\n        if ((plVar18[4] != 0) && (*(long *)(plVar18[4] + 0xd0) == 0)) {\n          DAT_0017f380 = plVar18;\n        }\n        plVar3 = DAT_0017f380;\n      }\n      plVar18 = DAT_0017f380;\n      if (DAT_0017f380 == (long *)0x0) {\n        FUN_001252b0("../../ld/ldlang.c",0x1c32);\n        plVar18 = DAT_0017f380;\n      }\nLAB_0011d6c0:\n      DAT_0017f380 = plVar18;\n      plVar18 = DAT_0017f380;\n      puVar7 = PTR_DAT_0017e650;\n      *plVar6 = *DAT_0017f380;\n      *plVar18 = lVar16;\n      if (plVar18 == *(long **)(puVar7 + 8)) {\n        *(long **)(puVar7 + 8) = plVar6;\n      }\n      *plVar26 = plVar18[7];\n      bVar38 = DAT_0017fa28 == plVar18 + 7;\n      plVar18[7] = lVar15;\n      plVar3 = DAT_0017f2f8;\n      if (bVar38) {\n        DAT_0017fa28 = plVar26;\n      }\n      if (plVar18[2] == 0) {\n        *plVar36 = (long)DAT_0017f2f0;\n        DAT_0017f2f0 = plVar17;\n        if ((long **)plVar3 != &DAT_0017f2f0) {\n          plVar36 = DAT_0017f2f8;\n        }\n      }\n      else {\n        *plVar36 = plVar18[6];\n        plVar18[6] = (long)plVar17;\n        if (plVar3 != plVar18 + 6) {\n          plVar36 = DAT_0017f2f8;\n        }\n      }\n      DAT_0017f2f8 = plVar36;\n      plVar18 = DAT_0017f2f8;\n      plVar17 = DAT_0017f2f0;\n      _DAT_0017f2c0 = _DAT_0017f2c0 + 1;\n      FUN_00119910(DAT_0017f430);\n      if (DAT_0017f2f0 != plVar17) {\n        FUN_001252b0("../../ld/ldlang.c");\n      }\n      lVar16 = *plVar18;\n      DAT_0017f2f8 = plVar18;\n      *plVar18 = 0;\n      while (lVar16 != 0) {\n        lVar15 = *(long *)(*(long *)(lVar16 + 0x20) + 0xd0);\n        lVar13 = *(long *)(lVar16 + 0x20);\n        if (lVar15 != 0) {\n          lVar13 = lVar15;\n        }\n        if (DAT_0017fa20 == (long *)0x0) {\nLAB_0011dad0:\n          plVar17 = DAT_0017f2f0;\n        }\n        else {\n          plVar26 = (long *)0x0;\n          plVar18 = DAT_0017fa20;\n          plVar17 = (long *)0x0;\n          do {\n            while (plVar18[4] != lVar13) {\n              if ((plVar18[4] != 0) && (plVar18[6] != 0)) {\n                plVar26 = plVar18;\n              }\n              plVar18 = (long *)plVar18[7];\n              if (plVar18 == (long *)0x0) goto LAB_0011d7f1;\n            }\n            lVar28 = plVar18[6];\n            if (lVar28 != 0) {\n              plVar17 = (long *)(lVar28 + 0x30);\n              lVar13 = *(long *)(lVar28 + 0x30);\n              goto LAB_0011d835;\n            }\n            plVar18 = (long *)plVar18[7];\n            plVar17 = plVar26;\n          } while (plVar18 != (long *)0x0);\nLAB_0011d7f1:\n          if (plVar17 == (long *)0x0) goto LAB_0011dad0;\n        }\n        plVar17 = plVar17 + 6;\n        for (lVar13 = *plVar17; lVar13 != 0; lVar13 = *(long *)(lVar13 + 0x30)) {\n          if (((*(byte *)(lVar13 + 0x49) & 0x40) == 0) &&\n             (*(long *)(*(long *)(lVar13 + 0x20) + 0xd0) == 0)) {\n            lVar13 = *plVar17;\n            break;\n          }\n          plVar17 = (long *)(lVar13 + 0x30);\n        }\nLAB_0011d835:\n        plVar18 = (long *)(lVar16 + 0x30);\n        if (lVar15 == 0) {\n          *plVar17 = lVar16;\n          lVar15 = *(long *)(lVar16 + 0x30);\n          *(long *)(lVar16 + 0x30) = lVar13;\n          lVar16 = lVar15;\n        }\n        else {\n          lVar28 = *(long *)(lVar16 + 0x30);\n          if (lVar28 != 0) {\n            lVar5 = *(long *)(*(long *)(lVar28 + 0x20) + 0xd0);\n            while (lVar15 == lVar5) {\n              plVar18 = (long *)(lVar28 + 0x30);\n              lVar28 = *(long *)(lVar28 + 0x30);\n              if (lVar28 == 0) break;\n              lVar5 = *(long *)(*(long *)(lVar28 + 0x20) + 0xd0);\n            }\n          }\n          *plVar17 = lVar16;\n          lVar16 = *plVar18;\n          *plVar18 = lVar13;\n          if (*(long *)(lVar15 + 0x100) != 0) {\n            *(long **)(*(long *)(lVar15 + 0x100) + 0x30) = plVar18 + -6;\n          }\n        }\n      }\n    }" { (for_statement "for (; DAT_0017f380 = plVar3, plVar18 != (long *)0x0; plVar18 = (long *)plVar18[6]) {\n        if ((*(byte *)((long)plVar18 + 0x49) & 0x20) != 0) {\n          if ((*(byte *)((long)plVar18 + 0x49) & 0x40) == 0) goto LAB_0011d6c0;\n          break;\n        }\n        if ((plVar18[4] != 0) && (*(long *)(plVar18[4] + 0xd0) == 0)) {\n          DAT_0017f380 = plVar18;\n        }\n        plVar3 = DAT_0017f380;\n      }" for ( ; (comma_expression "DAT_0017f380 = plVar3, plVar18 != (long *)0x0" (assignment_expression "DAT_0017f380 = plVar3" identifier = identifier) , (binary_expression "plVar18 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal))) ; (assignment_expression "plVar18 = (long *)plVar18[6]" identifier = (cast_expression "(long *)plVar18[6]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar18[6]" identifier [ number_literal ]))) ) (compound_statement "{\n        if ((*(byte *)((long)plVar18 + 0x49) & 0x20) != 0) {\n          if ((*(byte *)((long)plVar18 + 0x49) & 0x40) == 0) goto LAB_0011d6c0;\n          break;\n        }\n        if ((plVar18[4] != 0) && (*(long *)(plVar18[4] + 0xd0) == 0)) {\n          DAT_0017f380 = plVar18;\n        }\n        plVar3 = DAT_0017f380;\n      }" { (if_statement "if ((*(byte *)((long)plVar18 + 0x49) & 0x20) != 0) {\n          if ((*(byte *)((long)plVar18 + 0x49) & 0x40) == 0) goto LAB_0011d6c0;\n          break;\n        }" if (parenthesized_expression "((*(byte *)((long)plVar18 + 0x49) & 0x20) != 0)" ( (binary_expression "(*(byte *)((long)plVar18 + 0x49) & 0x20) != 0" (parenthesized_expression "(*(byte *)((long)plVar18 + 0x49) & 0x20)" ( (binary_expression "*(byte *)((long)plVar18 + 0x49) & 0x20" (pointer_expression "*(byte *)((long)plVar18 + 0x49)" * (cast_expression "(byte *)((long)plVar18 + 0x49)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar18 + 0x49)" ( (binary_expression "(long)plVar18 + 0x49" (cast_expression "(long)plVar18" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n          if ((*(byte *)((long)plVar18 + 0x49) & 0x40) == 0) goto LAB_0011d6c0;\n          break;\n        }" { (if_statement "if ((*(byte *)((long)plVar18 + 0x49) & 0x40) == 0) goto LAB_0011d6c0;" if (parenthesized_expression "((*(byte *)((long)plVar18 + 0x49) & 0x40) == 0)" ( (binary_expression "(*(byte *)((long)plVar18 + 0x49) & 0x40) == 0" (parenthesized_expression "(*(byte *)((long)plVar18 + 0x49) & 0x40)" ( (binary_expression "*(byte *)((long)plVar18 + 0x49) & 0x40" (pointer_expression "*(byte *)((long)plVar18 + 0x49)" * (cast_expression "(byte *)((long)plVar18 + 0x49)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar18 + 0x49)" ( (binary_expression "(long)plVar18 + 0x49" (cast_expression "(long)plVar18" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_0011d6c0;" goto statement_identifier ;)) (break_statement "break;" break ;) })) (if_statement "if ((plVar18[4] != 0) && (*(long *)(plVar18[4] + 0xd0) == 0)) {\n          DAT_0017f380 = plVar18;\n        }" if (parenthesized_expression "((plVar18[4] != 0) && (*(long *)(plVar18[4] + 0xd0) == 0))" ( (binary_expression "(plVar18[4] != 0) && (*(long *)(plVar18[4] + 0xd0) == 0)" (parenthesized_expression "(plVar18[4] != 0)" ( (binary_expression "plVar18[4] != 0" (subscript_expression "plVar18[4]" identifier [ number_literal ]) != number_literal) )) && (parenthesized_expression "(*(long *)(plVar18[4] + 0xd0) == 0)" ( (binary_expression "*(long *)(plVar18[4] + 0xd0) == 0" (pointer_expression "*(long *)(plVar18[4] + 0xd0)" * (cast_expression "(long *)(plVar18[4] + 0xd0)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar18[4] + 0xd0)" ( (binary_expression "plVar18[4] + 0xd0" (subscript_expression "plVar18[4]" identifier [ number_literal ]) + number_literal) )))) == number_literal) ))) )) (compound_statement "{\n          DAT_0017f380 = plVar18;\n        }" { (expression_statement "DAT_0017f380 = plVar18;" (assignment_expression "DAT_0017f380 = plVar18" identifier = identifier) ;) })) (expression_statement "plVar3 = DAT_0017f380;" (assignment_expression "plVar3 = DAT_0017f380" identifier = identifier) ;) })) (expression_statement "plVar18 = DAT_0017f380;" (assignment_expression "plVar18 = DAT_0017f380" identifier = identifier) ;) (if_statement "if (DAT_0017f380 == (long *)0x0) {\n        FUN_001252b0("../../ld/ldlang.c",0x1c32);\n        plVar18 = DAT_0017f380;\n      }" if (parenthesized_expression "(DAT_0017f380 == (long *)0x0)" ( (binary_expression "DAT_0017f380 == (long *)0x0" identifier == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        FUN_001252b0("../../ld/ldlang.c",0x1c32);\n        plVar18 = DAT_0017f380;\n      }" { (expression_statement "FUN_001252b0("../../ld/ldlang.c",0x1c32);" (call_expression "FUN_001252b0("../../ld/ldlang.c",0x1c32)" identifier (argument_list "("../../ld/ldlang.c",0x1c32)" ( (string_literal ""../../ld/ldlang.c"" " string_content ") , number_literal ))) ;) (expression_statement "plVar18 = DAT_0017f380;" (assignment_expression "plVar18 = DAT_0017f380" identifier = identifier) ;) })) (labeled_statement "LAB_0011d6c0:\n      DAT_0017f380 = plVar18;" statement_identifier : (expression_statement "DAT_0017f380 = plVar18;" (assignment_expression "DAT_0017f380 = plVar18" identifier = identifier) ;)) (expression_statement "plVar18 = DAT_0017f380;" (assignment_expression "plVar18 = DAT_0017f380" identifier = identifier) ;) (expression_statement "puVar7 = PTR_DAT_0017e650;" (assignment_expression "puVar7 = PTR_DAT_0017e650" identifier = identifier) ;) (expression_statement "*plVar6 = *DAT_0017f380;" (assignment_expression "*plVar6 = *DAT_0017f380" (pointer_expression "*plVar6" * identifier) = (pointer_expression "*DAT_0017f380" * identifier)) ;) (expression_statement "*plVar18 = lVar16;" (assignment_expression "*plVar18 = lVar16" (pointer_expression "*plVar18" * identifier) = identifier) ;) (if_statement "if (plVar18 == *(long **)(puVar7 + 8)) {\n        *(long **)(puVar7 + 8) = plVar6;\n      }" if (parenthesized_expression "(plVar18 == *(long **)(puVar7 + 8))" ( (binary_expression "plVar18 == *(long **)(puVar7 + 8)" identifier == (pointer_expression "*(long **)(puVar7 + 8)" * (cast_expression "(long **)(puVar7 + 8)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar7 + 8)" ( (binary_expression "puVar7 + 8" identifier + number_literal) ))))) )) (compound_statement "{\n        *(long **)(puVar7 + 8) = plVar6;\n      }" { (expression_statement "*(long **)(puVar7 + 8) = plVar6;" (assignment_expression "*(long **)(puVar7 + 8) = plVar6" (pointer_expression "*(long **)(puVar7 + 8)" * (cast_expression "(long **)(puVar7 + 8)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar7 + 8)" ( (binary_expression "puVar7 + 8" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "*plVar26 = plVar18[7];" (assignment_expression "*plVar26 = plVar18[7]" (pointer_expression "*plVar26" * identifier) = (subscript_expression "plVar18[7]" identifier [ number_literal ])) ;) (expression_statement "bVar38 = DAT_0017fa28 == plVar18 + 7;" (assignment_expression "bVar38 = DAT_0017fa28 == plVar18 + 7" identifier = (binary_expression "DAT_0017fa28 == plVar18 + 7" identifier == (binary_expression "plVar18 + 7" identifier + number_literal))) ;) (expression_statement "plVar18[7] = lVar15;" (assignment_expression "plVar18[7] = lVar15" (subscript_expression "plVar18[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "plVar3 = DAT_0017f2f8;" (assignment_expression "plVar3 = DAT_0017f2f8" identifier = identifier) ;) (if_statement "if (bVar38) {\n        DAT_0017fa28 = plVar26;\n      }" if (parenthesized_expression "(bVar38)" ( identifier )) (compound_statement "{\n        DAT_0017fa28 = plVar26;\n      }" { (expression_statement "DAT_0017fa28 = plVar26;" (assignment_expression "DAT_0017fa28 = plVar26" identifier = identifier) ;) })) (if_statement "if (plVar18[2] == 0) {\n        *plVar36 = (long)DAT_0017f2f0;\n        DAT_0017f2f0 = plVar17;\n        if ((long **)plVar3 != &DAT_0017f2f0) {\n          plVar36 = DAT_0017f2f8;\n        }\n      }\n      else {\n        *plVar36 = plVar18[6];\n        plVar18[6] = (long)plVar17;\n        if (plVar3 != plVar18 + 6) {\n          plVar36 = DAT_0017f2f8;\n        }\n      }" if (parenthesized_expression "(plVar18[2] == 0)" ( (binary_expression "plVar18[2] == 0" (subscript_expression "plVar18[2]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n        *plVar36 = (long)DAT_0017f2f0;\n        DAT_0017f2f0 = plVar17;\n        if ((long **)plVar3 != &DAT_0017f2f0) {\n          plVar36 = DAT_0017f2f8;\n        }\n      }" { (expression_statement "*plVar36 = (long)DAT_0017f2f0;" (assignment_expression "*plVar36 = (long)DAT_0017f2f0" (pointer_expression "*plVar36" * identifier) = (cast_expression "(long)DAT_0017f2f0" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) (expression_statement "DAT_0017f2f0 = plVar17;" (assignment_expression "DAT_0017f2f0 = plVar17" identifier = identifier) ;) (if_statement "if ((long **)plVar3 != &DAT_0017f2f0) {\n          plVar36 = DAT_0017f2f8;\n        }" if (parenthesized_expression "((long **)plVar3 != &DAT_0017f2f0)" ( (binary_expression "(long **)plVar3 != &DAT_0017f2f0" (cast_expression "(long **)plVar3" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier) != (pointer_expression "&DAT_0017f2f0" & identifier)) )) (compound_statement "{\n          plVar36 = DAT_0017f2f8;\n        }" { (expression_statement "plVar36 = DAT_0017f2f8;" (assignment_expression "plVar36 = DAT_0017f2f8" identifier = identifier) ;) })) }) (else_clause "else {\n        *plVar36 = plVar18[6];\n        plVar18[6] = (long)plVar17;\n        if (plVar3 != plVar18 + 6) {\n          plVar36 = DAT_0017f2f8;\n        }\n      }" else (compound_statement "{\n        *plVar36 = plVar18[6];\n        plVar18[6] = (long)plVar17;\n        if (plVar3 != plVar18 + 6) {\n          plVar36 = DAT_0017f2f8;\n        }\n      }" { (expression_statement "*plVar36 = plVar18[6];" (assignment_expression "*plVar36 = plVar18[6]" (pointer_expression "*plVar36" * identifier) = (subscript_expression "plVar18[6]" identifier [ number_literal ])) ;) (expression_statement "plVar18[6] = (long)plVar17;" (assignment_expression "plVar18[6] = (long)plVar17" (subscript_expression "plVar18[6]" identifier [ number_literal ]) = (cast_expression "(long)plVar17" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) (if_statement "if (plVar3 != plVar18 + 6) {\n          plVar36 = DAT_0017f2f8;\n        }" if (parenthesized_expression "(plVar3 != plVar18 + 6)" ( (binary_expression "plVar3 != plVar18 + 6" identifier != (binary_expression "plVar18 + 6" identifier + number_literal)) )) (compound_statement "{\n          plVar36 = DAT_0017f2f8;\n        }" { (expression_statement "plVar36 = DAT_0017f2f8;" (assignment_expression "plVar36 = DAT_0017f2f8" identifier = identifier) ;) })) }))) (expression_statement "DAT_0017f2f8 = plVar36;" (assignment_expression "DAT_0017f2f8 = plVar36" identifier = identifier) ;) (expression_statement "plVar18 = DAT_0017f2f8;" (assignment_expression "plVar18 = DAT_0017f2f8" identifier = identifier) ;) (expression_statement "plVar17 = DAT_0017f2f0;" (assignment_expression "plVar17 = DAT_0017f2f0" identifier = identifier) ;) (expression_statement "_DAT_0017f2c0 = _DAT_0017f2c0 + 1;" (assignment_expression "_DAT_0017f2c0 = _DAT_0017f2c0 + 1" identifier = (binary_expression "_DAT_0017f2c0 + 1" identifier + number_literal)) ;) (expression_statement "FUN_00119910(DAT_0017f430);" (call_expression "FUN_00119910(DAT_0017f430)" identifier (argument_list "(DAT_0017f430)" ( identifier ))) ;) (if_statement "if (DAT_0017f2f0 != plVar17) {\n        FUN_001252b0("../../ld/ldlang.c");\n      }" if (parenthesized_expression "(DAT_0017f2f0 != plVar17)" ( (binary_expression "DAT_0017f2f0 != plVar17" identifier != identifier) )) (compound_statement "{\n        FUN_001252b0("../../ld/ldlang.c");\n      }" { (expression_statement "FUN_001252b0("../../ld/ldlang.c");" (call_expression "FUN_001252b0("../../ld/ldlang.c")" identifier (argument_list "("../../ld/ldlang.c")" ( (string_literal ""../../ld/ldlang.c"" " string_content ") ))) ;) })) (expression_statement "lVar16 = *plVar18;" (assignment_expression "lVar16 = *plVar18" identifier = (pointer_expression "*plVar18" * identifier)) ;) (expression_statement "DAT_0017f2f8 = plVar18;" (assignment_expression "DAT_0017f2f8 = plVar18" identifier = identifier) ;) (expression_statement "*plVar18 = 0;" (assignment_expression "*plVar18 = 0" (pointer_expression "*plVar18" * identifier) = number_literal) ;) (while_statement "while (lVar16 != 0) {\n        lVar15 = *(long *)(*(long *)(lVar16 + 0x20) + 0xd0);\n        lVar13 = *(long *)(lVar16 + 0x20);\n        if (lVar15 != 0) {\n          lVar13 = lVar15;\n        }\n        if (DAT_0017fa20 == (long *)0x0) {\nLAB_0011dad0:\n          plVar17 = DAT_0017f2f0;\n        }\n        else {\n          plVar26 = (long *)0x0;\n          plVar18 = DAT_0017fa20;\n          plVar17 = (long *)0x0;\n          do {\n            while (plVar18[4] != lVar13) {\n              if ((plVar18[4] != 0) && (plVar18[6] != 0)) {\n                plVar26 = plVar18;\n              }\n              plVar18 = (long *)plVar18[7];\n              if (plVar18 == (long *)0x0) goto LAB_0011d7f1;\n            }\n            lVar28 = plVar18[6];\n            if (lVar28 != 0) {\n              plVar17 = (long *)(lVar28 + 0x30);\n              lVar13 = *(long *)(lVar28 + 0x30);\n              goto LAB_0011d835;\n            }\n            plVar18 = (long *)plVar18[7];\n            plVar17 = plVar26;\n          } while (plVar18 != (long *)0x0);\nLAB_0011d7f1:\n          if (plVar17 == (long *)0x0) goto LAB_0011dad0;\n        }\n        plVar17 = plVar17 + 6;\n        for (lVar13 = *plVar17; lVar13 != 0; lVar13 = *(long *)(lVar13 + 0x30)) {\n          if (((*(byte *)(lVar13 + 0x49) & 0x40) == 0) &&\n             (*(long *)(*(long *)(lVar13 + 0x20) + 0xd0) == 0)) {\n            lVar13 = *plVar17;\n            break;\n          }\n          plVar17 = (long *)(lVar13 + 0x30);\n        }\nLAB_0011d835:\n        plVar18 = (long *)(lVar16 + 0x30);\n        if (lVar15 == 0) {\n          *plVar17 = lVar16;\n          lVar15 = *(long *)(lVar16 + 0x30);\n          *(long *)(lVar16 + 0x30) = lVar13;\n          lVar16 = lVar15;\n        }\n        else {\n          lVar28 = *(long *)(lVar16 + 0x30);\n          if (lVar28 != 0) {\n            lVar5 = *(long *)(*(long *)(lVar28 + 0x20) + 0xd0);\n            while (lVar15 == lVar5) {\n              plVar18 = (long *)(lVar28 + 0x30);\n              lVar28 = *(long *)(lVar28 + 0x30);\n              if (lVar28 == 0) break;\n              lVar5 = *(long *)(*(long *)(lVar28 + 0x20) + 0xd0);\n            }\n          }\n          *plVar17 = lVar16;\n          lVar16 = *plVar18;\n          *plVar18 = lVar13;\n          if (*(long *)(lVar15 + 0x100) != 0) {\n            *(long **)(*(long *)(lVar15 + 0x100) + 0x30) = plVar18 + -6;\n          }\n        }\n      }" while (parenthesized_expression "(lVar16 != 0)" ( (binary_expression "lVar16 != 0" identifier != number_literal) )) (compound_statement "{\n        lVar15 = *(long *)(*(long *)(lVar16 + 0x20) + 0xd0);\n        lVar13 = *(long *)(lVar16 + 0x20);\n        if (lVar15 != 0) {\n          lVar13 = lVar15;\n        }\n        if (DAT_0017fa20 == (long *)0x0) {\nLAB_0011dad0:\n          plVar17 = DAT_0017f2f0;\n        }\n        else {\n          plVar26 = (long *)0x0;\n          plVar18 = DAT_0017fa20;\n          plVar17 = (long *)0x0;\n          do {\n            while (plVar18[4] != lVar13) {\n              if ((plVar18[4] != 0) && (plVar18[6] != 0)) {\n                plVar26 = plVar18;\n              }\n              plVar18 = (long *)plVar18[7];\n              if (plVar18 == (long *)0x0) goto LAB_0011d7f1;\n            }\n            lVar28 = plVar18[6];\n            if (lVar28 != 0) {\n              plVar17 = (long *)(lVar28 + 0x30);\n              lVar13 = *(long *)(lVar28 + 0x30);\n              goto LAB_0011d835;\n            }\n            plVar18 = (long *)plVar18[7];\n            plVar17 = plVar26;\n          } while (plVar18 != (long *)0x0);\nLAB_0011d7f1:\n          if (plVar17 == (long *)0x0) goto LAB_0011dad0;\n        }\n        plVar17 = plVar17 + 6;\n        for (lVar13 = *plVar17; lVar13 != 0; lVar13 = *(long *)(lVar13 + 0x30)) {\n          if (((*(byte *)(lVar13 + 0x49) & 0x40) == 0) &&\n             (*(long *)(*(long *)(lVar13 + 0x20) + 0xd0) == 0)) {\n            lVar13 = *plVar17;\n            break;\n          }\n          plVar17 = (long *)(lVar13 + 0x30);\n        }\nLAB_0011d835:\n        plVar18 = (long *)(lVar16 + 0x30);\n        if (lVar15 == 0) {\n          *plVar17 = lVar16;\n          lVar15 = *(long *)(lVar16 + 0x30);\n          *(long *)(lVar16 + 0x30) = lVar13;\n          lVar16 = lVar15;\n        }\n        else {\n          lVar28 = *(long *)(lVar16 + 0x30);\n          if (lVar28 != 0) {\n            lVar5 = *(long *)(*(long *)(lVar28 + 0x20) + 0xd0);\n            while (lVar15 == lVar5) {\n              plVar18 = (long *)(lVar28 + 0x30);\n              lVar28 = *(long *)(lVar28 + 0x30);\n              if (lVar28 == 0) break;\n              lVar5 = *(long *)(*(long *)(lVar28 + 0x20) + 0xd0);\n            }\n          }\n          *plVar17 = lVar16;\n          lVar16 = *plVar18;\n          *plVar18 = lVar13;\n          if (*(long *)(lVar15 + 0x100) != 0) {\n            *(long **)(*(long *)(lVar15 + 0x100) + 0x30) = plVar18 + -6;\n          }\n        }\n      }" { (expression_statement "lVar15 = *(long *)(*(long *)(lVar16 + 0x20) + 0xd0);" (assignment_expression "lVar15 = *(long *)(*(long *)(lVar16 + 0x20) + 0xd0)" identifier = (pointer_expression "*(long *)(*(long *)(lVar16 + 0x20) + 0xd0)" * (cast_expression "(long *)(*(long *)(lVar16 + 0x20) + 0xd0)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(lVar16 + 0x20) + 0xd0)" ( (binary_expression "*(long *)(lVar16 + 0x20) + 0xd0" (pointer_expression "*(long *)(lVar16 + 0x20)" * (cast_expression "(long *)(lVar16 + 0x20)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar16 + 0x20)" ( (binary_expression "lVar16 + 0x20" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "lVar13 = *(long *)(lVar16 + 0x20);" (assignment_expression "lVar13 = *(long *)(lVar16 + 0x20)" identifier = (pointer_expression "*(long *)(lVar16 + 0x20)" * (cast_expression "(long *)(lVar16 + 0x20)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar16 + 0x20)" ( (binary_expression "lVar16 + 0x20" identifier + number_literal) ))))) ;) (if_statement "if (lVar15 != 0) {\n          lVar13 = lVar15;\n        }" if (parenthesized_expression "(lVar15 != 0)" ( (binary_expression "lVar15 != 0" identifier != number_literal) )) (compound_statement "{\n          lVar13 = lVar15;\n        }" { (expression_statement "lVar13 = lVar15;" (assignment_expression "lVar13 = lVar15" identifier = identifier) ;) })) (if_statement "if (DAT_0017fa20 == (long *)0x0) {\nLAB_0011dad0:\n          plVar17 = DAT_0017f2f0;\n        }\n        else {\n          plVar26 = (long *)0x0;\n          plVar18 = DAT_0017fa20;\n          plVar17 = (long *)0x0;\n          do {\n            while (plVar18[4] != lVar13) {\n              if ((plVar18[4] != 0) && (plVar18[6] != 0)) {\n                plVar26 = plVar18;\n              }\n              plVar18 = (long *)plVar18[7];\n              if (plVar18 == (long *)0x0) goto LAB_0011d7f1;\n            }\n            lVar28 = plVar18[6];\n            if (lVar28 != 0) {\n              plVar17 = (long *)(lVar28 + 0x30);\n              lVar13 = *(long *)(lVar28 + 0x30);\n              goto LAB_0011d835;\n            }\n            plVar18 = (long *)plVar18[7];\n            plVar17 = plVar26;\n          } while (plVar18 != (long *)0x0);\nLAB_0011d7f1:\n          if (plVar17 == (long *)0x0) goto LAB_0011dad0;\n        }" if (parenthesized_expression "(DAT_0017fa20 == (long *)0x0)" ( (binary_expression "DAT_0017fa20 == (long *)0x0" identifier == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_0011dad0:\n          plVar17 = DAT_0017f2f0;\n        }" { (labeled_statement "LAB_0011dad0:\n          plVar17 = DAT_0017f2f0;" statement_identifier : (expression_statement "plVar17 = DAT_0017f2f0;" (assignment_expression "plVar17 = DAT_0017f2f0" identifier = identifier) ;)) }) (else_clause "else {\n          plVar26 = (long *)0x0;\n          plVar18 = DAT_0017fa20;\n          plVar17 = (long *)0x0;\n          do {\n            while (plVar18[4] != lVar13) {\n              if ((plVar18[4] != 0) && (plVar18[6] != 0)) {\n                plVar26 = plVar18;\n              }\n              plVar18 = (long *)plVar18[7];\n              if (plVar18 == (long *)0x0) goto LAB_0011d7f1;\n            }\n            lVar28 = plVar18[6];\n            if (lVar28 != 0) {\n              plVar17 = (long *)(lVar28 + 0x30);\n              lVar13 = *(long *)(lVar28 + 0x30);\n              goto LAB_0011d835;\n            }\n            plVar18 = (long *)plVar18[7];\n            plVar17 = plVar26;\n          } while (plVar18 != (long *)0x0);\nLAB_0011d7f1:\n          if (plVar17 == (long *)0x0) goto LAB_0011dad0;\n        }" else (compound_statement "{\n          plVar26 = (long *)0x0;\n          plVar18 = DAT_0017fa20;\n          plVar17 = (long *)0x0;\n          do {\n            while (plVar18[4] != lVar13) {\n              if ((plVar18[4] != 0) && (plVar18[6] != 0)) {\n                plVar26 = plVar18;\n              }\n              plVar18 = (long *)plVar18[7];\n              if (plVar18 == (long *)0x0) goto LAB_0011d7f1;\n            }\n            lVar28 = plVar18[6];\n            if (lVar28 != 0) {\n              plVar17 = (long *)(lVar28 + 0x30);\n              lVar13 = *(long *)(lVar28 + 0x30);\n              goto LAB_0011d835;\n            }\n            plVar18 = (long *)plVar18[7];\n            plVar17 = plVar26;\n          } while (plVar18 != (long *)0x0);\nLAB_0011d7f1:\n          if (plVar17 == (long *)0x0) goto LAB_0011dad0;\n        }" { (expression_statement "plVar26 = (long *)0x0;" (assignment_expression "plVar26 = (long *)0x0" identifier = (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "plVar18 = DAT_0017fa20;" (assignment_expression "plVar18 = DAT_0017fa20" identifier = identifier) ;) (expression_statement "plVar17 = (long *)0x0;" (assignment_expression "plVar17 = (long *)0x0" identifier = (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n            while (plVar18[4] != lVar13) {\n              if ((plVar18[4] != 0) && (plVar18[6] != 0)) {\n                plVar26 = plVar18;\n              }\n              plVar18 = (long *)plVar18[7];\n              if (plVar18 == (long *)0x0) goto LAB_0011d7f1;\n            }\n            lVar28 = plVar18[6];\n            if (lVar28 != 0) {\n              plVar17 = (long *)(lVar28 + 0x30);\n              lVar13 = *(long *)(lVar28 + 0x30);\n              goto LAB_0011d835;\n            }\n            plVar18 = (long *)plVar18[7];\n            plVar17 = plVar26;\n          } while (plVar18 != (long *)0x0);" do (compound_statement "{\n            while (plVar18[4] != lVar13) {\n              if ((plVar18[4] != 0) && (plVar18[6] != 0)) {\n                plVar26 = plVar18;\n              }\n              plVar18 = (long *)plVar18[7];\n              if (plVar18 == (long *)0x0) goto LAB_0011d7f1;\n            }\n            lVar28 = plVar18[6];\n            if (lVar28 != 0) {\n              plVar17 = (long *)(lVar28 + 0x30);\n              lVar13 = *(long *)(lVar28 + 0x30);\n              goto LAB_0011d835;\n            }\n            plVar18 = (long *)plVar18[7];\n            plVar17 = plVar26;\n          }" { (while_statement "while (plVar18[4] != lVar13) {\n              if ((plVar18[4] != 0) && (plVar18[6] != 0)) {\n                plVar26 = plVar18;\n              }\n              plVar18 = (long *)plVar18[7];\n              if (plVar18 == (long *)0x0) goto LAB_0011d7f1;\n            }" while (parenthesized_expression "(plVar18[4] != lVar13)" ( (binary_expression "plVar18[4] != lVar13" (subscript_expression "plVar18[4]" identifier [ number_literal ]) != identifier) )) (compound_statement "{\n              if ((plVar18[4] != 0) && (plVar18[6] != 0)) {\n                plVar26 = plVar18;\n              }\n              plVar18 = (long *)plVar18[7];\n              if (plVar18 == (long *)0x0) goto LAB_0011d7f1;\n            }" { (if_statement "if ((plVar18[4] != 0) && (plVar18[6] != 0)) {\n                plVar26 = plVar18;\n              }" if (parenthesized_expression "((plVar18[4] != 0) && (plVar18[6] != 0))" ( (binary_expression "(plVar18[4] != 0) && (plVar18[6] != 0)" (parenthesized_expression "(plVar18[4] != 0)" ( (binary_expression "plVar18[4] != 0" (subscript_expression "plVar18[4]" identifier [ number_literal ]) != number_literal) )) && (parenthesized_expression "(plVar18[6] != 0)" ( (binary_expression "plVar18[6] != 0" (subscript_expression "plVar18[6]" identifier [ number_literal ]) != number_literal) ))) )) (compound_statement "{\n                plVar26 = plVar18;\n              }" { (expression_statement "plVar26 = plVar18;" (assignment_expression "plVar26 = plVar18" identifier = identifier) ;) })) (expression_statement "plVar18 = (long *)plVar18[7];" (assignment_expression "plVar18 = (long *)plVar18[7]" identifier = (cast_expression "(long *)plVar18[7]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar18[7]" identifier [ number_literal ]))) ;) (if_statement "if (plVar18 == (long *)0x0) goto LAB_0011d7f1;" if (parenthesized_expression "(plVar18 == (long *)0x0)" ( (binary_expression "plVar18 == (long *)0x0" identifier == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0011d7f1;" goto statement_identifier ;)) })) (expression_statement "lVar28 = plVar18[6];" (assignment_expression "lVar28 = plVar18[6]" identifier = (subscript_expression "plVar18[6]" identifier [ number_literal ])) ;) (if_statement "if (lVar28 != 0) {\n              plVar17 = (long *)(lVar28 + 0x30);\n              lVar13 = *(long *)(lVar28 + 0x30);\n              goto LAB_0011d835;\n            }" if (parenthesized_expression "(lVar28 != 0)" ( (binary_expression "lVar28 != 0" identifier != number_literal) )) (compound_statement "{\n              plVar17 = (long *)(lVar28 + 0x30);\n              lVar13 = *(long *)(lVar28 + 0x30);\n              goto LAB_0011d835;\n            }" { (expression_statement "plVar17 = (long *)(lVar28 + 0x30);" (assignment_expression "plVar17 = (long *)(lVar28 + 0x30)" identifier = (cast_expression "(long *)(lVar28 + 0x30)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar28 + 0x30)" ( (binary_expression "lVar28 + 0x30" identifier + number_literal) )))) ;) (expression_statement "lVar13 = *(long *)(lVar28 + 0x30);" (assignment_expression "lVar13 = *(long *)(lVar28 + 0x30)" identifier = (pointer_expression "*(long *)(lVar28 + 0x30)" * (cast_expression "(long *)(lVar28 + 0x30)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar28 + 0x30)" ( (binary_expression "lVar28 + 0x30" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0011d835;" goto statement_identifier ;) })) (expression_statement "plVar18 = (long *)plVar18[7];" (assignment_expression "plVar18 = (long *)plVar18[7]" identifier = (cast_expression "(long *)plVar18[7]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar18[7]" identifier [ number_literal ]))) ;) (expression_statement "plVar17 = plVar26;" (assignment_expression "plVar17 = plVar26" identifier = identifier) ;) }) while (parenthesized_expression "(plVar18 != (long *)0x0)" ( (binary_expression "plVar18 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (labeled_statement "LAB_0011d7f1:\n          if (plVar17 == (long *)0x0) goto LAB_0011dad0;" statement_identifier : (if_statement "if (plVar17 == (long *)0x0) goto LAB_0011dad0;" if (parenthesized_expression "(plVar17 == (long *)0x0)" ( (binary_expression "plVar17 == (long *)0x0" identifier == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0011dad0;" goto statement_identifier ;))) }))) (expression_statement "plVar17 = plVar17 + 6;" (assignment_expression "plVar17 = plVar17 + 6" identifier = (binary_expression "plVar17 + 6" identifier + number_literal)) ;) (for_statement "for (lVar13 = *plVar17; lVar13 != 0; lVar13 = *(long *)(lVar13 + 0x30)) {\n          if (((*(byte *)(lVar13 + 0x49) & 0x40) == 0) &&\n             (*(long *)(*(long *)(lVar13 + 0x20) + 0xd0) == 0)) {\n            lVar13 = *plVar17;\n            break;\n          }\n          plVar17 = (long *)(lVar13 + 0x30);\n        }" for ( (assignment_expression "lVar13 = *plVar17" identifier = (pointer_expression "*plVar17" * identifier)) ; (binary_expression "lVar13 != 0" identifier != number_literal) ; (assignment_expression "lVar13 = *(long *)(lVar13 + 0x30)" identifier = (pointer_expression "*(long *)(lVar13 + 0x30)" * (cast_expression "(long *)(lVar13 + 0x30)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar13 + 0x30)" ( (binary_expression "lVar13 + 0x30" identifier + number_literal) ))))) ) (compound_statement "{\n          if (((*(byte *)(lVar13 + 0x49) & 0x40) == 0) &&\n             (*(long *)(*(long *)(lVar13 + 0x20) + 0xd0) == 0)) {\n            lVar13 = *plVar17;\n            break;\n          }\n          plVar17 = (long *)(lVar13 + 0x30);\n        }" { (if_statement "if (((*(byte *)(lVar13 + 0x49) & 0x40) == 0) &&\n             (*(long *)(*(long *)(lVar13 + 0x20) + 0xd0) == 0)) {\n            lVar13 = *plVar17;\n            break;\n          }" if (parenthesized_expression "(((*(byte *)(lVar13 + 0x49) & 0x40) == 0) &&\n             (*(long *)(*(long *)(lVar13 + 0x20) + 0xd0) == 0))" ( (binary_expression "((*(byte *)(lVar13 + 0x49) & 0x40) == 0) &&\n             (*(long *)(*(long *)(lVar13 + 0x20) + 0xd0) == 0)" (parenthesized_expression "((*(byte *)(lVar13 + 0x49) & 0x40) == 0)" ( (binary_expression "(*(byte *)(lVar13 + 0x49) & 0x40) == 0" (parenthesized_expression "(*(byte *)(lVar13 + 0x49) & 0x40)" ( (binary_expression "*(byte *)(lVar13 + 0x49) & 0x40" (pointer_expression "*(byte *)(lVar13 + 0x49)" * (cast_expression "(byte *)(lVar13 + 0x49)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar13 + 0x49)" ( (binary_expression "lVar13 + 0x49" identifier + number_literal) )))) & number_literal) )) == number_literal) )) && (parenthesized_expression "(*(long *)(*(long *)(lVar13 + 0x20) + 0xd0) == 0)" ( (binary_expression "*(long *)(*(long *)(lVar13 + 0x20) + 0xd0) == 0" (pointer_expression "*(long *)(*(long *)(lVar13 + 0x20) + 0xd0)" * (cast_expression "(long *)(*(long *)(lVar13 + 0x20) + 0xd0)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(lVar13 + 0x20) + 0xd0)" ( (binary_expression "*(long *)(lVar13 + 0x20) + 0xd0" (pointer_expression "*(long *)(lVar13 + 0x20)" * (cast_expression "(long *)(lVar13 + 0x20)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar13 + 0x20)" ( (binary_expression "lVar13 + 0x20" identifier + number_literal) )))) + number_literal) )))) == number_literal) ))) )) (compound_statement "{\n            lVar13 = *plVar17;\n            break;\n          }" { (expression_statement "lVar13 = *plVar17;" (assignment_expression "lVar13 = *plVar17" identifier = (pointer_expression "*plVar17" * identifier)) ;) (break_statement "break;" break ;) })) (expression_statement "plVar17 = (long *)(lVar13 + 0x30);" (assignment_expression "plVar17 = (long *)(lVar13 + 0x30)" identifier = (cast_expression "(long *)(lVar13 + 0x30)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar13 + 0x30)" ( (binary_expression "lVar13 + 0x30" identifier + number_literal) )))) ;) })) (labeled_statement "LAB_0011d835:\n        plVar18 = (long *)(lVar16 + 0x30);" statement_identifier : (expression_statement "plVar18 = (long *)(lVar16 + 0x30);" (assignment_expression "plVar18 = (long *)(lVar16 + 0x30)" identifier = (cast_expression "(long *)(lVar16 + 0x30)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar16 + 0x30)" ( (binary_expression "lVar16 + 0x30" identifier + number_literal) )))) ;)) (if_statement "if (lVar15 == 0) {\n          *plVar17 = lVar16;\n          lVar15 = *(long *)(lVar16 + 0x30);\n          *(long *)(lVar16 + 0x30) = lVar13;\n          lVar16 = lVar15;\n        }\n        else {\n          lVar28 = *(long *)(lVar16 + 0x30);\n          if (lVar28 != 0) {\n            lVar5 = *(long *)(*(long *)(lVar28 + 0x20) + 0xd0);\n            while (lVar15 == lVar5) {\n              plVar18 = (long *)(lVar28 + 0x30);\n              lVar28 = *(long *)(lVar28 + 0x30);\n              if (lVar28 == 0) break;\n              lVar5 = *(long *)(*(long *)(lVar28 + 0x20) + 0xd0);\n            }\n          }\n          *plVar17 = lVar16;\n          lVar16 = *plVar18;\n          *plVar18 = lVar13;\n          if (*(long *)(lVar15 + 0x100) != 0) {\n            *(long **)(*(long *)(lVar15 + 0x100) + 0x30) = plVar18 + -6;\n          }\n        }" if (parenthesized_expression "(lVar15 == 0)" ( (binary_expression "lVar15 == 0" identifier == number_literal) )) (compound_statement "{\n          *plVar17 = lVar16;\n          lVar15 = *(long *)(lVar16 + 0x30);\n          *(long *)(lVar16 + 0x30) = lVar13;\n          lVar16 = lVar15;\n        }" { (expression_statement "*plVar17 = lVar16;" (assignment_expression "*plVar17 = lVar16" (pointer_expression "*plVar17" * identifier) = identifier) ;) (expression_statement "lVar15 = *(long *)(lVar16 + 0x30);" (assignment_expression "lVar15 = *(long *)(lVar16 + 0x30)" identifier = (pointer_expression "*(long *)(lVar16 + 0x30)" * (cast_expression "(long *)(lVar16 + 0x30)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar16 + 0x30)" ( (binary_expression "lVar16 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "*(long *)(lVar16 + 0x30) = lVar13;" (assignment_expression "*(long *)(lVar16 + 0x30) = lVar13" (pointer_expression "*(long *)(lVar16 + 0x30)" * (cast_expression "(long *)(lVar16 + 0x30)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar16 + 0x30)" ( (binary_expression "lVar16 + 0x30" identifier + number_literal) )))) = identifier) ;) (expression_statement "lVar16 = lVar15;" (assignment_expression "lVar16 = lVar15" identifier = identifier) ;) }) (else_clause "else {\n          lVar28 = *(long *)(lVar16 + 0x30);\n          if (lVar28 != 0) {\n            lVar5 = *(long *)(*(long *)(lVar28 + 0x20) + 0xd0);\n            while (lVar15 == lVar5) {\n              plVar18 = (long *)(lVar28 + 0x30);\n              lVar28 = *(long *)(lVar28 + 0x30);\n              if (lVar28 == 0) break;\n              lVar5 = *(long *)(*(long *)(lVar28 + 0x20) + 0xd0);\n            }\n          }\n          *plVar17 = lVar16;\n          lVar16 = *plVar18;\n          *plVar18 = lVar13;\n          if (*(long *)(lVar15 + 0x100) != 0) {\n            *(long **)(*(long *)(lVar15 + 0x100) + 0x30) = plVar18 + -6;\n          }\n        }" else (compound_statement "{\n          lVar28 = *(long *)(lVar16 + 0x30);\n          if (lVar28 != 0) {\n            lVar5 = *(long *)(*(long *)(lVar28 + 0x20) + 0xd0);\n            while (lVar15 == lVar5) {\n              plVar18 = (long *)(lVar28 + 0x30);\n              lVar28 = *(long *)(lVar28 + 0x30);\n              if (lVar28 == 0) break;\n              lVar5 = *(long *)(*(long *)(lVar28 + 0x20) + 0xd0);\n            }\n          }\n          *plVar17 = lVar16;\n          lVar16 = *plVar18;\n          *plVar18 = lVar13;\n          if (*(long *)(lVar15 + 0x100) != 0) {\n            *(long **)(*(long *)(lVar15 + 0x100) + 0x30) = plVar18 + -6;\n          }\n        }" { (expression_statement "lVar28 = *(long *)(lVar16 + 0x30);" (assignment_expression "lVar28 = *(long *)(lVar16 + 0x30)" identifier = (pointer_expression "*(long *)(lVar16 + 0x30)" * (cast_expression "(long *)(lVar16 + 0x30)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar16 + 0x30)" ( (binary_expression "lVar16 + 0x30" identifier + number_literal) ))))) ;) (if_statement "if (lVar28 != 0) {\n            lVar5 = *(long *)(*(long *)(lVar28 + 0x20) + 0xd0);\n            while (lVar15 == lVar5) {\n              plVar18 = (long *)(lVar28 + 0x30);\n              lVar28 = *(long *)(lVar28 + 0x30);\n              if (lVar28 == 0) break;\n              lVar5 = *(long *)(*(long *)(lVar28 + 0x20) + 0xd0);\n            }\n          }" if (parenthesized_expression "(lVar28 != 0)" ( (binary_expression "lVar28 != 0" identifier != number_literal) )) (compound_statement "{\n            lVar5 = *(long *)(*(long *)(lVar28 + 0x20) + 0xd0);\n            while (lVar15 == lVar5) {\n              plVar18 = (long *)(lVar28 + 0x30);\n              lVar28 = *(long *)(lVar28 + 0x30);\n              if (lVar28 == 0) break;\n              lVar5 = *(long *)(*(long *)(lVar28 + 0x20) + 0xd0);\n            }\n          }" { (expression_statement "lVar5 = *(long *)(*(long *)(lVar28 + 0x20) + 0xd0);" (assignment_expression "lVar5 = *(long *)(*(long *)(lVar28 + 0x20) + 0xd0)" identifier = (pointer_expression "*(long *)(*(long *)(lVar28 + 0x20) + 0xd0)" * (cast_expression "(long *)(*(long *)(lVar28 + 0x20) + 0xd0)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(lVar28 + 0x20) + 0xd0)" ( (binary_expression "*(long *)(lVar28 + 0x20) + 0xd0" (pointer_expression "*(long *)(lVar28 + 0x20)" * (cast_expression "(long *)(lVar28 + 0x20)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar28 + 0x20)" ( (binary_expression "lVar28 + 0x20" identifier + number_literal) )))) + number_literal) ))))) ;) (while_statement "while (lVar15 == lVar5) {\n              plVar18 = (long *)(lVar28 + 0x30);\n              lVar28 = *(long *)(lVar28 + 0x30);\n              if (lVar28 == 0) break;\n              lVar5 = *(long *)(*(long *)(lVar28 + 0x20) + 0xd0);\n            }" while (parenthesized_expression "(lVar15 == lVar5)" ( (binary_expression "lVar15 == lVar5" identifier == identifier) )) (compound_statement "{\n              plVar18 = (long *)(lVar28 + 0x30);\n              lVar28 = *(long *)(lVar28 + 0x30);\n              if (lVar28 == 0) break;\n              lVar5 = *(long *)(*(long *)(lVar28 + 0x20) + 0xd0);\n            }" { (expression_statement "plVar18 = (long *)(lVar28 + 0x30);" (assignment_expression "plVar18 = (long *)(lVar28 + 0x30)" identifier = (cast_expression "(long *)(lVar28 + 0x30)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar28 + 0x30)" ( (binary_expression "lVar28 + 0x30" identifier + number_literal) )))) ;) (expression_statement "lVar28 = *(long *)(lVar28 + 0x30);" (assignment_expression "lVar28 = *(long *)(lVar28 + 0x30)" identifier = (pointer_expression "*(long *)(lVar28 + 0x30)" * (cast_expression "(long *)(lVar28 + 0x30)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar28 + 0x30)" ( (binary_expression "lVar28 + 0x30" identifier + number_literal) ))))) ;) (if_statement "if (lVar28 == 0) break;" if (parenthesized_expression "(lVar28 == 0)" ( (binary_expression "lVar28 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar5 = *(long *)(*(long *)(lVar28 + 0x20) + 0xd0);" (assignment_expression "lVar5 = *(long *)(*(long *)(lVar28 + 0x20) + 0xd0)" identifier = (pointer_expression "*(long *)(*(long *)(lVar28 + 0x20) + 0xd0)" * (cast_expression "(long *)(*(long *)(lVar28 + 0x20) + 0xd0)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(lVar28 + 0x20) + 0xd0)" ( (binary_expression "*(long *)(lVar28 + 0x20) + 0xd0" (pointer_expression "*(long *)(lVar28 + 0x20)" * (cast_expression "(long *)(lVar28 + 0x20)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar28 + 0x20)" ( (binary_expression "lVar28 + 0x20" identifier + number_literal) )))) + number_literal) ))))) ;) })) })) (expression_statement "*plVar17 = lVar16;" (assignment_expression "*plVar17 = lVar16" (pointer_expression "*plVar17" * identifier) = identifier) ;) (expression_statement "lVar16 = *plVar18;" (assignment_expression "lVar16 = *plVar18" identifier = (pointer_expression "*plVar18" * identifier)) ;) (expression_statement "*plVar18 = lVar13;" (assignment_expression "*plVar18 = lVar13" (pointer_expression "*plVar18" * identifier) = identifier) ;) (if_statement "if (*(long *)(lVar15 + 0x100) != 0) {\n            *(long **)(*(long *)(lVar15 + 0x100) + 0x30) = plVar18 + -6;\n          }" if (parenthesized_expression "(*(long *)(lVar15 + 0x100) != 0)" ( (binary_expression "*(long *)(lVar15 + 0x100) != 0" (pointer_expression "*(long *)(lVar15 + 0x100)" * (cast_expression "(long *)(lVar15 + 0x100)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar15 + 0x100)" ( (binary_expression "lVar15 + 0x100" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n            *(long **)(*(long *)(lVar15 + 0x100) + 0x30) = plVar18 + -6;\n          }" { (expression_statement "*(long **)(*(long *)(lVar15 + 0x100) + 0x30) = plVar18 + -6;" (assignment_expression "*(long **)(*(long *)(lVar15 + 0x100) + 0x30) = plVar18 + -6" (pointer_expression "*(long **)(*(long *)(lVar15 + 0x100) + 0x30)" * (cast_expression "(long **)(*(long *)(lVar15 + 0x100) + 0x30)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)(lVar15 + 0x100) + 0x30)" ( (binary_expression "*(long *)(lVar15 + 0x100) + 0x30" (pointer_expression "*(long *)(lVar15 + 0x100)" * (cast_expression "(long *)(lVar15 + 0x100)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar15 + 0x100)" ( (binary_expression "lVar15 + 0x100" identifier + number_literal) )))) + number_literal) )))) = (binary_expression "plVar18 + -6" identifier + number_literal)) ;) })) }))) })) })) })) (if_statement "if (DAT_0017fb38 != (undefined8 *)0x0) {\n    FUN_001252b0("../../ld/ldlang.c",0x1c67);\n  }" if (parenthesized_expression "(DAT_0017fb38 != (undefined8 *)0x0)" ( (binary_expression "DAT_0017fb38 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    FUN_001252b0("../../ld/ldlang.c",0x1c67);\n  }" { (expression_statement "FUN_001252b0("../../ld/ldlang.c",0x1c67);" (call_expression "FUN_001252b0("../../ld/ldlang.c",0x1c67)" identifier (argument_list "("../../ld/ldlang.c",0x1c67)" ( (string_literal ""../../ld/ldlang.c"" " string_content ") , number_literal ))) ;) })) (expression_statement "DAT_0017fb38 = &DAT_0017f2e0;" (assignment_expression "DAT_0017fb38 = &DAT_0017f2e0" identifier = (pointer_expression "&DAT_0017f2e0" & identifier)) ;) (if_statement "if (DAT_0017f2e8 == (undefined *)0x0) {\n    DAT_0017fb38 = DAT_0017f2e0;\n    if (PTR_s_start_0017e660 != (undefined *)0x0) {\n      FUN_00115880();\n    }\n  }" if (parenthesized_expression "(DAT_0017f2e8 == (undefined *)0x0)" ( (binary_expression "DAT_0017f2e8 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    DAT_0017fb38 = DAT_0017f2e0;\n    if (PTR_s_start_0017e660 != (undefined *)0x0) {\n      FUN_00115880();\n    }\n  }" { (expression_statement "DAT_0017fb38 = DAT_0017f2e0;" (assignment_expression "DAT_0017fb38 = DAT_0017f2e0" identifier = identifier) ;) (if_statement "if (PTR_s_start_0017e660 != (undefined *)0x0) {\n      FUN_00115880();\n    }" if (parenthesized_expression "(PTR_s_start_0017e660 != (undefined *)0x0)" ( (binary_expression "PTR_s_start_0017e660 != (undefined *)0x0" identifier != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      FUN_00115880();\n    }" { (expression_statement "FUN_00115880();" (call_expression "FUN_00115880()" identifier (argument_list "()" ( ))) ;) })) })) (if_statement "if (DAT_0017fb48 != 0) {\n    FUN_00115880();\n  }" if (parenthesized_expression "(DAT_0017fb48 != 0)" ( (binary_expression "DAT_0017fb48 != 0" identifier != number_literal) )) (compound_statement "{\n    FUN_00115880();\n  }" { (expression_statement "FUN_00115880();" (call_expression "FUN_00115880()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if (DAT_0017fb50 != 0) {\n    FUN_00115880();\n  }" if (parenthesized_expression "(DAT_0017fb50 != 0)" ( (binary_expression "DAT_0017fb50 != 0" identifier != number_literal) )) (compound_statement "{\n    FUN_00115880();\n  }" { (expression_statement "FUN_00115880();" (call_expression "FUN_00115880()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "FUN_00123b90();" (call_expression "FUN_00123b90()" identifier (argument_list "()" ( ))) ;) (if_statement "if ((DAT_0017fc98 != 0) && (DAT_0017f3d0 != (undefined8 *)0x0)) {\n    uVar11 = dcgettext(0,"\nAs-needed library included to satisfy reference by file (symbol)\n\n",5)\n    ;\n    FUN_001252f0(uVar11);\n    for (puVar21 = DAT_0017f3d0; puVar21 != (undefined8 *)0x0; puVar21 = (undefined8 *)*puVar21) {\n      FUN_001252f0(&DAT_0013efee,puVar21[1]);\n      sVar12 = strlen((char *)puVar21[1]);\n      if (0x1c < sVar12) {\n        FUN_00124290();\n        sVar12 = 0;\n      }\n      do {\n        FUN_00124270();\n        sVar12 = sVar12 + 1;\n      } while (sVar12 != 0x1e);\n      if (puVar21[2] != 0) {\n        FUN_001252f0(&DAT_0013f279);\n      }\n      FUN_001252f0("(%pT)\n",puVar21[3]);\n    }\n  }" if (parenthesized_expression "((DAT_0017fc98 != 0) && (DAT_0017f3d0 != (undefined8 *)0x0))" ( (binary_expression "(DAT_0017fc98 != 0) && (DAT_0017f3d0 != (undefined8 *)0x0)" (parenthesized_expression "(DAT_0017fc98 != 0)" ( (binary_expression "DAT_0017fc98 != 0" identifier != number_literal) )) && (parenthesized_expression "(DAT_0017f3d0 != (undefined8 *)0x0)" ( (binary_expression "DAT_0017f3d0 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n    uVar11 = dcgettext(0,"\nAs-needed library included to satisfy reference by file (symbol)\n\n",5)\n    ;\n    FUN_001252f0(uVar11);\n    for (puVar21 = DAT_0017f3d0; puVar21 != (undefined8 *)0x0; puVar21 = (undefined8 *)*puVar21) {\n      FUN_001252f0(&DAT_0013efee,puVar21[1]);\n      sVar12 = strlen((char *)puVar21[1]);\n      if (0x1c < sVar12) {\n        FUN_00124290();\n        sVar12 = 0;\n      }\n      do {\n        FUN_00124270();\n        sVar12 = sVar12 + 1;\n      } while (sVar12 != 0x1e);\n      if (puVar21[2] != 0) {\n        FUN_001252f0(&DAT_0013f279);\n      }\n      FUN_001252f0("(%pT)\n",puVar21[3]);\n    }\n  }" { (expression_statement "uVar11 = dcgettext(0,"\nAs-needed library included to satisfy reference by file (symbol)\n\n",5)\n    ;" (assignment_expression "uVar11 = 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_001252f0(uVar11);" (call_expression "FUN_001252f0(uVar11)" identifier (argument_list "(uVar11)" ( identifier ))) ;) (for_statement "for (puVar21 = DAT_0017f3d0; puVar21 != (undefined8 *)0x0; puVar21 = (undefined8 *)*puVar21) {\n      FUN_001252f0(&DAT_0013efee,puVar21[1]);\n      sVar12 = strlen((char *)puVar21[1]);\n      if (0x1c < sVar12) {\n        FUN_00124290();\n        sVar12 = 0;\n      }\n      do {\n        FUN_00124270();\n        sVar12 = sVar12 + 1;\n      } while (sVar12 != 0x1e);\n      if (puVar21[2] != 0) {\n        FUN_001252f0(&DAT_0013f279);\n      }\n      FUN_001252f0("(%pT)\n",puVar21[3]);\n    }" for ( (assignment_expression "puVar21 = DAT_0017f3d0" identifier = identifier) ; (binary_expression "puVar21 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "puVar21 = (undefined8 *)*puVar21" identifier = (cast_expression "(undefined8 *)*puVar21" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar21" * identifier))) ) (compound_statement "{\n      FUN_001252f0(&DAT_0013efee,puVar21[1]);\n      sVar12 = strlen((char *)puVar21[1]);\n      if (0x1c < sVar12) {\n        FUN_00124290();\n        sVar12 = 0;\n      }\n      do {\n        FUN_00124270();\n        sVar12 = sVar12 + 1;\n      } while (sVar12 != 0x1e);\n      if (puVar21[2] != 0) {\n        FUN_001252f0(&DAT_0013f279);\n      }\n      FUN_001252f0("(%pT)\n",puVar21[3]);\n    }" { (expression_statement "FUN_001252f0(&DAT_0013efee,puVar21[1]);" (call_expression "FUN_001252f0(&DAT_0013efee,puVar21[1])" identifier (argument_list "(&DAT_0013efee,puVar21[1])" ( (pointer_expression "&DAT_0013efee" & identifier) , (subscript_expression "puVar21[1]" identifier [ number_literal ]) ))) ;) (expression_statement "sVar12 = strlen((char *)puVar21[1]);" (assignment_expression "sVar12 = strlen((char *)puVar21[1])" identifier = (call_expression "strlen((char *)puVar21[1])" identifier (argument_list "((char *)puVar21[1])" ( (cast_expression "(char *)puVar21[1]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar21[1]" identifier [ number_literal ])) )))) ;) (if_statement "if (0x1c < sVar12) {\n        FUN_00124290();\n        sVar12 = 0;\n      }" if (parenthesized_expression "(0x1c < sVar12)" ( (binary_expression "0x1c < sVar12" number_literal < identifier) )) (compound_statement "{\n        FUN_00124290();\n        sVar12 = 0;\n      }" { (expression_statement "FUN_00124290();" (call_expression "FUN_00124290()" identifier (argument_list "()" ( ))) ;) (expression_statement "sVar12 = 0;" (assignment_expression "sVar12 = 0" identifier = number_literal) ;) })) (do_statement "do {\n        FUN_00124270();\n        sVar12 = sVar12 + 1;\n      } while (sVar12 != 0x1e);" do (compound_statement "{\n        FUN_00124270();\n        sVar12 = sVar12 + 1;\n      }" { (expression_statement "FUN_00124270();" (call_expression "FUN_00124270()" identifier (argument_list "()" ( ))) ;) (expression_statement "sVar12 = sVar12 + 1;" (assignment_expression "sVar12 = sVar12 + 1" identifier = (binary_expression "sVar12 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(sVar12 != 0x1e)" ( (binary_expression "sVar12 != 0x1e" identifier != number_literal) )) ;) (if_statement "if (puVar21[2] != 0) {\n        FUN_001252f0(&DAT_0013f279);\n      }" if (parenthesized_expression "(puVar21[2] != 0)" ( (binary_expression "puVar21[2] != 0" (subscript_expression "puVar21[2]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n        FUN_001252f0(&DAT_0013f279);\n      }" { (expression_statement "FUN_001252f0(&DAT_0013f279);" (call_expression "FUN_001252f0(&DAT_0013f279)" identifier (argument_list "(&DAT_0013f279)" ( (pointer_expression "&DAT_0013f279" & identifier) ))) ;) })) (expression_statement "FUN_001252f0("(%pT)\n",puVar21[3]);" (call_expression "FUN_001252f0("(%pT)\n",puVar21[3])" identifier (argument_list "("(%pT)\n",puVar21[3])" ( (string_literal ""(%pT)\n"" " string_content escape_sequence ") , (subscript_expression "puVar21[3]" identifier [ number_literal ]) ))) ;) })) })) (expression_statement "bfd_section_already_linked_table_free();" (call_expression "bfd_section_already_linked_table_free()" identifier (argument_list "()" ( ))) ;) (expression_statement "plVar17 = DAT_0017f2f0;" (assignment_expression "plVar17 = DAT_0017f2f0" identifier = identifier) ;) (labeled_statement "joined_r0x0011be7f:\n  if (plVar17 != (long *)0x0) {\n    do {\n      if ((*(byte *)((long)plVar17 + 0x49) & 0x20) == 0) {\n        lVar16 = plVar17[4];\n        lVar13 = bfd_arch_get_compatible(lVar16,DAT_0017fb10,DAT_0017fbdc);\n        lVar15 = DAT_0017fb10;\n        if (((DAT_0017fac0 & 3) == 2) || ((DAT_0017fac3 & 8) != 0)) {\n          if (lVar13 != 0) {\n            puVar21 = *(undefined8 **)(lVar16 + 8);\n            puVar27 = *(undefined8 **)(DAT_0017fb10 + 8);\n            if ((*(int *)(puVar21 + 1) != *(int *)(puVar27 + 1)) &&\n               ((*(byte *)(lVar16 + 0x44) & 0x20) != 0)) goto LAB_0011c12e;\n            goto LAB_0011bed4;\n          }\n          if ((*(byte *)(lVar16 + 0x44) & 0x20) != 0) {\n            puVar21 = *(undefined8 **)(lVar16 + 8);\n            puVar27 = *(undefined8 **)(DAT_0017fb10 + 8);\nLAB_0011c12e:\n            uVar11 = *puVar27;\n            uVar14 = *puVar21;\n            uVar24 = 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_001251f0(uVar24,uVar14,lVar16,uVar11,lVar15);\n            goto joined_r0x0011c167;\n          }\n        }\n        else {\njoined_r0x0011c167:\n          if (lVar13 != 0) {\nLAB_0011bed4:\n            if (*(int *)(lVar16 + 0xa0) == 0) goto LAB_0011bf30;\n            uVar11 = 0;\n            if (DAT_0017fbd0 == 0) {\n              uVar11 = bfd_set_error_handler(FUN_00112380);\n            }\n            iVar9 = (**(code **)(*(long *)(DAT_0017fb10 + 8) + 0x140))(lVar16,&DAT_0017fac0);\n            if (iVar9 == 0) {\n              if (DAT_0017fbd0 != 0) {\n                uVar14 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);\n                FUN_001251f0(uVar14,lVar16);\n                goto LAB_0011c5b0;\n              }\n            }\n            else {\nLAB_0011c5b0:\n              if (DAT_0017fbd0 != 0) goto code_r0x0011c5be;\n            }\n            bfd_set_error_handler(uVar11);\n            goto LAB_0011bf30;\n          }\n        }\n        if (DAT_0017fbd0 == 0) goto LAB_0011bf30;\n        uVar11 = bfd_printable_name(DAT_0017fb10);\n        uVar14 = bfd_printable_name(lVar16);\n        uVar24 = dcgettext(0,\n                           "%X%P: %s architecture of input file `%pB\' is incompatible with %s output\n"\n                           ,5);\n        FUN_001251f0(uVar24,uVar14,lVar16,uVar11);\n        plVar17 = (long *)plVar17[6];\n      }\n      else {\nLAB_0011bf30:\n        plVar17 = (long *)plVar17[6];\n      }\n      if (plVar17 == (long *)0x0) break;\n    } while( true );\n  }" statement_identifier : (if_statement "if (plVar17 != (long *)0x0) {\n    do {\n      if ((*(byte *)((long)plVar17 + 0x49) & 0x20) == 0) {\n        lVar16 = plVar17[4];\n        lVar13 = bfd_arch_get_compatible(lVar16,DAT_0017fb10,DAT_0017fbdc);\n        lVar15 = DAT_0017fb10;\n        if (((DAT_0017fac0 & 3) == 2) || ((DAT_0017fac3 & 8) != 0)) {\n          if (lVar13 != 0) {\n            puVar21 = *(undefined8 **)(lVar16 + 8);\n            puVar27 = *(undefined8 **)(DAT_0017fb10 + 8);\n            if ((*(int *)(puVar21 + 1) != *(int *)(puVar27 + 1)) &&\n               ((*(byte *)(lVar16 + 0x44) & 0x20) != 0)) goto LAB_0011c12e;\n            goto LAB_0011bed4;\n          }\n          if ((*(byte *)(lVar16 + 0x44) & 0x20) != 0) {\n            puVar21 = *(undefined8 **)(lVar16 + 8);\n            puVar27 = *(undefined8 **)(DAT_0017fb10 + 8);\nLAB_0011c12e:\n            uVar11 = *puVar27;\n            uVar14 = *puVar21;\n            uVar24 = 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_001251f0(uVar24,uVar14,lVar16,uVar11,lVar15);\n            goto joined_r0x0011c167;\n          }\n        }\n        else {\njoined_r0x0011c167:\n          if (lVar13 != 0) {\nLAB_0011bed4:\n            if (*(int *)(lVar16 + 0xa0) == 0) goto LAB_0011bf30;\n            uVar11 = 0;\n            if (DAT_0017fbd0 == 0) {\n              uVar11 = bfd_set_error_handler(FUN_00112380);\n            }\n            iVar9 = (**(code **)(*(long *)(DAT_0017fb10 + 8) + 0x140))(lVar16,&DAT_0017fac0);\n            if (iVar9 == 0) {\n              if (DAT_0017fbd0 != 0) {\n                uVar14 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);\n                FUN_001251f0(uVar14,lVar16);\n                goto LAB_0011c5b0;\n              }\n            }\n            else {\nLAB_0011c5b0:\n              if (DAT_0017fbd0 != 0) goto code_r0x0011c5be;\n            }\n            bfd_set_error_handler(uVar11);\n            goto LAB_0011bf30;\n          }\n        }\n        if (DAT_0017fbd0 == 0) goto LAB_0011bf30;\n        uVar11 = bfd_printable_name(DAT_0017fb10);\n        uVar14 = bfd_printable_name(lVar16);\n        uVar24 = dcgettext(0,\n                           "%X%P: %s architecture of input file `%pB\' is incompatible with %s output\n"\n                           ,5);\n        FUN_001251f0(uVar24,uVar14,lVar16,uVar11);\n        plVar17 = (long *)plVar17[6];\n      }\n      else {\nLAB_0011bf30:\n        plVar17 = (long *)plVar17[6];\n      }\n      if (plVar17 == (long *)0x0) break;\n    } while( true );\n  }" if (parenthesized_expression "(plVar17 != (long *)0x0)" ( (binary_expression "plVar17 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    do {\n      if ((*(byte *)((long)plVar17 + 0x49) & 0x20) == 0) {\n        lVar16 = plVar17[4];\n        lVar13 = bfd_arch_get_compatible(lVar16,DAT_0017fb10,DAT_0017fbdc);\n        lVar15 = DAT_0017fb10;\n        if (((DAT_0017fac0 & 3) == 2) || ((DAT_0017fac3 & 8) != 0)) {\n          if (lVar13 != 0) {\n            puVar21 = *(undefined8 **)(lVar16 + 8);\n            puVar27 = *(undefined8 **)(DAT_0017fb10 + 8);\n            if ((*(int *)(puVar21 + 1) != *(int *)(puVar27 + 1)) &&\n               ((*(byte *)(lVar16 + 0x44) & 0x20) != 0)) goto LAB_0011c12e;\n            goto LAB_0011bed4;\n          }\n          if ((*(byte *)(lVar16 + 0x44) & 0x20) != 0) {\n            puVar21 = *(undefined8 **)(lVar16 + 8);\n            puVar27 = *(undefined8 **)(DAT_0017fb10 + 8);\nLAB_0011c12e:\n            uVar11 = *puVar27;\n            uVar14 = *puVar21;\n            uVar24 = 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_001251f0(uVar24,uVar14,lVar16,uVar11,lVar15);\n            goto joined_r0x0011c167;\n          }\n        }\n        else {\njoined_r0x0011c167:\n          if (lVar13 != 0) {\nLAB_0011bed4:\n            if (*(int *)(lVar16 + 0xa0) == 0) goto LAB_0011bf30;\n            uVar11 = 0;\n            if (DAT_0017fbd0 == 0) {\n              uVar11 = bfd_set_error_handler(FUN_00112380);\n            }\n            iVar9 = (**(code **)(*(long *)(DAT_0017fb10 + 8) + 0x140))(lVar16,&DAT_0017fac0);\n            if (iVar9 == 0) {\n              if (DAT_0017fbd0 != 0) {\n                uVar14 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);\n                FUN_001251f0(uVar14,lVar16);\n                goto LAB_0011c5b0;\n              }\n            }\n            else {\nLAB_0011c5b0:\n              if (DAT_0017fbd0 != 0) goto code_r0x0011c5be;\n            }\n            bfd_set_error_handler(uVar11);\n            goto LAB_0011bf30;\n          }\n        }\n        if (DAT_0017fbd0 == 0) goto LAB_0011bf30;\n        uVar11 = bfd_printable_name(DAT_0017fb10);\n        uVar14 = bfd_printable_name(lVar16);\n        uVar24 = dcgettext(0,\n                           "%X%P: %s architecture of input file `%pB\' is incompatible with %s output\n"\n                           ,5);\n        FUN_001251f0(uVar24,uVar14,lVar16,uVar11);\n        plVar17 = (long *)plVar17[6];\n      }\n      else {\nLAB_0011bf30:\n        plVar17 = (long *)plVar17[6];\n      }\n      if (plVar17 == (long *)0x0) break;\n    } while( true );\n  }" { (do_statement "do {\n      if ((*(byte *)((long)plVar17 + 0x49) & 0x20) == 0) {\n        lVar16 = plVar17[4];\n        lVar13 = bfd_arch_get_compatible(lVar16,DAT_0017fb10,DAT_0017fbdc);\n        lVar15 = DAT_0017fb10;\n        if (((DAT_0017fac0 & 3) == 2) || ((DAT_0017fac3 & 8) != 0)) {\n          if (lVar13 != 0) {\n            puVar21 = *(undefined8 **)(lVar16 + 8);\n            puVar27 = *(undefined8 **)(DAT_0017fb10 + 8);\n            if ((*(int *)(puVar21 + 1) != *(int *)(puVar27 + 1)) &&\n               ((*(byte *)(lVar16 + 0x44) & 0x20) != 0)) goto LAB_0011c12e;\n            goto LAB_0011bed4;\n          }\n          if ((*(byte *)(lVar16 + 0x44) & 0x20) != 0) {\n            puVar21 = *(undefined8 **)(lVar16 + 8);\n            puVar27 = *(undefined8 **)(DAT_0017fb10 + 8);\nLAB_0011c12e:\n            uVar11 = *puVar27;\n            uVar14 = *puVar21;\n            uVar24 = 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_001251f0(uVar24,uVar14,lVar16,uVar11,lVar15);\n            goto joined_r0x0011c167;\n          }\n        }\n        else {\njoined_r0x0011c167:\n          if (lVar13 != 0) {\nLAB_0011bed4:\n            if (*(int *)(lVar16 + 0xa0) == 0) goto LAB_0011bf30;\n            uVar11 = 0;\n            if (DAT_0017fbd0 == 0) {\n              uVar11 = bfd_set_error_handler(FUN_00112380);\n            }\n            iVar9 = (**(code **)(*(long *)(DAT_0017fb10 + 8) + 0x140))(lVar16,&DAT_0017fac0);\n            if (iVar9 == 0) {\n              if (DAT_0017fbd0 != 0) {\n                uVar14 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);\n                FUN_001251f0(uVar14,lVar16);\n                goto LAB_0011c5b0;\n              }\n            }\n            else {\nLAB_0011c5b0:\n              if (DAT_0017fbd0 != 0) goto code_r0x0011c5be;\n            }\n            bfd_set_error_handler(uVar11);\n            goto LAB_0011bf30;\n          }\n        }\n        if (DAT_0017fbd0 == 0) goto LAB_0011bf30;\n        uVar11 = bfd_printable_name(DAT_0017fb10);\n        uVar14 = bfd_printable_name(lVar16);\n        uVar24 = dcgettext(0,\n                           "%X%P: %s architecture of input file `%pB\' is incompatible with %s output\n"\n                           ,5);\n        FUN_001251f0(uVar24,uVar14,lVar16,uVar11);\n        plVar17 = (long *)plVar17[6];\n      }\n      else {\nLAB_0011bf30:\n        plVar17 = (long *)plVar17[6];\n      }\n      if (plVar17 == (long *)0x0) break;\n    } while( true );" do (compound_statement "{\n      if ((*(byte *)((long)plVar17 + 0x49) & 0x20) == 0) {\n        lVar16 = plVar17[4];\n        lVar13 = bfd_arch_get_compatible(lVar16,DAT_0017fb10,DAT_0017fbdc);\n        lVar15 = DAT_0017fb10;\n        if (((DAT_0017fac0 & 3) == 2) || ((DAT_0017fac3 & 8) != 0)) {\n          if (lVar13 != 0) {\n            puVar21 = *(undefined8 **)(lVar16 + 8);\n            puVar27 = *(undefined8 **)(DAT_0017fb10 + 8);\n            if ((*(int *)(puVar21 + 1) != *(int *)(puVar27 + 1)) &&\n               ((*(byte *)(lVar16 + 0x44) & 0x20) != 0)) goto LAB_0011c12e;\n            goto LAB_0011bed4;\n          }\n          if ((*(byte *)(lVar16 + 0x44) & 0x20) != 0) {\n            puVar21 = *(undefined8 **)(lVar16 + 8);\n            puVar27 = *(undefined8 **)(DAT_0017fb10 + 8);\nLAB_0011c12e:\n            uVar11 = *puVar27;\n            uVar14 = *puVar21;\n            uVar24 = 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_001251f0(uVar24,uVar14,lVar16,uVar11,lVar15);\n            goto joined_r0x0011c167;\n          }\n        }\n        else {\njoined_r0x0011c167:\n          if (lVar13 != 0) {\nLAB_0011bed4:\n            if (*(int *)(lVar16 + 0xa0) == 0) goto LAB_0011bf30;\n            uVar11 = 0;\n            if (DAT_0017fbd0 == 0) {\n              uVar11 = bfd_set_error_handler(FUN_00112380);\n            }\n            iVar9 = (**(code **)(*(long *)(DAT_0017fb10 + 8) + 0x140))(lVar16,&DAT_0017fac0);\n            if (iVar9 == 0) {\n              if (DAT_0017fbd0 != 0) {\n                uVar14 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);\n                FUN_001251f0(uVar14,lVar16);\n                goto LAB_0011c5b0;\n              }\n            }\n            else {\nLAB_0011c5b0:\n              if (DAT_0017fbd0 != 0) goto code_r0x0011c5be;\n            }\n            bfd_set_error_handler(uVar11);\n            goto LAB_0011bf30;\n          }\n        }\n        if (DAT_0017fbd0 == 0) goto LAB_0011bf30;\n        uVar11 = bfd_printable_name(DAT_0017fb10);\n        uVar14 = bfd_printable_name(lVar16);\n        uVar24 = dcgettext(0,\n                           "%X%P: %s architecture of input file `%pB\' is incompatible with %s output\n"\n                           ,5);\n        FUN_001251f0(uVar24,uVar14,lVar16,uVar11);\n        plVar17 = (long *)plVar17[6];\n      }\n      else {\nLAB_0011bf30:\n        plVar17 = (long *)plVar17[6];\n      }\n      if (plVar17 == (long *)0x0) break;\n    }" { (if_statement "if ((*(byte *)((long)plVar17 + 0x49) & 0x20) == 0) {\n        lVar16 = plVar17[4];\n        lVar13 = bfd_arch_get_compatible(lVar16,DAT_0017fb10,DAT_0017fbdc);\n        lVar15 = DAT_0017fb10;\n        if (((DAT_0017fac0 & 3) == 2) || ((DAT_0017fac3 & 8) != 0)) {\n          if (lVar13 != 0) {\n            puVar21 = *(undefined8 **)(lVar16 + 8);\n            puVar27 = *(undefined8 **)(DAT_0017fb10 + 8);\n            if ((*(int *)(puVar21 + 1) != *(int *)(puVar27 + 1)) &&\n               ((*(byte *)(lVar16 + 0x44) & 0x20) != 0)) goto LAB_0011c12e;\n            goto LAB_0011bed4;\n          }\n          if ((*(byte *)(lVar16 + 0x44) & 0x20) != 0) {\n            puVar21 = *(undefined8 **)(lVar16 + 8);\n            puVar27 = *(undefined8 **)(DAT_0017fb10 + 8);\nLAB_0011c12e:\n            uVar11 = *puVar27;\n            uVar14 = *puVar21;\n            uVar24 = 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_001251f0(uVar24,uVar14,lVar16,uVar11,lVar15);\n            goto joined_r0x0011c167;\n          }\n        }\n        else {\njoined_r0x0011c167:\n          if (lVar13 != 0) {\nLAB_0011bed4:\n            if (*(int *)(lVar16 + 0xa0) == 0) goto LAB_0011bf30;\n            uVar11 = 0;\n            if (DAT_0017fbd0 == 0) {\n              uVar11 = bfd_set_error_handler(FUN_00112380);\n            }\n            iVar9 = (**(code **)(*(long *)(DAT_0017fb10 + 8) + 0x140))(lVar16,&DAT_0017fac0);\n            if (iVar9 == 0) {\n              if (DAT_0017fbd0 != 0) {\n                uVar14 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);\n                FUN_001251f0(uVar14,lVar16);\n                goto LAB_0011c5b0;\n              }\n            }\n            else {\nLAB_0011c5b0:\n              if (DAT_0017fbd0 != 0) goto code_r0x0011c5be;\n            }\n            bfd_set_error_handler(uVar11);\n            goto LAB_0011bf30;\n          }\n        }\n        if (DAT_0017fbd0 == 0) goto LAB_0011bf30;\n        uVar11 = bfd_printable_name(DAT_0017fb10);\n        uVar14 = bfd_printable_name(lVar16);\n        uVar24 = dcgettext(0,\n                           "%X%P: %s architecture of input file `%pB\' is incompatible with %s output\n"\n                           ,5);\n        FUN_001251f0(uVar24,uVar14,lVar16,uVar11);\n        plVar17 = (long *)plVar17[6];\n      }\n      else {\nLAB_0011bf30:\n        plVar17 = (long *)plVar17[6];\n      }" if (parenthesized_expression "((*(byte *)((long)plVar17 + 0x49) & 0x20) == 0)" ( (binary_expression "(*(byte *)((long)plVar17 + 0x49) & 0x20) == 0" (parenthesized_expression "(*(byte *)((long)plVar17 + 0x49) & 0x20)" ( (binary_expression "*(byte *)((long)plVar17 + 0x49) & 0x20" (pointer_expression "*(byte *)((long)plVar17 + 0x49)" * (cast_expression "(byte *)((long)plVar17 + 0x49)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar17 + 0x49)" ( (binary_expression "(long)plVar17 + 0x49" (cast_expression "(long)plVar17" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n        lVar16 = plVar17[4];\n        lVar13 = bfd_arch_get_compatible(lVar16,DAT_0017fb10,DAT_0017fbdc);\n        lVar15 = DAT_0017fb10;\n        if (((DAT_0017fac0 & 3) == 2) || ((DAT_0017fac3 & 8) != 0)) {\n          if (lVar13 != 0) {\n            puVar21 = *(undefined8 **)(lVar16 + 8);\n            puVar27 = *(undefined8 **)(DAT_0017fb10 + 8);\n            if ((*(int *)(puVar21 + 1) != *(int *)(puVar27 + 1)) &&\n               ((*(byte *)(lVar16 + 0x44) & 0x20) != 0)) goto LAB_0011c12e;\n            goto LAB_0011bed4;\n          }\n          if ((*(byte *)(lVar16 + 0x44) & 0x20) != 0) {\n            puVar21 = *(undefined8 **)(lVar16 + 8);\n            puVar27 = *(undefined8 **)(DAT_0017fb10 + 8);\nLAB_0011c12e:\n            uVar11 = *puVar27;\n            uVar14 = *puVar21;\n            uVar24 = 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_001251f0(uVar24,uVar14,lVar16,uVar11,lVar15);\n            goto joined_r0x0011c167;\n          }\n        }\n        else {\njoined_r0x0011c167:\n          if (lVar13 != 0) {\nLAB_0011bed4:\n            if (*(int *)(lVar16 + 0xa0) == 0) goto LAB_0011bf30;\n            uVar11 = 0;\n            if (DAT_0017fbd0 == 0) {\n              uVar11 = bfd_set_error_handler(FUN_00112380);\n            }\n            iVar9 = (**(code **)(*(long *)(DAT_0017fb10 + 8) + 0x140))(lVar16,&DAT_0017fac0);\n            if (iVar9 == 0) {\n              if (DAT_0017fbd0 != 0) {\n                uVar14 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);\n                FUN_001251f0(uVar14,lVar16);\n                goto LAB_0011c5b0;\n              }\n            }\n            else {\nLAB_0011c5b0:\n              if (DAT_0017fbd0 != 0) goto code_r0x0011c5be;\n            }\n            bfd_set_error_handler(uVar11);\n            goto LAB_0011bf30;\n          }\n        }\n        if (DAT_0017fbd0 == 0) goto LAB_0011bf30;\n        uVar11 = bfd_printable_name(DAT_0017fb10);\n        uVar14 = bfd_printable_name(lVar16);\n        uVar24 = dcgettext(0,\n                           "%X%P: %s architecture of input file `%pB\' is incompatible with %s output\n"\n                           ,5);\n        FUN_001251f0(uVar24,uVar14,lVar16,uVar11);\n        plVar17 = (long *)plVar17[6];\n      }" { (expression_statement "lVar16 = plVar17[4];" (assignment_expression "lVar16 = plVar17[4]" identifier = (subscript_expression "plVar17[4]" identifier [ number_literal ])) ;) (expression_statement "lVar13 = bfd_arch_get_compatible(lVar16,DAT_0017fb10,DAT_0017fbdc);" (assignment_expression "lVar13 = bfd_arch_get_compatible(lVar16,DAT_0017fb10,DAT_0017fbdc)" identifier = (call_expression "bfd_arch_get_compatible(lVar16,DAT_0017fb10,DAT_0017fbdc)" identifier (argument_list "(lVar16,DAT_0017fb10,DAT_0017fbdc)" ( identifier , identifier , identifier )))) ;) (expression_statement "lVar15 = DAT_0017fb10;" (assignment_expression "lVar15 = DAT_0017fb10" identifier = identifier) ;) (if_statement "if (((DAT_0017fac0 & 3) == 2) || ((DAT_0017fac3 & 8) != 0)) {\n          if (lVar13 != 0) {\n            puVar21 = *(undefined8 **)(lVar16 + 8);\n            puVar27 = *(undefined8 **)(DAT_0017fb10 + 8);\n            if ((*(int *)(puVar21 + 1) != *(int *)(puVar27 + 1)) &&\n               ((*(byte *)(lVar16 + 0x44) & 0x20) != 0)) goto LAB_0011c12e;\n            goto LAB_0011bed4;\n          }\n          if ((*(byte *)(lVar16 + 0x44) & 0x20) != 0) {\n            puVar21 = *(undefined8 **)(lVar16 + 8);\n            puVar27 = *(undefined8 **)(DAT_0017fb10 + 8);\nLAB_0011c12e:\n            uVar11 = *puVar27;\n            uVar14 = *puVar21;\n            uVar24 = 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_001251f0(uVar24,uVar14,lVar16,uVar11,lVar15);\n            goto joined_r0x0011c167;\n          }\n        }\n        else {\njoined_r0x0011c167:\n          if (lVar13 != 0) {\nLAB_0011bed4:\n            if (*(int *)(lVar16 + 0xa0) == 0) goto LAB_0011bf30;\n            uVar11 = 0;\n            if (DAT_0017fbd0 == 0) {\n              uVar11 = bfd_set_error_handler(FUN_00112380);\n            }\n            iVar9 = (**(code **)(*(long *)(DAT_0017fb10 + 8) + 0x140))(lVar16,&DAT_0017fac0);\n            if (iVar9 == 0) {\n              if (DAT_0017fbd0 != 0) {\n                uVar14 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);\n                FUN_001251f0(uVar14,lVar16);\n                goto LAB_0011c5b0;\n              }\n            }\n            else {\nLAB_0011c5b0:\n              if (DAT_0017fbd0 != 0) goto code_r0x0011c5be;\n            }\n            bfd_set_error_handler(uVar11);\n            goto LAB_0011bf30;\n          }\n        }" if (parenthesized_expression "(((DAT_0017fac0 & 3) == 2) || ((DAT_0017fac3 & 8) != 0))" ( (binary_expression "((DAT_0017fac0 & 3) == 2) || ((DAT_0017fac3 & 8) != 0)" (parenthesized_expression "((DAT_0017fac0 & 3) == 2)" ( (binary_expression "(DAT_0017fac0 & 3) == 2" (parenthesized_expression "(DAT_0017fac0 & 3)" ( (binary_expression "DAT_0017fac0 & 3" identifier & number_literal) )) == number_literal) )) || (parenthesized_expression "((DAT_0017fac3 & 8) != 0)" ( (binary_expression "(DAT_0017fac3 & 8) != 0" (parenthesized_expression "(DAT_0017fac3 & 8)" ( (binary_expression "DAT_0017fac3 & 8" identifier & number_literal) )) != number_literal) ))) )) (compound_statement "{\n          if (lVar13 != 0) {\n            puVar21 = *(undefined8 **)(lVar16 + 8);\n            puVar27 = *(undefined8 **)(DAT_0017fb10 + 8);\n            if ((*(int *)(puVar21 + 1) != *(int *)(puVar27 + 1)) &&\n               ((*(byte *)(lVar16 + 0x44) & 0x20) != 0)) goto LAB_0011c12e;\n            goto LAB_0011bed4;\n          }\n          if ((*(byte *)(lVar16 + 0x44) & 0x20) != 0) {\n            puVar21 = *(undefined8 **)(lVar16 + 8);\n            puVar27 = *(undefined8 **)(DAT_0017fb10 + 8);\nLAB_0011c12e:\n            uVar11 = *puVar27;\n            uVar14 = *puVar21;\n            uVar24 = 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_001251f0(uVar24,uVar14,lVar16,uVar11,lVar15);\n            goto joined_r0x0011c167;\n          }\n        }" { (if_statement "if (lVar13 != 0) {\n            puVar21 = *(undefined8 **)(lVar16 + 8);\n            puVar27 = *(undefined8 **)(DAT_0017fb10 + 8);\n            if ((*(int *)(puVar21 + 1) != *(int *)(puVar27 + 1)) &&\n               ((*(byte *)(lVar16 + 0x44) & 0x20) != 0)) goto LAB_0011c12e;\n            goto LAB_0011bed4;\n          }" if (parenthesized_expression "(lVar13 != 0)" ( (binary_expression "lVar13 != 0" identifier != number_literal) )) (compound_statement "{\n            puVar21 = *(undefined8 **)(lVar16 + 8);\n            puVar27 = *(undefined8 **)(DAT_0017fb10 + 8);\n            if ((*(int *)(puVar21 + 1) != *(int *)(puVar27 + 1)) &&\n               ((*(byte *)(lVar16 + 0x44) & 0x20) != 0)) goto LAB_0011c12e;\n            goto LAB_0011bed4;\n          }" { (expression_statement "puVar21 = *(undefined8 **)(lVar16 + 8);" (assignment_expression "puVar21 = *(undefined8 **)(lVar16 + 8)" identifier = (pointer_expression "*(undefined8 **)(lVar16 + 8)" * (cast_expression "(undefined8 **)(lVar16 + 8)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar16 + 8)" ( (binary_expression "lVar16 + 8" identifier + number_literal) ))))) ;) (expression_statement "puVar27 = *(undefined8 **)(DAT_0017fb10 + 8);" (assignment_expression "puVar27 = *(undefined8 **)(DAT_0017fb10 + 8)" identifier = (pointer_expression "*(undefined8 **)(DAT_0017fb10 + 8)" * (cast_expression "(undefined8 **)(DAT_0017fb10 + 8)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(DAT_0017fb10 + 8)" ( (binary_expression "DAT_0017fb10 + 8" identifier + number_literal) ))))) ;) (if_statement "if ((*(int *)(puVar21 + 1) != *(int *)(puVar27 + 1)) &&\n               ((*(byte *)(lVar16 + 0x44) & 0x20) != 0)) goto LAB_0011c12e;" if (parenthesized_expression "((*(int *)(puVar21 + 1) != *(int *)(puVar27 + 1)) &&\n               ((*(byte *)(lVar16 + 0x44) & 0x20) != 0))" ( (binary_expression "(*(int *)(puVar21 + 1) != *(int *)(puVar27 + 1)) &&\n               ((*(byte *)(lVar16 + 0x44) & 0x20) != 0)" (parenthesized_expression "(*(int *)(puVar21 + 1) != *(int *)(puVar27 + 1))" ( (binary_expression "*(int *)(puVar21 + 1) != *(int *)(puVar27 + 1)" (pointer_expression "*(int *)(puVar21 + 1)" * (cast_expression "(int *)(puVar21 + 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + 1)" ( (binary_expression "puVar21 + 1" identifier + number_literal) )))) != (pointer_expression "*(int *)(puVar27 + 1)" * (cast_expression "(int *)(puVar27 + 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + 1)" ( (binary_expression "puVar27 + 1" identifier + number_literal) ))))) )) && (parenthesized_expression "((*(byte *)(lVar16 + 0x44) & 0x20) != 0)" ( (binary_expression "(*(byte *)(lVar16 + 0x44) & 0x20) != 0" (parenthesized_expression "(*(byte *)(lVar16 + 0x44) & 0x20)" ( (binary_expression "*(byte *)(lVar16 + 0x44) & 0x20" (pointer_expression "*(byte *)(lVar16 + 0x44)" * (cast_expression "(byte *)(lVar16 + 0x44)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar16 + 0x44)" ( (binary_expression "lVar16 + 0x44" identifier + number_literal) )))) & number_literal) )) != number_literal) ))) )) (goto_statement "goto LAB_0011c12e;" goto statement_identifier ;)) (goto_statement "goto LAB_0011bed4;" goto statement_identifier ;) })) (if_statement "if ((*(byte *)(lVar16 + 0x44) & 0x20) != 0) {\n            puVar21 = *(undefined8 **)(lVar16 + 8);\n            puVar27 = *(undefined8 **)(DAT_0017fb10 + 8);\nLAB_0011c12e:\n            uVar11 = *puVar27;\n            uVar14 = *puVar21;\n            uVar24 = 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_001251f0(uVar24,uVar14,lVar16,uVar11,lVar15);\n            goto joined_r0x0011c167;\n          }" if (parenthesized_expression "((*(byte *)(lVar16 + 0x44) & 0x20) != 0)" ( (binary_expression "(*(byte *)(lVar16 + 0x44) & 0x20) != 0" (parenthesized_expression "(*(byte *)(lVar16 + 0x44) & 0x20)" ( (binary_expression "*(byte *)(lVar16 + 0x44) & 0x20" (pointer_expression "*(byte *)(lVar16 + 0x44)" * (cast_expression "(byte *)(lVar16 + 0x44)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar16 + 0x44)" ( (binary_expression "lVar16 + 0x44" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n            puVar21 = *(undefined8 **)(lVar16 + 8);\n            puVar27 = *(undefined8 **)(DAT_0017fb10 + 8);\nLAB_0011c12e:\n            uVar11 = *puVar27;\n            uVar14 = *puVar21;\n            uVar24 = 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_001251f0(uVar24,uVar14,lVar16,uVar11,lVar15);\n            goto joined_r0x0011c167;\n          }" { (expression_statement "puVar21 = *(undefined8 **)(lVar16 + 8);" (assignment_expression "puVar21 = *(undefined8 **)(lVar16 + 8)" identifier = (pointer_expression "*(undefined8 **)(lVar16 + 8)" * (cast_expression "(undefined8 **)(lVar16 + 8)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar16 + 8)" ( (binary_expression "lVar16 + 8" identifier + number_literal) ))))) ;) (expression_statement "puVar27 = *(undefined8 **)(DAT_0017fb10 + 8);" (assignment_expression "puVar27 = *(undefined8 **)(DAT_0017fb10 + 8)" identifier = (pointer_expression "*(undefined8 **)(DAT_0017fb10 + 8)" * (cast_expression "(undefined8 **)(DAT_0017fb10 + 8)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(DAT_0017fb10 + 8)" ( (binary_expression "DAT_0017fb10 + 8" identifier + number_literal) ))))) ;) (labeled_statement "LAB_0011c12e:\n            uVar11 = *puVar27;" statement_identifier : (expression_statement "uVar11 = *puVar27;" (assignment_expression "uVar11 = *puVar27" identifier = (pointer_expression "*puVar27" * identifier)) ;)) (expression_statement "uVar14 = *puVar21;" (assignment_expression "uVar14 = *puVar21" identifier = (pointer_expression "*puVar21" * identifier)) ;) (expression_statement "uVar24 = 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 "uVar24 = 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_001251f0(uVar24,uVar14,lVar16,uVar11,lVar15);" (call_expression "FUN_001251f0(uVar24,uVar14,lVar16,uVar11,lVar15)" identifier (argument_list "(uVar24,uVar14,lVar16,uVar11,lVar15)" ( identifier , identifier , identifier , identifier , identifier ))) ;) (goto_statement "goto joined_r0x0011c167;" goto statement_identifier ;) })) }) (else_clause "else {\njoined_r0x0011c167:\n          if (lVar13 != 0) {\nLAB_0011bed4:\n            if (*(int *)(lVar16 + 0xa0) == 0) goto LAB_0011bf30;\n            uVar11 = 0;\n            if (DAT_0017fbd0 == 0) {\n              uVar11 = bfd_set_error_handler(FUN_00112380);\n            }\n            iVar9 = (**(code **)(*(long *)(DAT_0017fb10 + 8) + 0x140))(lVar16,&DAT_0017fac0);\n            if (iVar9 == 0) {\n              if (DAT_0017fbd0 != 0) {\n                uVar14 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);\n                FUN_001251f0(uVar14,lVar16);\n                goto LAB_0011c5b0;\n              }\n            }\n            else {\nLAB_0011c5b0:\n              if (DAT_0017fbd0 != 0) goto code_r0x0011c5be;\n            }\n            bfd_set_error_handler(uVar11);\n            goto LAB_0011bf30;\n          }\n        }" else (compound_statement "{\njoined_r0x0011c167:\n          if (lVar13 != 0) {\nLAB_0011bed4:\n            if (*(int *)(lVar16 + 0xa0) == 0) goto LAB_0011bf30;\n            uVar11 = 0;\n            if (DAT_0017fbd0 == 0) {\n              uVar11 = bfd_set_error_handler(FUN_00112380);\n            }\n            iVar9 = (**(code **)(*(long *)(DAT_0017fb10 + 8) + 0x140))(lVar16,&DAT_0017fac0);\n            if (iVar9 == 0) {\n              if (DAT_0017fbd0 != 0) {\n                uVar14 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);\n                FUN_001251f0(uVar14,lVar16);\n                goto LAB_0011c5b0;\n              }\n            }\n            else {\nLAB_0011c5b0:\n              if (DAT_0017fbd0 != 0) goto code_r0x0011c5be;\n            }\n            bfd_set_error_handler(uVar11);\n            goto LAB_0011bf30;\n          }\n        }" { (labeled_statement "joined_r0x0011c167:\n          if (lVar13 != 0) {\nLAB_0011bed4:\n            if (*(int *)(lVar16 + 0xa0) == 0) goto LAB_0011bf30;\n            uVar11 = 0;\n            if (DAT_0017fbd0 == 0) {\n              uVar11 = bfd_set_error_handler(FUN_00112380);\n            }\n            iVar9 = (**(code **)(*(long *)(DAT_0017fb10 + 8) + 0x140))(lVar16,&DAT_0017fac0);\n            if (iVar9 == 0) {\n              if (DAT_0017fbd0 != 0) {\n                uVar14 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);\n                FUN_001251f0(uVar14,lVar16);\n                goto LAB_0011c5b0;\n              }\n            }\n            else {\nLAB_0011c5b0:\n              if (DAT_0017fbd0 != 0) goto code_r0x0011c5be;\n            }\n            bfd_set_error_handler(uVar11);\n            goto LAB_0011bf30;\n          }" statement_identifier : (if_statement "if (lVar13 != 0) {\nLAB_0011bed4:\n            if (*(int *)(lVar16 + 0xa0) == 0) goto LAB_0011bf30;\n            uVar11 = 0;\n            if (DAT_0017fbd0 == 0) {\n              uVar11 = bfd_set_error_handler(FUN_00112380);\n            }\n            iVar9 = (**(code **)(*(long *)(DAT_0017fb10 + 8) + 0x140))(lVar16,&DAT_0017fac0);\n            if (iVar9 == 0) {\n              if (DAT_0017fbd0 != 0) {\n                uVar14 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);\n                FUN_001251f0(uVar14,lVar16);\n                goto LAB_0011c5b0;\n              }\n            }\n            else {\nLAB_0011c5b0:\n              if (DAT_0017fbd0 != 0) goto code_r0x0011c5be;\n            }\n            bfd_set_error_handler(uVar11);\n            goto LAB_0011bf30;\n          }" if (parenthesized_expression "(lVar13 != 0)" ( (binary_expression "lVar13 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_0011bed4:\n            if (*(int *)(lVar16 + 0xa0) == 0) goto LAB_0011bf30;\n            uVar11 = 0;\n            if (DAT_0017fbd0 == 0) {\n              uVar11 = bfd_set_error_handler(FUN_00112380);\n            }\n            iVar9 = (**(code **)(*(long *)(DAT_0017fb10 + 8) + 0x140))(lVar16,&DAT_0017fac0);\n            if (iVar9 == 0) {\n              if (DAT_0017fbd0 != 0) {\n                uVar14 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);\n                FUN_001251f0(uVar14,lVar16);\n                goto LAB_0011c5b0;\n              }\n            }\n            else {\nLAB_0011c5b0:\n              if (DAT_0017fbd0 != 0) goto code_r0x0011c5be;\n            }\n            bfd_set_error_handler(uVar11);\n            goto LAB_0011bf30;\n          }" { (labeled_statement "LAB_0011bed4:\n            if (*(int *)(lVar16 + 0xa0) == 0) goto LAB_0011bf30;" statement_identifier : (if_statement "if (*(int *)(lVar16 + 0xa0) == 0) goto LAB_0011bf30;" if (parenthesized_expression "(*(int *)(lVar16 + 0xa0) == 0)" ( (binary_expression "*(int *)(lVar16 + 0xa0) == 0" (pointer_expression "*(int *)(lVar16 + 0xa0)" * (cast_expression "(int *)(lVar16 + 0xa0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar16 + 0xa0)" ( (binary_expression "lVar16 + 0xa0" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_0011bf30;" goto statement_identifier ;))) (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" identifier = number_literal) ;) (if_statement "if (DAT_0017fbd0 == 0) {\n              uVar11 = bfd_set_error_handler(FUN_00112380);\n            }" if (parenthesized_expression "(DAT_0017fbd0 == 0)" ( (binary_expression "DAT_0017fbd0 == 0" identifier == number_literal) )) (compound_statement "{\n              uVar11 = bfd_set_error_handler(FUN_00112380);\n            }" { (expression_statement "uVar11 = bfd_set_error_handler(FUN_00112380);" (assignment_expression "uVar11 = bfd_set_error_handler(FUN_00112380)" identifier = (call_expression "bfd_set_error_handler(FUN_00112380)" identifier (argument_list "(FUN_00112380)" ( identifier )))) ;) })) (expression_statement "iVar9 = (**(code **)(*(long *)(DAT_0017fb10 + 8) + 0x140))(lVar16,&DAT_0017fac0);" (assignment_expression "iVar9 = (**(code **)(*(long *)(DAT_0017fb10 + 8) + 0x140))(lVar16,&DAT_0017fac0)" identifier = (call_expression "(**(code **)(*(long *)(DAT_0017fb10 + 8) + 0x140))(lVar16,&DAT_0017fac0)" (parenthesized_expression "(**(code **)(*(long *)(DAT_0017fb10 + 8) + 0x140))" ( (pointer_expression "**(code **)(*(long *)(DAT_0017fb10 + 8) + 0x140)" * (pointer_expression "*(code **)(*(long *)(DAT_0017fb10 + 8) + 0x140)" * (cast_expression "(code **)(*(long *)(DAT_0017fb10 + 8) + 0x140)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)(DAT_0017fb10 + 8) + 0x140)" ( (binary_expression "*(long *)(DAT_0017fb10 + 8) + 0x140" (pointer_expression "*(long *)(DAT_0017fb10 + 8)" * (cast_expression "(long *)(DAT_0017fb10 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0017fb10 + 8)" ( (binary_expression "DAT_0017fb10 + 8" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(lVar16,&DAT_0017fac0)" ( identifier , (pointer_expression "&DAT_0017fac0" & identifier) )))) ;) (if_statement "if (iVar9 == 0) {\n              if (DAT_0017fbd0 != 0) {\n                uVar14 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);\n                FUN_001251f0(uVar14,lVar16);\n                goto LAB_0011c5b0;\n              }\n            }\n            else {\nLAB_0011c5b0:\n              if (DAT_0017fbd0 != 0) goto code_r0x0011c5be;\n            }" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (compound_statement "{\n              if (DAT_0017fbd0 != 0) {\n                uVar14 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);\n                FUN_001251f0(uVar14,lVar16);\n                goto LAB_0011c5b0;\n              }\n            }" { (if_statement "if (DAT_0017fbd0 != 0) {\n                uVar14 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);\n                FUN_001251f0(uVar14,lVar16);\n                goto LAB_0011c5b0;\n              }" if (parenthesized_expression "(DAT_0017fbd0 != 0)" ( (binary_expression "DAT_0017fbd0 != 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_001251f0(uVar14,lVar16);\n                goto LAB_0011c5b0;\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_001251f0(uVar14,lVar16);" (call_expression "FUN_001251f0(uVar14,lVar16)" identifier (argument_list "(uVar14,lVar16)" ( identifier , identifier ))) ;) (goto_statement "goto LAB_0011c5b0;" goto statement_identifier ;) })) }) (else_clause "else {\nLAB_0011c5b0:\n              if (DAT_0017fbd0 != 0) goto code_r0x0011c5be;\n            }" else (compound_statement "{\nLAB_0011c5b0:\n              if (DAT_0017fbd0 != 0) goto code_r0x0011c5be;\n            }" { (labeled_statement "LAB_0011c5b0:\n              if (DAT_0017fbd0 != 0) goto code_r0x0011c5be;" statement_identifier : (if_statement "if (DAT_0017fbd0 != 0) goto code_r0x0011c5be;" if (parenthesized_expression "(DAT_0017fbd0 != 0)" ( (binary_expression "DAT_0017fbd0 != 0" identifier != number_literal) )) (goto_statement "goto code_r0x0011c5be;" goto statement_identifier ;))) }))) (expression_statement "bfd_set_error_handler(uVar11);" (call_expression "bfd_set_error_handler(uVar11)" identifier (argument_list "(uVar11)" ( identifier ))) ;) (goto_statement "goto LAB_0011bf30;" goto statement_identifier ;) }))) }))) (if_statement "if (DAT_0017fbd0 == 0) goto LAB_0011bf30;" if (parenthesized_expression "(DAT_0017fbd0 == 0)" ( (binary_expression "DAT_0017fbd0 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0011bf30;" goto statement_identifier ;)) (expression_statement "uVar11 = bfd_printable_name(DAT_0017fb10);" (assignment_expression "uVar11 = bfd_printable_name(DAT_0017fb10)" identifier = (call_expression "bfd_printable_name(DAT_0017fb10)" identifier (argument_list "(DAT_0017fb10)" ( identifier )))) ;) (expression_statement "uVar14 = bfd_printable_name(lVar16);" (assignment_expression "uVar14 = bfd_printable_name(lVar16)" identifier = (call_expression "bfd_printable_name(lVar16)" identifier (argument_list "(lVar16)" ( identifier )))) ;) (expression_statement "uVar24 = dcgettext(0,\n                           "%X%P: %s architecture of input file `%pB\' is incompatible with %s output\n"\n                           ,5);" (assignment_expression "uVar24 = 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_001251f0(uVar24,uVar14,lVar16,uVar11);" (call_expression "FUN_001251f0(uVar24,uVar14,lVar16,uVar11)" identifier (argument_list "(uVar24,uVar14,lVar16,uVar11)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "plVar17 = (long *)plVar17[6];" (assignment_expression "plVar17 = (long *)plVar17[6]" identifier = (cast_expression "(long *)plVar17[6]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar17[6]" identifier [ number_literal ]))) ;) }) (else_clause "else {\nLAB_0011bf30:\n        plVar17 = (long *)plVar17[6];\n      }" else (compound_statement "{\nLAB_0011bf30:\n        plVar17 = (long *)plVar17[6];\n      }" { (labeled_statement "LAB_0011bf30:\n        plVar17 = (long *)plVar17[6];" statement_identifier : (expression_statement "plVar17 = (long *)plVar17[6];" (assignment_expression "plVar17 = (long *)plVar17[6]" identifier = (cast_expression "(long *)plVar17[6]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar17[6]" identifier [ number_literal ]))) ;)) }))) (if_statement "if (plVar17 == (long *)0x0) break;" if (parenthesized_expression "(plVar17 == (long *)0x0)" ( (binary_expression "plVar17 == (long *)0x0" identifier == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) }) while (parenthesized_expression "( true )" ( true )) ;) }))) (if_statement "if (DAT_0017fc30 != 0) {\n    uVar11 = 0;\n    for (plVar17 = DAT_0017f2f0; plVar17 != (long *)0x0; plVar17 = (long *)plVar17[6]) {\n      lVar16 = bfd_get_section_by_name(plVar17[4],".exports");\n      if (lVar16 != 0) {\n        lVar15 = *(long *)(lVar16 + 0x38);\n        pcVar31 = (char *)xmalloc(lVar15);\n        iVar9 = bfd_get_section_contents(plVar17[4],lVar16,pcVar31,0,lVar15);\n        if (iVar9 == 0) {\n          uVar14 = dcgettext(0,"%X%P: unable to read .exports section contents\n",5);\n          FUN_001251f0(uVar14,lVar16);\n        }\n        pcVar19 = pcVar31 + lVar15;\n        for (; pcVar31 < pcVar19; pcVar31 = pcVar31 + sVar12 + 1) {\n          uVar11 = FUN_0011b640(uVar11,pcVar31,0);\n          sVar12 = strlen(pcVar31);\n        }\n        *(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) | 0x208000;\n      }\n    }\n    uVar14 = FUN_0011b640(0,&DAT_0013f157,0,0);\n    lVar15 = xcalloc(1,0x70);\n    lVar16 = DAT_0017fc30;\n    *(undefined8 *)(lVar15 + 0x18) = uVar11;\n    *(undefined8 *)(lVar15 + 0x38) = uVar14;\n    *(code **)(lVar15 + 0x68) = FUN_00112f60;\n    *(undefined4 *)(lVar15 + 0x60) = 0xffffffff;\n    FUN_0011b860(lVar16,lVar15,0);\n  }" if (parenthesized_expression "(DAT_0017fc30 != 0)" ( (binary_expression "DAT_0017fc30 != 0" identifier != number_literal) )) (compound_statement "{\n    uVar11 = 0;\n    for (plVar17 = DAT_0017f2f0; plVar17 != (long *)0x0; plVar17 = (long *)plVar17[6]) {\n      lVar16 = bfd_get_section_by_name(plVar17[4],".exports");\n      if (lVar16 != 0) {\n        lVar15 = *(long *)(lVar16 + 0x38);\n        pcVar31 = (char *)xmalloc(lVar15);\n        iVar9 = bfd_get_section_contents(plVar17[4],lVar16,pcVar31,0,lVar15);\n        if (iVar9 == 0) {\n          uVar14 = dcgettext(0,"%X%P: unable to read .exports section contents\n",5);\n          FUN_001251f0(uVar14,lVar16);\n        }\n        pcVar19 = pcVar31 + lVar15;\n        for (; pcVar31 < pcVar19; pcVar31 = pcVar31 + sVar12 + 1) {\n          uVar11 = FUN_0011b640(uVar11,pcVar31,0);\n          sVar12 = strlen(pcVar31);\n        }\n        *(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) | 0x208000;\n      }\n    }\n    uVar14 = FUN_0011b640(0,&DAT_0013f157,0,0);\n    lVar15 = xcalloc(1,0x70);\n    lVar16 = DAT_0017fc30;\n    *(undefined8 *)(lVar15 + 0x18) = uVar11;\n    *(undefined8 *)(lVar15 + 0x38) = uVar14;\n    *(code **)(lVar15 + 0x68) = FUN_00112f60;\n    *(undefined4 *)(lVar15 + 0x60) = 0xffffffff;\n    FUN_0011b860(lVar16,lVar15,0);\n  }" { (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" identifier = number_literal) ;) (for_statement "for (plVar17 = DAT_0017f2f0; plVar17 != (long *)0x0; plVar17 = (long *)plVar17[6]) {\n      lVar16 = bfd_get_section_by_name(plVar17[4],".exports");\n      if (lVar16 != 0) {\n        lVar15 = *(long *)(lVar16 + 0x38);\n        pcVar31 = (char *)xmalloc(lVar15);\n        iVar9 = bfd_get_section_contents(plVar17[4],lVar16,pcVar31,0,lVar15);\n        if (iVar9 == 0) {\n          uVar14 = dcgettext(0,"%X%P: unable to read .exports section contents\n",5);\n          FUN_001251f0(uVar14,lVar16);\n        }\n        pcVar19 = pcVar31 + lVar15;\n        for (; pcVar31 < pcVar19; pcVar31 = pcVar31 + sVar12 + 1) {\n          uVar11 = FUN_0011b640(uVar11,pcVar31,0);\n          sVar12 = strlen(pcVar31);\n        }\n        *(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) | 0x208000;\n      }\n    }" for ( (assignment_expression "plVar17 = DAT_0017f2f0" identifier = identifier) ; (binary_expression "plVar17 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "plVar17 = (long *)plVar17[6]" identifier = (cast_expression "(long *)plVar17[6]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar17[6]" identifier [ number_literal ]))) ) (compound_statement "{\n      lVar16 = bfd_get_section_by_name(plVar17[4],".exports");\n      if (lVar16 != 0) {\n        lVar15 = *(long *)(lVar16 + 0x38);\n        pcVar31 = (char *)xmalloc(lVar15);\n        iVar9 = bfd_get_section_contents(plVar17[4],lVar16,pcVar31,0,lVar15);\n        if (iVar9 == 0) {\n          uVar14 = dcgettext(0,"%X%P: unable to read .exports section contents\n",5);\n          FUN_001251f0(uVar14,lVar16);\n        }\n        pcVar19 = pcVar31 + lVar15;\n        for (; pcVar31 < pcVar19; pcVar31 = pcVar31 + sVar12 + 1) {\n          uVar11 = FUN_0011b640(uVar11,pcVar31,0);\n          sVar12 = strlen(pcVar31);\n        }\n        *(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) | 0x208000;\n      }\n    }" { (expression_statement "lVar16 = bfd_get_section_by_name(plVar17[4],".exports");" (assignment_expression "lVar16 = bfd_get_section_by_name(plVar17[4],".exports")" identifier = (call_expression "bfd_get_section_by_name(plVar17[4],".exports")" identifier (argument_list "(plVar17[4],".exports")" ( (subscript_expression "plVar17[4]" identifier [ number_literal ]) , (string_literal "".exports"" " string_content ") )))) ;) (if_statement "if (lVar16 != 0) {\n        lVar15 = *(long *)(lVar16 + 0x38);\n        pcVar31 = (char *)xmalloc(lVar15);\n        iVar9 = bfd_get_section_contents(plVar17[4],lVar16,pcVar31,0,lVar15);\n        if (iVar9 == 0) {\n          uVar14 = dcgettext(0,"%X%P: unable to read .exports section contents\n",5);\n          FUN_001251f0(uVar14,lVar16);\n        }\n        pcVar19 = pcVar31 + lVar15;\n        for (; pcVar31 < pcVar19; pcVar31 = pcVar31 + sVar12 + 1) {\n          uVar11 = FUN_0011b640(uVar11,pcVar31,0);\n          sVar12 = strlen(pcVar31);\n        }\n        *(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) | 0x208000;\n      }" if (parenthesized_expression "(lVar16 != 0)" ( (binary_expression "lVar16 != 0" identifier != number_literal) )) (compound_statement "{\n        lVar15 = *(long *)(lVar16 + 0x38);\n        pcVar31 = (char *)xmalloc(lVar15);\n        iVar9 = bfd_get_section_contents(plVar17[4],lVar16,pcVar31,0,lVar15);\n        if (iVar9 == 0) {\n          uVar14 = dcgettext(0,"%X%P: unable to read .exports section contents\n",5);\n          FUN_001251f0(uVar14,lVar16);\n        }\n        pcVar19 = pcVar31 + lVar15;\n        for (; pcVar31 < pcVar19; pcVar31 = pcVar31 + sVar12 + 1) {\n          uVar11 = FUN_0011b640(uVar11,pcVar31,0);\n          sVar12 = strlen(pcVar31);\n        }\n        *(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) | 0x208000;\n      }" { (expression_statement "lVar15 = *(long *)(lVar16 + 0x38);" (assignment_expression "lVar15 = *(long *)(lVar16 + 0x38)" identifier = (pointer_expression "*(long *)(lVar16 + 0x38)" * (cast_expression "(long *)(lVar16 + 0x38)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar16 + 0x38)" ( (binary_expression "lVar16 + 0x38" identifier + number_literal) ))))) ;) (expression_statement "pcVar31 = (char *)xmalloc(lVar15);" (assignment_expression "pcVar31 = (char *)xmalloc(lVar15)" identifier = (cast_expression "(char *)xmalloc(lVar15)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(lVar15)" identifier (argument_list "(lVar15)" ( identifier ))))) ;) (expression_statement "iVar9 = bfd_get_section_contents(plVar17[4],lVar16,pcVar31,0,lVar15);" (assignment_expression "iVar9 = bfd_get_section_contents(plVar17[4],lVar16,pcVar31,0,lVar15)" identifier = (call_expression "bfd_get_section_contents(plVar17[4],lVar16,pcVar31,0,lVar15)" identifier (argument_list "(plVar17[4],lVar16,pcVar31,0,lVar15)" ( (subscript_expression "plVar17[4]" identifier [ number_literal ]) , identifier , identifier , number_literal , identifier )))) ;) (if_statement "if (iVar9 == 0) {\n          uVar14 = dcgettext(0,"%X%P: unable to read .exports section contents\n",5);\n          FUN_001251f0(uVar14,lVar16);\n        }" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (compound_statement "{\n          uVar14 = dcgettext(0,"%X%P: unable to read .exports section contents\n",5);\n          FUN_001251f0(uVar14,lVar16);\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_001251f0(uVar14,lVar16);" (call_expression "FUN_001251f0(uVar14,lVar16)" identifier (argument_list "(uVar14,lVar16)" ( identifier , identifier ))) ;) })) (expression_statement "pcVar19 = pcVar31 + lVar15;" (assignment_expression "pcVar19 = pcVar31 + lVar15" identifier = (binary_expression "pcVar31 + lVar15" identifier + identifier)) ;) (for_statement "for (; pcVar31 < pcVar19; pcVar31 = pcVar31 + sVar12 + 1) {\n          uVar11 = FUN_0011b640(uVar11,pcVar31,0);\n          sVar12 = strlen(pcVar31);\n        }" for ( ; (binary_expression "pcVar31 < pcVar19" identifier < identifier) ; (assignment_expression "pcVar31 = pcVar31 + sVar12 + 1" identifier = (binary_expression "pcVar31 + sVar12 + 1" (binary_expression "pcVar31 + sVar12" identifier + identifier) + number_literal)) ) (compound_statement "{\n          uVar11 = FUN_0011b640(uVar11,pcVar31,0);\n          sVar12 = strlen(pcVar31);\n        }" { (expression_statement "uVar11 = FUN_0011b640(uVar11,pcVar31,0);" (assignment_expression "uVar11 = FUN_0011b640(uVar11,pcVar31,0)" identifier = (call_expression "FUN_0011b640(uVar11,pcVar31,0)" identifier (argument_list "(uVar11,pcVar31,0)" ( identifier , identifier , number_literal )))) ;) (expression_statement "sVar12 = strlen(pcVar31);" (assignment_expression "sVar12 = strlen(pcVar31)" identifier = (call_expression "strlen(pcVar31)" identifier (argument_list "(pcVar31)" ( identifier )))) ;) })) (expression_statement "*(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) | 0x208000;" (assignment_expression "*(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) | 0x208000" (pointer_expression "*(uint *)(lVar16 + 0x20)" * (cast_expression "(uint *)(lVar16 + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar16 + 0x20)" ( (binary_expression "lVar16 + 0x20" identifier + number_literal) )))) = (binary_expression "*(uint *)(lVar16 + 0x20) | 0x208000" (pointer_expression "*(uint *)(lVar16 + 0x20)" * (cast_expression "(uint *)(lVar16 + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar16 + 0x20)" ( (binary_expression "lVar16 + 0x20" identifier + number_literal) )))) | number_literal)) ;) })) })) (expression_statement "uVar14 = FUN_0011b640(0,&DAT_0013f157,0,0);" (assignment_expression "uVar14 = FUN_0011b640(0,&DAT_0013f157,0,0)" identifier = (call_expression "FUN_0011b640(0,&DAT_0013f157,0,0)" identifier (argument_list "(0,&DAT_0013f157,0,0)" ( number_literal , (pointer_expression "&DAT_0013f157" & identifier) , number_literal , number_literal )))) ;) (expression_statement "lVar15 = xcalloc(1,0x70);" (assignment_expression "lVar15 = xcalloc(1,0x70)" identifier = (call_expression "xcalloc(1,0x70)" identifier (argument_list "(1,0x70)" ( number_literal , number_literal )))) ;) (expression_statement "lVar16 = DAT_0017fc30;" (assignment_expression "lVar16 = DAT_0017fc30" identifier = identifier) ;) (expression_statement "*(undefined8 *)(lVar15 + 0x18) = uVar11;" (assignment_expression "*(undefined8 *)(lVar15 + 0x18) = uVar11" (pointer_expression "*(undefined8 *)(lVar15 + 0x18)" * (cast_expression "(undefined8 *)(lVar15 + 0x18)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar15 + 0x18)" ( (binary_expression "lVar15 + 0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined8 *)(lVar15 + 0x38) = uVar14;" (assignment_expression "*(undefined8 *)(lVar15 + 0x38) = uVar14" (pointer_expression "*(undefined8 *)(lVar15 + 0x38)" * (cast_expression "(undefined8 *)(lVar15 + 0x38)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar15 + 0x38)" ( (binary_expression "lVar15 + 0x38" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(lVar15 + 0x68) = FUN_00112f60;" (assignment_expression "*(code **)(lVar15 + 0x68) = FUN_00112f60" (pointer_expression "*(code **)(lVar15 + 0x68)" * (cast_expression "(code **)(lVar15 + 0x68)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar15 + 0x68)" ( (binary_expression "lVar15 + 0x68" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(lVar15 + 0x60) = 0xffffffff;" (assignment_expression "*(undefined4 *)(lVar15 + 0x60) = 0xffffffff" (pointer_expression "*(undefined4 *)(lVar15 + 0x60)" * (cast_expression "(undefined4 *)(lVar15 + 0x60)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar15 + 0x60)" ( (binary_expression "lVar15 + 0x60" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_0011b860(lVar16,lVar15,0);" (call_expression "FUN_0011b860(lVar16,lVar15,0)" identifier (argument_list "(lVar16,lVar15,0)" ( identifier , identifier , number_literal ))) ;) })) (expression_statement "FUN_0011eaa0();" (call_expression "FUN_0011eaa0()" identifier (argument_list "()" ( ))) ;) (if_statement "if ((DAT_0017fc4c != 0) &&\n     (cVar8 = *(char *)(*(long *)(DAT_0017fb10 + 8) + 0x1c), DAT_0017fb20 != 0)) {\n    lVar16 = DAT_0017fb20;\n    do {\n      for (puVar21 = *(undefined8 **)(lVar16 + 0x90); puVar21 != (undefined8 *)0x0;\n          puVar21 = (undefined8 *)puVar21[2]) {\n        while( true ) {\n          pbVar4 = (byte *)*puVar21;\n          bVar35 = *pbVar4;\n          if (bVar35 == 0) break;\n          bVar1 = _sch_istable[(ulong)bVar35 * 2];\n          pbVar20 = pbVar4;\n          while (((bVar1 & 0x8c) != 0 || (bVar35 == 0x5f))) {\n            pbVar20 = pbVar20 + 1;\n            bVar35 = *pbVar20;\n            if (bVar35 == 0) goto LAB_0011d178;\n            bVar1 = _sch_istable[(ulong)bVar35 * 2];\n          }\n          puVar21 = (undefined8 *)puVar21[2];\n          if (puVar21 == (undefined8 *)0x0) goto LAB_0011d163;\n        }\nLAB_0011d178:\n        sVar12 = strlen((char *)pbVar4);\n        pcVar31 = (char *)xmalloc(sVar12 + 10);\n        *pcVar31 = cVar8;\n        sprintf(pcVar31 + (cVar8 != '\0'),"__start_%s",pbVar4);\n        FUN_00112ee0(pcVar31,puVar21);\n        pcVar31[1] = cVar8;\n        builtin_strncpy(pcVar31 + (2 - (ulong)(cVar8 == '\0')),"__stop",6);\n        FUN_00112ee0(pcVar31 + 1,puVar21);\n        free(pcVar31);\n      }\nLAB_0011d163:\n      lVar16 = *(long *)(lVar16 + 0xf0);\n    } while (lVar16 != 0);\n  }" if (parenthesized_expression "((DAT_0017fc4c != 0) &&\n     (cVar8 = *(char *)(*(long *)(DAT_0017fb10 + 8) + 0x1c), DAT_0017fb20 != 0))" ( (binary_expression "(DAT_0017fc4c != 0) &&\n     (cVar8 = *(char *)(*(long *)(DAT_0017fb10 + 8) + 0x1c), DAT_0017fb20 != 0)" (parenthesized_expression "(DAT_0017fc4c != 0)" ( (binary_expression "DAT_0017fc4c != 0" identifier != number_literal) )) && (parenthesized_expression "(cVar8 = *(char *)(*(long *)(DAT_0017fb10 + 8) + 0x1c), DAT_0017fb20 != 0)" ( (comma_expression "cVar8 = *(char *)(*(long *)(DAT_0017fb10 + 8) + 0x1c), DAT_0017fb20 != 0" (assignment_expression "cVar8 = *(char *)(*(long *)(DAT_0017fb10 + 8) + 0x1c)" identifier = (pointer_expression "*(char *)(*(long *)(DAT_0017fb10 + 8) + 0x1c)" * (cast_expression "(char *)(*(long *)(DAT_0017fb10 + 8) + 0x1c)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(DAT_0017fb10 + 8) + 0x1c)" ( (binary_expression "*(long *)(DAT_0017fb10 + 8) + 0x1c" (pointer_expression "*(long *)(DAT_0017fb10 + 8)" * (cast_expression "(long *)(DAT_0017fb10 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0017fb10 + 8)" ( (binary_expression "DAT_0017fb10 + 8" identifier + number_literal) )))) + number_literal) ))))) , (binary_expression "DAT_0017fb20 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n    lVar16 = DAT_0017fb20;\n    do {\n      for (puVar21 = *(undefined8 **)(lVar16 + 0x90); puVar21 != (undefined8 *)0x0;\n          puVar21 = (undefined8 *)puVar21[2]) {\n        while( true ) {\n          pbVar4 = (byte *)*puVar21;\n          bVar35 = *pbVar4;\n          if (bVar35 == 0) break;\n          bVar1 = _sch_istable[(ulong)bVar35 * 2];\n          pbVar20 = pbVar4;\n          while (((bVar1 & 0x8c) != 0 || (bVar35 == 0x5f))) {\n            pbVar20 = pbVar20 + 1;\n            bVar35 = *pbVar20;\n            if (bVar35 == 0) goto LAB_0011d178;\n            bVar1 = _sch_istable[(ulong)bVar35 * 2];\n          }\n          puVar21 = (undefined8 *)puVar21[2];\n          if (puVar21 == (undefined8 *)0x0) goto LAB_0011d163;\n        }\nLAB_0011d178:\n        sVar12 = strlen((char *)pbVar4);\n        pcVar31 = (char *)xmalloc(sVar12 + 10);\n        *pcVar31 = cVar8;\n        sprintf(pcVar31 + (cVar8 != '\0'),"__start_%s",pbVar4);\n        FUN_00112ee0(pcVar31,puVar21);\n        pcVar31[1] = cVar8;\n        builtin_strncpy(pcVar31 + (2 - (ulong)(cVar8 == '\0')),"__stop",6);\n        FUN_00112ee0(pcVar31 + 1,puVar21);\n        free(pcVar31);\n      }\nLAB_0011d163:\n      lVar16 = *(long *)(lVar16 + 0xf0);\n    } while (lVar16 != 0);\n  }" { (expression_statement "lVar16 = DAT_0017fb20;" (assignment_expression "lVar16 = DAT_0017fb20" identifier = identifier) ;) (do_statement "do {\n      for (puVar21 = *(undefined8 **)(lVar16 + 0x90); puVar21 != (undefined8 *)0x0;\n          puVar21 = (undefined8 *)puVar21[2]) {\n        while( true ) {\n          pbVar4 = (byte *)*puVar21;\n          bVar35 = *pbVar4;\n          if (bVar35 == 0) break;\n          bVar1 = _sch_istable[(ulong)bVar35 * 2];\n          pbVar20 = pbVar4;\n          while (((bVar1 & 0x8c) != 0 || (bVar35 == 0x5f))) {\n            pbVar20 = pbVar20 + 1;\n            bVar35 = *pbVar20;\n            if (bVar35 == 0) goto LAB_0011d178;\n            bVar1 = _sch_istable[(ulong)bVar35 * 2];\n          }\n          puVar21 = (undefined8 *)puVar21[2];\n          if (puVar21 == (undefined8 *)0x0) goto LAB_0011d163;\n        }\nLAB_0011d178:\n        sVar12 = strlen((char *)pbVar4);\n        pcVar31 = (char *)xmalloc(sVar12 + 10);\n        *pcVar31 = cVar8;\n        sprintf(pcVar31 + (cVar8 != '\0'),"__start_%s",pbVar4);\n        FUN_00112ee0(pcVar31,puVar21);\n        pcVar31[1] = cVar8;\n        builtin_strncpy(pcVar31 + (2 - (ulong)(cVar8 == '\0')),"__stop",6);\n        FUN_00112ee0(pcVar31 + 1,puVar21);\n        free(pcVar31);\n      }\nLAB_0011d163:\n      lVar16 = *(long *)(lVar16 + 0xf0);\n    } while (lVar16 != 0);" do (compound_statement "{\n      for (puVar21 = *(undefined8 **)(lVar16 + 0x90); puVar21 != (undefined8 *)0x0;\n          puVar21 = (undefined8 *)puVar21[2]) {\n        while( true ) {\n          pbVar4 = (byte *)*puVar21;\n          bVar35 = *pbVar4;\n          if (bVar35 == 0) break;\n          bVar1 = _sch_istable[(ulong)bVar35 * 2];\n          pbVar20 = pbVar4;\n          while (((bVar1 & 0x8c) != 0 || (bVar35 == 0x5f))) {\n            pbVar20 = pbVar20 + 1;\n            bVar35 = *pbVar20;\n            if (bVar35 == 0) goto LAB_0011d178;\n            bVar1 = _sch_istable[(ulong)bVar35 * 2];\n          }\n          puVar21 = (undefined8 *)puVar21[2];\n          if (puVar21 == (undefined8 *)0x0) goto LAB_0011d163;\n        }\nLAB_0011d178:\n        sVar12 = strlen((char *)pbVar4);\n        pcVar31 = (char *)xmalloc(sVar12 + 10);\n        *pcVar31 = cVar8;\n        sprintf(pcVar31 + (cVar8 != '\0'),"__start_%s",pbVar4);\n        FUN_00112ee0(pcVar31,puVar21);\n        pcVar31[1] = cVar8;\n        builtin_strncpy(pcVar31 + (2 - (ulong)(cVar8 == '\0')),"__stop",6);\n        FUN_00112ee0(pcVar31 + 1,puVar21);\n        free(pcVar31);\n      }\nLAB_0011d163:\n      lVar16 = *(long *)(lVar16 + 0xf0);\n    }" { (for_statement "for (puVar21 = *(undefined8 **)(lVar16 + 0x90); puVar21 != (undefined8 *)0x0;\n          puVar21 = (undefined8 *)puVar21[2]) {\n        while( true ) {\n          pbVar4 = (byte *)*puVar21;\n          bVar35 = *pbVar4;\n          if (bVar35 == 0) break;\n          bVar1 = _sch_istable[(ulong)bVar35 * 2];\n          pbVar20 = pbVar4;\n          while (((bVar1 & 0x8c) != 0 || (bVar35 == 0x5f))) {\n            pbVar20 = pbVar20 + 1;\n            bVar35 = *pbVar20;\n            if (bVar35 == 0) goto LAB_0011d178;\n            bVar1 = _sch_istable[(ulong)bVar35 * 2];\n          }\n          puVar21 = (undefined8 *)puVar21[2];\n          if (puVar21 == (undefined8 *)0x0) goto LAB_0011d163;\n        }\nLAB_0011d178:\n        sVar12 = strlen((char *)pbVar4);\n        pcVar31 = (char *)xmalloc(sVar12 + 10);\n        *pcVar31 = cVar8;\n        sprintf(pcVar31 + (cVar8 != '\0'),"__start_%s",pbVar4);\n        FUN_00112ee0(pcVar31,puVar21);\n        pcVar31[1] = cVar8;\n        builtin_strncpy(pcVar31 + (2 - (ulong)(cVar8 == '\0')),"__stop",6);\n        FUN_00112ee0(pcVar31 + 1,puVar21);\n        free(pcVar31);\n      }" for ( (assignment_expression "puVar21 = *(undefined8 **)(lVar16 + 0x90)" identifier = (pointer_expression "*(undefined8 **)(lVar16 + 0x90)" * (cast_expression "(undefined8 **)(lVar16 + 0x90)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar16 + 0x90)" ( (binary_expression "lVar16 + 0x90" identifier + number_literal) ))))) ; (binary_expression "puVar21 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "puVar21 = (undefined8 *)puVar21[2]" identifier = (cast_expression "(undefined8 *)puVar21[2]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar21[2]" identifier [ number_literal ]))) ) (compound_statement "{\n        while( true ) {\n          pbVar4 = (byte *)*puVar21;\n          bVar35 = *pbVar4;\n          if (bVar35 == 0) break;\n          bVar1 = _sch_istable[(ulong)bVar35 * 2];\n          pbVar20 = pbVar4;\n          while (((bVar1 & 0x8c) != 0 || (bVar35 == 0x5f))) {\n            pbVar20 = pbVar20 + 1;\n            bVar35 = *pbVar20;\n            if (bVar35 == 0) goto LAB_0011d178;\n            bVar1 = _sch_istable[(ulong)bVar35 * 2];\n          }\n          puVar21 = (undefined8 *)puVar21[2];\n          if (puVar21 == (undefined8 *)0x0) goto LAB_0011d163;\n        }\nLAB_0011d178:\n        sVar12 = strlen((char *)pbVar4);\n        pcVar31 = (char *)xmalloc(sVar12 + 10);\n        *pcVar31 = cVar8;\n        sprintf(pcVar31 + (cVar8 != '\0'),"__start_%s",pbVar4);\n        FUN_00112ee0(pcVar31,puVar21);\n        pcVar31[1] = cVar8;\n        builtin_strncpy(pcVar31 + (2 - (ulong)(cVar8 == '\0')),"__stop",6);\n        FUN_00112ee0(pcVar31 + 1,puVar21);\n        free(pcVar31);\n      }" { (while_statement "while( true ) {\n          pbVar4 = (byte *)*puVar21;\n          bVar35 = *pbVar4;\n          if (bVar35 == 0) break;\n          bVar1 = _sch_istable[(ulong)bVar35 * 2];\n          pbVar20 = pbVar4;\n          while (((bVar1 & 0x8c) != 0 || (bVar35 == 0x5f))) {\n            pbVar20 = pbVar20 + 1;\n            bVar35 = *pbVar20;\n            if (bVar35 == 0) goto LAB_0011d178;\n            bVar1 = _sch_istable[(ulong)bVar35 * 2];\n          }\n          puVar21 = (undefined8 *)puVar21[2];\n          if (puVar21 == (undefined8 *)0x0) goto LAB_0011d163;\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          pbVar4 = (byte *)*puVar21;\n          bVar35 = *pbVar4;\n          if (bVar35 == 0) break;\n          bVar1 = _sch_istable[(ulong)bVar35 * 2];\n          pbVar20 = pbVar4;\n          while (((bVar1 & 0x8c) != 0 || (bVar35 == 0x5f))) {\n            pbVar20 = pbVar20 + 1;\n            bVar35 = *pbVar20;\n            if (bVar35 == 0) goto LAB_0011d178;\n            bVar1 = _sch_istable[(ulong)bVar35 * 2];\n          }\n          puVar21 = (undefined8 *)puVar21[2];\n          if (puVar21 == (undefined8 *)0x0) goto LAB_0011d163;\n        }" { (expression_statement "pbVar4 = (byte *)*puVar21;" (assignment_expression "pbVar4 = (byte *)*puVar21" identifier = (cast_expression "(byte *)*puVar21" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar21" * identifier))) ;) (expression_statement "bVar35 = *pbVar4;" (assignment_expression "bVar35 = *pbVar4" identifier = (pointer_expression "*pbVar4" * identifier)) ;) (if_statement "if (bVar35 == 0) break;" if (parenthesized_expression "(bVar35 == 0)" ( (binary_expression "bVar35 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "bVar1 = _sch_istable[(ulong)bVar35 * 2];" (assignment_expression "bVar1 = _sch_istable[(ulong)bVar35 * 2]" identifier = (subscript_expression "_sch_istable[(ulong)bVar35 * 2]" identifier [ (binary_expression "(ulong)bVar35 * 2" (cast_expression "(ulong)bVar35" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal) ])) ;) (expression_statement "pbVar20 = pbVar4;" (assignment_expression "pbVar20 = pbVar4" identifier = identifier) ;) (while_statement "while (((bVar1 & 0x8c) != 0 || (bVar35 == 0x5f))) {\n            pbVar20 = pbVar20 + 1;\n            bVar35 = *pbVar20;\n            if (bVar35 == 0) goto LAB_0011d178;\n            bVar1 = _sch_istable[(ulong)bVar35 * 2];\n          }" while (parenthesized_expression "(((bVar1 & 0x8c) != 0 || (bVar35 == 0x5f)))" ( (parenthesized_expression "((bVar1 & 0x8c) != 0 || (bVar35 == 0x5f))" ( (binary_expression "(bVar1 & 0x8c) != 0 || (bVar35 == 0x5f)" (binary_expression "(bVar1 & 0x8c) != 0" (parenthesized_expression "(bVar1 & 0x8c)" ( (binary_expression "bVar1 & 0x8c" identifier & number_literal) )) != number_literal) || (parenthesized_expression "(bVar35 == 0x5f)" ( (binary_expression "bVar35 == 0x5f" identifier == number_literal) ))) )) )) (compound_statement "{\n            pbVar20 = pbVar20 + 1;\n            bVar35 = *pbVar20;\n            if (bVar35 == 0) goto LAB_0011d178;\n            bVar1 = _sch_istable[(ulong)bVar35 * 2];\n          }" { (expression_statement "pbVar20 = pbVar20 + 1;" (assignment_expression "pbVar20 = pbVar20 + 1" identifier = (binary_expression "pbVar20 + 1" identifier + number_literal)) ;) (expression_statement "bVar35 = *pbVar20;" (assignment_expression "bVar35 = *pbVar20" identifier = (pointer_expression "*pbVar20" * identifier)) ;) (if_statement "if (bVar35 == 0) goto LAB_0011d178;" if (parenthesized_expression "(bVar35 == 0)" ( (binary_expression "bVar35 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0011d178;" goto statement_identifier ;)) (expression_statement "bVar1 = _sch_istable[(ulong)bVar35 * 2];" (assignment_expression "bVar1 = _sch_istable[(ulong)bVar35 * 2]" identifier = (subscript_expression "_sch_istable[(ulong)bVar35 * 2]" identifier [ (binary_expression "(ulong)bVar35 * 2" (cast_expression "(ulong)bVar35" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal) ])) ;) })) (expression_statement "puVar21 = (undefined8 *)puVar21[2];" (assignment_expression "puVar21 = (undefined8 *)puVar21[2]" identifier = (cast_expression "(undefined8 *)puVar21[2]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar21[2]" identifier [ number_literal ]))) ;) (if_statement "if (puVar21 == (undefined8 *)0x0) goto LAB_0011d163;" if (parenthesized_expression "(puVar21 == (undefined8 *)0x0)" ( (binary_expression "puVar21 == (undefined8 *)0x0" identifier == (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0011d163;" goto statement_identifier ;)) })) (labeled_statement "LAB_0011d178:\n        sVar12 = strlen((char *)pbVar4);" statement_identifier : (expression_statement "sVar12 = strlen((char *)pbVar4);" (assignment_expression "sVar12 = strlen((char *)pbVar4)" identifier = (call_expression "strlen((char *)pbVar4)" identifier (argument_list "((char *)pbVar4)" ( (cast_expression "(char *)pbVar4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;)) (expression_statement "pcVar31 = (char *)xmalloc(sVar12 + 10);" (assignment_expression "pcVar31 = (char *)xmalloc(sVar12 + 10)" identifier = (cast_expression "(char *)xmalloc(sVar12 + 10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(sVar12 + 10)" identifier (argument_list "(sVar12 + 10)" ( (binary_expression "sVar12 + 10" identifier + number_literal) ))))) ;) (expression_statement "*pcVar31 = cVar8;" (assignment_expression "*pcVar31 = cVar8" (pointer_expression "*pcVar31" * identifier) = identifier) ;) (expression_statement "sprintf(pcVar31 + (cVar8 != '\0'),"__start_%s",pbVar4);" (call_expression "sprintf(pcVar31 + (cVar8 != '\0'),"__start_%s",pbVar4)" identifier (argument_list "(pcVar31 + (cVar8 != '\0'),"__start_%s",pbVar4)" ( (binary_expression "pcVar31 + (cVar8 != '\0')" identifier + (parenthesized_expression "(cVar8 != '\0')" ( (binary_expression "cVar8 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) ))) , (string_literal ""__start_%s"" " string_content ") , identifier ))) ;) (expression_statement "FUN_00112ee0(pcVar31,puVar21);" (call_expression "FUN_00112ee0(pcVar31,puVar21)" identifier (argument_list "(pcVar31,puVar21)" ( identifier , identifier ))) ;) (expression_statement "pcVar31[1] = cVar8;" (assignment_expression "pcVar31[1] = cVar8" (subscript_expression "pcVar31[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "builtin_strncpy(pcVar31 + (2 - (ulong)(cVar8 == '\0')),"__stop",6);" (call_expression "builtin_strncpy(pcVar31 + (2 - (ulong)(cVar8 == '\0')),"__stop",6)" identifier (argument_list "(pcVar31 + (2 - (ulong)(cVar8 == '\0')),"__stop",6)" ( (binary_expression "pcVar31 + (2 - (ulong)(cVar8 == '\0'))" identifier + (parenthesized_expression "(2 - (ulong)(cVar8 == '\0'))" ( (binary_expression "2 - (ulong)(cVar8 == '\0')" number_literal - (call_expression "(ulong)(cVar8 == '\0')" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(cVar8 == '\0')" ( (binary_expression "cVar8 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )))) ))) , (string_literal ""__stop"" " string_content ") , number_literal ))) ;) (expression_statement "FUN_00112ee0(pcVar31 + 1,puVar21);" (call_expression "FUN_00112ee0(pcVar31 + 1,puVar21)" identifier (argument_list "(pcVar31 + 1,puVar21)" ( (binary_expression "pcVar31 + 1" identifier + number_literal) , identifier ))) ;) (expression_statement "free(pcVar31);" (call_expression "free(pcVar31)" identifier (argument_list "(pcVar31)" ( identifier ))) ;) })) (labeled_statement "LAB_0011d163:\n      lVar16 = *(long *)(lVar16 + 0xf0);" statement_identifier : (expression_statement "lVar16 = *(long *)(lVar16 + 0xf0);" (assignment_expression "lVar16 = *(long *)(lVar16 + 0xf0)" identifier = (pointer_expression "*(long *)(lVar16 + 0xf0)" * (cast_expression "(long *)(lVar16 + 0xf0)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar16 + 0xf0)" ( (binary_expression "lVar16 + 0xf0" identifier + number_literal) ))))) ;)) }) while (parenthesized_expression "(lVar16 != 0)" ( (binary_expression "lVar16 != 0" identifier != number_literal) )) ;) })) (expression_statement "FUN_001188a0(1);" (call_expression "FUN_001188a0(1)" identifier (argument_list "(1)" ( number_literal ))) ;) (expression_statement "puVar21 = DAT_0017f398;" (assignment_expression "puVar21 = DAT_0017f398" identifier = identifier) ;) (labeled_statement "joined_r0x0011bfdf:\n  if (puVar21 != (undefined8 *)0x0) {\n    do {\n      if (puVar21[3] != 0) {\n        FUN_00123150();\n        uVar11 = DAT_0017fd20;\n        if (DAT_0017fd38 == 0) {\n          uVar11 = *puVar21;\n          uVar14 = dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);\n          FUN_001251f0(uVar14,uVar11);\n        }\n        else {\n          puVar21[4] = DAT_0017fd20;\n          puVar21[7] = uVar11;\n        }\n      }\n      if (puVar21[6] != 0) {\n        FUN_00123150();\n        if (DAT_0017fd38 == 0) goto LAB_0011c1d0;\n        puVar21[5] = DAT_0017fd20;\n      }\n      puVar21 = (undefined8 *)puVar21[2];\n      if (puVar21 == (undefined8 *)0x0) break;\n    } while( true );\n  }" statement_identifier : (if_statement "if (puVar21 != (undefined8 *)0x0) {\n    do {\n      if (puVar21[3] != 0) {\n        FUN_00123150();\n        uVar11 = DAT_0017fd20;\n        if (DAT_0017fd38 == 0) {\n          uVar11 = *puVar21;\n          uVar14 = dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);\n          FUN_001251f0(uVar14,uVar11);\n        }\n        else {\n          puVar21[4] = DAT_0017fd20;\n          puVar21[7] = uVar11;\n        }\n      }\n      if (puVar21[6] != 0) {\n        FUN_00123150();\n        if (DAT_0017fd38 == 0) goto LAB_0011c1d0;\n        puVar21[5] = DAT_0017fd20;\n      }\n      puVar21 = (undefined8 *)puVar21[2];\n      if (puVar21 == (undefined8 *)0x0) break;\n    } while( true );\n  }" if (parenthesized_expression "(puVar21 != (undefined8 *)0x0)" ( (binary_expression "puVar21 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    do {\n      if (puVar21[3] != 0) {\n        FUN_00123150();\n        uVar11 = DAT_0017fd20;\n        if (DAT_0017fd38 == 0) {\n          uVar11 = *puVar21;\n          uVar14 = dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);\n          FUN_001251f0(uVar14,uVar11);\n        }\n        else {\n          puVar21[4] = DAT_0017fd20;\n          puVar21[7] = uVar11;\n        }\n      }\n      if (puVar21[6] != 0) {\n        FUN_00123150();\n        if (DAT_0017fd38 == 0) goto LAB_0011c1d0;\n        puVar21[5] = DAT_0017fd20;\n      }\n      puVar21 = (undefined8 *)puVar21[2];\n      if (puVar21 == (undefined8 *)0x0) break;\n    } while( true );\n  }" { (do_statement "do {\n      if (puVar21[3] != 0) {\n        FUN_00123150();\n        uVar11 = DAT_0017fd20;\n        if (DAT_0017fd38 == 0) {\n          uVar11 = *puVar21;\n          uVar14 = dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);\n          FUN_001251f0(uVar14,uVar11);\n        }\n        else {\n          puVar21[4] = DAT_0017fd20;\n          puVar21[7] = uVar11;\n        }\n      }\n      if (puVar21[6] != 0) {\n        FUN_00123150();\n        if (DAT_0017fd38 == 0) goto LAB_0011c1d0;\n        puVar21[5] = DAT_0017fd20;\n      }\n      puVar21 = (undefined8 *)puVar21[2];\n      if (puVar21 == (undefined8 *)0x0) break;\n    } while( true );" do (compound_statement "{\n      if (puVar21[3] != 0) {\n        FUN_00123150();\n        uVar11 = DAT_0017fd20;\n        if (DAT_0017fd38 == 0) {\n          uVar11 = *puVar21;\n          uVar14 = dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);\n          FUN_001251f0(uVar14,uVar11);\n        }\n        else {\n          puVar21[4] = DAT_0017fd20;\n          puVar21[7] = uVar11;\n        }\n      }\n      if (puVar21[6] != 0) {\n        FUN_00123150();\n        if (DAT_0017fd38 == 0) goto LAB_0011c1d0;\n        puVar21[5] = DAT_0017fd20;\n      }\n      puVar21 = (undefined8 *)puVar21[2];\n      if (puVar21 == (undefined8 *)0x0) break;\n    }" { (if_statement "if (puVar21[3] != 0) {\n        FUN_00123150();\n        uVar11 = DAT_0017fd20;\n        if (DAT_0017fd38 == 0) {\n          uVar11 = *puVar21;\n          uVar14 = dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);\n          FUN_001251f0(uVar14,uVar11);\n        }\n        else {\n          puVar21[4] = DAT_0017fd20;\n          puVar21[7] = uVar11;\n        }\n      }" if (parenthesized_expression "(puVar21[3] != 0)" ( (binary_expression "puVar21[3] != 0" (subscript_expression "puVar21[3]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n        FUN_00123150();\n        uVar11 = DAT_0017fd20;\n        if (DAT_0017fd38 == 0) {\n          uVar11 = *puVar21;\n          uVar14 = dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);\n          FUN_001251f0(uVar14,uVar11);\n        }\n        else {\n          puVar21[4] = DAT_0017fd20;\n          puVar21[7] = uVar11;\n        }\n      }" { (expression_statement "FUN_00123150();" (call_expression "FUN_00123150()" identifier (argument_list "()" ( ))) ;) (expression_statement "uVar11 = DAT_0017fd20;" (assignment_expression "uVar11 = DAT_0017fd20" identifier = identifier) ;) (if_statement "if (DAT_0017fd38 == 0) {\n          uVar11 = *puVar21;\n          uVar14 = dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);\n          FUN_001251f0(uVar14,uVar11);\n        }\n        else {\n          puVar21[4] = DAT_0017fd20;\n          puVar21[7] = uVar11;\n        }" if (parenthesized_expression "(DAT_0017fd38 == 0)" ( (binary_expression "DAT_0017fd38 == 0" identifier == number_literal) )) (compound_statement "{\n          uVar11 = *puVar21;\n          uVar14 = dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);\n          FUN_001251f0(uVar14,uVar11);\n        }" { (expression_statement "uVar11 = *puVar21;" (assignment_expression "uVar11 = *puVar21" identifier = (pointer_expression "*puVar21" * 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_001251f0(uVar14,uVar11);" (call_expression "FUN_001251f0(uVar14,uVar11)" identifier (argument_list "(uVar14,uVar11)" ( identifier , identifier ))) ;) }) (else_clause "else {\n          puVar21[4] = DAT_0017fd20;\n          puVar21[7] = uVar11;\n        }" else (compound_statement "{\n          puVar21[4] = DAT_0017fd20;\n          puVar21[7] = uVar11;\n        }" { (expression_statement "puVar21[4] = DAT_0017fd20;" (assignment_expression "puVar21[4] = DAT_0017fd20" (subscript_expression "puVar21[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar21[7] = uVar11;" (assignment_expression "puVar21[7] = uVar11" (subscript_expression "puVar21[7]" identifier [ number_literal ]) = identifier) ;) }))) })) (if_statement "if (puVar21[6] != 0) {\n        FUN_00123150();\n        if (DAT_0017fd38 == 0) goto LAB_0011c1d0;\n        puVar21[5] = DAT_0017fd20;\n      }" if (parenthesized_expression "(puVar21[6] != 0)" ( (binary_expression "puVar21[6] != 0" (subscript_expression "puVar21[6]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n        FUN_00123150();\n        if (DAT_0017fd38 == 0) goto LAB_0011c1d0;\n        puVar21[5] = DAT_0017fd20;\n      }" { (expression_statement "FUN_00123150();" (call_expression "FUN_00123150()" identifier (argument_list "()" ( ))) ;) (if_statement "if (DAT_0017fd38 == 0) goto LAB_0011c1d0;" if (parenthesized_expression "(DAT_0017fd38 == 0)" ( (binary_expression "DAT_0017fd38 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0011c1d0;" goto statement_identifier ;)) (expression_statement "puVar21[5] = DAT_0017fd20;" (assignment_expression "puVar21[5] = DAT_0017fd20" (subscript_expression "puVar21[5]" identifier [ number_literal ]) = identifier) ;) })) (expression_statement "puVar21 = (undefined8 *)puVar21[2];" (assignment_expression "puVar21 = (undefined8 *)puVar21[2]" identifier = (cast_expression "(undefined8 *)puVar21[2]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar21[2]" identifier [ number_literal ]))) ;) (if_statement "if (puVar21 == (undefined8 *)0x0) break;" if (parenthesized_expression "(puVar21 == (undefined8 *)0x0)" ( (binary_expression "puVar21 == (undefined8 *)0x0" identifier == (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) }) while (parenthesized_expression "( true )" ( true )) ;) }))) (expression_statement "DAT_0017fd00 = 0;" (assignment_expression "DAT_0017fd00 = 0" identifier = number_literal) ;) (if_statement "if (((DAT_0017fac7 & 0x20) == 0) && (((DAT_0017fac0 & 3) != 2 || (DAT_0017fbc0 != 0)))) {\n    if (DAT_0017fc6c == 0) {\n      bfd_link_hash_traverse(DAT_0017fae8,FUN_001145f0,0);\n    }\n    else {\n      if (DAT_0017fc6c == 2) {\n        local_40 = 4;\n        do {\n          bfd_link_hash_traverse(DAT_0017fae8,FUN_001145f0,&local_40);\n          local_40 = local_40 - 1;\n        } while (local_40 != 0);\n        local_40 = 0;\n      }\n      else {\n        local_40 = 0;\n        do {\n          bfd_link_hash_traverse(DAT_0017fae8,FUN_001145f0,&local_40);\n          local_40 = local_40 + 1;\n        } while (local_40 < 5);\n        local_40 = 0xffffffff;\n      }\n      bfd_link_hash_traverse(DAT_0017fae8,FUN_001145f0,&local_40);\n    }\n  }" if (parenthesized_expression "(((DAT_0017fac7 & 0x20) == 0) && (((DAT_0017fac0 & 3) != 2 || (DAT_0017fbc0 != 0))))" ( (binary_expression "((DAT_0017fac7 & 0x20) == 0) && (((DAT_0017fac0 & 3) != 2 || (DAT_0017fbc0 != 0)))" (parenthesized_expression "((DAT_0017fac7 & 0x20) == 0)" ( (binary_expression "(DAT_0017fac7 & 0x20) == 0" (parenthesized_expression "(DAT_0017fac7 & 0x20)" ( (binary_expression "DAT_0017fac7 & 0x20" identifier & number_literal) )) == number_literal) )) && (parenthesized_expression "(((DAT_0017fac0 & 3) != 2 || (DAT_0017fbc0 != 0)))" ( (parenthesized_expression "((DAT_0017fac0 & 3) != 2 || (DAT_0017fbc0 != 0))" ( (binary_expression "(DAT_0017fac0 & 3) != 2 || (DAT_0017fbc0 != 0)" (binary_expression "(DAT_0017fac0 & 3) != 2" (parenthesized_expression "(DAT_0017fac0 & 3)" ( (binary_expression "DAT_0017fac0 & 3" identifier & number_literal) )) != number_literal) || (parenthesized_expression "(DAT_0017fbc0 != 0)" ( (binary_expression "DAT_0017fbc0 != 0" identifier != number_literal) ))) )) ))) )) (compound_statement "{\n    if (DAT_0017fc6c == 0) {\n      bfd_link_hash_traverse(DAT_0017fae8,FUN_001145f0,0);\n    }\n    else {\n      if (DAT_0017fc6c == 2) {\n        local_40 = 4;\n        do {\n          bfd_link_hash_traverse(DAT_0017fae8,FUN_001145f0,&local_40);\n          local_40 = local_40 - 1;\n        } while (local_40 != 0);\n        local_40 = 0;\n      }\n      else {\n        local_40 = 0;\n        do {\n          bfd_link_hash_traverse(DAT_0017fae8,FUN_001145f0,&local_40);\n          local_40 = local_40 + 1;\n        } while (local_40 < 5);\n        local_40 = 0xffffffff;\n      }\n      bfd_link_hash_traverse(DAT_0017fae8,FUN_001145f0,&local_40);\n    }\n  }" { (if_statement "if (DAT_0017fc6c == 0) {\n      bfd_link_hash_traverse(DAT_0017fae8,FUN_001145f0,0);\n    }\n    else {\n      if (DAT_0017fc6c == 2) {\n        local_40 = 4;\n        do {\n          bfd_link_hash_traverse(DAT_0017fae8,FUN_001145f0,&local_40);\n          local_40 = local_40 - 1;\n        } while (local_40 != 0);\n        local_40 = 0;\n      }\n      else {\n        local_40 = 0;\n        do {\n          bfd_link_hash_traverse(DAT_0017fae8,FUN_001145f0,&local_40);\n          local_40 = local_40 + 1;\n        } while (local_40 < 5);\n        local_40 = 0xffffffff;\n      }\n      bfd_link_hash_traverse(DAT_0017fae8,FUN_001145f0,&local_40);\n    }" if (parenthesized_expression "(DAT_0017fc6c == 0)" ( (binary_expression "DAT_0017fc6c == 0" identifier == number_literal) )) (compound_statement "{\n      bfd_link_hash_traverse(DAT_0017fae8,FUN_001145f0,0);\n    }" { (expression_statement "bfd_link_hash_traverse(DAT_0017fae8,FUN_001145f0,0);" (call_expression "bfd_link_hash_traverse(DAT_0017fae8,FUN_001145f0,0)" identifier (argument_list "(DAT_0017fae8,FUN_001145f0,0)" ( identifier , identifier , number_literal ))) ;) }) (else_clause "else {\n      if (DAT_0017fc6c == 2) {\n        local_40 = 4;\n        do {\n          bfd_link_hash_traverse(DAT_0017fae8,FUN_001145f0,&local_40);\n          local_40 = local_40 - 1;\n        } while (local_40 != 0);\n        local_40 = 0;\n      }\n      else {\n        local_40 = 0;\n        do {\n          bfd_link_hash_traverse(DAT_0017fae8,FUN_001145f0,&local_40);\n          local_40 = local_40 + 1;\n        } while (local_40 < 5);\n        local_40 = 0xffffffff;\n      }\n      bfd_link_hash_traverse(DAT_0017fae8,FUN_001145f0,&local_40);\n    }" else (compound_statement "{\n      if (DAT_0017fc6c == 2) {\n        local_40 = 4;\n        do {\n          bfd_link_hash_traverse(DAT_0017fae8,FUN_001145f0,&local_40);\n          local_40 = local_40 - 1;\n        } while (local_40 != 0);\n        local_40 = 0;\n      }\n      else {\n        local_40 = 0;\n        do {\n          bfd_link_hash_traverse(DAT_0017fae8,FUN_001145f0,&local_40);\n          local_40 = local_40 + 1;\n        } while (local_40 < 5);\n        local_40 = 0xffffffff;\n      }\n      bfd_link_hash_traverse(DAT_0017fae8,FUN_001145f0,&local_40);\n    }" { (if_statement "if (DAT_0017fc6c == 2) {\n        local_40 = 4;\n        do {\n          bfd_link_hash_traverse(DAT_0017fae8,FUN_001145f0,&local_40);\n          local_40 = local_40 - 1;\n        } while (local_40 != 0);\n        local_40 = 0;\n      }\n      else {\n        local_40 = 0;\n        do {\n          bfd_link_hash_traverse(DAT_0017fae8,FUN_001145f0,&local_40);\n          local_40 = local_40 + 1;\n        } while (local_40 < 5);\n        local_40 = 0xffffffff;\n      }" if (parenthesized_expression "(DAT_0017fc6c == 2)" ( (binary_expression "DAT_0017fc6c == 2" identifier == number_literal) )) (compound_statement "{\n        local_40 = 4;\n        do {\n          bfd_link_hash_traverse(DAT_0017fae8,FUN_001145f0,&local_40);\n          local_40 = local_40 - 1;\n        } while (local_40 != 0);\n        local_40 = 0;\n      }" { (expression_statement "local_40 = 4;" (assignment_expression "local_40 = 4" identifier = number_literal) ;) (do_statement "do {\n          bfd_link_hash_traverse(DAT_0017fae8,FUN_001145f0,&local_40);\n          local_40 = local_40 - 1;\n        } while (local_40 != 0);" do (compound_statement "{\n          bfd_link_hash_traverse(DAT_0017fae8,FUN_001145f0,&local_40);\n          local_40 = local_40 - 1;\n        }" { (expression_statement "bfd_link_hash_traverse(DAT_0017fae8,FUN_001145f0,&local_40);" (call_expression "bfd_link_hash_traverse(DAT_0017fae8,FUN_001145f0,&local_40)" identifier (argument_list "(DAT_0017fae8,FUN_001145f0,&local_40)" ( identifier , identifier , (pointer_expression "&local_40" & identifier) ))) ;) (expression_statement "local_40 = local_40 - 1;" (assignment_expression "local_40 = local_40 - 1" identifier = (binary_expression "local_40 - 1" identifier - number_literal)) ;) }) while (parenthesized_expression "(local_40 != 0)" ( (binary_expression "local_40 != 0" identifier != number_literal) )) ;) (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" identifier = number_literal) ;) }) (else_clause "else {\n        local_40 = 0;\n        do {\n          bfd_link_hash_traverse(DAT_0017fae8,FUN_001145f0,&local_40);\n          local_40 = local_40 + 1;\n        } while (local_40 < 5);\n        local_40 = 0xffffffff;\n      }" else (compound_statement "{\n        local_40 = 0;\n        do {\n          bfd_link_hash_traverse(DAT_0017fae8,FUN_001145f0,&local_40);\n          local_40 = local_40 + 1;\n        } while (local_40 < 5);\n        local_40 = 0xffffffff;\n      }" { (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" identifier = number_literal) ;) (do_statement "do {\n          bfd_link_hash_traverse(DAT_0017fae8,FUN_001145f0,&local_40);\n          local_40 = local_40 + 1;\n        } while (local_40 < 5);" do (compound_statement "{\n          bfd_link_hash_traverse(DAT_0017fae8,FUN_001145f0,&local_40);\n          local_40 = local_40 + 1;\n        }" { (expression_statement "bfd_link_hash_traverse(DAT_0017fae8,FUN_001145f0,&local_40);" (call_expression "bfd_link_hash_traverse(DAT_0017fae8,FUN_001145f0,&local_40)" identifier (argument_list "(DAT_0017fae8,FUN_001145f0,&local_40)" ( identifier , identifier , (pointer_expression "&local_40" & identifier) ))) ;) (expression_statement "local_40 = local_40 + 1;" (assignment_expression "local_40 = local_40 + 1" identifier = (binary_expression "local_40 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(local_40 < 5)" ( (binary_expression "local_40 < 5" identifier < number_literal) )) ;) (expression_statement "local_40 = 0xffffffff;" (assignment_expression "local_40 = 0xffffffff" identifier = number_literal) ;) }))) (expression_statement "bfd_link_hash_traverse(DAT_0017fae8,FUN_001145f0,&local_40);" (call_expression "bfd_link_hash_traverse(DAT_0017fae8,FUN_001145f0,&local_40)" identifier (argument_list "(DAT_0017fae8,FUN_001145f0,&local_40)" ( identifier , identifier , (pointer_expression "&local_40" & identifier) ))) ;) }))) })) (expression_statement "FUN_00119400(DAT_0017f430);" (call_expression "FUN_00119400(DAT_0017f430)" identifier (argument_list "(DAT_0017f430)" ( identifier ))) ;) (expression_statement "bVar35 = DAT_0017fac0;" (assignment_expression "bVar35 = DAT_0017fac0" identifier = identifier) ;) (expression_statement "plVar17 = DAT_0017f2f0;" (assignment_expression "plVar17 = DAT_0017f2f0" identifier = identifier) ;) (if_statement "if ((DAT_0017fac0 & 3) == 2) {\n    for (; plVar17 != (long *)0x0; plVar17 = (long *)plVar17[6]) {\n      if ((*(byte *)((long)plVar17 + 0x49) & 0x20) == 0) {\n        for (lVar16 = *(long *)(plVar17[4] + 0x90); lVar16 != 0; lVar16 = *(long *)(lVar16 + 0x10))\n        {\n          if ((*(uint *)(lVar16 + 0x20) & 0x2000) == 0) {\n            *(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) & 0xffff7fff;\n          }\n        }\n      }\n    }\n  }" if (parenthesized_expression "((DAT_0017fac0 & 3) == 2)" ( (binary_expression "(DAT_0017fac0 & 3) == 2" (parenthesized_expression "(DAT_0017fac0 & 3)" ( (binary_expression "DAT_0017fac0 & 3" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n    for (; plVar17 != (long *)0x0; plVar17 = (long *)plVar17[6]) {\n      if ((*(byte *)((long)plVar17 + 0x49) & 0x20) == 0) {\n        for (lVar16 = *(long *)(plVar17[4] + 0x90); lVar16 != 0; lVar16 = *(long *)(lVar16 + 0x10))\n        {\n          if ((*(uint *)(lVar16 + 0x20) & 0x2000) == 0) {\n            *(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) & 0xffff7fff;\n          }\n        }\n      }\n    }\n  }" { (for_statement "for (; plVar17 != (long *)0x0; plVar17 = (long *)plVar17[6]) {\n      if ((*(byte *)((long)plVar17 + 0x49) & 0x20) == 0) {\n        for (lVar16 = *(long *)(plVar17[4] + 0x90); lVar16 != 0; lVar16 = *(long *)(lVar16 + 0x10))\n        {\n          if ((*(uint *)(lVar16 + 0x20) & 0x2000) == 0) {\n            *(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) & 0xffff7fff;\n          }\n        }\n      }\n    }" for ( ; (binary_expression "plVar17 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "plVar17 = (long *)plVar17[6]" identifier = (cast_expression "(long *)plVar17[6]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar17[6]" identifier [ number_literal ]))) ) (compound_statement "{\n      if ((*(byte *)((long)plVar17 + 0x49) & 0x20) == 0) {\n        for (lVar16 = *(long *)(plVar17[4] + 0x90); lVar16 != 0; lVar16 = *(long *)(lVar16 + 0x10))\n        {\n          if ((*(uint *)(lVar16 + 0x20) & 0x2000) == 0) {\n            *(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) & 0xffff7fff;\n          }\n        }\n      }\n    }" { (if_statement "if ((*(byte *)((long)plVar17 + 0x49) & 0x20) == 0) {\n        for (lVar16 = *(long *)(plVar17[4] + 0x90); lVar16 != 0; lVar16 = *(long *)(lVar16 + 0x10))\n        {\n          if ((*(uint *)(lVar16 + 0x20) & 0x2000) == 0) {\n            *(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) & 0xffff7fff;\n          }\n        }\n      }" if (parenthesized_expression "((*(byte *)((long)plVar17 + 0x49) & 0x20) == 0)" ( (binary_expression "(*(byte *)((long)plVar17 + 0x49) & 0x20) == 0" (parenthesized_expression "(*(byte *)((long)plVar17 + 0x49) & 0x20)" ( (binary_expression "*(byte *)((long)plVar17 + 0x49) & 0x20" (pointer_expression "*(byte *)((long)plVar17 + 0x49)" * (cast_expression "(byte *)((long)plVar17 + 0x49)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar17 + 0x49)" ( (binary_expression "(long)plVar17 + 0x49" (cast_expression "(long)plVar17" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n        for (lVar16 = *(long *)(plVar17[4] + 0x90); lVar16 != 0; lVar16 = *(long *)(lVar16 + 0x10))\n        {\n          if ((*(uint *)(lVar16 + 0x20) & 0x2000) == 0) {\n            *(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) & 0xffff7fff;\n          }\n        }\n      }" { (for_statement "for (lVar16 = *(long *)(plVar17[4] + 0x90); lVar16 != 0; lVar16 = *(long *)(lVar16 + 0x10))\n        {\n          if ((*(uint *)(lVar16 + 0x20) & 0x2000) == 0) {\n            *(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) & 0xffff7fff;\n          }\n        }" for ( (assignment_expression "lVar16 = *(long *)(plVar17[4] + 0x90)" identifier = (pointer_expression "*(long *)(plVar17[4] + 0x90)" * (cast_expression "(long *)(plVar17[4] + 0x90)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar17[4] + 0x90)" ( (binary_expression "plVar17[4] + 0x90" (subscript_expression "plVar17[4]" identifier [ number_literal ]) + number_literal) ))))) ; (binary_expression "lVar16 != 0" identifier != number_literal) ; (assignment_expression "lVar16 = *(long *)(lVar16 + 0x10)" identifier = (pointer_expression "*(long *)(lVar16 + 0x10)" * (cast_expression "(long *)(lVar16 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar16 + 0x10)" ( (binary_expression "lVar16 + 0x10" identifier + number_literal) ))))) ) (compound_statement "{\n          if ((*(uint *)(lVar16 + 0x20) & 0x2000) == 0) {\n            *(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) & 0xffff7fff;\n          }\n        }" { (if_statement "if ((*(uint *)(lVar16 + 0x20) & 0x2000) == 0) {\n            *(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) & 0xffff7fff;\n          }" if (parenthesized_expression "((*(uint *)(lVar16 + 0x20) & 0x2000) == 0)" ( (binary_expression "(*(uint *)(lVar16 + 0x20) & 0x2000) == 0" (parenthesized_expression "(*(uint *)(lVar16 + 0x20) & 0x2000)" ( (binary_expression "*(uint *)(lVar16 + 0x20) & 0x2000" (pointer_expression "*(uint *)(lVar16 + 0x20)" * (cast_expression "(uint *)(lVar16 + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar16 + 0x20)" ( (binary_expression "lVar16 + 0x20" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n            *(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) & 0xffff7fff;\n          }" { (expression_statement "*(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) & 0xffff7fff;" (assignment_expression "*(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) & 0xffff7fff" (pointer_expression "*(uint *)(lVar16 + 0x20)" * (cast_expression "(uint *)(lVar16 + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar16 + 0x20)" ( (binary_expression "lVar16 + 0x20" identifier + number_literal) )))) = (binary_expression "*(uint *)(lVar16 + 0x20) & 0xffff7fff" (pointer_expression "*(uint *)(lVar16 + 0x20)" * (cast_expression "(uint *)(lVar16 + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar16 + 0x20)" ( (binary_expression "lVar16 + 0x20" identifier + number_literal) )))) & number_literal)) ;) })) })) })) })) })) (if_statement "if ((bVar35 & 0x40) != 0) {\n    (**(code **)(*(long *)(DAT_0017fb10 + 8) + 0x2f0))(DAT_0017fb10,&DAT_0017fac0);\n  }" if (parenthesized_expression "((bVar35 & 0x40) != 0)" ( (binary_expression "(bVar35 & 0x40) != 0" (parenthesized_expression "(bVar35 & 0x40)" ( (binary_expression "bVar35 & 0x40" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n    (**(code **)(*(long *)(DAT_0017fb10 + 8) + 0x2f0))(DAT_0017fb10,&DAT_0017fac0);\n  }" { (expression_statement "(**(code **)(*(long *)(DAT_0017fb10 + 8) + 0x2f0))(DAT_0017fb10,&DAT_0017fac0);" (call_expression "(**(code **)(*(long *)(DAT_0017fb10 + 8) + 0x2f0))(DAT_0017fb10,&DAT_0017fac0)" (parenthesized_expression "(**(code **)(*(long *)(DAT_0017fb10 + 8) + 0x2f0))" ( (pointer_expression "**(code **)(*(long *)(DAT_0017fb10 + 8) + 0x2f0)" * (pointer_expression "*(code **)(*(long *)(DAT_0017fb10 + 8) + 0x2f0)" * (cast_expression "(code **)(*(long *)(DAT_0017fb10 + 8) + 0x2f0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)(DAT_0017fb10 + 8) + 0x2f0)" ( (binary_expression "*(long *)(DAT_0017fb10 + 8) + 0x2f0" (pointer_expression "*(long *)(DAT_0017fb10 + 8)" * (cast_expression "(long *)(DAT_0017fb10 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0017fb10 + 8)" ( (binary_expression "DAT_0017fb10 + 8" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(DAT_0017fb10,&DAT_0017fac0)" ( identifier , (pointer_expression "&DAT_0017fac0" & identifier) ))) ;) })) (expression_statement "lVar16 = DAT_0017fb20;" (assignment_expression "lVar16 = DAT_0017fb20" identifier = identifier) ;) (if_statement "if ((DAT_0017fac6 & 0x20) != 0) {\n    for (; lVar16 != 0; lVar16 = *(long *)(lVar16 + 0xf0)) {\n      iVar9 = bfd_link_check_relocs(lVar16,&DAT_0017fac0);\n      if (iVar9 == 0) {\n        DAT_0017fc44 = 0;\n      }\n    }\n  }" if (parenthesized_expression "((DAT_0017fac6 & 0x20) != 0)" ( (binary_expression "(DAT_0017fac6 & 0x20) != 0" (parenthesized_expression "(DAT_0017fac6 & 0x20)" ( (binary_expression "DAT_0017fac6 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n    for (; lVar16 != 0; lVar16 = *(long *)(lVar16 + 0xf0)) {\n      iVar9 = bfd_link_check_relocs(lVar16,&DAT_0017fac0);\n      if (iVar9 == 0) {\n        DAT_0017fc44 = 0;\n      }\n    }\n  }" { (for_statement "for (; lVar16 != 0; lVar16 = *(long *)(lVar16 + 0xf0)) {\n      iVar9 = bfd_link_check_relocs(lVar16,&DAT_0017fac0);\n      if (iVar9 == 0) {\n        DAT_0017fc44 = 0;\n      }\n    }" for ( ; (binary_expression "lVar16 != 0" identifier != number_literal) ; (assignment_expression "lVar16 = *(long *)(lVar16 + 0xf0)" identifier = (pointer_expression "*(long *)(lVar16 + 0xf0)" * (cast_expression "(long *)(lVar16 + 0xf0)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar16 + 0xf0)" ( (binary_expression "lVar16 + 0xf0" identifier + number_literal) ))))) ) (compound_statement "{\n      iVar9 = bfd_link_check_relocs(lVar16,&DAT_0017fac0);\n      if (iVar9 == 0) {\n        DAT_0017fc44 = 0;\n      }\n    }" { (expression_statement "iVar9 = bfd_link_check_relocs(lVar16,&DAT_0017fac0);" (assignment_expression "iVar9 = bfd_link_check_relocs(lVar16,&DAT_0017fac0)" identifier = (call_expression "bfd_link_check_relocs(lVar16,&DAT_0017fac0)" identifier (argument_list "(lVar16,&DAT_0017fac0)" ( identifier , (pointer_expression "&DAT_0017fac0" & identifier) )))) ;) (if_statement "if (iVar9 == 0) {\n        DAT_0017fc44 = 0;\n      }" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (compound_statement "{\n        DAT_0017fc44 = 0;\n      }" { (expression_statement "DAT_0017fc44 = 0;" (assignment_expression "DAT_0017fc44 = 0" identifier = number_literal) ;) })) })) })) (expression_statement "FUN_00123ba0();" (call_expression "FUN_00123ba0()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_001124e0(DAT_0017f430);" (call_expression "FUN_001124e0(DAT_0017f430)" identifier (argument_list "(DAT_0017f430)" ( identifier ))) ;) (expression_statement "_DAT_0017f2c0 = _DAT_0017f2c0 + 1;" (assignment_expression "_DAT_0017f2c0 = _DAT_0017f2c0 + 1" identifier = (binary_expression "_DAT_0017f2c0 + 1" identifier + number_literal)) ;) (expression_statement "FUN_00119520(DAT_0017f430,0,0);" (call_expression "FUN_00119520(DAT_0017f430,0,0)" identifier (argument_list "(DAT_0017f430,0,0)" ( identifier , number_literal , number_literal ))) ;) (expression_statement "plVar18 = (long *)0x0;" (assignment_expression "plVar18 = (long *)0x0" identifier = (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "plVar26 = (long *)0x0;" (assignment_expression "plVar26 = (long *)0x0" identifier = (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "plVar17 = DAT_0017fa60;" (assignment_expression "plVar17 = DAT_0017fa60" identifier = identifier) ;) (while_statement "while (plVar36 = plVar17, plVar3 = (long *)*plVar36, plVar3 != (long *)0x0) {\n    plVar17 = plVar3;\n    if ((int)plVar3[1] == 0) {\n      if ((plVar26 != (long *)0x0) && (plVar3 != (long *)plVar26[4])) {\n        FUN_001252b0("../../ld/ldlang.c",0xea0);\n        plVar17 = (long *)*plVar36;\n      }\n      *(int *)((long)plVar3 + 0x84) = -2 - *(int *)((long)plVar3 + 0x84);\n      plVar26 = plVar3;\n      if (plVar18 == (long *)0x0) {\n        plVar18 = plVar3;\n      }\n    }\n    else if ((int)plVar3[1] == 0xe) {\n      lVar16 = FUN_00116e20(plVar3[2],0,0);\n      if (lVar16 == 0) {\nLAB_0011c415:\n        lVar16 = plVar3[2];\n        uVar11 = dcgettext(0,"%F%P: %s not found for insert\n",5);\n        FUN_001251f0(uVar11,lVar16);\n        plVar17 = DAT_0017f2f0;\n        goto joined_r0x0011c458;\n      }\n      if ((int)plVar3[3] != 0) {\n        do {\n          lVar16 = *(long *)(lVar16 + 0x28);\n          if (lVar16 == 0) goto LAB_0011c415;\n        } while (*(int *)(lVar16 + 0x84) < 0);\n      }\n      if (plVar26 != (long *)0x0) {\n        lVar15 = plVar18[5];\n        lVar13 = plVar26[4];\n        *(long *)(lVar15 + 0x20) = lVar13;\n        if (lVar13 == 0) {\n          DAT_0017fa68 = (long *)(lVar15 + 0x20);\n        }\n        else {\n          *(long *)(lVar13 + 0x28) = lVar15;\n        }\n        plVar26[4] = *(long *)(lVar16 + 0x20);\n        if (*(long *)(lVar16 + 0x20) == 0) {\n          DAT_0017fa68 = plVar26 + 4;\n        }\n        else {\n          *(long **)(*(long *)(lVar16 + 0x20) + 0x28) = plVar26;\n        }\n        plVar18[5] = lVar16;\n        lVar13 = 0;\n        lVar15 = 0;\n        *(long **)(lVar16 + 0x20) = plVar18;\n        do {\n          *(int *)((long)plVar18 + 0x84) = -2 - *(int *)((long)plVar18 + 0x84);\n          lVar28 = plVar18[7];\n          if (((lVar28 != 0) && (*(long *)(lVar28 + 0xf0) != 0)) && (lVar13 = lVar28, lVar15 == 0))\n          {\n            lVar15 = lVar28;\n          }\n        } while ((plVar26 != plVar18) && (plVar18 = (long *)plVar18[4], plVar18 != (long *)0x0));\n        plVar18 = (long *)0x0;\n        if (lVar13 != 0) {\n          lVar28 = *(long *)(lVar16 + 0x38);\n          if (lVar28 == 0) {\n            plVar18 = *(long **)(lVar16 + 0x28);\n            if (plVar18 != (long *)0x0) {\n              do {\n                if (((-1 < *(int *)((long)plVar18 + 0x84)) && (lVar28 = plVar18[7], lVar28 != 0)) &&\n                   (*(long *)(lVar28 + 0xf0) != 0)) goto LAB_0011cd61;\n                plVar18 = (long *)plVar18[5];\n              } while (plVar18 != (long *)0x0);\n              plVar18 = (long *)0x0;\n            }\n          }\n          else {\nLAB_0011cd61:\n            plVar18 = (long *)0x0;\n            if (lVar28 != lVar13) {\n              lVar5 = *(long *)(lVar15 + 0x18);\n              lVar33 = *(long *)(lVar13 + 0x10);\n              if (lVar5 == 0) {\n                *(long *)(DAT_0017fb10 + 0x90) = lVar33;\n              }\n              else {\n                *(long *)(lVar5 + 0x10) = lVar33;\n                lVar33 = *(long *)(lVar13 + 0x10);\n              }\n              if (lVar33 == 0) {\n                *(long *)(DAT_0017fb10 + 0x98) = lVar5;\n              }\n              else {\n                *(long *)(lVar33 + 0x18) = lVar5;\n              }\n              lVar5 = *(long *)(lVar28 + 0x10);\n              *(long *)(lVar13 + 0x10) = lVar5;\n              if (lVar5 == 0) {\n                *(long *)(DAT_0017fb10 + 0x98) = lVar13;\n              }\n              else {\n                *(long *)(lVar5 + 0x18) = lVar13;\n              }\n              *(long *)(lVar15 + 0x18) = lVar28;\n              plVar18 = (long *)0x0;\n              *(long *)(lVar28 + 0x10) = lVar15;\n            }\n          }\n        }\n      }\n      plVar17 = (long *)FUN_00112240(lVar16);\n      lVar16 = *DAT_0017fa60;\n      *DAT_0017fa60 = *(long *)*plVar36;\n      lVar15 = *plVar17;\n      *plVar36 = lVar15;\n      if (lVar15 == 0) {\n        DAT_0017f438 = plVar36;\n      }\n      *plVar17 = lVar16;\n      plVar26 = (long *)0x0;\n      plVar17 = DAT_0017fa60;\n    }\n  }" while (parenthesized_expression "(plVar36 = plVar17, plVar3 = (long *)*plVar36, plVar3 != (long *)0x0)" ( (comma_expression "plVar36 = plVar17, plVar3 = (long *)*plVar36, plVar3 != (long *)0x0" (assignment_expression "plVar36 = plVar17" identifier = identifier) , (comma_expression "plVar3 = (long *)*plVar36, plVar3 != (long *)0x0" (assignment_expression "plVar3 = (long *)*plVar36" identifier = (cast_expression "(long *)*plVar36" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar36" * identifier))) , (binary_expression "plVar3 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)))) )) (compound_statement "{\n    plVar17 = plVar3;\n    if ((int)plVar3[1] == 0) {\n      if ((plVar26 != (long *)0x0) && (plVar3 != (long *)plVar26[4])) {\n        FUN_001252b0("../../ld/ldlang.c",0xea0);\n        plVar17 = (long *)*plVar36;\n      }\n      *(int *)((long)plVar3 + 0x84) = -2 - *(int *)((long)plVar3 + 0x84);\n      plVar26 = plVar3;\n      if (plVar18 == (long *)0x0) {\n        plVar18 = plVar3;\n      }\n    }\n    else if ((int)plVar3[1] == 0xe) {\n      lVar16 = FUN_00116e20(plVar3[2],0,0);\n      if (lVar16 == 0) {\nLAB_0011c415:\n        lVar16 = plVar3[2];\n        uVar11 = dcgettext(0,"%F%P: %s not found for insert\n",5);\n        FUN_001251f0(uVar11,lVar16);\n        plVar17 = DAT_0017f2f0;\n        goto joined_r0x0011c458;\n      }\n      if ((int)plVar3[3] != 0) {\n        do {\n          lVar16 = *(long *)(lVar16 + 0x28);\n          if (lVar16 == 0) goto LAB_0011c415;\n        } while (*(int *)(lVar16 + 0x84) < 0);\n      }\n      if (plVar26 != (long *)0x0) {\n        lVar15 = plVar18[5];\n        lVar13 = plVar26[4];\n        *(long *)(lVar15 + 0x20) = lVar13;\n        if (lVar13 == 0) {\n          DAT_0017fa68 = (long *)(lVar15 + 0x20);\n        }\n        else {\n          *(long *)(lVar13 + 0x28) = lVar15;\n        }\n        plVar26[4] = *(long *)(lVar16 + 0x20);\n        if (*(long *)(lVar16 + 0x20) == 0) {\n          DAT_0017fa68 = plVar26 + 4;\n        }\n        else {\n          *(long **)(*(long *)(lVar16 + 0x20) + 0x28) = plVar26;\n        }\n        plVar18[5] = lVar16;\n        lVar13 = 0;\n        lVar15 = 0;\n        *(long **)(lVar16 + 0x20) = plVar18;\n        do {\n          *(int *)((long)plVar18 + 0x84) = -2 - *(int *)((long)plVar18 + 0x84);\n          lVar28 = plVar18[7];\n          if (((lVar28 != 0) && (*(long *)(lVar28 + 0xf0) != 0)) && (lVar13 = lVar28, lVar15 == 0))\n          {\n            lVar15 = lVar28;\n          }\n        } while ((plVar26 != plVar18) && (plVar18 = (long *)plVar18[4], plVar18 != (long *)0x0));\n        plVar18 = (long *)0x0;\n        if (lVar13 != 0) {\n          lVar28 = *(long *)(lVar16 + 0x38);\n          if (lVar28 == 0) {\n            plVar18 = *(long **)(lVar16 + 0x28);\n            if (plVar18 != (long *)0x0) {\n              do {\n                if (((-1 < *(int *)((long)plVar18 + 0x84)) && (lVar28 = plVar18[7], lVar28 != 0)) &&\n                   (*(long *)(lVar28 + 0xf0) != 0)) goto LAB_0011cd61;\n                plVar18 = (long *)plVar18[5];\n              } while (plVar18 != (long *)0x0);\n              plVar18 = (long *)0x0;\n            }\n          }\n          else {\nLAB_0011cd61:\n            plVar18 = (long *)0x0;\n            if (lVar28 != lVar13) {\n              lVar5 = *(long *)(lVar15 + 0x18);\n              lVar33 = *(long *)(lVar13 + 0x10);\n              if (lVar5 == 0) {\n                *(long *)(DAT_0017fb10 + 0x90) = lVar33;\n              }\n              else {\n                *(long *)(lVar5 + 0x10) = lVar33;\n                lVar33 = *(long *)(lVar13 + 0x10);\n              }\n              if (lVar33 == 0) {\n                *(long *)(DAT_0017fb10 + 0x98) = lVar5;\n              }\n              else {\n                *(long *)(lVar33 + 0x18) = lVar5;\n              }\n              lVar5 = *(long *)(lVar28 + 0x10);\n              *(long *)(lVar13 + 0x10) = lVar5;\n              if (lVar5 == 0) {\n                *(long *)(DAT_0017fb10 + 0x98) = lVar13;\n              }\n              else {\n                *(long *)(lVar5 + 0x18) = lVar13;\n              }\n              *(long *)(lVar15 + 0x18) = lVar28;\n              plVar18 = (long *)0x0;\n              *(long *)(lVar28 + 0x10) = lVar15;\n            }\n          }\n        }\n      }\n      plVar17 = (long *)FUN_00112240(lVar16);\n      lVar16 = *DAT_0017fa60;\n      *DAT_0017fa60 = *(long *)*plVar36;\n      lVar15 = *plVar17;\n      *plVar36 = lVar15;\n      if (lVar15 == 0) {\n        DAT_0017f438 = plVar36;\n      }\n      *plVar17 = lVar16;\n      plVar26 = (long *)0x0;\n      plVar17 = DAT_0017fa60;\n    }\n  }" { (expression_statement "plVar17 = plVar3;" (assignment_expression "plVar17 = plVar3" identifier = identifier) ;) (if_statement "if ((int)plVar3[1] == 0) {\n      if ((plVar26 != (long *)0x0) && (plVar3 != (long *)plVar26[4])) {\n        FUN_001252b0("../../ld/ldlang.c",0xea0);\n        plVar17 = (long *)*plVar36;\n      }\n      *(int *)((long)plVar3 + 0x84) = -2 - *(int *)((long)plVar3 + 0x84);\n      plVar26 = plVar3;\n      if (plVar18 == (long *)0x0) {\n        plVar18 = plVar3;\n      }\n    }\n    else if ((int)plVar3[1] == 0xe) {\n      lVar16 = FUN_00116e20(plVar3[2],0,0);\n      if (lVar16 == 0) {\nLAB_0011c415:\n        lVar16 = plVar3[2];\n        uVar11 = dcgettext(0,"%F%P: %s not found for insert\n",5);\n        FUN_001251f0(uVar11,lVar16);\n        plVar17 = DAT_0017f2f0;\n        goto joined_r0x0011c458;\n      }\n      if ((int)plVar3[3] != 0) {\n        do {\n          lVar16 = *(long *)(lVar16 + 0x28);\n          if (lVar16 == 0) goto LAB_0011c415;\n        } while (*(int *)(lVar16 + 0x84) < 0);\n      }\n      if (plVar26 != (long *)0x0) {\n        lVar15 = plVar18[5];\n        lVar13 = plVar26[4];\n        *(long *)(lVar15 + 0x20) = lVar13;\n        if (lVar13 == 0) {\n          DAT_0017fa68 = (long *)(lVar15 + 0x20);\n        }\n        else {\n          *(long *)(lVar13 + 0x28) = lVar15;\n        }\n        plVar26[4] = *(long *)(lVar16 + 0x20);\n        if (*(long *)(lVar16 + 0x20) == 0) {\n          DAT_0017fa68 = plVar26 + 4;\n        }\n        else {\n          *(long **)(*(long *)(lVar16 + 0x20) + 0x28) = plVar26;\n        }\n        plVar18[5] = lVar16;\n        lVar13 = 0;\n        lVar15 = 0;\n        *(long **)(lVar16 + 0x20) = plVar18;\n        do {\n          *(int *)((long)plVar18 + 0x84) = -2 - *(int *)((long)plVar18 + 0x84);\n          lVar28 = plVar18[7];\n          if (((lVar28 != 0) && (*(long *)(lVar28 + 0xf0) != 0)) && (lVar13 = lVar28, lVar15 == 0))\n          {\n            lVar15 = lVar28;\n          }\n        } while ((plVar26 != plVar18) && (plVar18 = (long *)plVar18[4], plVar18 != (long *)0x0));\n        plVar18 = (long *)0x0;\n        if (lVar13 != 0) {\n          lVar28 = *(long *)(lVar16 + 0x38);\n          if (lVar28 == 0) {\n            plVar18 = *(long **)(lVar16 + 0x28);\n            if (plVar18 != (long *)0x0) {\n              do {\n                if (((-1 < *(int *)((long)plVar18 + 0x84)) && (lVar28 = plVar18[7], lVar28 != 0)) &&\n                   (*(long *)(lVar28 + 0xf0) != 0)) goto LAB_0011cd61;\n                plVar18 = (long *)plVar18[5];\n              } while (plVar18 != (long *)0x0);\n              plVar18 = (long *)0x0;\n            }\n          }\n          else {\nLAB_0011cd61:\n            plVar18 = (long *)0x0;\n            if (lVar28 != lVar13) {\n              lVar5 = *(long *)(lVar15 + 0x18);\n              lVar33 = *(long *)(lVar13 + 0x10);\n              if (lVar5 == 0) {\n                *(long *)(DAT_0017fb10 + 0x90) = lVar33;\n              }\n              else {\n                *(long *)(lVar5 + 0x10) = lVar33;\n                lVar33 = *(long *)(lVar13 + 0x10);\n              }\n              if (lVar33 == 0) {\n                *(long *)(DAT_0017fb10 + 0x98) = lVar5;\n              }\n              else {\n                *(long *)(lVar33 + 0x18) = lVar5;\n              }\n              lVar5 = *(long *)(lVar28 + 0x10);\n              *(long *)(lVar13 + 0x10) = lVar5;\n              if (lVar5 == 0) {\n                *(long *)(DAT_0017fb10 + 0x98) = lVar13;\n              }\n              else {\n                *(long *)(lVar5 + 0x18) = lVar13;\n              }\n              *(long *)(lVar15 + 0x18) = lVar28;\n              plVar18 = (long *)0x0;\n              *(long *)(lVar28 + 0x10) = lVar15;\n            }\n          }\n        }\n      }\n      plVar17 = (long *)FUN_00112240(lVar16);\n      lVar16 = *DAT_0017fa60;\n      *DAT_0017fa60 = *(long *)*plVar36;\n      lVar15 = *plVar17;\n      *plVar36 = lVar15;\n      if (lVar15 == 0) {\n        DAT_0017f438 = plVar36;\n      }\n      *plVar17 = lVar16;\n      plVar26 = (long *)0x0;\n      plVar17 = DAT_0017fa60;\n    }" if (parenthesized_expression "((int)plVar3[1] == 0)" ( (binary_expression "(int)plVar3[1] == 0" (cast_expression "(int)plVar3[1]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "plVar3[1]" identifier [ number_literal ])) == number_literal) )) (compound_statement "{\n      if ((plVar26 != (long *)0x0) && (plVar3 != (long *)plVar26[4])) {\n        FUN_001252b0("../../ld/ldlang.c",0xea0);\n        plVar17 = (long *)*plVar36;\n      }\n      *(int *)((long)plVar3 + 0x84) = -2 - *(int *)((long)plVar3 + 0x84);\n      plVar26 = plVar3;\n      if (plVar18 == (long *)0x0) {\n        plVar18 = plVar3;\n      }\n    }" { (if_statement "if ((plVar26 != (long *)0x0) && (plVar3 != (long *)plVar26[4])) {\n        FUN_001252b0("../../ld/ldlang.c",0xea0);\n        plVar17 = (long *)*plVar36;\n      }" if (parenthesized_expression "((plVar26 != (long *)0x0) && (plVar3 != (long *)plVar26[4]))" ( (binary_expression "(plVar26 != (long *)0x0) && (plVar3 != (long *)plVar26[4])" (parenthesized_expression "(plVar26 != (long *)0x0)" ( (binary_expression "plVar26 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(plVar3 != (long *)plVar26[4])" ( (binary_expression "plVar3 != (long *)plVar26[4]" identifier != (cast_expression "(long *)plVar26[4]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar26[4]" identifier [ number_literal ]))) ))) )) (compound_statement "{\n        FUN_001252b0("../../ld/ldlang.c",0xea0);\n        plVar17 = (long *)*plVar36;\n      }" { (expression_statement "FUN_001252b0("../../ld/ldlang.c",0xea0);" (call_expression "FUN_001252b0("../../ld/ldlang.c",0xea0)" identifier (argument_list "("../../ld/ldlang.c",0xea0)" ( (string_literal ""../../ld/ldlang.c"" " string_content ") , number_literal ))) ;) (expression_statement "plVar17 = (long *)*plVar36;" (assignment_expression "plVar17 = (long *)*plVar36" identifier = (cast_expression "(long *)*plVar36" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar36" * identifier))) ;) })) (expression_statement "*(int *)((long)plVar3 + 0x84) = -2 - *(int *)((long)plVar3 + 0x84);" (assignment_expression "*(int *)((long)plVar3 + 0x84) = -2 - *(int *)((long)plVar3 + 0x84)" (pointer_expression "*(int *)((long)plVar3 + 0x84)" * (cast_expression "(int *)((long)plVar3 + 0x84)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar3 + 0x84)" ( (binary_expression "(long)plVar3 + 0x84" (cast_expression "(long)plVar3" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = (binary_expression "-2 - *(int *)((long)plVar3 + 0x84)" number_literal - (pointer_expression "*(int *)((long)plVar3 + 0x84)" * (cast_expression "(int *)((long)plVar3 + 0x84)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar3 + 0x84)" ( (binary_expression "(long)plVar3 + 0x84" (cast_expression "(long)plVar3" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))))) ;) (expression_statement "plVar26 = plVar3;" (assignment_expression "plVar26 = plVar3" identifier = identifier) ;) (if_statement "if (plVar18 == (long *)0x0) {\n        plVar18 = plVar3;\n      }" if (parenthesized_expression "(plVar18 == (long *)0x0)" ( (binary_expression "plVar18 == (long *)0x0" identifier == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        plVar18 = plVar3;\n      }" { (expression_statement "plVar18 = plVar3;" (assignment_expression "plVar18 = plVar3" identifier = identifier) ;) })) }) (else_clause "else if ((int)plVar3[1] == 0xe) {\n      lVar16 = FUN_00116e20(plVar3[2],0,0);\n      if (lVar16 == 0) {\nLAB_0011c415:\n        lVar16 = plVar3[2];\n        uVar11 = dcgettext(0,"%F%P: %s not found for insert\n",5);\n        FUN_001251f0(uVar11,lVar16);\n        plVar17 = DAT_0017f2f0;\n        goto joined_r0x0011c458;\n      }\n      if ((int)plVar3[3] != 0) {\n        do {\n          lVar16 = *(long *)(lVar16 + 0x28);\n          if (lVar16 == 0) goto LAB_0011c415;\n        } while (*(int *)(lVar16 + 0x84) < 0);\n      }\n      if (plVar26 != (long *)0x0) {\n        lVar15 = plVar18[5];\n        lVar13 = plVar26[4];\n        *(long *)(lVar15 + 0x20) = lVar13;\n        if (lVar13 == 0) {\n          DAT_0017fa68 = (long *)(lVar15 + 0x20);\n        }\n        else {\n          *(long *)(lVar13 + 0x28) = lVar15;\n        }\n        plVar26[4] = *(long *)(lVar16 + 0x20);\n        if (*(long *)(lVar16 + 0x20) == 0) {\n          DAT_0017fa68 = plVar26 + 4;\n        }\n        else {\n          *(long **)(*(long *)(lVar16 + 0x20) + 0x28) = plVar26;\n        }\n        plVar18[5] = lVar16;\n        lVar13 = 0;\n        lVar15 = 0;\n        *(long **)(lVar16 + 0x20) = plVar18;\n        do {\n          *(int *)((long)plVar18 + 0x84) = -2 - *(int *)((long)plVar18 + 0x84);\n          lVar28 = plVar18[7];\n          if (((lVar28 != 0) && (*(long *)(lVar28 + 0xf0) != 0)) && (lVar13 = lVar28, lVar15 == 0))\n          {\n            lVar15 = lVar28;\n          }\n        } while ((plVar26 != plVar18) && (plVar18 = (long *)plVar18[4], plVar18 != (long *)0x0));\n        plVar18 = (long *)0x0;\n        if (lVar13 != 0) {\n          lVar28 = *(long *)(lVar16 + 0x38);\n          if (lVar28 == 0) {\n            plVar18 = *(long **)(lVar16 + 0x28);\n            if (plVar18 != (long *)0x0) {\n              do {\n                if (((-1 < *(int *)((long)plVar18 + 0x84)) && (lVar28 = plVar18[7], lVar28 != 0)) &&\n                   (*(long *)(lVar28 + 0xf0) != 0)) goto LAB_0011cd61;\n                plVar18 = (long *)plVar18[5];\n              } while (plVar18 != (long *)0x0);\n              plVar18 = (long *)0x0;\n            }\n          }\n          else {\nLAB_0011cd61:\n            plVar18 = (long *)0x0;\n            if (lVar28 != lVar13) {\n              lVar5 = *(long *)(lVar15 + 0x18);\n              lVar33 = *(long *)(lVar13 + 0x10);\n              if (lVar5 == 0) {\n                *(long *)(DAT_0017fb10 + 0x90) = lVar33;\n              }\n              else {\n                *(long *)(lVar5 + 0x10) = lVar33;\n                lVar33 = *(long *)(lVar13 + 0x10);\n              }\n              if (lVar33 == 0) {\n                *(long *)(DAT_0017fb10 + 0x98) = lVar5;\n              }\n              else {\n                *(long *)(lVar33 + 0x18) = lVar5;\n              }\n              lVar5 = *(long *)(lVar28 + 0x10);\n              *(long *)(lVar13 + 0x10) = lVar5;\n              if (lVar5 == 0) {\n                *(long *)(DAT_0017fb10 + 0x98) = lVar13;\n              }\n              else {\n                *(long *)(lVar5 + 0x18) = lVar13;\n              }\n              *(long *)(lVar15 + 0x18) = lVar28;\n              plVar18 = (long *)0x0;\n              *(long *)(lVar28 + 0x10) = lVar15;\n            }\n          }\n        }\n      }\n      plVar17 = (long *)FUN_00112240(lVar16);\n      lVar16 = *DAT_0017fa60;\n      *DAT_0017fa60 = *(long *)*plVar36;\n      lVar15 = *plVar17;\n      *plVar36 = lVar15;\n      if (lVar15 == 0) {\n        DAT_0017f438 = plVar36;\n      }\n      *plVar17 = lVar16;\n      plVar26 = (long *)0x0;\n      plVar17 = DAT_0017fa60;\n    }" else (if_statement "if ((int)plVar3[1] == 0xe) {\n      lVar16 = FUN_00116e20(plVar3[2],0,0);\n      if (lVar16 == 0) {\nLAB_0011c415:\n        lVar16 = plVar3[2];\n        uVar11 = dcgettext(0,"%F%P: %s not found for insert\n",5);\n        FUN_001251f0(uVar11,lVar16);\n        plVar17 = DAT_0017f2f0;\n        goto joined_r0x0011c458;\n      }\n      if ((int)plVar3[3] != 0) {\n        do {\n          lVar16 = *(long *)(lVar16 + 0x28);\n          if (lVar16 == 0) goto LAB_0011c415;\n        } while (*(int *)(lVar16 + 0x84) < 0);\n      }\n      if (plVar26 != (long *)0x0) {\n        lVar15 = plVar18[5];\n        lVar13 = plVar26[4];\n        *(long *)(lVar15 + 0x20) = lVar13;\n        if (lVar13 == 0) {\n          DAT_0017fa68 = (long *)(lVar15 + 0x20);\n        }\n        else {\n          *(long *)(lVar13 + 0x28) = lVar15;\n        }\n        plVar26[4] = *(long *)(lVar16 + 0x20);\n        if (*(long *)(lVar16 + 0x20) == 0) {\n          DAT_0017fa68 = plVar26 + 4;\n        }\n        else {\n          *(long **)(*(long *)(lVar16 + 0x20) + 0x28) = plVar26;\n        }\n        plVar18[5] = lVar16;\n        lVar13 = 0;\n        lVar15 = 0;\n        *(long **)(lVar16 + 0x20) = plVar18;\n        do {\n          *(int *)((long)plVar18 + 0x84) = -2 - *(int *)((long)plVar18 + 0x84);\n          lVar28 = plVar18[7];\n          if (((lVar28 != 0) && (*(long *)(lVar28 + 0xf0) != 0)) && (lVar13 = lVar28, lVar15 == 0))\n          {\n            lVar15 = lVar28;\n          }\n        } while ((plVar26 != plVar18) && (plVar18 = (long *)plVar18[4], plVar18 != (long *)0x0));\n        plVar18 = (long *)0x0;\n        if (lVar13 != 0) {\n          lVar28 = *(long *)(lVar16 + 0x38);\n          if (lVar28 == 0) {\n            plVar18 = *(long **)(lVar16 + 0x28);\n            if (plVar18 != (long *)0x0) {\n              do {\n                if (((-1 < *(int *)((long)plVar18 + 0x84)) && (lVar28 = plVar18[7], lVar28 != 0)) &&\n                   (*(long *)(lVar28 + 0xf0) != 0)) goto LAB_0011cd61;\n                plVar18 = (long *)plVar18[5];\n              } while (plVar18 != (long *)0x0);\n              plVar18 = (long *)0x0;\n            }\n          }\n          else {\nLAB_0011cd61:\n            plVar18 = (long *)0x0;\n            if (lVar28 != lVar13) {\n              lVar5 = *(long *)(lVar15 + 0x18);\n              lVar33 = *(long *)(lVar13 + 0x10);\n              if (lVar5 == 0) {\n                *(long *)(DAT_0017fb10 + 0x90) = lVar33;\n              }\n              else {\n                *(long *)(lVar5 + 0x10) = lVar33;\n                lVar33 = *(long *)(lVar13 + 0x10);\n              }\n              if (lVar33 == 0) {\n                *(long *)(DAT_0017fb10 + 0x98) = lVar5;\n              }\n              else {\n                *(long *)(lVar33 + 0x18) = lVar5;\n              }\n              lVar5 = *(long *)(lVar28 + 0x10);\n              *(long *)(lVar13 + 0x10) = lVar5;\n              if (lVar5 == 0) {\n                *(long *)(DAT_0017fb10 + 0x98) = lVar13;\n              }\n              else {\n                *(long *)(lVar5 + 0x18) = lVar13;\n              }\n              *(long *)(lVar15 + 0x18) = lVar28;\n              plVar18 = (long *)0x0;\n              *(long *)(lVar28 + 0x10) = lVar15;\n            }\n          }\n        }\n      }\n      plVar17 = (long *)FUN_00112240(lVar16);\n      lVar16 = *DAT_0017fa60;\n      *DAT_0017fa60 = *(long *)*plVar36;\n      lVar15 = *plVar17;\n      *plVar36 = lVar15;\n      if (lVar15 == 0) {\n        DAT_0017f438 = plVar36;\n      }\n      *plVar17 = lVar16;\n      plVar26 = (long *)0x0;\n      plVar17 = DAT_0017fa60;\n    }" if (parenthesized_expression "((int)plVar3[1] == 0xe)" ( (binary_expression "(int)plVar3[1] == 0xe" (cast_expression "(int)plVar3[1]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "plVar3[1]" identifier [ number_literal ])) == number_literal) )) (compound_statement "{\n      lVar16 = FUN_00116e20(plVar3[2],0,0);\n      if (lVar16 == 0) {\nLAB_0011c415:\n        lVar16 = plVar3[2];\n        uVar11 = dcgettext(0,"%F%P: %s not found for insert\n",5);\n        FUN_001251f0(uVar11,lVar16);\n        plVar17 = DAT_0017f2f0;\n        goto joined_r0x0011c458;\n      }\n      if ((int)plVar3[3] != 0) {\n        do {\n          lVar16 = *(long *)(lVar16 + 0x28);\n          if (lVar16 == 0) goto LAB_0011c415;\n        } while (*(int *)(lVar16 + 0x84) < 0);\n      }\n      if (plVar26 != (long *)0x0) {\n        lVar15 = plVar18[5];\n        lVar13 = plVar26[4];\n        *(long *)(lVar15 + 0x20) = lVar13;\n        if (lVar13 == 0) {\n          DAT_0017fa68 = (long *)(lVar15 + 0x20);\n        }\n        else {\n          *(long *)(lVar13 + 0x28) = lVar15;\n        }\n        plVar26[4] = *(long *)(lVar16 + 0x20);\n        if (*(long *)(lVar16 + 0x20) == 0) {\n          DAT_0017fa68 = plVar26 + 4;\n        }\n        else {\n          *(long **)(*(long *)(lVar16 + 0x20) + 0x28) = plVar26;\n        }\n        plVar18[5] = lVar16;\n        lVar13 = 0;\n        lVar15 = 0;\n        *(long **)(lVar16 + 0x20) = plVar18;\n        do {\n          *(int *)((long)plVar18 + 0x84) = -2 - *(int *)((long)plVar18 + 0x84);\n          lVar28 = plVar18[7];\n          if (((lVar28 != 0) && (*(long *)(lVar28 + 0xf0) != 0)) && (lVar13 = lVar28, lVar15 == 0))\n          {\n            lVar15 = lVar28;\n          }\n        } while ((plVar26 != plVar18) && (plVar18 = (long *)plVar18[4], plVar18 != (long *)0x0));\n        plVar18 = (long *)0x0;\n        if (lVar13 != 0) {\n          lVar28 = *(long *)(lVar16 + 0x38);\n          if (lVar28 == 0) {\n            plVar18 = *(long **)(lVar16 + 0x28);\n            if (plVar18 != (long *)0x0) {\n              do {\n                if (((-1 < *(int *)((long)plVar18 + 0x84)) && (lVar28 = plVar18[7], lVar28 != 0)) &&\n                   (*(long *)(lVar28 + 0xf0) != 0)) goto LAB_0011cd61;\n                plVar18 = (long *)plVar18[5];\n              } while (plVar18 != (long *)0x0);\n              plVar18 = (long *)0x0;\n            }\n          }\n          else {\nLAB_0011cd61:\n            plVar18 = (long *)0x0;\n            if (lVar28 != lVar13) {\n              lVar5 = *(long *)(lVar15 + 0x18);\n              lVar33 = *(long *)(lVar13 + 0x10);\n              if (lVar5 == 0) {\n                *(long *)(DAT_0017fb10 + 0x90) = lVar33;\n              }\n              else {\n                *(long *)(lVar5 + 0x10) = lVar33;\n                lVar33 = *(long *)(lVar13 + 0x10);\n              }\n              if (lVar33 == 0) {\n                *(long *)(DAT_0017fb10 + 0x98) = lVar5;\n              }\n              else {\n                *(long *)(lVar33 + 0x18) = lVar5;\n              }\n              lVar5 = *(long *)(lVar28 + 0x10);\n              *(long *)(lVar13 + 0x10) = lVar5;\n              if (lVar5 == 0) {\n                *(long *)(DAT_0017fb10 + 0x98) = lVar13;\n              }\n              else {\n                *(long *)(lVar5 + 0x18) = lVar13;\n              }\n              *(long *)(lVar15 + 0x18) = lVar28;\n              plVar18 = (long *)0x0;\n              *(long *)(lVar28 + 0x10) = lVar15;\n            }\n          }\n        }\n      }\n      plVar17 = (long *)FUN_00112240(lVar16);\n      lVar16 = *DAT_0017fa60;\n      *DAT_0017fa60 = *(long *)*plVar36;\n      lVar15 = *plVar17;\n      *plVar36 = lVar15;\n      if (lVar15 == 0) {\n        DAT_0017f438 = plVar36;\n      }\n      *plVar17 = lVar16;\n      plVar26 = (long *)0x0;\n      plVar17 = DAT_0017fa60;\n    }" { (expression_statement "lVar16 = FUN_00116e20(plVar3[2],0,0);" (assignment_expression "lVar16 = FUN_00116e20(plVar3[2],0,0)" identifier = (call_expression "FUN_00116e20(plVar3[2],0,0)" identifier (argument_list "(plVar3[2],0,0)" ( (subscript_expression "plVar3[2]" identifier [ number_literal ]) , number_literal , number_literal )))) ;) (if_statement "if (lVar16 == 0) {\nLAB_0011c415:\n        lVar16 = plVar3[2];\n        uVar11 = dcgettext(0,"%F%P: %s not found for insert\n",5);\n        FUN_001251f0(uVar11,lVar16);\n        plVar17 = DAT_0017f2f0;\n        goto joined_r0x0011c458;\n      }" if (parenthesized_expression "(lVar16 == 0)" ( (binary_expression "lVar16 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_0011c415:\n        lVar16 = plVar3[2];\n        uVar11 = dcgettext(0,"%F%P: %s not found for insert\n",5);\n        FUN_001251f0(uVar11,lVar16);\n        plVar17 = DAT_0017f2f0;\n        goto joined_r0x0011c458;\n      }" { (labeled_statement "LAB_0011c415:\n        lVar16 = plVar3[2];" statement_identifier : (expression_statement "lVar16 = plVar3[2];" (assignment_expression "lVar16 = plVar3[2]" identifier = (subscript_expression "plVar3[2]" identifier [ number_literal ])) ;)) (expression_statement "uVar11 = dcgettext(0,"%F%P: %s not found for insert\n",5);" (assignment_expression "uVar11 = 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_001251f0(uVar11,lVar16);" (call_expression "FUN_001251f0(uVar11,lVar16)" identifier (argument_list "(uVar11,lVar16)" ( identifier , identifier ))) ;) (expression_statement "plVar17 = DAT_0017f2f0;" (assignment_expression "plVar17 = DAT_0017f2f0" identifier = identifier) ;) (goto_statement "goto joined_r0x0011c458;" goto statement_identifier ;) })) (if_statement "if ((int)plVar3[3] != 0) {\n        do {\n          lVar16 = *(long *)(lVar16 + 0x28);\n          if (lVar16 == 0) goto LAB_0011c415;\n        } while (*(int *)(lVar16 + 0x84) < 0);\n      }" if (parenthesized_expression "((int)plVar3[3] != 0)" ( (binary_expression "(int)plVar3[3] != 0" (cast_expression "(int)plVar3[3]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "plVar3[3]" identifier [ number_literal ])) != number_literal) )) (compound_statement "{\n        do {\n          lVar16 = *(long *)(lVar16 + 0x28);\n          if (lVar16 == 0) goto LAB_0011c415;\n        } while (*(int *)(lVar16 + 0x84) < 0);\n      }" { (do_statement "do {\n          lVar16 = *(long *)(lVar16 + 0x28);\n          if (lVar16 == 0) goto LAB_0011c415;\n        } while (*(int *)(lVar16 + 0x84) < 0);" do (compound_statement "{\n          lVar16 = *(long *)(lVar16 + 0x28);\n          if (lVar16 == 0) goto LAB_0011c415;\n        }" { (expression_statement "lVar16 = *(long *)(lVar16 + 0x28);" (assignment_expression "lVar16 = *(long *)(lVar16 + 0x28)" identifier = (pointer_expression "*(long *)(lVar16 + 0x28)" * (cast_expression "(long *)(lVar16 + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar16 + 0x28)" ( (binary_expression "lVar16 + 0x28" identifier + number_literal) ))))) ;) (if_statement "if (lVar16 == 0) goto LAB_0011c415;" if (parenthesized_expression "(lVar16 == 0)" ( (binary_expression "lVar16 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0011c415;" goto statement_identifier ;)) }) while (parenthesized_expression "(*(int *)(lVar16 + 0x84) < 0)" ( (binary_expression "*(int *)(lVar16 + 0x84) < 0" (pointer_expression "*(int *)(lVar16 + 0x84)" * (cast_expression "(int *)(lVar16 + 0x84)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar16 + 0x84)" ( (binary_expression "lVar16 + 0x84" identifier + number_literal) )))) < number_literal) )) ;) })) (if_statement "if (plVar26 != (long *)0x0) {\n        lVar15 = plVar18[5];\n        lVar13 = plVar26[4];\n        *(long *)(lVar15 + 0x20) = lVar13;\n        if (lVar13 == 0) {\n          DAT_0017fa68 = (long *)(lVar15 + 0x20);\n        }\n        else {\n          *(long *)(lVar13 + 0x28) = lVar15;\n        }\n        plVar26[4] = *(long *)(lVar16 + 0x20);\n        if (*(long *)(lVar16 + 0x20) == 0) {\n          DAT_0017fa68 = plVar26 + 4;\n        }\n        else {\n          *(long **)(*(long *)(lVar16 + 0x20) + 0x28) = plVar26;\n        }\n        plVar18[5] = lVar16;\n        lVar13 = 0;\n        lVar15 = 0;\n        *(long **)(lVar16 + 0x20) = plVar18;\n        do {\n          *(int *)((long)plVar18 + 0x84) = -2 - *(int *)((long)plVar18 + 0x84);\n          lVar28 = plVar18[7];\n          if (((lVar28 != 0) && (*(long *)(lVar28 + 0xf0) != 0)) && (lVar13 = lVar28, lVar15 == 0))\n          {\n            lVar15 = lVar28;\n          }\n        } while ((plVar26 != plVar18) && (plVar18 = (long *)plVar18[4], plVar18 != (long *)0x0));\n        plVar18 = (long *)0x0;\n        if (lVar13 != 0) {\n          lVar28 = *(long *)(lVar16 + 0x38);\n          if (lVar28 == 0) {\n            plVar18 = *(long **)(lVar16 + 0x28);\n            if (plVar18 != (long *)0x0) {\n              do {\n                if (((-1 < *(int *)((long)plVar18 + 0x84)) && (lVar28 = plVar18[7], lVar28 != 0)) &&\n                   (*(long *)(lVar28 + 0xf0) != 0)) goto LAB_0011cd61;\n                plVar18 = (long *)plVar18[5];\n              } while (plVar18 != (long *)0x0);\n              plVar18 = (long *)0x0;\n            }\n          }\n          else {\nLAB_0011cd61:\n            plVar18 = (long *)0x0;\n            if (lVar28 != lVar13) {\n              lVar5 = *(long *)(lVar15 + 0x18);\n              lVar33 = *(long *)(lVar13 + 0x10);\n              if (lVar5 == 0) {\n                *(long *)(DAT_0017fb10 + 0x90) = lVar33;\n              }\n              else {\n                *(long *)(lVar5 + 0x10) = lVar33;\n                lVar33 = *(long *)(lVar13 + 0x10);\n              }\n              if (lVar33 == 0) {\n                *(long *)(DAT_0017fb10 + 0x98) = lVar5;\n              }\n              else {\n                *(long *)(lVar33 + 0x18) = lVar5;\n              }\n              lVar5 = *(long *)(lVar28 + 0x10);\n              *(long *)(lVar13 + 0x10) = lVar5;\n              if (lVar5 == 0) {\n                *(long *)(DAT_0017fb10 + 0x98) = lVar13;\n              }\n              else {\n                *(long *)(lVar5 + 0x18) = lVar13;\n              }\n              *(long *)(lVar15 + 0x18) = lVar28;\n              plVar18 = (long *)0x0;\n              *(long *)(lVar28 + 0x10) = lVar15;\n            }\n          }\n        }\n      }" if (parenthesized_expression "(plVar26 != (long *)0x0)" ( (binary_expression "plVar26 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        lVar15 = plVar18[5];\n        lVar13 = plVar26[4];\n        *(long *)(lVar15 + 0x20) = lVar13;\n        if (lVar13 == 0) {\n          DAT_0017fa68 = (long *)(lVar15 + 0x20);\n        }\n        else {\n          *(long *)(lVar13 + 0x28) = lVar15;\n        }\n        plVar26[4] = *(long *)(lVar16 + 0x20);\n        if (*(long *)(lVar16 + 0x20) == 0) {\n          DAT_0017fa68 = plVar26 + 4;\n        }\n        else {\n          *(long **)(*(long *)(lVar16 + 0x20) + 0x28) = plVar26;\n        }\n        plVar18[5] = lVar16;\n        lVar13 = 0;\n        lVar15 = 0;\n        *(long **)(lVar16 + 0x20) = plVar18;\n        do {\n          *(int *)((long)plVar18 + 0x84) = -2 - *(int *)((long)plVar18 + 0x84);\n          lVar28 = plVar18[7];\n          if (((lVar28 != 0) && (*(long *)(lVar28 + 0xf0) != 0)) && (lVar13 = lVar28, lVar15 == 0))\n          {\n            lVar15 = lVar28;\n          }\n        } while ((plVar26 != plVar18) && (plVar18 = (long *)plVar18[4], plVar18 != (long *)0x0));\n        plVar18 = (long *)0x0;\n        if (lVar13 != 0) {\n          lVar28 = *(long *)(lVar16 + 0x38);\n          if (lVar28 == 0) {\n            plVar18 = *(long **)(lVar16 + 0x28);\n            if (plVar18 != (long *)0x0) {\n              do {\n                if (((-1 < *(int *)((long)plVar18 + 0x84)) && (lVar28 = plVar18[7], lVar28 != 0)) &&\n                   (*(long *)(lVar28 + 0xf0) != 0)) goto LAB_0011cd61;\n                plVar18 = (long *)plVar18[5];\n              } while (plVar18 != (long *)0x0);\n              plVar18 = (long *)0x0;\n            }\n          }\n          else {\nLAB_0011cd61:\n            plVar18 = (long *)0x0;\n            if (lVar28 != lVar13) {\n              lVar5 = *(long *)(lVar15 + 0x18);\n              lVar33 = *(long *)(lVar13 + 0x10);\n              if (lVar5 == 0) {\n                *(long *)(DAT_0017fb10 + 0x90) = lVar33;\n              }\n              else {\n                *(long *)(lVar5 + 0x10) = lVar33;\n                lVar33 = *(long *)(lVar13 + 0x10);\n              }\n              if (lVar33 == 0) {\n                *(long *)(DAT_0017fb10 + 0x98) = lVar5;\n              }\n              else {\n                *(long *)(lVar33 + 0x18) = lVar5;\n              }\n              lVar5 = *(long *)(lVar28 + 0x10);\n              *(long *)(lVar13 + 0x10) = lVar5;\n              if (lVar5 == 0) {\n                *(long *)(DAT_0017fb10 + 0x98) = lVar13;\n              }\n              else {\n                *(long *)(lVar5 + 0x18) = lVar13;\n              }\n              *(long *)(lVar15 + 0x18) = lVar28;\n              plVar18 = (long *)0x0;\n              *(long *)(lVar28 + 0x10) = lVar15;\n            }\n          }\n        }\n      }" { (expression_statement "lVar15 = plVar18[5];" (assignment_expression "lVar15 = plVar18[5]" identifier = (subscript_expression "plVar18[5]" identifier [ number_literal ])) ;) (expression_statement "lVar13 = plVar26[4];" (assignment_expression "lVar13 = plVar26[4]" identifier = (subscript_expression "plVar26[4]" identifier [ number_literal ])) ;) (expression_statement "*(long *)(lVar15 + 0x20) = lVar13;" (assignment_expression "*(long *)(lVar15 + 0x20) = lVar13" (pointer_expression "*(long *)(lVar15 + 0x20)" * (cast_expression "(long *)(lVar15 + 0x20)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar15 + 0x20)" ( (binary_expression "lVar15 + 0x20" identifier + number_literal) )))) = identifier) ;) (if_statement "if (lVar13 == 0) {\n          DAT_0017fa68 = (long *)(lVar15 + 0x20);\n        }\n        else {\n          *(long *)(lVar13 + 0x28) = lVar15;\n        }" if (parenthesized_expression "(lVar13 == 0)" ( (binary_expression "lVar13 == 0" identifier == number_literal) )) (compound_statement "{\n          DAT_0017fa68 = (long *)(lVar15 + 0x20);\n        }" { (expression_statement "DAT_0017fa68 = (long *)(lVar15 + 0x20);" (assignment_expression "DAT_0017fa68 = (long *)(lVar15 + 0x20)" identifier = (cast_expression "(long *)(lVar15 + 0x20)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar15 + 0x20)" ( (binary_expression "lVar15 + 0x20" identifier + number_literal) )))) ;) }) (else_clause "else {\n          *(long *)(lVar13 + 0x28) = lVar15;\n        }" else (compound_statement "{\n          *(long *)(lVar13 + 0x28) = lVar15;\n        }" { (expression_statement "*(long *)(lVar13 + 0x28) = lVar15;" (assignment_expression "*(long *)(lVar13 + 0x28) = lVar15" (pointer_expression "*(long *)(lVar13 + 0x28)" * (cast_expression "(long *)(lVar13 + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar13 + 0x28)" ( (binary_expression "lVar13 + 0x28" identifier + number_literal) )))) = identifier) ;) }))) (expression_statement "plVar26[4] = *(long *)(lVar16 + 0x20);" (assignment_expression "plVar26[4] = *(long *)(lVar16 + 0x20)" (subscript_expression "plVar26[4]" identifier [ number_literal ]) = (pointer_expression "*(long *)(lVar16 + 0x20)" * (cast_expression "(long *)(lVar16 + 0x20)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar16 + 0x20)" ( (binary_expression "lVar16 + 0x20" identifier + number_literal) ))))) ;) (if_statement "if (*(long *)(lVar16 + 0x20) == 0) {\n          DAT_0017fa68 = plVar26 + 4;\n        }\n        else {\n          *(long **)(*(long *)(lVar16 + 0x20) + 0x28) = plVar26;\n        }" if (parenthesized_expression "(*(long *)(lVar16 + 0x20) == 0)" ( (binary_expression "*(long *)(lVar16 + 0x20) == 0" (pointer_expression "*(long *)(lVar16 + 0x20)" * (cast_expression "(long *)(lVar16 + 0x20)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar16 + 0x20)" ( (binary_expression "lVar16 + 0x20" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n          DAT_0017fa68 = plVar26 + 4;\n        }" { (expression_statement "DAT_0017fa68 = plVar26 + 4;" (assignment_expression "DAT_0017fa68 = plVar26 + 4" identifier = (binary_expression "plVar26 + 4" identifier + number_literal)) ;) }) (else_clause "else {\n          *(long **)(*(long *)(lVar16 + 0x20) + 0x28) = plVar26;\n        }" else (compound_statement "{\n          *(long **)(*(long *)(lVar16 + 0x20) + 0x28) = plVar26;\n        }" { (expression_statement "*(long **)(*(long *)(lVar16 + 0x20) + 0x28) = plVar26;" (assignment_expression "*(long **)(*(long *)(lVar16 + 0x20) + 0x28) = plVar26" (pointer_expression "*(long **)(*(long *)(lVar16 + 0x20) + 0x28)" * (cast_expression "(long **)(*(long *)(lVar16 + 0x20) + 0x28)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)(lVar16 + 0x20) + 0x28)" ( (binary_expression "*(long *)(lVar16 + 0x20) + 0x28" (pointer_expression "*(long *)(lVar16 + 0x20)" * (cast_expression "(long *)(lVar16 + 0x20)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar16 + 0x20)" ( (binary_expression "lVar16 + 0x20" identifier + number_literal) )))) + number_literal) )))) = identifier) ;) }))) (expression_statement "plVar18[5] = lVar16;" (assignment_expression "plVar18[5] = lVar16" (subscript_expression "plVar18[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "lVar13 = 0;" (assignment_expression "lVar13 = 0" identifier = number_literal) ;) (expression_statement "lVar15 = 0;" (assignment_expression "lVar15 = 0" identifier = number_literal) ;) (expression_statement "*(long **)(lVar16 + 0x20) = plVar18;" (assignment_expression "*(long **)(lVar16 + 0x20) = plVar18" (pointer_expression "*(long **)(lVar16 + 0x20)" * (cast_expression "(long **)(lVar16 + 0x20)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar16 + 0x20)" ( (binary_expression "lVar16 + 0x20" identifier + number_literal) )))) = identifier) ;) (do_statement "do {\n          *(int *)((long)plVar18 + 0x84) = -2 - *(int *)((long)plVar18 + 0x84);\n          lVar28 = plVar18[7];\n          if (((lVar28 != 0) && (*(long *)(lVar28 + 0xf0) != 0)) && (lVar13 = lVar28, lVar15 == 0))\n          {\n            lVar15 = lVar28;\n          }\n        } while ((plVar26 != plVar18) && (plVar18 = (long *)plVar18[4], plVar18 != (long *)0x0));" do (compound_statement "{\n          *(int *)((long)plVar18 + 0x84) = -2 - *(int *)((long)plVar18 + 0x84);\n          lVar28 = plVar18[7];\n          if (((lVar28 != 0) && (*(long *)(lVar28 + 0xf0) != 0)) && (lVar13 = lVar28, lVar15 == 0))\n          {\n            lVar15 = lVar28;\n          }\n        }" { (expression_statement "*(int *)((long)plVar18 + 0x84) = -2 - *(int *)((long)plVar18 + 0x84);" (assignment_expression "*(int *)((long)plVar18 + 0x84) = -2 - *(int *)((long)plVar18 + 0x84)" (pointer_expression "*(int *)((long)plVar18 + 0x84)" * (cast_expression "(int *)((long)plVar18 + 0x84)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar18 + 0x84)" ( (binary_expression "(long)plVar18 + 0x84" (cast_expression "(long)plVar18" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = (binary_expression "-2 - *(int *)((long)plVar18 + 0x84)" number_literal - (pointer_expression "*(int *)((long)plVar18 + 0x84)" * (cast_expression "(int *)((long)plVar18 + 0x84)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar18 + 0x84)" ( (binary_expression "(long)plVar18 + 0x84" (cast_expression "(long)plVar18" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))))) ;) (expression_statement "lVar28 = plVar18[7];" (assignment_expression "lVar28 = plVar18[7]" identifier = (subscript_expression "plVar18[7]" identifier [ number_literal ])) ;) (if_statement "if (((lVar28 != 0) && (*(long *)(lVar28 + 0xf0) != 0)) && (lVar13 = lVar28, lVar15 == 0))\n          {\n            lVar15 = lVar28;\n          }" if (parenthesized_expression "(((lVar28 != 0) && (*(long *)(lVar28 + 0xf0) != 0)) && (lVar13 = lVar28, lVar15 == 0))" ( (binary_expression "((lVar28 != 0) && (*(long *)(lVar28 + 0xf0) != 0)) && (lVar13 = lVar28, lVar15 == 0)" (parenthesized_expression "((lVar28 != 0) && (*(long *)(lVar28 + 0xf0) != 0))" ( (binary_expression "(lVar28 != 0) && (*(long *)(lVar28 + 0xf0) != 0)" (parenthesized_expression "(lVar28 != 0)" ( (binary_expression "lVar28 != 0" identifier != number_literal) )) && (parenthesized_expression "(*(long *)(lVar28 + 0xf0) != 0)" ( (binary_expression "*(long *)(lVar28 + 0xf0) != 0" (pointer_expression "*(long *)(lVar28 + 0xf0)" * (cast_expression "(long *)(lVar28 + 0xf0)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar28 + 0xf0)" ( (binary_expression "lVar28 + 0xf0" identifier + number_literal) )))) != number_literal) ))) )) && (parenthesized_expression "(lVar13 = lVar28, lVar15 == 0)" ( (comma_expression "lVar13 = lVar28, lVar15 == 0" (assignment_expression "lVar13 = lVar28" identifier = identifier) , (binary_expression "lVar15 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n            lVar15 = lVar28;\n          }" { (expression_statement "lVar15 = lVar28;" (assignment_expression "lVar15 = lVar28" identifier = identifier) ;) })) }) while (parenthesized_expression "((plVar26 != plVar18) && (plVar18 = (long *)plVar18[4], plVar18 != (long *)0x0))" ( (binary_expression "(plVar26 != plVar18) && (plVar18 = (long *)plVar18[4], plVar18 != (long *)0x0)" (parenthesized_expression "(plVar26 != plVar18)" ( (binary_expression "plVar26 != plVar18" identifier != identifier) )) && (parenthesized_expression "(plVar18 = (long *)plVar18[4], plVar18 != (long *)0x0)" ( (comma_expression "plVar18 = (long *)plVar18[4], plVar18 != (long *)0x0" (assignment_expression "plVar18 = (long *)plVar18[4]" identifier = (cast_expression "(long *)plVar18[4]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar18[4]" identifier [ number_literal ]))) , (binary_expression "plVar18 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) ;) (expression_statement "plVar18 = (long *)0x0;" (assignment_expression "plVar18 = (long *)0x0" identifier = (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (lVar13 != 0) {\n          lVar28 = *(long *)(lVar16 + 0x38);\n          if (lVar28 == 0) {\n            plVar18 = *(long **)(lVar16 + 0x28);\n            if (plVar18 != (long *)0x0) {\n              do {\n                if (((-1 < *(int *)((long)plVar18 + 0x84)) && (lVar28 = plVar18[7], lVar28 != 0)) &&\n                   (*(long *)(lVar28 + 0xf0) != 0)) goto LAB_0011cd61;\n                plVar18 = (long *)plVar18[5];\n              } while (plVar18 != (long *)0x0);\n              plVar18 = (long *)0x0;\n            }\n          }\n          else {\nLAB_0011cd61:\n            plVar18 = (long *)0x0;\n            if (lVar28 != lVar13) {\n              lVar5 = *(long *)(lVar15 + 0x18);\n              lVar33 = *(long *)(lVar13 + 0x10);\n              if (lVar5 == 0) {\n                *(long *)(DAT_0017fb10 + 0x90) = lVar33;\n              }\n              else {\n                *(long *)(lVar5 + 0x10) = lVar33;\n                lVar33 = *(long *)(lVar13 + 0x10);\n              }\n              if (lVar33 == 0) {\n                *(long *)(DAT_0017fb10 + 0x98) = lVar5;\n              }\n              else {\n                *(long *)(lVar33 + 0x18) = lVar5;\n              }\n              lVar5 = *(long *)(lVar28 + 0x10);\n              *(long *)(lVar13 + 0x10) = lVar5;\n              if (lVar5 == 0) {\n                *(long *)(DAT_0017fb10 + 0x98) = lVar13;\n              }\n              else {\n                *(long *)(lVar5 + 0x18) = lVar13;\n              }\n              *(long *)(lVar15 + 0x18) = lVar28;\n              plVar18 = (long *)0x0;\n              *(long *)(lVar28 + 0x10) = lVar15;\n            }\n          }\n        }" if (parenthesized_expression "(lVar13 != 0)" ( (binary_expression "lVar13 != 0" identifier != number_literal) )) (compound_statement "{\n          lVar28 = *(long *)(lVar16 + 0x38);\n          if (lVar28 == 0) {\n            plVar18 = *(long **)(lVar16 + 0x28);\n            if (plVar18 != (long *)0x0) {\n              do {\n                if (((-1 < *(int *)((long)plVar18 + 0x84)) && (lVar28 = plVar18[7], lVar28 != 0)) &&\n                   (*(long *)(lVar28 + 0xf0) != 0)) goto LAB_0011cd61;\n                plVar18 = (long *)plVar18[5];\n              } while (plVar18 != (long *)0x0);\n              plVar18 = (long *)0x0;\n            }\n          }\n          else {\nLAB_0011cd61:\n            plVar18 = (long *)0x0;\n            if (lVar28 != lVar13) {\n              lVar5 = *(long *)(lVar15 + 0x18);\n              lVar33 = *(long *)(lVar13 + 0x10);\n              if (lVar5 == 0) {\n                *(long *)(DAT_0017fb10 + 0x90) = lVar33;\n              }\n              else {\n                *(long *)(lVar5 + 0x10) = lVar33;\n                lVar33 = *(long *)(lVar13 + 0x10);\n              }\n              if (lVar33 == 0) {\n                *(long *)(DAT_0017fb10 + 0x98) = lVar5;\n              }\n              else {\n                *(long *)(lVar33 + 0x18) = lVar5;\n              }\n              lVar5 = *(long *)(lVar28 + 0x10);\n              *(long *)(lVar13 + 0x10) = lVar5;\n              if (lVar5 == 0) {\n                *(long *)(DAT_0017fb10 + 0x98) = lVar13;\n              }\n              else {\n                *(long *)(lVar5 + 0x18) = lVar13;\n              }\n              *(long *)(lVar15 + 0x18) = lVar28;\n              plVar18 = (long *)0x0;\n              *(long *)(lVar28 + 0x10) = lVar15;\n            }\n          }\n        }" { (expression_statement "lVar28 = *(long *)(lVar16 + 0x38);" (assignment_expression "lVar28 = *(long *)(lVar16 + 0x38)" identifier = (pointer_expression "*(long *)(lVar16 + 0x38)" * (cast_expression "(long *)(lVar16 + 0x38)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar16 + 0x38)" ( (binary_expression "lVar16 + 0x38" identifier + number_literal) ))))) ;) (if_statement "if (lVar28 == 0) {\n            plVar18 = *(long **)(lVar16 + 0x28);\n            if (plVar18 != (long *)0x0) {\n              do {\n                if (((-1 < *(int *)((long)plVar18 + 0x84)) && (lVar28 = plVar18[7], lVar28 != 0)) &&\n                   (*(long *)(lVar28 + 0xf0) != 0)) goto LAB_0011cd61;\n                plVar18 = (long *)plVar18[5];\n              } while (plVar18 != (long *)0x0);\n              plVar18 = (long *)0x0;\n            }\n          }\n          else {\nLAB_0011cd61:\n            plVar18 = (long *)0x0;\n            if (lVar28 != lVar13) {\n              lVar5 = *(long *)(lVar15 + 0x18);\n              lVar33 = *(long *)(lVar13 + 0x10);\n              if (lVar5 == 0) {\n                *(long *)(DAT_0017fb10 + 0x90) = lVar33;\n              }\n              else {\n                *(long *)(lVar5 + 0x10) = lVar33;\n                lVar33 = *(long *)(lVar13 + 0x10);\n              }\n              if (lVar33 == 0) {\n                *(long *)(DAT_0017fb10 + 0x98) = lVar5;\n              }\n              else {\n                *(long *)(lVar33 + 0x18) = lVar5;\n              }\n              lVar5 = *(long *)(lVar28 + 0x10);\n              *(long *)(lVar13 + 0x10) = lVar5;\n              if (lVar5 == 0) {\n                *(long *)(DAT_0017fb10 + 0x98) = lVar13;\n              }\n              else {\n                *(long *)(lVar5 + 0x18) = lVar13;\n              }\n              *(long *)(lVar15 + 0x18) = lVar28;\n              plVar18 = (long *)0x0;\n              *(long *)(lVar28 + 0x10) = lVar15;\n            }\n          }" if (parenthesized_expression "(lVar28 == 0)" ( (binary_expression "lVar28 == 0" identifier == number_literal) )) (compound_statement "{\n            plVar18 = *(long **)(lVar16 + 0x28);\n            if (plVar18 != (long *)0x0) {\n              do {\n                if (((-1 < *(int *)((long)plVar18 + 0x84)) && (lVar28 = plVar18[7], lVar28 != 0)) &&\n                   (*(long *)(lVar28 + 0xf0) != 0)) goto LAB_0011cd61;\n                plVar18 = (long *)plVar18[5];\n              } while (plVar18 != (long *)0x0);\n              plVar18 = (long *)0x0;\n            }\n          }" { (expression_statement "plVar18 = *(long **)(lVar16 + 0x28);" (assignment_expression "plVar18 = *(long **)(lVar16 + 0x28)" identifier = (pointer_expression "*(long **)(lVar16 + 0x28)" * (cast_expression "(long **)(lVar16 + 0x28)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar16 + 0x28)" ( (binary_expression "lVar16 + 0x28" identifier + number_literal) ))))) ;) (if_statement "if (plVar18 != (long *)0x0) {\n              do {\n                if (((-1 < *(int *)((long)plVar18 + 0x84)) && (lVar28 = plVar18[7], lVar28 != 0)) &&\n                   (*(long *)(lVar28 + 0xf0) != 0)) goto LAB_0011cd61;\n                plVar18 = (long *)plVar18[5];\n              } while (plVar18 != (long *)0x0);\n              plVar18 = (long *)0x0;\n            }" if (parenthesized_expression "(plVar18 != (long *)0x0)" ( (binary_expression "plVar18 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              do {\n                if (((-1 < *(int *)((long)plVar18 + 0x84)) && (lVar28 = plVar18[7], lVar28 != 0)) &&\n                   (*(long *)(lVar28 + 0xf0) != 0)) goto LAB_0011cd61;\n                plVar18 = (long *)plVar18[5];\n              } while (plVar18 != (long *)0x0);\n              plVar18 = (long *)0x0;\n            }" { (do_statement "do {\n                if (((-1 < *(int *)((long)plVar18 + 0x84)) && (lVar28 = plVar18[7], lVar28 != 0)) &&\n                   (*(long *)(lVar28 + 0xf0) != 0)) goto LAB_0011cd61;\n                plVar18 = (long *)plVar18[5];\n              } while (plVar18 != (long *)0x0);" do (compound_statement "{\n                if (((-1 < *(int *)((long)plVar18 + 0x84)) && (lVar28 = plVar18[7], lVar28 != 0)) &&\n                   (*(long *)(lVar28 + 0xf0) != 0)) goto LAB_0011cd61;\n                plVar18 = (long *)plVar18[5];\n              }" { (if_statement "if (((-1 < *(int *)((long)plVar18 + 0x84)) && (lVar28 = plVar18[7], lVar28 != 0)) &&\n                   (*(long *)(lVar28 + 0xf0) != 0)) goto LAB_0011cd61;" if (parenthesized_expression "(((-1 < *(int *)((long)plVar18 + 0x84)) && (lVar28 = plVar18[7], lVar28 != 0)) &&\n                   (*(long *)(lVar28 + 0xf0) != 0))" ( (binary_expression "((-1 < *(int *)((long)plVar18 + 0x84)) && (lVar28 = plVar18[7], lVar28 != 0)) &&\n                   (*(long *)(lVar28 + 0xf0) != 0)" (parenthesized_expression "((-1 < *(int *)((long)plVar18 + 0x84)) && (lVar28 = plVar18[7], lVar28 != 0))" ( (binary_expression "(-1 < *(int *)((long)plVar18 + 0x84)) && (lVar28 = plVar18[7], lVar28 != 0)" (parenthesized_expression "(-1 < *(int *)((long)plVar18 + 0x84))" ( (binary_expression "-1 < *(int *)((long)plVar18 + 0x84)" number_literal < (pointer_expression "*(int *)((long)plVar18 + 0x84)" * (cast_expression "(int *)((long)plVar18 + 0x84)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar18 + 0x84)" ( (binary_expression "(long)plVar18 + 0x84" (cast_expression "(long)plVar18" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) )) && (parenthesized_expression "(lVar28 = plVar18[7], lVar28 != 0)" ( (comma_expression "lVar28 = plVar18[7], lVar28 != 0" (assignment_expression "lVar28 = plVar18[7]" identifier = (subscript_expression "plVar18[7]" identifier [ number_literal ])) , (binary_expression "lVar28 != 0" identifier != number_literal)) ))) )) && (parenthesized_expression "(*(long *)(lVar28 + 0xf0) != 0)" ( (binary_expression "*(long *)(lVar28 + 0xf0) != 0" (pointer_expression "*(long *)(lVar28 + 0xf0)" * (cast_expression "(long *)(lVar28 + 0xf0)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar28 + 0xf0)" ( (binary_expression "lVar28 + 0xf0" identifier + number_literal) )))) != number_literal) ))) )) (goto_statement "goto LAB_0011cd61;" goto statement_identifier ;)) (expression_statement "plVar18 = (long *)plVar18[5];" (assignment_expression "plVar18 = (long *)plVar18[5]" identifier = (cast_expression "(long *)plVar18[5]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar18[5]" identifier [ number_literal ]))) ;) }) while (parenthesized_expression "(plVar18 != (long *)0x0)" ( (binary_expression "plVar18 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "plVar18 = (long *)0x0;" (assignment_expression "plVar18 = (long *)0x0" identifier = (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) }) (else_clause "else {\nLAB_0011cd61:\n            plVar18 = (long *)0x0;\n            if (lVar28 != lVar13) {\n              lVar5 = *(long *)(lVar15 + 0x18);\n              lVar33 = *(long *)(lVar13 + 0x10);\n              if (lVar5 == 0) {\n                *(long *)(DAT_0017fb10 + 0x90) = lVar33;\n              }\n              else {\n                *(long *)(lVar5 + 0x10) = lVar33;\n                lVar33 = *(long *)(lVar13 + 0x10);\n              }\n              if (lVar33 == 0) {\n                *(long *)(DAT_0017fb10 + 0x98) = lVar5;\n              }\n              else {\n                *(long *)(lVar33 + 0x18) = lVar5;\n              }\n              lVar5 = *(long *)(lVar28 + 0x10);\n              *(long *)(lVar13 + 0x10) = lVar5;\n              if (lVar5 == 0) {\n                *(long *)(DAT_0017fb10 + 0x98) = lVar13;\n              }\n              else {\n                *(long *)(lVar5 + 0x18) = lVar13;\n              }\n              *(long *)(lVar15 + 0x18) = lVar28;\n              plVar18 = (long *)0x0;\n              *(long *)(lVar28 + 0x10) = lVar15;\n            }\n          }" else (compound_statement "{\nLAB_0011cd61:\n            plVar18 = (long *)0x0;\n            if (lVar28 != lVar13) {\n              lVar5 = *(long *)(lVar15 + 0x18);\n              lVar33 = *(long *)(lVar13 + 0x10);\n              if (lVar5 == 0) {\n                *(long *)(DAT_0017fb10 + 0x90) = lVar33;\n              }\n              else {\n                *(long *)(lVar5 + 0x10) = lVar33;\n                lVar33 = *(long *)(lVar13 + 0x10);\n              }\n              if (lVar33 == 0) {\n                *(long *)(DAT_0017fb10 + 0x98) = lVar5;\n              }\n              else {\n                *(long *)(lVar33 + 0x18) = lVar5;\n              }\n              lVar5 = *(long *)(lVar28 + 0x10);\n              *(long *)(lVar13 + 0x10) = lVar5;\n              if (lVar5 == 0) {\n                *(long *)(DAT_0017fb10 + 0x98) = lVar13;\n              }\n              else {\n                *(long *)(lVar5 + 0x18) = lVar13;\n              }\n              *(long *)(lVar15 + 0x18) = lVar28;\n              plVar18 = (long *)0x0;\n              *(long *)(lVar28 + 0x10) = lVar15;\n            }\n          }" { (labeled_statement "LAB_0011cd61:\n            plVar18 = (long *)0x0;" statement_identifier : (expression_statement "plVar18 = (long *)0x0;" (assignment_expression "plVar18 = (long *)0x0" identifier = (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (if_statement "if (lVar28 != lVar13) {\n              lVar5 = *(long *)(lVar15 + 0x18);\n              lVar33 = *(long *)(lVar13 + 0x10);\n              if (lVar5 == 0) {\n                *(long *)(DAT_0017fb10 + 0x90) = lVar33;\n              }\n              else {\n                *(long *)(lVar5 + 0x10) = lVar33;\n                lVar33 = *(long *)(lVar13 + 0x10);\n              }\n              if (lVar33 == 0) {\n                *(long *)(DAT_0017fb10 + 0x98) = lVar5;\n              }\n              else {\n                *(long *)(lVar33 + 0x18) = lVar5;\n              }\n              lVar5 = *(long *)(lVar28 + 0x10);\n              *(long *)(lVar13 + 0x10) = lVar5;\n              if (lVar5 == 0) {\n                *(long *)(DAT_0017fb10 + 0x98) = lVar13;\n              }\n              else {\n                *(long *)(lVar5 + 0x18) = lVar13;\n              }\n              *(long *)(lVar15 + 0x18) = lVar28;\n              plVar18 = (long *)0x0;\n              *(long *)(lVar28 + 0x10) = lVar15;\n            }" if (parenthesized_expression "(lVar28 != lVar13)" ( (binary_expression "lVar28 != lVar13" identifier != identifier) )) (compound_statement "{\n              lVar5 = *(long *)(lVar15 + 0x18);\n              lVar33 = *(long *)(lVar13 + 0x10);\n              if (lVar5 == 0) {\n                *(long *)(DAT_0017fb10 + 0x90) = lVar33;\n              }\n              else {\n                *(long *)(lVar5 + 0x10) = lVar33;\n                lVar33 = *(long *)(lVar13 + 0x10);\n              }\n              if (lVar33 == 0) {\n                *(long *)(DAT_0017fb10 + 0x98) = lVar5;\n              }\n              else {\n                *(long *)(lVar33 + 0x18) = lVar5;\n              }\n              lVar5 = *(long *)(lVar28 + 0x10);\n              *(long *)(lVar13 + 0x10) = lVar5;\n              if (lVar5 == 0) {\n                *(long *)(DAT_0017fb10 + 0x98) = lVar13;\n              }\n              else {\n                *(long *)(lVar5 + 0x18) = lVar13;\n              }\n              *(long *)(lVar15 + 0x18) = lVar28;\n              plVar18 = (long *)0x0;\n              *(long *)(lVar28 + 0x10) = lVar15;\n            }" { (expression_statement "lVar5 = *(long *)(lVar15 + 0x18);" (assignment_expression "lVar5 = *(long *)(lVar15 + 0x18)" identifier = (pointer_expression "*(long *)(lVar15 + 0x18)" * (cast_expression "(long *)(lVar15 + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar15 + 0x18)" ( (binary_expression "lVar15 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "lVar33 = *(long *)(lVar13 + 0x10);" (assignment_expression "lVar33 = *(long *)(lVar13 + 0x10)" identifier = (pointer_expression "*(long *)(lVar13 + 0x10)" * (cast_expression "(long *)(lVar13 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar13 + 0x10)" ( (binary_expression "lVar13 + 0x10" identifier + number_literal) ))))) ;) (if_statement "if (lVar5 == 0) {\n                *(long *)(DAT_0017fb10 + 0x90) = lVar33;\n              }\n              else {\n                *(long *)(lVar5 + 0x10) = lVar33;\n                lVar33 = *(long *)(lVar13 + 0x10);\n              }" if (parenthesized_expression "(lVar5 == 0)" ( (binary_expression "lVar5 == 0" identifier == number_literal) )) (compound_statement "{\n                *(long *)(DAT_0017fb10 + 0x90) = lVar33;\n              }" { (expression_statement "*(long *)(DAT_0017fb10 + 0x90) = lVar33;" (assignment_expression "*(long *)(DAT_0017fb10 + 0x90) = lVar33" (pointer_expression "*(long *)(DAT_0017fb10 + 0x90)" * (cast_expression "(long *)(DAT_0017fb10 + 0x90)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0017fb10 + 0x90)" ( (binary_expression "DAT_0017fb10 + 0x90" identifier + number_literal) )))) = identifier) ;) }) (else_clause "else {\n                *(long *)(lVar5 + 0x10) = lVar33;\n                lVar33 = *(long *)(lVar13 + 0x10);\n              }" else (compound_statement "{\n                *(long *)(lVar5 + 0x10) = lVar33;\n                lVar33 = *(long *)(lVar13 + 0x10);\n              }" { (expression_statement "*(long *)(lVar5 + 0x10) = lVar33;" (assignment_expression "*(long *)(lVar5 + 0x10) = lVar33" (pointer_expression "*(long *)(lVar5 + 0x10)" * (cast_expression "(long *)(lVar5 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + 0x10)" ( (binary_expression "lVar5 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "lVar33 = *(long *)(lVar13 + 0x10);" (assignment_expression "lVar33 = *(long *)(lVar13 + 0x10)" identifier = (pointer_expression "*(long *)(lVar13 + 0x10)" * (cast_expression "(long *)(lVar13 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar13 + 0x10)" ( (binary_expression "lVar13 + 0x10" identifier + number_literal) ))))) ;) }))) (if_statement "if (lVar33 == 0) {\n                *(long *)(DAT_0017fb10 + 0x98) = lVar5;\n              }\n              else {\n                *(long *)(lVar33 + 0x18) = lVar5;\n              }" if (parenthesized_expression "(lVar33 == 0)" ( (binary_expression "lVar33 == 0" identifier == number_literal) )) (compound_statement "{\n                *(long *)(DAT_0017fb10 + 0x98) = lVar5;\n              }" { (expression_statement "*(long *)(DAT_0017fb10 + 0x98) = lVar5;" (assignment_expression "*(long *)(DAT_0017fb10 + 0x98) = lVar5" (pointer_expression "*(long *)(DAT_0017fb10 + 0x98)" * (cast_expression "(long *)(DAT_0017fb10 + 0x98)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0017fb10 + 0x98)" ( (binary_expression "DAT_0017fb10 + 0x98" identifier + number_literal) )))) = identifier) ;) }) (else_clause "else {\n                *(long *)(lVar33 + 0x18) = lVar5;\n              }" else (compound_statement "{\n                *(long *)(lVar33 + 0x18) = lVar5;\n              }" { (expression_statement "*(long *)(lVar33 + 0x18) = lVar5;" (assignment_expression "*(long *)(lVar33 + 0x18) = lVar5" (pointer_expression "*(long *)(lVar33 + 0x18)" * (cast_expression "(long *)(lVar33 + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar33 + 0x18)" ( (binary_expression "lVar33 + 0x18" identifier + number_literal) )))) = identifier) ;) }))) (expression_statement "lVar5 = *(long *)(lVar28 + 0x10);" (assignment_expression "lVar5 = *(long *)(lVar28 + 0x10)" identifier = (pointer_expression "*(long *)(lVar28 + 0x10)" * (cast_expression "(long *)(lVar28 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar28 + 0x10)" ( (binary_expression "lVar28 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "*(long *)(lVar13 + 0x10) = lVar5;" (assignment_expression "*(long *)(lVar13 + 0x10) = lVar5" (pointer_expression "*(long *)(lVar13 + 0x10)" * (cast_expression "(long *)(lVar13 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar13 + 0x10)" ( (binary_expression "lVar13 + 0x10" identifier + number_literal) )))) = identifier) ;) (if_statement "if (lVar5 == 0) {\n                *(long *)(DAT_0017fb10 + 0x98) = lVar13;\n              }\n              else {\n                *(long *)(lVar5 + 0x18) = lVar13;\n              }" if (parenthesized_expression "(lVar5 == 0)" ( (binary_expression "lVar5 == 0" identifier == number_literal) )) (compound_statement "{\n                *(long *)(DAT_0017fb10 + 0x98) = lVar13;\n              }" { (expression_statement "*(long *)(DAT_0017fb10 + 0x98) = lVar13;" (assignment_expression "*(long *)(DAT_0017fb10 + 0x98) = lVar13" (pointer_expression "*(long *)(DAT_0017fb10 + 0x98)" * (cast_expression "(long *)(DAT_0017fb10 + 0x98)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0017fb10 + 0x98)" ( (binary_expression "DAT_0017fb10 + 0x98" identifier + number_literal) )))) = identifier) ;) }) (else_clause "else {\n                *(long *)(lVar5 + 0x18) = lVar13;\n              }" else (compound_statement "{\n                *(long *)(lVar5 + 0x18) = lVar13;\n              }" { (expression_statement "*(long *)(lVar5 + 0x18) = lVar13;" (assignment_expression "*(long *)(lVar5 + 0x18) = lVar13" (pointer_expression "*(long *)(lVar5 + 0x18)" * (cast_expression "(long *)(lVar5 + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + 0x18)" ( (binary_expression "lVar5 + 0x18" identifier + number_literal) )))) = identifier) ;) }))) (expression_statement "*(long *)(lVar15 + 0x18) = lVar28;" (assignment_expression "*(long *)(lVar15 + 0x18) = lVar28" (pointer_expression "*(long *)(lVar15 + 0x18)" * (cast_expression "(long *)(lVar15 + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar15 + 0x18)" ( (binary_expression "lVar15 + 0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "plVar18 = (long *)0x0;" (assignment_expression "plVar18 = (long *)0x0" identifier = (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*(long *)(lVar28 + 0x10) = lVar15;" (assignment_expression "*(long *)(lVar28 + 0x10) = lVar15" (pointer_expression "*(long *)(lVar28 + 0x10)" * (cast_expression "(long *)(lVar28 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar28 + 0x10)" ( (binary_expression "lVar28 + 0x10" identifier + number_literal) )))) = identifier) ;) })) }))) })) })) (expression_statement "plVar17 = (long *)FUN_00112240(lVar16);" (assignment_expression "plVar17 = (long *)FUN_00112240(lVar16)" identifier = (cast_expression "(long *)FUN_00112240(lVar16)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00112240(lVar16)" identifier (argument_list "(lVar16)" ( identifier ))))) ;) (expression_statement "lVar16 = *DAT_0017fa60;" (assignment_expression "lVar16 = *DAT_0017fa60" identifier = (pointer_expression "*DAT_0017fa60" * identifier)) ;) (expression_statement "*DAT_0017fa60 = *(long *)*plVar36;" (assignment_expression "*DAT_0017fa60 = *(long *)*plVar36" (pointer_expression "*DAT_0017fa60" * identifier) = (pointer_expression "*(long *)*plVar36" * (cast_expression "(long *)*plVar36" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar36" * identifier)))) ;) (expression_statement "lVar15 = *plVar17;" (assignment_expression "lVar15 = *plVar17" identifier = (pointer_expression "*plVar17" * identifier)) ;) (expression_statement "*plVar36 = lVar15;" (assignment_expression "*plVar36 = lVar15" (pointer_expression "*plVar36" * identifier) = identifier) ;) (if_statement "if (lVar15 == 0) {\n        DAT_0017f438 = plVar36;\n      }" if (parenthesized_expression "(lVar15 == 0)" ( (binary_expression "lVar15 == 0" identifier == number_literal) )) (compound_statement "{\n        DAT_0017f438 = plVar36;\n      }" { (expression_statement "DAT_0017f438 = plVar36;" (assignment_expression "DAT_0017f438 = plVar36" identifier = identifier) ;) })) (expression_statement "*plVar17 = lVar16;" (assignment_expression "*plVar17 = lVar16" (pointer_expression "*plVar17" * identifier) = identifier) ;) (expression_statement "plVar26 = (long *)0x0;" (assignment_expression "plVar26 = (long *)0x0" identifier = (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "plVar17 = DAT_0017fa60;" (assignment_expression "plVar17 = DAT_0017fa60" identifier = identifier) ;) })))) })) (for_statement "for (; (plVar17 = DAT_0017f2f0, plVar18 != (long *)0x0 &&\n         (*(int *)((long)plVar18 + 0x84) = -2 - *(int *)((long)plVar18 + 0x84),\n         plVar17 = DAT_0017f2f0, plVar26 != plVar18)); plVar18 = (long *)plVar18[4]) {\n  }" for ( ; (parenthesized_expression "(plVar17 = DAT_0017f2f0, plVar18 != (long *)0x0 &&\n         (*(int *)((long)plVar18 + 0x84) = -2 - *(int *)((long)plVar18 + 0x84),\n         plVar17 = DAT_0017f2f0, plVar26 != plVar18))" ( (comma_expression "plVar17 = DAT_0017f2f0, plVar18 != (long *)0x0 &&\n         (*(int *)((long)plVar18 + 0x84) = -2 - *(int *)((long)plVar18 + 0x84),\n         plVar17 = DAT_0017f2f0, plVar26 != plVar18)" (assignment_expression "plVar17 = DAT_0017f2f0" identifier = identifier) , (binary_expression "plVar18 != (long *)0x0 &&\n         (*(int *)((long)plVar18 + 0x84) = -2 - *(int *)((long)plVar18 + 0x84),\n         plVar17 = DAT_0017f2f0, plVar26 != plVar18)" (binary_expression "plVar18 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) && (parenthesized_expression "(*(int *)((long)plVar18 + 0x84) = -2 - *(int *)((long)plVar18 + 0x84),\n         plVar17 = DAT_0017f2f0, plVar26 != plVar18)" ( (comma_expression "*(int *)((long)plVar18 + 0x84) = -2 - *(int *)((long)plVar18 + 0x84),\n         plVar17 = DAT_0017f2f0, plVar26 != plVar18" (assignment_expression "*(int *)((long)plVar18 + 0x84) = -2 - *(int *)((long)plVar18 + 0x84)" (pointer_expression "*(int *)((long)plVar18 + 0x84)" * (cast_expression "(int *)((long)plVar18 + 0x84)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar18 + 0x84)" ( (binary_expression "(long)plVar18 + 0x84" (cast_expression "(long)plVar18" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = (binary_expression "-2 - *(int *)((long)plVar18 + 0x84)" number_literal - (pointer_expression "*(int *)((long)plVar18 + 0x84)" * (cast_expression "(int *)((long)plVar18 + 0x84)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar18 + 0x84)" ( (binary_expression "(long)plVar18 + 0x84" (cast_expression "(long)plVar18" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))))) , (comma_expression "plVar17 = DAT_0017f2f0, plVar26 != plVar18" (assignment_expression "plVar17 = DAT_0017f2f0" identifier = identifier) , (binary_expression "plVar26 != plVar18" identifier != identifier))) )))) )) ; (assignment_expression "plVar18 = (long *)plVar18[4]" identifier = (cast_expression "(long *)plVar18[4]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar18[4]" identifier [ number_literal ]))) ) (compound_statement "{\n  }" { })) (labeled_statement "joined_r0x0011c458:\n  for (; plVar17 != (long *)0x0; plVar17 = (long *)plVar17[6]) {\n    puVar21 = *(undefined8 **)(plVar17[4] + 0x90);\njoined_r0x0011c46e:\n    if (puVar21 != (undefined8 *)0x0) {\n      do {\n        if (puVar21[0xd] == 0) {\n          if ((*(byte *)(plVar17 + 9) & 0x10) != 0) goto code_r0x0011c493;\n          iVar9 = FUN_00113350(*(undefined4 *)(puVar21 + 4));\n          bVar38 = false;\n          bVar39 = iVar9 == 0;\n          if (bVar39) {\n            pbVar4 = (byte *)*puVar21;\n            lVar16 = 7;\n            pbVar20 = pbVar4;\n            pbVar32 = (byte *)"COMMON";\n            do {\n              if (lVar16 == 0) break;\n              lVar16 = lVar16 + -1;\n              bVar38 = *pbVar20 < *pbVar32;\n              bVar39 = *pbVar20 == *pbVar32;\n              pbVar20 = pbVar20 + (ulong)bVar40 * -2 + 1;\n              pbVar32 = pbVar32 + (ulong)bVar40 * -2 + 1;\n            } while (bVar39);\n            if ((!bVar38 && !bVar39) == bVar38) {\n              if (((DAT_0017fac0 & 3) != 2) || (DAT_0017fbc0 != 0)) {\n                lVar16 = DAT_0017f458;\n                if (DAT_0017f458 == 0) {\n                  lVar16 = FUN_00116e20(".bss",0,1);\n                  DAT_0017f458 = lVar16;\n                }\nLAB_0011c659:\n                FUN_00117b90(lVar16 + 0x10,puVar21,0);\n              }\n            }\n            else {\n              if (DAT_0017fc5c == 1) {\n                lVar16 = FUN_00116e20("/DISCARD/",0,1);\n                if ((*(long *)(lVar16 + 0x58) == 0) &&\n                   (((DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0)))) {\n                  uVar11 = FUN_00123030(0);\n                  *(undefined8 *)(lVar16 + 0x58) = uVar11;\n                }\n                goto LAB_0011c659;\n              }\n              if (DAT_0017fc5c == 3) {\n                uVar11 = puVar21[0x1e];\n                uVar14 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_001251f0(uVar14,puVar21,uVar11);\n              }\n              if ((DAT_0017fc78 == 0) && (iVar9 = FUN_001150a0(puVar21,0), iVar9 == 0)) {\n                uVar10 = 0;\n              }\n              else {\n                uVar10 = 0x17e;\n              }\n              lVar16 = FUN_00123c60(puVar21,pbVar4,uVar10);\n              if (lVar16 == 0) {\n                lVar16 = FUN_00116e20(pbVar4,uVar10,1);\n                if ((*(long *)(lVar16 + 0x58) == 0) &&\n                   (((DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0)))) {\n                  uVar11 = FUN_00123030(0);\n                  *(undefined8 *)(lVar16 + 0x58) = uVar11;\n                }\n                FUN_00117b90(lVar16 + 0x10,puVar21,0);\n              }\n              if (DAT_0017fc5c == 2) {\n                uVar11 = puVar21[0x1e];\n                uVar14 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_001251f0(uVar14,puVar21,uVar11);\n              }\n            }\n          }\n          else {\n            puVar21[0xd] = 0x17ed50;\n          }\n        }\n        puVar21 = (undefined8 *)puVar21[2];\n        if (puVar21 == (undefined8 *)0x0) break;\n      } while( true );\n    }\n  }" statement_identifier : (for_statement "for (; plVar17 != (long *)0x0; plVar17 = (long *)plVar17[6]) {\n    puVar21 = *(undefined8 **)(plVar17[4] + 0x90);\njoined_r0x0011c46e:\n    if (puVar21 != (undefined8 *)0x0) {\n      do {\n        if (puVar21[0xd] == 0) {\n          if ((*(byte *)(plVar17 + 9) & 0x10) != 0) goto code_r0x0011c493;\n          iVar9 = FUN_00113350(*(undefined4 *)(puVar21 + 4));\n          bVar38 = false;\n          bVar39 = iVar9 == 0;\n          if (bVar39) {\n            pbVar4 = (byte *)*puVar21;\n            lVar16 = 7;\n            pbVar20 = pbVar4;\n            pbVar32 = (byte *)"COMMON";\n            do {\n              if (lVar16 == 0) break;\n              lVar16 = lVar16 + -1;\n              bVar38 = *pbVar20 < *pbVar32;\n              bVar39 = *pbVar20 == *pbVar32;\n              pbVar20 = pbVar20 + (ulong)bVar40 * -2 + 1;\n              pbVar32 = pbVar32 + (ulong)bVar40 * -2 + 1;\n            } while (bVar39);\n            if ((!bVar38 && !bVar39) == bVar38) {\n              if (((DAT_0017fac0 & 3) != 2) || (DAT_0017fbc0 != 0)) {\n                lVar16 = DAT_0017f458;\n                if (DAT_0017f458 == 0) {\n                  lVar16 = FUN_00116e20(".bss",0,1);\n                  DAT_0017f458 = lVar16;\n                }\nLAB_0011c659:\n                FUN_00117b90(lVar16 + 0x10,puVar21,0);\n              }\n            }\n            else {\n              if (DAT_0017fc5c == 1) {\n                lVar16 = FUN_00116e20("/DISCARD/",0,1);\n                if ((*(long *)(lVar16 + 0x58) == 0) &&\n                   (((DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0)))) {\n                  uVar11 = FUN_00123030(0);\n                  *(undefined8 *)(lVar16 + 0x58) = uVar11;\n                }\n                goto LAB_0011c659;\n              }\n              if (DAT_0017fc5c == 3) {\n                uVar11 = puVar21[0x1e];\n                uVar14 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_001251f0(uVar14,puVar21,uVar11);\n              }\n              if ((DAT_0017fc78 == 0) && (iVar9 = FUN_001150a0(puVar21,0), iVar9 == 0)) {\n                uVar10 = 0;\n              }\n              else {\n                uVar10 = 0x17e;\n              }\n              lVar16 = FUN_00123c60(puVar21,pbVar4,uVar10);\n              if (lVar16 == 0) {\n                lVar16 = FUN_00116e20(pbVar4,uVar10,1);\n                if ((*(long *)(lVar16 + 0x58) == 0) &&\n                   (((DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0)))) {\n                  uVar11 = FUN_00123030(0);\n                  *(undefined8 *)(lVar16 + 0x58) = uVar11;\n                }\n                FUN_00117b90(lVar16 + 0x10,puVar21,0);\n              }\n              if (DAT_0017fc5c == 2) {\n                uVar11 = puVar21[0x1e];\n                uVar14 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_001251f0(uVar14,puVar21,uVar11);\n              }\n            }\n          }\n          else {\n            puVar21[0xd] = 0x17ed50;\n          }\n        }\n        puVar21 = (undefined8 *)puVar21[2];\n        if (puVar21 == (undefined8 *)0x0) break;\n      } while( true );\n    }\n  }" for ( ; (binary_expression "plVar17 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "plVar17 = (long *)plVar17[6]" identifier = (cast_expression "(long *)plVar17[6]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar17[6]" identifier [ number_literal ]))) ) (compound_statement "{\n    puVar21 = *(undefined8 **)(plVar17[4] + 0x90);\njoined_r0x0011c46e:\n    if (puVar21 != (undefined8 *)0x0) {\n      do {\n        if (puVar21[0xd] == 0) {\n          if ((*(byte *)(plVar17 + 9) & 0x10) != 0) goto code_r0x0011c493;\n          iVar9 = FUN_00113350(*(undefined4 *)(puVar21 + 4));\n          bVar38 = false;\n          bVar39 = iVar9 == 0;\n          if (bVar39) {\n            pbVar4 = (byte *)*puVar21;\n            lVar16 = 7;\n            pbVar20 = pbVar4;\n            pbVar32 = (byte *)"COMMON";\n            do {\n              if (lVar16 == 0) break;\n              lVar16 = lVar16 + -1;\n              bVar38 = *pbVar20 < *pbVar32;\n              bVar39 = *pbVar20 == *pbVar32;\n              pbVar20 = pbVar20 + (ulong)bVar40 * -2 + 1;\n              pbVar32 = pbVar32 + (ulong)bVar40 * -2 + 1;\n            } while (bVar39);\n            if ((!bVar38 && !bVar39) == bVar38) {\n              if (((DAT_0017fac0 & 3) != 2) || (DAT_0017fbc0 != 0)) {\n                lVar16 = DAT_0017f458;\n                if (DAT_0017f458 == 0) {\n                  lVar16 = FUN_00116e20(".bss",0,1);\n                  DAT_0017f458 = lVar16;\n                }\nLAB_0011c659:\n                FUN_00117b90(lVar16 + 0x10,puVar21,0);\n              }\n            }\n            else {\n              if (DAT_0017fc5c == 1) {\n                lVar16 = FUN_00116e20("/DISCARD/",0,1);\n                if ((*(long *)(lVar16 + 0x58) == 0) &&\n                   (((DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0)))) {\n                  uVar11 = FUN_00123030(0);\n                  *(undefined8 *)(lVar16 + 0x58) = uVar11;\n                }\n                goto LAB_0011c659;\n              }\n              if (DAT_0017fc5c == 3) {\n                uVar11 = puVar21[0x1e];\n                uVar14 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_001251f0(uVar14,puVar21,uVar11);\n              }\n              if ((DAT_0017fc78 == 0) && (iVar9 = FUN_001150a0(puVar21,0), iVar9 == 0)) {\n                uVar10 = 0;\n              }\n              else {\n                uVar10 = 0x17e;\n              }\n              lVar16 = FUN_00123c60(puVar21,pbVar4,uVar10);\n              if (lVar16 == 0) {\n                lVar16 = FUN_00116e20(pbVar4,uVar10,1);\n                if ((*(long *)(lVar16 + 0x58) == 0) &&\n                   (((DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0)))) {\n                  uVar11 = FUN_00123030(0);\n                  *(undefined8 *)(lVar16 + 0x58) = uVar11;\n                }\n                FUN_00117b90(lVar16 + 0x10,puVar21,0);\n              }\n              if (DAT_0017fc5c == 2) {\n                uVar11 = puVar21[0x1e];\n                uVar14 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_001251f0(uVar14,puVar21,uVar11);\n              }\n            }\n          }\n          else {\n            puVar21[0xd] = 0x17ed50;\n          }\n        }\n        puVar21 = (undefined8 *)puVar21[2];\n        if (puVar21 == (undefined8 *)0x0) break;\n      } while( true );\n    }\n  }" { (expression_statement "puVar21 = *(undefined8 **)(plVar17[4] + 0x90);" (assignment_expression "puVar21 = *(undefined8 **)(plVar17[4] + 0x90)" identifier = (pointer_expression "*(undefined8 **)(plVar17[4] + 0x90)" * (cast_expression "(undefined8 **)(plVar17[4] + 0x90)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(plVar17[4] + 0x90)" ( (binary_expression "plVar17[4] + 0x90" (subscript_expression "plVar17[4]" identifier [ number_literal ]) + number_literal) ))))) ;) (labeled_statement "joined_r0x0011c46e:\n    if (puVar21 != (undefined8 *)0x0) {\n      do {\n        if (puVar21[0xd] == 0) {\n          if ((*(byte *)(plVar17 + 9) & 0x10) != 0) goto code_r0x0011c493;\n          iVar9 = FUN_00113350(*(undefined4 *)(puVar21 + 4));\n          bVar38 = false;\n          bVar39 = iVar9 == 0;\n          if (bVar39) {\n            pbVar4 = (byte *)*puVar21;\n            lVar16 = 7;\n            pbVar20 = pbVar4;\n            pbVar32 = (byte *)"COMMON";\n            do {\n              if (lVar16 == 0) break;\n              lVar16 = lVar16 + -1;\n              bVar38 = *pbVar20 < *pbVar32;\n              bVar39 = *pbVar20 == *pbVar32;\n              pbVar20 = pbVar20 + (ulong)bVar40 * -2 + 1;\n              pbVar32 = pbVar32 + (ulong)bVar40 * -2 + 1;\n            } while (bVar39);\n            if ((!bVar38 && !bVar39) == bVar38) {\n              if (((DAT_0017fac0 & 3) != 2) || (DAT_0017fbc0 != 0)) {\n                lVar16 = DAT_0017f458;\n                if (DAT_0017f458 == 0) {\n                  lVar16 = FUN_00116e20(".bss",0,1);\n                  DAT_0017f458 = lVar16;\n                }\nLAB_0011c659:\n                FUN_00117b90(lVar16 + 0x10,puVar21,0);\n              }\n            }\n            else {\n              if (DAT_0017fc5c == 1) {\n                lVar16 = FUN_00116e20("/DISCARD/",0,1);\n                if ((*(long *)(lVar16 + 0x58) == 0) &&\n                   (((DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0)))) {\n                  uVar11 = FUN_00123030(0);\n                  *(undefined8 *)(lVar16 + 0x58) = uVar11;\n                }\n                goto LAB_0011c659;\n              }\n              if (DAT_0017fc5c == 3) {\n                uVar11 = puVar21[0x1e];\n                uVar14 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_001251f0(uVar14,puVar21,uVar11);\n              }\n              if ((DAT_0017fc78 == 0) && (iVar9 = FUN_001150a0(puVar21,0), iVar9 == 0)) {\n                uVar10 = 0;\n              }\n              else {\n                uVar10 = 0x17e;\n              }\n              lVar16 = FUN_00123c60(puVar21,pbVar4,uVar10);\n              if (lVar16 == 0) {\n                lVar16 = FUN_00116e20(pbVar4,uVar10,1);\n                if ((*(long *)(lVar16 + 0x58) == 0) &&\n                   (((DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0)))) {\n                  uVar11 = FUN_00123030(0);\n                  *(undefined8 *)(lVar16 + 0x58) = uVar11;\n                }\n                FUN_00117b90(lVar16 + 0x10,puVar21,0);\n              }\n              if (DAT_0017fc5c == 2) {\n                uVar11 = puVar21[0x1e];\n                uVar14 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_001251f0(uVar14,puVar21,uVar11);\n              }\n            }\n          }\n          else {\n            puVar21[0xd] = 0x17ed50;\n          }\n        }\n        puVar21 = (undefined8 *)puVar21[2];\n        if (puVar21 == (undefined8 *)0x0) break;\n      } while( true );\n    }" statement_identifier : (if_statement "if (puVar21 != (undefined8 *)0x0) {\n      do {\n        if (puVar21[0xd] == 0) {\n          if ((*(byte *)(plVar17 + 9) & 0x10) != 0) goto code_r0x0011c493;\n          iVar9 = FUN_00113350(*(undefined4 *)(puVar21 + 4));\n          bVar38 = false;\n          bVar39 = iVar9 == 0;\n          if (bVar39) {\n            pbVar4 = (byte *)*puVar21;\n            lVar16 = 7;\n            pbVar20 = pbVar4;\n            pbVar32 = (byte *)"COMMON";\n            do {\n              if (lVar16 == 0) break;\n              lVar16 = lVar16 + -1;\n              bVar38 = *pbVar20 < *pbVar32;\n              bVar39 = *pbVar20 == *pbVar32;\n              pbVar20 = pbVar20 + (ulong)bVar40 * -2 + 1;\n              pbVar32 = pbVar32 + (ulong)bVar40 * -2 + 1;\n            } while (bVar39);\n            if ((!bVar38 && !bVar39) == bVar38) {\n              if (((DAT_0017fac0 & 3) != 2) || (DAT_0017fbc0 != 0)) {\n                lVar16 = DAT_0017f458;\n                if (DAT_0017f458 == 0) {\n                  lVar16 = FUN_00116e20(".bss",0,1);\n                  DAT_0017f458 = lVar16;\n                }\nLAB_0011c659:\n                FUN_00117b90(lVar16 + 0x10,puVar21,0);\n              }\n            }\n            else {\n              if (DAT_0017fc5c == 1) {\n                lVar16 = FUN_00116e20("/DISCARD/",0,1);\n                if ((*(long *)(lVar16 + 0x58) == 0) &&\n                   (((DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0)))) {\n                  uVar11 = FUN_00123030(0);\n                  *(undefined8 *)(lVar16 + 0x58) = uVar11;\n                }\n                goto LAB_0011c659;\n              }\n              if (DAT_0017fc5c == 3) {\n                uVar11 = puVar21[0x1e];\n                uVar14 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_001251f0(uVar14,puVar21,uVar11);\n              }\n              if ((DAT_0017fc78 == 0) && (iVar9 = FUN_001150a0(puVar21,0), iVar9 == 0)) {\n                uVar10 = 0;\n              }\n              else {\n                uVar10 = 0x17e;\n              }\n              lVar16 = FUN_00123c60(puVar21,pbVar4,uVar10);\n              if (lVar16 == 0) {\n                lVar16 = FUN_00116e20(pbVar4,uVar10,1);\n                if ((*(long *)(lVar16 + 0x58) == 0) &&\n                   (((DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0)))) {\n                  uVar11 = FUN_00123030(0);\n                  *(undefined8 *)(lVar16 + 0x58) = uVar11;\n                }\n                FUN_00117b90(lVar16 + 0x10,puVar21,0);\n              }\n              if (DAT_0017fc5c == 2) {\n                uVar11 = puVar21[0x1e];\n                uVar14 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_001251f0(uVar14,puVar21,uVar11);\n              }\n            }\n          }\n          else {\n            puVar21[0xd] = 0x17ed50;\n          }\n        }\n        puVar21 = (undefined8 *)puVar21[2];\n        if (puVar21 == (undefined8 *)0x0) break;\n      } while( true );\n    }" if (parenthesized_expression "(puVar21 != (undefined8 *)0x0)" ( (binary_expression "puVar21 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      do {\n        if (puVar21[0xd] == 0) {\n          if ((*(byte *)(plVar17 + 9) & 0x10) != 0) goto code_r0x0011c493;\n          iVar9 = FUN_00113350(*(undefined4 *)(puVar21 + 4));\n          bVar38 = false;\n          bVar39 = iVar9 == 0;\n          if (bVar39) {\n            pbVar4 = (byte *)*puVar21;\n            lVar16 = 7;\n            pbVar20 = pbVar4;\n            pbVar32 = (byte *)"COMMON";\n            do {\n              if (lVar16 == 0) break;\n              lVar16 = lVar16 + -1;\n              bVar38 = *pbVar20 < *pbVar32;\n              bVar39 = *pbVar20 == *pbVar32;\n              pbVar20 = pbVar20 + (ulong)bVar40 * -2 + 1;\n              pbVar32 = pbVar32 + (ulong)bVar40 * -2 + 1;\n            } while (bVar39);\n            if ((!bVar38 && !bVar39) == bVar38) {\n              if (((DAT_0017fac0 & 3) != 2) || (DAT_0017fbc0 != 0)) {\n                lVar16 = DAT_0017f458;\n                if (DAT_0017f458 == 0) {\n                  lVar16 = FUN_00116e20(".bss",0,1);\n                  DAT_0017f458 = lVar16;\n                }\nLAB_0011c659:\n                FUN_00117b90(lVar16 + 0x10,puVar21,0);\n              }\n            }\n            else {\n              if (DAT_0017fc5c == 1) {\n                lVar16 = FUN_00116e20("/DISCARD/",0,1);\n                if ((*(long *)(lVar16 + 0x58) == 0) &&\n                   (((DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0)))) {\n                  uVar11 = FUN_00123030(0);\n                  *(undefined8 *)(lVar16 + 0x58) = uVar11;\n                }\n                goto LAB_0011c659;\n              }\n              if (DAT_0017fc5c == 3) {\n                uVar11 = puVar21[0x1e];\n                uVar14 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_001251f0(uVar14,puVar21,uVar11);\n              }\n              if ((DAT_0017fc78 == 0) && (iVar9 = FUN_001150a0(puVar21,0), iVar9 == 0)) {\n                uVar10 = 0;\n              }\n              else {\n                uVar10 = 0x17e;\n              }\n              lVar16 = FUN_00123c60(puVar21,pbVar4,uVar10);\n              if (lVar16 == 0) {\n                lVar16 = FUN_00116e20(pbVar4,uVar10,1);\n                if ((*(long *)(lVar16 + 0x58) == 0) &&\n                   (((DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0)))) {\n                  uVar11 = FUN_00123030(0);\n                  *(undefined8 *)(lVar16 + 0x58) = uVar11;\n                }\n                FUN_00117b90(lVar16 + 0x10,puVar21,0);\n              }\n              if (DAT_0017fc5c == 2) {\n                uVar11 = puVar21[0x1e];\n                uVar14 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_001251f0(uVar14,puVar21,uVar11);\n              }\n            }\n          }\n          else {\n            puVar21[0xd] = 0x17ed50;\n          }\n        }\n        puVar21 = (undefined8 *)puVar21[2];\n        if (puVar21 == (undefined8 *)0x0) break;\n      } while( true );\n    }" { (do_statement "do {\n        if (puVar21[0xd] == 0) {\n          if ((*(byte *)(plVar17 + 9) & 0x10) != 0) goto code_r0x0011c493;\n          iVar9 = FUN_00113350(*(undefined4 *)(puVar21 + 4));\n          bVar38 = false;\n          bVar39 = iVar9 == 0;\n          if (bVar39) {\n            pbVar4 = (byte *)*puVar21;\n            lVar16 = 7;\n            pbVar20 = pbVar4;\n            pbVar32 = (byte *)"COMMON";\n            do {\n              if (lVar16 == 0) break;\n              lVar16 = lVar16 + -1;\n              bVar38 = *pbVar20 < *pbVar32;\n              bVar39 = *pbVar20 == *pbVar32;\n              pbVar20 = pbVar20 + (ulong)bVar40 * -2 + 1;\n              pbVar32 = pbVar32 + (ulong)bVar40 * -2 + 1;\n            } while (bVar39);\n            if ((!bVar38 && !bVar39) == bVar38) {\n              if (((DAT_0017fac0 & 3) != 2) || (DAT_0017fbc0 != 0)) {\n                lVar16 = DAT_0017f458;\n                if (DAT_0017f458 == 0) {\n                  lVar16 = FUN_00116e20(".bss",0,1);\n                  DAT_0017f458 = lVar16;\n                }\nLAB_0011c659:\n                FUN_00117b90(lVar16 + 0x10,puVar21,0);\n              }\n            }\n            else {\n              if (DAT_0017fc5c == 1) {\n                lVar16 = FUN_00116e20("/DISCARD/",0,1);\n                if ((*(long *)(lVar16 + 0x58) == 0) &&\n                   (((DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0)))) {\n                  uVar11 = FUN_00123030(0);\n                  *(undefined8 *)(lVar16 + 0x58) = uVar11;\n                }\n                goto LAB_0011c659;\n              }\n              if (DAT_0017fc5c == 3) {\n                uVar11 = puVar21[0x1e];\n                uVar14 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_001251f0(uVar14,puVar21,uVar11);\n              }\n              if ((DAT_0017fc78 == 0) && (iVar9 = FUN_001150a0(puVar21,0), iVar9 == 0)) {\n                uVar10 = 0;\n              }\n              else {\n                uVar10 = 0x17e;\n              }\n              lVar16 = FUN_00123c60(puVar21,pbVar4,uVar10);\n              if (lVar16 == 0) {\n                lVar16 = FUN_00116e20(pbVar4,uVar10,1);\n                if ((*(long *)(lVar16 + 0x58) == 0) &&\n                   (((DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0)))) {\n                  uVar11 = FUN_00123030(0);\n                  *(undefined8 *)(lVar16 + 0x58) = uVar11;\n                }\n                FUN_00117b90(lVar16 + 0x10,puVar21,0);\n              }\n              if (DAT_0017fc5c == 2) {\n                uVar11 = puVar21[0x1e];\n                uVar14 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_001251f0(uVar14,puVar21,uVar11);\n              }\n            }\n          }\n          else {\n            puVar21[0xd] = 0x17ed50;\n          }\n        }\n        puVar21 = (undefined8 *)puVar21[2];\n        if (puVar21 == (undefined8 *)0x0) break;\n      } while( true );" do (compound_statement "{\n        if (puVar21[0xd] == 0) {\n          if ((*(byte *)(plVar17 + 9) & 0x10) != 0) goto code_r0x0011c493;\n          iVar9 = FUN_00113350(*(undefined4 *)(puVar21 + 4));\n          bVar38 = false;\n          bVar39 = iVar9 == 0;\n          if (bVar39) {\n            pbVar4 = (byte *)*puVar21;\n            lVar16 = 7;\n            pbVar20 = pbVar4;\n            pbVar32 = (byte *)"COMMON";\n            do {\n              if (lVar16 == 0) break;\n              lVar16 = lVar16 + -1;\n              bVar38 = *pbVar20 < *pbVar32;\n              bVar39 = *pbVar20 == *pbVar32;\n              pbVar20 = pbVar20 + (ulong)bVar40 * -2 + 1;\n              pbVar32 = pbVar32 + (ulong)bVar40 * -2 + 1;\n            } while (bVar39);\n            if ((!bVar38 && !bVar39) == bVar38) {\n              if (((DAT_0017fac0 & 3) != 2) || (DAT_0017fbc0 != 0)) {\n                lVar16 = DAT_0017f458;\n                if (DAT_0017f458 == 0) {\n                  lVar16 = FUN_00116e20(".bss",0,1);\n                  DAT_0017f458 = lVar16;\n                }\nLAB_0011c659:\n                FUN_00117b90(lVar16 + 0x10,puVar21,0);\n              }\n            }\n            else {\n              if (DAT_0017fc5c == 1) {\n                lVar16 = FUN_00116e20("/DISCARD/",0,1);\n                if ((*(long *)(lVar16 + 0x58) == 0) &&\n                   (((DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0)))) {\n                  uVar11 = FUN_00123030(0);\n                  *(undefined8 *)(lVar16 + 0x58) = uVar11;\n                }\n                goto LAB_0011c659;\n              }\n              if (DAT_0017fc5c == 3) {\n                uVar11 = puVar21[0x1e];\n                uVar14 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_001251f0(uVar14,puVar21,uVar11);\n              }\n              if ((DAT_0017fc78 == 0) && (iVar9 = FUN_001150a0(puVar21,0), iVar9 == 0)) {\n                uVar10 = 0;\n              }\n              else {\n                uVar10 = 0x17e;\n              }\n              lVar16 = FUN_00123c60(puVar21,pbVar4,uVar10);\n              if (lVar16 == 0) {\n                lVar16 = FUN_00116e20(pbVar4,uVar10,1);\n                if ((*(long *)(lVar16 + 0x58) == 0) &&\n                   (((DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0)))) {\n                  uVar11 = FUN_00123030(0);\n                  *(undefined8 *)(lVar16 + 0x58) = uVar11;\n                }\n                FUN_00117b90(lVar16 + 0x10,puVar21,0);\n              }\n              if (DAT_0017fc5c == 2) {\n                uVar11 = puVar21[0x1e];\n                uVar14 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_001251f0(uVar14,puVar21,uVar11);\n              }\n            }\n          }\n          else {\n            puVar21[0xd] = 0x17ed50;\n          }\n        }\n        puVar21 = (undefined8 *)puVar21[2];\n        if (puVar21 == (undefined8 *)0x0) break;\n      }" { (if_statement "if (puVar21[0xd] == 0) {\n          if ((*(byte *)(plVar17 + 9) & 0x10) != 0) goto code_r0x0011c493;\n          iVar9 = FUN_00113350(*(undefined4 *)(puVar21 + 4));\n          bVar38 = false;\n          bVar39 = iVar9 == 0;\n          if (bVar39) {\n            pbVar4 = (byte *)*puVar21;\n            lVar16 = 7;\n            pbVar20 = pbVar4;\n            pbVar32 = (byte *)"COMMON";\n            do {\n              if (lVar16 == 0) break;\n              lVar16 = lVar16 + -1;\n              bVar38 = *pbVar20 < *pbVar32;\n              bVar39 = *pbVar20 == *pbVar32;\n              pbVar20 = pbVar20 + (ulong)bVar40 * -2 + 1;\n              pbVar32 = pbVar32 + (ulong)bVar40 * -2 + 1;\n            } while (bVar39);\n            if ((!bVar38 && !bVar39) == bVar38) {\n              if (((DAT_0017fac0 & 3) != 2) || (DAT_0017fbc0 != 0)) {\n                lVar16 = DAT_0017f458;\n                if (DAT_0017f458 == 0) {\n                  lVar16 = FUN_00116e20(".bss",0,1);\n                  DAT_0017f458 = lVar16;\n                }\nLAB_0011c659:\n                FUN_00117b90(lVar16 + 0x10,puVar21,0);\n              }\n            }\n            else {\n              if (DAT_0017fc5c == 1) {\n                lVar16 = FUN_00116e20("/DISCARD/",0,1);\n                if ((*(long *)(lVar16 + 0x58) == 0) &&\n                   (((DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0)))) {\n                  uVar11 = FUN_00123030(0);\n                  *(undefined8 *)(lVar16 + 0x58) = uVar11;\n                }\n                goto LAB_0011c659;\n              }\n              if (DAT_0017fc5c == 3) {\n                uVar11 = puVar21[0x1e];\n                uVar14 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_001251f0(uVar14,puVar21,uVar11);\n              }\n              if ((DAT_0017fc78 == 0) && (iVar9 = FUN_001150a0(puVar21,0), iVar9 == 0)) {\n                uVar10 = 0;\n              }\n              else {\n                uVar10 = 0x17e;\n              }\n              lVar16 = FUN_00123c60(puVar21,pbVar4,uVar10);\n              if (lVar16 == 0) {\n                lVar16 = FUN_00116e20(pbVar4,uVar10,1);\n                if ((*(long *)(lVar16 + 0x58) == 0) &&\n                   (((DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0)))) {\n                  uVar11 = FUN_00123030(0);\n                  *(undefined8 *)(lVar16 + 0x58) = uVar11;\n                }\n                FUN_00117b90(lVar16 + 0x10,puVar21,0);\n              }\n              if (DAT_0017fc5c == 2) {\n                uVar11 = puVar21[0x1e];\n                uVar14 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_001251f0(uVar14,puVar21,uVar11);\n              }\n            }\n          }\n          else {\n            puVar21[0xd] = 0x17ed50;\n          }\n        }" if (parenthesized_expression "(puVar21[0xd] == 0)" ( (binary_expression "puVar21[0xd] == 0" (subscript_expression "puVar21[0xd]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n          if ((*(byte *)(plVar17 + 9) & 0x10) != 0) goto code_r0x0011c493;\n          iVar9 = FUN_00113350(*(undefined4 *)(puVar21 + 4));\n          bVar38 = false;\n          bVar39 = iVar9 == 0;\n          if (bVar39) {\n            pbVar4 = (byte *)*puVar21;\n            lVar16 = 7;\n            pbVar20 = pbVar4;\n            pbVar32 = (byte *)"COMMON";\n            do {\n              if (lVar16 == 0) break;\n              lVar16 = lVar16 + -1;\n              bVar38 = *pbVar20 < *pbVar32;\n              bVar39 = *pbVar20 == *pbVar32;\n              pbVar20 = pbVar20 + (ulong)bVar40 * -2 + 1;\n              pbVar32 = pbVar32 + (ulong)bVar40 * -2 + 1;\n            } while (bVar39);\n            if ((!bVar38 && !bVar39) == bVar38) {\n              if (((DAT_0017fac0 & 3) != 2) || (DAT_0017fbc0 != 0)) {\n                lVar16 = DAT_0017f458;\n                if (DAT_0017f458 == 0) {\n                  lVar16 = FUN_00116e20(".bss",0,1);\n                  DAT_0017f458 = lVar16;\n                }\nLAB_0011c659:\n                FUN_00117b90(lVar16 + 0x10,puVar21,0);\n              }\n            }\n            else {\n              if (DAT_0017fc5c == 1) {\n                lVar16 = FUN_00116e20("/DISCARD/",0,1);\n                if ((*(long *)(lVar16 + 0x58) == 0) &&\n                   (((DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0)))) {\n                  uVar11 = FUN_00123030(0);\n                  *(undefined8 *)(lVar16 + 0x58) = uVar11;\n                }\n                goto LAB_0011c659;\n              }\n              if (DAT_0017fc5c == 3) {\n                uVar11 = puVar21[0x1e];\n                uVar14 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_001251f0(uVar14,puVar21,uVar11);\n              }\n              if ((DAT_0017fc78 == 0) && (iVar9 = FUN_001150a0(puVar21,0), iVar9 == 0)) {\n                uVar10 = 0;\n              }\n              else {\n                uVar10 = 0x17e;\n              }\n              lVar16 = FUN_00123c60(puVar21,pbVar4,uVar10);\n              if (lVar16 == 0) {\n                lVar16 = FUN_00116e20(pbVar4,uVar10,1);\n                if ((*(long *)(lVar16 + 0x58) == 0) &&\n                   (((DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0)))) {\n                  uVar11 = FUN_00123030(0);\n                  *(undefined8 *)(lVar16 + 0x58) = uVar11;\n                }\n                FUN_00117b90(lVar16 + 0x10,puVar21,0);\n              }\n              if (DAT_0017fc5c == 2) {\n                uVar11 = puVar21[0x1e];\n                uVar14 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_001251f0(uVar14,puVar21,uVar11);\n              }\n            }\n          }\n          else {\n            puVar21[0xd] = 0x17ed50;\n          }\n        }" { (if_statement "if ((*(byte *)(plVar17 + 9) & 0x10) != 0) goto code_r0x0011c493;" if (parenthesized_expression "((*(byte *)(plVar17 + 9) & 0x10) != 0)" ( (binary_expression "(*(byte *)(plVar17 + 9) & 0x10) != 0" (parenthesized_expression "(*(byte *)(plVar17 + 9) & 0x10)" ( (binary_expression "*(byte *)(plVar17 + 9) & 0x10" (pointer_expression "*(byte *)(plVar17 + 9)" * (cast_expression "(byte *)(plVar17 + 9)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar17 + 9)" ( (binary_expression "plVar17 + 9" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (goto_statement "goto code_r0x0011c493;" goto statement_identifier ;)) (expression_statement "iVar9 = FUN_00113350(*(undefined4 *)(puVar21 + 4));" (assignment_expression "iVar9 = FUN_00113350(*(undefined4 *)(puVar21 + 4))" identifier = (call_expression "FUN_00113350(*(undefined4 *)(puVar21 + 4))" identifier (argument_list "(*(undefined4 *)(puVar21 + 4))" ( (pointer_expression "*(undefined4 *)(puVar21 + 4)" * (cast_expression "(undefined4 *)(puVar21 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + 4)" ( (binary_expression "puVar21 + 4" identifier + number_literal) )))) )))) ;) (expression_statement "bVar38 = false;" (assignment_expression "bVar38 = false" identifier = false) ;) (expression_statement "bVar39 = iVar9 == 0;" (assignment_expression "bVar39 = iVar9 == 0" identifier = (binary_expression "iVar9 == 0" identifier == number_literal)) ;) (if_statement "if (bVar39) {\n            pbVar4 = (byte *)*puVar21;\n            lVar16 = 7;\n            pbVar20 = pbVar4;\n            pbVar32 = (byte *)"COMMON";\n            do {\n              if (lVar16 == 0) break;\n              lVar16 = lVar16 + -1;\n              bVar38 = *pbVar20 < *pbVar32;\n              bVar39 = *pbVar20 == *pbVar32;\n              pbVar20 = pbVar20 + (ulong)bVar40 * -2 + 1;\n              pbVar32 = pbVar32 + (ulong)bVar40 * -2 + 1;\n            } while (bVar39);\n            if ((!bVar38 && !bVar39) == bVar38) {\n              if (((DAT_0017fac0 & 3) != 2) || (DAT_0017fbc0 != 0)) {\n                lVar16 = DAT_0017f458;\n                if (DAT_0017f458 == 0) {\n                  lVar16 = FUN_00116e20(".bss",0,1);\n                  DAT_0017f458 = lVar16;\n                }\nLAB_0011c659:\n                FUN_00117b90(lVar16 + 0x10,puVar21,0);\n              }\n            }\n            else {\n              if (DAT_0017fc5c == 1) {\n                lVar16 = FUN_00116e20("/DISCARD/",0,1);\n                if ((*(long *)(lVar16 + 0x58) == 0) &&\n                   (((DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0)))) {\n                  uVar11 = FUN_00123030(0);\n                  *(undefined8 *)(lVar16 + 0x58) = uVar11;\n                }\n                goto LAB_0011c659;\n              }\n              if (DAT_0017fc5c == 3) {\n                uVar11 = puVar21[0x1e];\n                uVar14 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_001251f0(uVar14,puVar21,uVar11);\n              }\n              if ((DAT_0017fc78 == 0) && (iVar9 = FUN_001150a0(puVar21,0), iVar9 == 0)) {\n                uVar10 = 0;\n              }\n              else {\n                uVar10 = 0x17e;\n              }\n              lVar16 = FUN_00123c60(puVar21,pbVar4,uVar10);\n              if (lVar16 == 0) {\n                lVar16 = FUN_00116e20(pbVar4,uVar10,1);\n                if ((*(long *)(lVar16 + 0x58) == 0) &&\n                   (((DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0)))) {\n                  uVar11 = FUN_00123030(0);\n                  *(undefined8 *)(lVar16 + 0x58) = uVar11;\n                }\n                FUN_00117b90(lVar16 + 0x10,puVar21,0);\n              }\n              if (DAT_0017fc5c == 2) {\n                uVar11 = puVar21[0x1e];\n                uVar14 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_001251f0(uVar14,puVar21,uVar11);\n              }\n            }\n          }\n          else {\n            puVar21[0xd] = 0x17ed50;\n          }" if (parenthesized_expression "(bVar39)" ( identifier )) (compound_statement "{\n            pbVar4 = (byte *)*puVar21;\n            lVar16 = 7;\n            pbVar20 = pbVar4;\n            pbVar32 = (byte *)"COMMON";\n            do {\n              if (lVar16 == 0) break;\n              lVar16 = lVar16 + -1;\n              bVar38 = *pbVar20 < *pbVar32;\n              bVar39 = *pbVar20 == *pbVar32;\n              pbVar20 = pbVar20 + (ulong)bVar40 * -2 + 1;\n              pbVar32 = pbVar32 + (ulong)bVar40 * -2 + 1;\n            } while (bVar39);\n            if ((!bVar38 && !bVar39) == bVar38) {\n              if (((DAT_0017fac0 & 3) != 2) || (DAT_0017fbc0 != 0)) {\n                lVar16 = DAT_0017f458;\n                if (DAT_0017f458 == 0) {\n                  lVar16 = FUN_00116e20(".bss",0,1);\n                  DAT_0017f458 = lVar16;\n                }\nLAB_0011c659:\n                FUN_00117b90(lVar16 + 0x10,puVar21,0);\n              }\n            }\n            else {\n              if (DAT_0017fc5c == 1) {\n                lVar16 = FUN_00116e20("/DISCARD/",0,1);\n                if ((*(long *)(lVar16 + 0x58) == 0) &&\n                   (((DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0)))) {\n                  uVar11 = FUN_00123030(0);\n                  *(undefined8 *)(lVar16 + 0x58) = uVar11;\n                }\n                goto LAB_0011c659;\n              }\n              if (DAT_0017fc5c == 3) {\n                uVar11 = puVar21[0x1e];\n                uVar14 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_001251f0(uVar14,puVar21,uVar11);\n              }\n              if ((DAT_0017fc78 == 0) && (iVar9 = FUN_001150a0(puVar21,0), iVar9 == 0)) {\n                uVar10 = 0;\n              }\n              else {\n                uVar10 = 0x17e;\n              }\n              lVar16 = FUN_00123c60(puVar21,pbVar4,uVar10);\n              if (lVar16 == 0) {\n                lVar16 = FUN_00116e20(pbVar4,uVar10,1);\n                if ((*(long *)(lVar16 + 0x58) == 0) &&\n                   (((DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0)))) {\n                  uVar11 = FUN_00123030(0);\n                  *(undefined8 *)(lVar16 + 0x58) = uVar11;\n                }\n                FUN_00117b90(lVar16 + 0x10,puVar21,0);\n              }\n              if (DAT_0017fc5c == 2) {\n                uVar11 = puVar21[0x1e];\n                uVar14 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_001251f0(uVar14,puVar21,uVar11);\n              }\n            }\n          }" { (expression_statement "pbVar4 = (byte *)*puVar21;" (assignment_expression "pbVar4 = (byte *)*puVar21" identifier = (cast_expression "(byte *)*puVar21" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar21" * identifier))) ;) (expression_statement "lVar16 = 7;" (assignment_expression "lVar16 = 7" identifier = number_literal) ;) (expression_statement "pbVar20 = pbVar4;" (assignment_expression "pbVar20 = pbVar4" identifier = identifier) ;) (expression_statement "pbVar32 = (byte *)"COMMON";" (assignment_expression "pbVar32 = (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 (lVar16 == 0) break;\n              lVar16 = lVar16 + -1;\n              bVar38 = *pbVar20 < *pbVar32;\n              bVar39 = *pbVar20 == *pbVar32;\n              pbVar20 = pbVar20 + (ulong)bVar40 * -2 + 1;\n              pbVar32 = pbVar32 + (ulong)bVar40 * -2 + 1;\n            } while (bVar39);" do (compound_statement "{\n              if (lVar16 == 0) break;\n              lVar16 = lVar16 + -1;\n              bVar38 = *pbVar20 < *pbVar32;\n              bVar39 = *pbVar20 == *pbVar32;\n              pbVar20 = pbVar20 + (ulong)bVar40 * -2 + 1;\n              pbVar32 = pbVar32 + (ulong)bVar40 * -2 + 1;\n            }" { (if_statement "if (lVar16 == 0) break;" if (parenthesized_expression "(lVar16 == 0)" ( (binary_expression "lVar16 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar16 = lVar16 + -1;" (assignment_expression "lVar16 = lVar16 + -1" identifier = (binary_expression "lVar16 + -1" identifier + number_literal)) ;) (expression_statement "bVar38 = *pbVar20 < *pbVar32;" (assignment_expression "bVar38 = *pbVar20 < *pbVar32" identifier = (binary_expression "*pbVar20 < *pbVar32" (pointer_expression "*pbVar20" * identifier) < (pointer_expression "*pbVar32" * identifier))) ;) (expression_statement "bVar39 = *pbVar20 == *pbVar32;" (assignment_expression "bVar39 = *pbVar20 == *pbVar32" identifier = (binary_expression "*pbVar20 == *pbVar32" (pointer_expression "*pbVar20" * identifier) == (pointer_expression "*pbVar32" * identifier))) ;) (expression_statement "pbVar20 = pbVar20 + (ulong)bVar40 * -2 + 1;" (assignment_expression "pbVar20 = pbVar20 + (ulong)bVar40 * -2 + 1" identifier = (binary_expression "pbVar20 + (ulong)bVar40 * -2 + 1" (binary_expression "pbVar20 + (ulong)bVar40 * -2" identifier + (binary_expression "(ulong)bVar40 * -2" (cast_expression "(ulong)bVar40" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar32 = pbVar32 + (ulong)bVar40 * -2 + 1;" (assignment_expression "pbVar32 = pbVar32 + (ulong)bVar40 * -2 + 1" identifier = (binary_expression "pbVar32 + (ulong)bVar40 * -2 + 1" (binary_expression "pbVar32 + (ulong)bVar40 * -2" identifier + (binary_expression "(ulong)bVar40 * -2" (cast_expression "(ulong)bVar40" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar39)" ( identifier )) ;) (if_statement "if ((!bVar38 && !bVar39) == bVar38) {\n              if (((DAT_0017fac0 & 3) != 2) || (DAT_0017fbc0 != 0)) {\n                lVar16 = DAT_0017f458;\n                if (DAT_0017f458 == 0) {\n                  lVar16 = FUN_00116e20(".bss",0,1);\n                  DAT_0017f458 = lVar16;\n                }\nLAB_0011c659:\n                FUN_00117b90(lVar16 + 0x10,puVar21,0);\n              }\n            }\n            else {\n              if (DAT_0017fc5c == 1) {\n                lVar16 = FUN_00116e20("/DISCARD/",0,1);\n                if ((*(long *)(lVar16 + 0x58) == 0) &&\n                   (((DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0)))) {\n                  uVar11 = FUN_00123030(0);\n                  *(undefined8 *)(lVar16 + 0x58) = uVar11;\n                }\n                goto LAB_0011c659;\n              }\n              if (DAT_0017fc5c == 3) {\n                uVar11 = puVar21[0x1e];\n                uVar14 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_001251f0(uVar14,puVar21,uVar11);\n              }\n              if ((DAT_0017fc78 == 0) && (iVar9 = FUN_001150a0(puVar21,0), iVar9 == 0)) {\n                uVar10 = 0;\n              }\n              else {\n                uVar10 = 0x17e;\n              }\n              lVar16 = FUN_00123c60(puVar21,pbVar4,uVar10);\n              if (lVar16 == 0) {\n                lVar16 = FUN_00116e20(pbVar4,uVar10,1);\n                if ((*(long *)(lVar16 + 0x58) == 0) &&\n                   (((DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0)))) {\n                  uVar11 = FUN_00123030(0);\n                  *(undefined8 *)(lVar16 + 0x58) = uVar11;\n                }\n                FUN_00117b90(lVar16 + 0x10,puVar21,0);\n              }\n              if (DAT_0017fc5c == 2) {\n                uVar11 = puVar21[0x1e];\n                uVar14 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_001251f0(uVar14,puVar21,uVar11);\n              }\n            }" if (parenthesized_expression "((!bVar38 && !bVar39) == bVar38)" ( (binary_expression "(!bVar38 && !bVar39) == bVar38" (parenthesized_expression "(!bVar38 && !bVar39)" ( (binary_expression "!bVar38 && !bVar39" (unary_expression "!bVar38" ! identifier) && (unary_expression "!bVar39" ! identifier)) )) == identifier) )) (compound_statement "{\n              if (((DAT_0017fac0 & 3) != 2) || (DAT_0017fbc0 != 0)) {\n                lVar16 = DAT_0017f458;\n                if (DAT_0017f458 == 0) {\n                  lVar16 = FUN_00116e20(".bss",0,1);\n                  DAT_0017f458 = lVar16;\n                }\nLAB_0011c659:\n                FUN_00117b90(lVar16 + 0x10,puVar21,0);\n              }\n            }" { (if_statement "if (((DAT_0017fac0 & 3) != 2) || (DAT_0017fbc0 != 0)) {\n                lVar16 = DAT_0017f458;\n                if (DAT_0017f458 == 0) {\n                  lVar16 = FUN_00116e20(".bss",0,1);\n                  DAT_0017f458 = lVar16;\n                }\nLAB_0011c659:\n                FUN_00117b90(lVar16 + 0x10,puVar21,0);\n              }" if (parenthesized_expression "(((DAT_0017fac0 & 3) != 2) || (DAT_0017fbc0 != 0))" ( (binary_expression "((DAT_0017fac0 & 3) != 2) || (DAT_0017fbc0 != 0)" (parenthesized_expression "((DAT_0017fac0 & 3) != 2)" ( (binary_expression "(DAT_0017fac0 & 3) != 2" (parenthesized_expression "(DAT_0017fac0 & 3)" ( (binary_expression "DAT_0017fac0 & 3" identifier & number_literal) )) != number_literal) )) || (parenthesized_expression "(DAT_0017fbc0 != 0)" ( (binary_expression "DAT_0017fbc0 != 0" identifier != number_literal) ))) )) (compound_statement "{\n                lVar16 = DAT_0017f458;\n                if (DAT_0017f458 == 0) {\n                  lVar16 = FUN_00116e20(".bss",0,1);\n                  DAT_0017f458 = lVar16;\n                }\nLAB_0011c659:\n                FUN_00117b90(lVar16 + 0x10,puVar21,0);\n              }" { (expression_statement "lVar16 = DAT_0017f458;" (assignment_expression "lVar16 = DAT_0017f458" identifier = identifier) ;) (if_statement "if (DAT_0017f458 == 0) {\n                  lVar16 = FUN_00116e20(".bss",0,1);\n                  DAT_0017f458 = lVar16;\n                }" if (parenthesized_expression "(DAT_0017f458 == 0)" ( (binary_expression "DAT_0017f458 == 0" identifier == number_literal) )) (compound_statement "{\n                  lVar16 = FUN_00116e20(".bss",0,1);\n                  DAT_0017f458 = lVar16;\n                }" { (expression_statement "lVar16 = FUN_00116e20(".bss",0,1);" (assignment_expression "lVar16 = FUN_00116e20(".bss",0,1)" identifier = (call_expression "FUN_00116e20(".bss",0,1)" identifier (argument_list "(".bss",0,1)" ( (string_literal "".bss"" " string_content ") , number_literal , number_literal )))) ;) (expression_statement "DAT_0017f458 = lVar16;" (assignment_expression "DAT_0017f458 = lVar16" identifier = identifier) ;) })) (labeled_statement "LAB_0011c659:\n                FUN_00117b90(lVar16 + 0x10,puVar21,0);" statement_identifier : (expression_statement "FUN_00117b90(lVar16 + 0x10,puVar21,0);" (call_expression "FUN_00117b90(lVar16 + 0x10,puVar21,0)" identifier (argument_list "(lVar16 + 0x10,puVar21,0)" ( (binary_expression "lVar16 + 0x10" identifier + number_literal) , identifier , number_literal ))) ;)) })) }) (else_clause "else {\n              if (DAT_0017fc5c == 1) {\n                lVar16 = FUN_00116e20("/DISCARD/",0,1);\n                if ((*(long *)(lVar16 + 0x58) == 0) &&\n                   (((DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0)))) {\n                  uVar11 = FUN_00123030(0);\n                  *(undefined8 *)(lVar16 + 0x58) = uVar11;\n                }\n                goto LAB_0011c659;\n              }\n              if (DAT_0017fc5c == 3) {\n                uVar11 = puVar21[0x1e];\n                uVar14 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_001251f0(uVar14,puVar21,uVar11);\n              }\n              if ((DAT_0017fc78 == 0) && (iVar9 = FUN_001150a0(puVar21,0), iVar9 == 0)) {\n                uVar10 = 0;\n              }\n              else {\n                uVar10 = 0x17e;\n              }\n              lVar16 = FUN_00123c60(puVar21,pbVar4,uVar10);\n              if (lVar16 == 0) {\n                lVar16 = FUN_00116e20(pbVar4,uVar10,1);\n                if ((*(long *)(lVar16 + 0x58) == 0) &&\n                   (((DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0)))) {\n                  uVar11 = FUN_00123030(0);\n                  *(undefined8 *)(lVar16 + 0x58) = uVar11;\n                }\n                FUN_00117b90(lVar16 + 0x10,puVar21,0);\n              }\n              if (DAT_0017fc5c == 2) {\n                uVar11 = puVar21[0x1e];\n                uVar14 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_001251f0(uVar14,puVar21,uVar11);\n              }\n            }" else (compound_statement "{\n              if (DAT_0017fc5c == 1) {\n                lVar16 = FUN_00116e20("/DISCARD/",0,1);\n                if ((*(long *)(lVar16 + 0x58) == 0) &&\n                   (((DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0)))) {\n                  uVar11 = FUN_00123030(0);\n                  *(undefined8 *)(lVar16 + 0x58) = uVar11;\n                }\n                goto LAB_0011c659;\n              }\n              if (DAT_0017fc5c == 3) {\n                uVar11 = puVar21[0x1e];\n                uVar14 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_001251f0(uVar14,puVar21,uVar11);\n              }\n              if ((DAT_0017fc78 == 0) && (iVar9 = FUN_001150a0(puVar21,0), iVar9 == 0)) {\n                uVar10 = 0;\n              }\n              else {\n                uVar10 = 0x17e;\n              }\n              lVar16 = FUN_00123c60(puVar21,pbVar4,uVar10);\n              if (lVar16 == 0) {\n                lVar16 = FUN_00116e20(pbVar4,uVar10,1);\n                if ((*(long *)(lVar16 + 0x58) == 0) &&\n                   (((DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0)))) {\n                  uVar11 = FUN_00123030(0);\n                  *(undefined8 *)(lVar16 + 0x58) = uVar11;\n                }\n                FUN_00117b90(lVar16 + 0x10,puVar21,0);\n              }\n              if (DAT_0017fc5c == 2) {\n                uVar11 = puVar21[0x1e];\n                uVar14 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_001251f0(uVar14,puVar21,uVar11);\n              }\n            }" { (if_statement "if (DAT_0017fc5c == 1) {\n                lVar16 = FUN_00116e20("/DISCARD/",0,1);\n                if ((*(long *)(lVar16 + 0x58) == 0) &&\n                   (((DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0)))) {\n                  uVar11 = FUN_00123030(0);\n                  *(undefined8 *)(lVar16 + 0x58) = uVar11;\n                }\n                goto LAB_0011c659;\n              }" if (parenthesized_expression "(DAT_0017fc5c == 1)" ( (binary_expression "DAT_0017fc5c == 1" identifier == number_literal) )) (compound_statement "{\n                lVar16 = FUN_00116e20("/DISCARD/",0,1);\n                if ((*(long *)(lVar16 + 0x58) == 0) &&\n                   (((DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0)))) {\n                  uVar11 = FUN_00123030(0);\n                  *(undefined8 *)(lVar16 + 0x58) = uVar11;\n                }\n                goto LAB_0011c659;\n              }" { (expression_statement "lVar16 = FUN_00116e20("/DISCARD/",0,1);" (assignment_expression "lVar16 = FUN_00116e20("/DISCARD/",0,1)" identifier = (call_expression "FUN_00116e20("/DISCARD/",0,1)" identifier (argument_list "("/DISCARD/",0,1)" ( (string_literal ""/DISCARD/"" " string_content ") , number_literal , number_literal )))) ;) (if_statement "if ((*(long *)(lVar16 + 0x58) == 0) &&\n                   (((DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0)))) {\n                  uVar11 = FUN_00123030(0);\n                  *(undefined8 *)(lVar16 + 0x58) = uVar11;\n                }" if (parenthesized_expression "((*(long *)(lVar16 + 0x58) == 0) &&\n                   (((DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0))))" ( (binary_expression "(*(long *)(lVar16 + 0x58) == 0) &&\n                   (((DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0)))" (parenthesized_expression "(*(long *)(lVar16 + 0x58) == 0)" ( (binary_expression "*(long *)(lVar16 + 0x58) == 0" (pointer_expression "*(long *)(lVar16 + 0x58)" * (cast_expression "(long *)(lVar16 + 0x58)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar16 + 0x58)" ( (binary_expression "lVar16 + 0x58" identifier + number_literal) )))) == number_literal) )) && (parenthesized_expression "(((DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0)))" ( (parenthesized_expression "((DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0))" ( (binary_expression "(DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0)" (binary_expression "(DAT_0017fac0 & 3) == 2" (parenthesized_expression "(DAT_0017fac0 & 3)" ( (binary_expression "DAT_0017fac0 & 3" identifier & number_literal) )) == number_literal) || (parenthesized_expression "((*(byte *)(puVar21 + 4) & 3) == 0)" ( (binary_expression "(*(byte *)(puVar21 + 4) & 3) == 0" (parenthesized_expression "(*(byte *)(puVar21 + 4) & 3)" ( (binary_expression "*(byte *)(puVar21 + 4) & 3" (pointer_expression "*(byte *)(puVar21 + 4)" * (cast_expression "(byte *)(puVar21 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + 4)" ( (binary_expression "puVar21 + 4" identifier + number_literal) )))) & number_literal) )) == number_literal) ))) )) ))) )) (compound_statement "{\n                  uVar11 = FUN_00123030(0);\n                  *(undefined8 *)(lVar16 + 0x58) = uVar11;\n                }" { (expression_statement "uVar11 = FUN_00123030(0);" (assignment_expression "uVar11 = FUN_00123030(0)" identifier = (call_expression "FUN_00123030(0)" identifier (argument_list "(0)" ( number_literal )))) ;) (expression_statement "*(undefined8 *)(lVar16 + 0x58) = uVar11;" (assignment_expression "*(undefined8 *)(lVar16 + 0x58) = uVar11" (pointer_expression "*(undefined8 *)(lVar16 + 0x58)" * (cast_expression "(undefined8 *)(lVar16 + 0x58)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar16 + 0x58)" ( (binary_expression "lVar16 + 0x58" identifier + number_literal) )))) = identifier) ;) })) (goto_statement "goto LAB_0011c659;" goto statement_identifier ;) })) (if_statement "if (DAT_0017fc5c == 3) {\n                uVar11 = puVar21[0x1e];\n                uVar14 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_001251f0(uVar14,puVar21,uVar11);\n              }" if (parenthesized_expression "(DAT_0017fc5c == 3)" ( (binary_expression "DAT_0017fc5c == 3" identifier == number_literal) )) (compound_statement "{\n                uVar11 = puVar21[0x1e];\n                uVar14 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_001251f0(uVar14,puVar21,uVar11);\n              }" { (expression_statement "uVar11 = puVar21[0x1e];" (assignment_expression "uVar11 = puVar21[0x1e]" identifier = (subscript_expression "puVar21[0x1e]" 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_001251f0(uVar14,puVar21,uVar11);" (call_expression "FUN_001251f0(uVar14,puVar21,uVar11)" identifier (argument_list "(uVar14,puVar21,uVar11)" ( identifier , identifier , identifier ))) ;) })) (if_statement "if ((DAT_0017fc78 == 0) && (iVar9 = FUN_001150a0(puVar21,0), iVar9 == 0)) {\n                uVar10 = 0;\n              }\n              else {\n                uVar10 = 0x17e;\n              }" if (parenthesized_expression "((DAT_0017fc78 == 0) && (iVar9 = FUN_001150a0(puVar21,0), iVar9 == 0))" ( (binary_expression "(DAT_0017fc78 == 0) && (iVar9 = FUN_001150a0(puVar21,0), iVar9 == 0)" (parenthesized_expression "(DAT_0017fc78 == 0)" ( (binary_expression "DAT_0017fc78 == 0" identifier == number_literal) )) && (parenthesized_expression "(iVar9 = FUN_001150a0(puVar21,0), iVar9 == 0)" ( (comma_expression "iVar9 = FUN_001150a0(puVar21,0), iVar9 == 0" (assignment_expression "iVar9 = FUN_001150a0(puVar21,0)" identifier = (call_expression "FUN_001150a0(puVar21,0)" identifier (argument_list "(puVar21,0)" ( identifier , number_literal )))) , (binary_expression "iVar9 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n                uVar10 = 0;\n              }" { (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" identifier = number_literal) ;) }) (else_clause "else {\n                uVar10 = 0x17e;\n              }" else (compound_statement "{\n                uVar10 = 0x17e;\n              }" { (expression_statement "uVar10 = 0x17e;" (assignment_expression "uVar10 = 0x17e" identifier = number_literal) ;) }))) (expression_statement "lVar16 = FUN_00123c60(puVar21,pbVar4,uVar10);" (assignment_expression "lVar16 = FUN_00123c60(puVar21,pbVar4,uVar10)" identifier = (call_expression "FUN_00123c60(puVar21,pbVar4,uVar10)" identifier (argument_list "(puVar21,pbVar4,uVar10)" ( identifier , identifier , identifier )))) ;) (if_statement "if (lVar16 == 0) {\n                lVar16 = FUN_00116e20(pbVar4,uVar10,1);\n                if ((*(long *)(lVar16 + 0x58) == 0) &&\n                   (((DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0)))) {\n                  uVar11 = FUN_00123030(0);\n                  *(undefined8 *)(lVar16 + 0x58) = uVar11;\n                }\n                FUN_00117b90(lVar16 + 0x10,puVar21,0);\n              }" if (parenthesized_expression "(lVar16 == 0)" ( (binary_expression "lVar16 == 0" identifier == number_literal) )) (compound_statement "{\n                lVar16 = FUN_00116e20(pbVar4,uVar10,1);\n                if ((*(long *)(lVar16 + 0x58) == 0) &&\n                   (((DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0)))) {\n                  uVar11 = FUN_00123030(0);\n                  *(undefined8 *)(lVar16 + 0x58) = uVar11;\n                }\n                FUN_00117b90(lVar16 + 0x10,puVar21,0);\n              }" { (expression_statement "lVar16 = FUN_00116e20(pbVar4,uVar10,1);" (assignment_expression "lVar16 = FUN_00116e20(pbVar4,uVar10,1)" identifier = (call_expression "FUN_00116e20(pbVar4,uVar10,1)" identifier (argument_list "(pbVar4,uVar10,1)" ( identifier , identifier , number_literal )))) ;) (if_statement "if ((*(long *)(lVar16 + 0x58) == 0) &&\n                   (((DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0)))) {\n                  uVar11 = FUN_00123030(0);\n                  *(undefined8 *)(lVar16 + 0x58) = uVar11;\n                }" if (parenthesized_expression "((*(long *)(lVar16 + 0x58) == 0) &&\n                   (((DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0))))" ( (binary_expression "(*(long *)(lVar16 + 0x58) == 0) &&\n                   (((DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0)))" (parenthesized_expression "(*(long *)(lVar16 + 0x58) == 0)" ( (binary_expression "*(long *)(lVar16 + 0x58) == 0" (pointer_expression "*(long *)(lVar16 + 0x58)" * (cast_expression "(long *)(lVar16 + 0x58)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar16 + 0x58)" ( (binary_expression "lVar16 + 0x58" identifier + number_literal) )))) == number_literal) )) && (parenthesized_expression "(((DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0)))" ( (parenthesized_expression "((DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0))" ( (binary_expression "(DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0)" (binary_expression "(DAT_0017fac0 & 3) == 2" (parenthesized_expression "(DAT_0017fac0 & 3)" ( (binary_expression "DAT_0017fac0 & 3" identifier & number_literal) )) == number_literal) || (parenthesized_expression "((*(byte *)(puVar21 + 4) & 3) == 0)" ( (binary_expression "(*(byte *)(puVar21 + 4) & 3) == 0" (parenthesized_expression "(*(byte *)(puVar21 + 4) & 3)" ( (binary_expression "*(byte *)(puVar21 + 4) & 3" (pointer_expression "*(byte *)(puVar21 + 4)" * (cast_expression "(byte *)(puVar21 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + 4)" ( (binary_expression "puVar21 + 4" identifier + number_literal) )))) & number_literal) )) == number_literal) ))) )) ))) )) (compound_statement "{\n                  uVar11 = FUN_00123030(0);\n                  *(undefined8 *)(lVar16 + 0x58) = uVar11;\n                }" { (expression_statement "uVar11 = FUN_00123030(0);" (assignment_expression "uVar11 = FUN_00123030(0)" identifier = (call_expression "FUN_00123030(0)" identifier (argument_list "(0)" ( number_literal )))) ;) (expression_statement "*(undefined8 *)(lVar16 + 0x58) = uVar11;" (assignment_expression "*(undefined8 *)(lVar16 + 0x58) = uVar11" (pointer_expression "*(undefined8 *)(lVar16 + 0x58)" * (cast_expression "(undefined8 *)(lVar16 + 0x58)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar16 + 0x58)" ( (binary_expression "lVar16 + 0x58" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "FUN_00117b90(lVar16 + 0x10,puVar21,0);" (call_expression "FUN_00117b90(lVar16 + 0x10,puVar21,0)" identifier (argument_list "(lVar16 + 0x10,puVar21,0)" ( (binary_expression "lVar16 + 0x10" identifier + number_literal) , identifier , number_literal ))) ;) })) (if_statement "if (DAT_0017fc5c == 2) {\n                uVar11 = puVar21[0x1e];\n                uVar14 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_001251f0(uVar14,puVar21,uVar11);\n              }" if (parenthesized_expression "(DAT_0017fc5c == 2)" ( (binary_expression "DAT_0017fc5c == 2" identifier == number_literal) )) (compound_statement "{\n                uVar11 = puVar21[0x1e];\n                uVar14 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_001251f0(uVar14,puVar21,uVar11);\n              }" { (expression_statement "uVar11 = puVar21[0x1e];" (assignment_expression "uVar11 = puVar21[0x1e]" identifier = (subscript_expression "puVar21[0x1e]" identifier [ number_literal ])) ;) (expression_statement "uVar14 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);" (assignment_expression "uVar14 = 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_001251f0(uVar14,puVar21,uVar11);" (call_expression "FUN_001251f0(uVar14,puVar21,uVar11)" identifier (argument_list "(uVar14,puVar21,uVar11)" ( identifier , identifier , identifier ))) ;) })) }))) }) (else_clause "else {\n            puVar21[0xd] = 0x17ed50;\n          }" else (compound_statement "{\n            puVar21[0xd] = 0x17ed50;\n          }" { (expression_statement "puVar21[0xd] = 0x17ed50;" (assignment_expression "puVar21[0xd] = 0x17ed50" (subscript_expression "puVar21[0xd]" identifier [ number_literal ]) = number_literal) ;) }))) })) (expression_statement "puVar21 = (undefined8 *)puVar21[2];" (assignment_expression "puVar21 = (undefined8 *)puVar21[2]" identifier = (cast_expression "(undefined8 *)puVar21[2]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar21[2]" identifier [ number_literal ]))) ;) (if_statement "if (puVar21 == (undefined8 *)0x0) break;" if (parenthesized_expression "(puVar21 == (undefined8 *)0x0)" ( (binary_expression "puVar21 == (undefined8 *)0x0" identifier == (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) }) while (parenthesized_expression "( true )" ( true )) ;) }))) }))) (expression_statement "bVar35 = DAT_0017fac0 & 3;" (assignment_expression "bVar35 = DAT_0017fac0 & 3" identifier = (binary_expression "DAT_0017fac0 & 3" identifier & number_literal)) ;) (expression_statement "plVar17 = DAT_0017f358;" (assignment_expression "plVar17 = DAT_0017f358" identifier = identifier) ;) (expression_statement "plVar18 = DAT_0017fa60;" (assignment_expression "plVar18 = DAT_0017fa60" identifier = identifier) ;) (expression_statement "lVar16 = DAT_0017fb10;" (assignment_expression "lVar16 = DAT_0017fb10" identifier = identifier) ;) (if_statement "if (bVar35 != 2) {\n    (**(code **)(*(long *)(DAT_0017fb10 + 8) + 0x300))(DAT_0017fb10,&DAT_0017fac0);\n    lVar16 = bfd_get_section_by_name(DAT_0017fb10,".text");\n    if (lVar16 == 0) {\n      bVar35 = DAT_0017fac0 & 3;\n      plVar17 = DAT_0017f358;\n      plVar18 = DAT_0017fa60;\n      lVar16 = DAT_0017fb10;\n    }\n    else {\n      bVar35 = DAT_0017fac0 & 3;\n      if (DAT_0017fc70 == 0) {\n        *(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) & 0xfffffff7;\n        plVar17 = DAT_0017f358;\n        plVar18 = DAT_0017fa60;\n        lVar16 = DAT_0017fb10;\n      }\n      else {\n        *(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) | 8;\n        plVar17 = DAT_0017f358;\n        plVar18 = DAT_0017fa60;\n        lVar16 = DAT_0017fb10;\n      }\n    }\n  }" if (parenthesized_expression "(bVar35 != 2)" ( (binary_expression "bVar35 != 2" identifier != number_literal) )) (compound_statement "{\n    (**(code **)(*(long *)(DAT_0017fb10 + 8) + 0x300))(DAT_0017fb10,&DAT_0017fac0);\n    lVar16 = bfd_get_section_by_name(DAT_0017fb10,".text");\n    if (lVar16 == 0) {\n      bVar35 = DAT_0017fac0 & 3;\n      plVar17 = DAT_0017f358;\n      plVar18 = DAT_0017fa60;\n      lVar16 = DAT_0017fb10;\n    }\n    else {\n      bVar35 = DAT_0017fac0 & 3;\n      if (DAT_0017fc70 == 0) {\n        *(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) & 0xfffffff7;\n        plVar17 = DAT_0017f358;\n        plVar18 = DAT_0017fa60;\n        lVar16 = DAT_0017fb10;\n      }\n      else {\n        *(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) | 8;\n        plVar17 = DAT_0017f358;\n        plVar18 = DAT_0017fa60;\n        lVar16 = DAT_0017fb10;\n      }\n    }\n  }" { (expression_statement "(**(code **)(*(long *)(DAT_0017fb10 + 8) + 0x300))(DAT_0017fb10,&DAT_0017fac0);" (call_expression "(**(code **)(*(long *)(DAT_0017fb10 + 8) + 0x300))(DAT_0017fb10,&DAT_0017fac0)" (parenthesized_expression "(**(code **)(*(long *)(DAT_0017fb10 + 8) + 0x300))" ( (pointer_expression "**(code **)(*(long *)(DAT_0017fb10 + 8) + 0x300)" * (pointer_expression "*(code **)(*(long *)(DAT_0017fb10 + 8) + 0x300)" * (cast_expression "(code **)(*(long *)(DAT_0017fb10 + 8) + 0x300)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)(DAT_0017fb10 + 8) + 0x300)" ( (binary_expression "*(long *)(DAT_0017fb10 + 8) + 0x300" (pointer_expression "*(long *)(DAT_0017fb10 + 8)" * (cast_expression "(long *)(DAT_0017fb10 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0017fb10 + 8)" ( (binary_expression "DAT_0017fb10 + 8" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(DAT_0017fb10,&DAT_0017fac0)" ( identifier , (pointer_expression "&DAT_0017fac0" & identifier) ))) ;) (expression_statement "lVar16 = bfd_get_section_by_name(DAT_0017fb10,".text");" (assignment_expression "lVar16 = bfd_get_section_by_name(DAT_0017fb10,".text")" identifier = (call_expression "bfd_get_section_by_name(DAT_0017fb10,".text")" identifier (argument_list "(DAT_0017fb10,".text")" ( identifier , (string_literal "".text"" " string_content ") )))) ;) (if_statement "if (lVar16 == 0) {\n      bVar35 = DAT_0017fac0 & 3;\n      plVar17 = DAT_0017f358;\n      plVar18 = DAT_0017fa60;\n      lVar16 = DAT_0017fb10;\n    }\n    else {\n      bVar35 = DAT_0017fac0 & 3;\n      if (DAT_0017fc70 == 0) {\n        *(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) & 0xfffffff7;\n        plVar17 = DAT_0017f358;\n        plVar18 = DAT_0017fa60;\n        lVar16 = DAT_0017fb10;\n      }\n      else {\n        *(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) | 8;\n        plVar17 = DAT_0017f358;\n        plVar18 = DAT_0017fa60;\n        lVar16 = DAT_0017fb10;\n      }\n    }" if (parenthesized_expression "(lVar16 == 0)" ( (binary_expression "lVar16 == 0" identifier == number_literal) )) (compound_statement "{\n      bVar35 = DAT_0017fac0 & 3;\n      plVar17 = DAT_0017f358;\n      plVar18 = DAT_0017fa60;\n      lVar16 = DAT_0017fb10;\n    }" { (expression_statement "bVar35 = DAT_0017fac0 & 3;" (assignment_expression "bVar35 = DAT_0017fac0 & 3" identifier = (binary_expression "DAT_0017fac0 & 3" identifier & number_literal)) ;) (expression_statement "plVar17 = DAT_0017f358;" (assignment_expression "plVar17 = DAT_0017f358" identifier = identifier) ;) (expression_statement "plVar18 = DAT_0017fa60;" (assignment_expression "plVar18 = DAT_0017fa60" identifier = identifier) ;) (expression_statement "lVar16 = DAT_0017fb10;" (assignment_expression "lVar16 = DAT_0017fb10" identifier = identifier) ;) }) (else_clause "else {\n      bVar35 = DAT_0017fac0 & 3;\n      if (DAT_0017fc70 == 0) {\n        *(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) & 0xfffffff7;\n        plVar17 = DAT_0017f358;\n        plVar18 = DAT_0017fa60;\n        lVar16 = DAT_0017fb10;\n      }\n      else {\n        *(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) | 8;\n        plVar17 = DAT_0017f358;\n        plVar18 = DAT_0017fa60;\n        lVar16 = DAT_0017fb10;\n      }\n    }" else (compound_statement "{\n      bVar35 = DAT_0017fac0 & 3;\n      if (DAT_0017fc70 == 0) {\n        *(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) & 0xfffffff7;\n        plVar17 = DAT_0017f358;\n        plVar18 = DAT_0017fa60;\n        lVar16 = DAT_0017fb10;\n      }\n      else {\n        *(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) | 8;\n        plVar17 = DAT_0017f358;\n        plVar18 = DAT_0017fa60;\n        lVar16 = DAT_0017fb10;\n      }\n    }" { (expression_statement "bVar35 = DAT_0017fac0 & 3;" (assignment_expression "bVar35 = DAT_0017fac0 & 3" identifier = (binary_expression "DAT_0017fac0 & 3" identifier & number_literal)) ;) (if_statement "if (DAT_0017fc70 == 0) {\n        *(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) & 0xfffffff7;\n        plVar17 = DAT_0017f358;\n        plVar18 = DAT_0017fa60;\n        lVar16 = DAT_0017fb10;\n      }\n      else {\n        *(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) | 8;\n        plVar17 = DAT_0017f358;\n        plVar18 = DAT_0017fa60;\n        lVar16 = DAT_0017fb10;\n      }" if (parenthesized_expression "(DAT_0017fc70 == 0)" ( (binary_expression "DAT_0017fc70 == 0" identifier == number_literal) )) (compound_statement "{\n        *(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) & 0xfffffff7;\n        plVar17 = DAT_0017f358;\n        plVar18 = DAT_0017fa60;\n        lVar16 = DAT_0017fb10;\n      }" { (expression_statement "*(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) & 0xfffffff7;" (assignment_expression "*(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) & 0xfffffff7" (pointer_expression "*(uint *)(lVar16 + 0x20)" * (cast_expression "(uint *)(lVar16 + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar16 + 0x20)" ( (binary_expression "lVar16 + 0x20" identifier + number_literal) )))) = (binary_expression "*(uint *)(lVar16 + 0x20) & 0xfffffff7" (pointer_expression "*(uint *)(lVar16 + 0x20)" * (cast_expression "(uint *)(lVar16 + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar16 + 0x20)" ( (binary_expression "lVar16 + 0x20" identifier + number_literal) )))) & number_literal)) ;) (expression_statement "plVar17 = DAT_0017f358;" (assignment_expression "plVar17 = DAT_0017f358" identifier = identifier) ;) (expression_statement "plVar18 = DAT_0017fa60;" (assignment_expression "plVar18 = DAT_0017fa60" identifier = identifier) ;) (expression_statement "lVar16 = DAT_0017fb10;" (assignment_expression "lVar16 = DAT_0017fb10" identifier = identifier) ;) }) (else_clause "else {\n        *(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) | 8;\n        plVar17 = DAT_0017f358;\n        plVar18 = DAT_0017fa60;\n        lVar16 = DAT_0017fb10;\n      }" else (compound_statement "{\n        *(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) | 8;\n        plVar17 = DAT_0017f358;\n        plVar18 = DAT_0017fa60;\n        lVar16 = DAT_0017fb10;\n      }" { (expression_statement "*(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) | 8;" (assignment_expression "*(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) | 8" (pointer_expression "*(uint *)(lVar16 + 0x20)" * (cast_expression "(uint *)(lVar16 + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar16 + 0x20)" ( (binary_expression "lVar16 + 0x20" identifier + number_literal) )))) = (binary_expression "*(uint *)(lVar16 + 0x20) | 8" (pointer_expression "*(uint *)(lVar16 + 0x20)" * (cast_expression "(uint *)(lVar16 + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar16 + 0x20)" ( (binary_expression "lVar16 + 0x20" identifier + number_literal) )))) | number_literal)) ;) (expression_statement "plVar17 = DAT_0017f358;" (assignment_expression "plVar17 = DAT_0017f358" identifier = identifier) ;) (expression_statement "plVar18 = DAT_0017fa60;" (assignment_expression "plVar18 = DAT_0017fa60" identifier = identifier) ;) (expression_statement "lVar16 = DAT_0017fb10;" (assignment_expression "lVar16 = DAT_0017fb10" identifier = identifier) ;) }))) }))) })) (for_statement "for (; DAT_0017f358 = plVar17, DAT_0017fb10 = lVar16, plVar18 != (long *)0x0;\n      plVar18 = (long *)plVar18[4]) {\n    lVar16 = plVar18[5];\n    if ((((lVar16 != 0) && (plVar18[9] == 0)) && (plVar18[0xc] == 0)) &&\n       ((plVar18[0xb] == 0 && (plVar18[8] == *(long *)(lVar16 + 0x40))))) {\n      plVar18[9] = *(long *)(lVar16 + 0x48);\n    }\n    plVar17 = DAT_0017f358;\n    lVar16 = DAT_0017fb10;\n  }" for ( ; (comma_expression "DAT_0017f358 = plVar17, DAT_0017fb10 = lVar16, plVar18 != (long *)0x0" (assignment_expression "DAT_0017f358 = plVar17" identifier = identifier) , (comma_expression "DAT_0017fb10 = lVar16, plVar18 != (long *)0x0" (assignment_expression "DAT_0017fb10 = lVar16" identifier = identifier) , (binary_expression "plVar18 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)))) ; (assignment_expression "plVar18 = (long *)plVar18[4]" identifier = (cast_expression "(long *)plVar18[4]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar18[4]" identifier [ number_literal ]))) ) (compound_statement "{\n    lVar16 = plVar18[5];\n    if ((((lVar16 != 0) && (plVar18[9] == 0)) && (plVar18[0xc] == 0)) &&\n       ((plVar18[0xb] == 0 && (plVar18[8] == *(long *)(lVar16 + 0x40))))) {\n      plVar18[9] = *(long *)(lVar16 + 0x48);\n    }\n    plVar17 = DAT_0017f358;\n    lVar16 = DAT_0017fb10;\n  }" { (expression_statement "lVar16 = plVar18[5];" (assignment_expression "lVar16 = plVar18[5]" identifier = (subscript_expression "plVar18[5]" identifier [ number_literal ])) ;) (if_statement "if ((((lVar16 != 0) && (plVar18[9] == 0)) && (plVar18[0xc] == 0)) &&\n       ((plVar18[0xb] == 0 && (plVar18[8] == *(long *)(lVar16 + 0x40))))) {\n      plVar18[9] = *(long *)(lVar16 + 0x48);\n    }" if (parenthesized_expression "((((lVar16 != 0) && (plVar18[9] == 0)) && (plVar18[0xc] == 0)) &&\n       ((plVar18[0xb] == 0 && (plVar18[8] == *(long *)(lVar16 + 0x40)))))" ( (binary_expression "(((lVar16 != 0) && (plVar18[9] == 0)) && (plVar18[0xc] == 0)) &&\n       ((plVar18[0xb] == 0 && (plVar18[8] == *(long *)(lVar16 + 0x40))))" (parenthesized_expression "(((lVar16 != 0) && (plVar18[9] == 0)) && (plVar18[0xc] == 0))" ( (binary_expression "((lVar16 != 0) && (plVar18[9] == 0)) && (plVar18[0xc] == 0)" (parenthesized_expression "((lVar16 != 0) && (plVar18[9] == 0))" ( (binary_expression "(lVar16 != 0) && (plVar18[9] == 0)" (parenthesized_expression "(lVar16 != 0)" ( (binary_expression "lVar16 != 0" identifier != number_literal) )) && (parenthesized_expression "(plVar18[9] == 0)" ( (binary_expression "plVar18[9] == 0" (subscript_expression "plVar18[9]" identifier [ number_literal ]) == number_literal) ))) )) && (parenthesized_expression "(plVar18[0xc] == 0)" ( (binary_expression "plVar18[0xc] == 0" (subscript_expression "plVar18[0xc]" identifier [ number_literal ]) == number_literal) ))) )) && (parenthesized_expression "((plVar18[0xb] == 0 && (plVar18[8] == *(long *)(lVar16 + 0x40))))" ( (parenthesized_expression "(plVar18[0xb] == 0 && (plVar18[8] == *(long *)(lVar16 + 0x40)))" ( (binary_expression "plVar18[0xb] == 0 && (plVar18[8] == *(long *)(lVar16 + 0x40))" (binary_expression "plVar18[0xb] == 0" (subscript_expression "plVar18[0xb]" identifier [ number_literal ]) == number_literal) && (parenthesized_expression "(plVar18[8] == *(long *)(lVar16 + 0x40))" ( (binary_expression "plVar18[8] == *(long *)(lVar16 + 0x40)" (subscript_expression "plVar18[8]" identifier [ number_literal ]) == (pointer_expression "*(long *)(lVar16 + 0x40)" * (cast_expression "(long *)(lVar16 + 0x40)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar16 + 0x40)" ( (binary_expression "lVar16 + 0x40" identifier + number_literal) ))))) ))) )) ))) )) (compound_statement "{\n      plVar18[9] = *(long *)(lVar16 + 0x48);\n    }" { (expression_statement "plVar18[9] = *(long *)(lVar16 + 0x48);" (assignment_expression "plVar18[9] = *(long *)(lVar16 + 0x48)" (subscript_expression "plVar18[9]" identifier [ number_literal ]) = (pointer_expression "*(long *)(lVar16 + 0x48)" * (cast_expression "(long *)(lVar16 + 0x48)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar16 + 0x48)" ( (binary_expression "lVar16 + 0x48" identifier + number_literal) ))))) ;) })) (expression_statement "plVar17 = DAT_0017f358;" (assignment_expression "plVar17 = DAT_0017f358" identifier = identifier) ;) (expression_statement "lVar16 = DAT_0017fb10;" (assignment_expression "lVar16 = DAT_0017fb10" identifier = identifier) ;) })) (if_statement "if ((DAT_0017fc4c != 0) && (DAT_0017f350 != 0)) {\n    plVar18 = plVar17 + DAT_0017f350;\n    do {\n      lVar15 = *plVar17;\n      if ((*(byte *)(lVar15 + 0x19) & 8) == 0) {\n        puVar21 = (undefined8 *)(*(undefined8 **)(lVar15 + 0x28))[0xd];\n        if (((puVar21 == (undefined8 *)0x0) || (puVar21[0x1e] != lVar16)) ||\n           (iVar9 = strcmp((char *)**(undefined8 **)(lVar15 + 0x28),(char *)*puVar21), iVar9 != 0))\n        {\n          *(undefined1 *)(lVar15 + 0x18) = 1;\n          *(undefined8 *)(lVar15 + 0x28) = 0;\n        }\n      }\n      plVar17 = plVar17 + 1;\n    } while (plVar18 != plVar17);\n  }" if (parenthesized_expression "((DAT_0017fc4c != 0) && (DAT_0017f350 != 0))" ( (binary_expression "(DAT_0017fc4c != 0) && (DAT_0017f350 != 0)" (parenthesized_expression "(DAT_0017fc4c != 0)" ( (binary_expression "DAT_0017fc4c != 0" identifier != number_literal) )) && (parenthesized_expression "(DAT_0017f350 != 0)" ( (binary_expression "DAT_0017f350 != 0" identifier != number_literal) ))) )) (compound_statement "{\n    plVar18 = plVar17 + DAT_0017f350;\n    do {\n      lVar15 = *plVar17;\n      if ((*(byte *)(lVar15 + 0x19) & 8) == 0) {\n        puVar21 = (undefined8 *)(*(undefined8 **)(lVar15 + 0x28))[0xd];\n        if (((puVar21 == (undefined8 *)0x0) || (puVar21[0x1e] != lVar16)) ||\n           (iVar9 = strcmp((char *)**(undefined8 **)(lVar15 + 0x28),(char *)*puVar21), iVar9 != 0))\n        {\n          *(undefined1 *)(lVar15 + 0x18) = 1;\n          *(undefined8 *)(lVar15 + 0x28) = 0;\n        }\n      }\n      plVar17 = plVar17 + 1;\n    } while (plVar18 != plVar17);\n  }" { (expression_statement "plVar18 = plVar17 + DAT_0017f350;" (assignment_expression "plVar18 = plVar17 + DAT_0017f350" identifier = (binary_expression "plVar17 + DAT_0017f350" identifier + identifier)) ;) (do_statement "do {\n      lVar15 = *plVar17;\n      if ((*(byte *)(lVar15 + 0x19) & 8) == 0) {\n        puVar21 = (undefined8 *)(*(undefined8 **)(lVar15 + 0x28))[0xd];\n        if (((puVar21 == (undefined8 *)0x0) || (puVar21[0x1e] != lVar16)) ||\n           (iVar9 = strcmp((char *)**(undefined8 **)(lVar15 + 0x28),(char *)*puVar21), iVar9 != 0))\n        {\n          *(undefined1 *)(lVar15 + 0x18) = 1;\n          *(undefined8 *)(lVar15 + 0x28) = 0;\n        }\n      }\n      plVar17 = plVar17 + 1;\n    } while (plVar18 != plVar17);" do (compound_statement "{\n      lVar15 = *plVar17;\n      if ((*(byte *)(lVar15 + 0x19) & 8) == 0) {\n        puVar21 = (undefined8 *)(*(undefined8 **)(lVar15 + 0x28))[0xd];\n        if (((puVar21 == (undefined8 *)0x0) || (puVar21[0x1e] != lVar16)) ||\n           (iVar9 = strcmp((char *)**(undefined8 **)(lVar15 + 0x28),(char *)*puVar21), iVar9 != 0))\n        {\n          *(undefined1 *)(lVar15 + 0x18) = 1;\n          *(undefined8 *)(lVar15 + 0x28) = 0;\n        }\n      }\n      plVar17 = plVar17 + 1;\n    }" { (expression_statement "lVar15 = *plVar17;" (assignment_expression "lVar15 = *plVar17" identifier = (pointer_expression "*plVar17" * identifier)) ;) (if_statement "if ((*(byte *)(lVar15 + 0x19) & 8) == 0) {\n        puVar21 = (undefined8 *)(*(undefined8 **)(lVar15 + 0x28))[0xd];\n        if (((puVar21 == (undefined8 *)0x0) || (puVar21[0x1e] != lVar16)) ||\n           (iVar9 = strcmp((char *)**(undefined8 **)(lVar15 + 0x28),(char *)*puVar21), iVar9 != 0))\n        {\n          *(undefined1 *)(lVar15 + 0x18) = 1;\n          *(undefined8 *)(lVar15 + 0x28) = 0;\n        }\n      }" if (parenthesized_expression "((*(byte *)(lVar15 + 0x19) & 8) == 0)" ( (binary_expression "(*(byte *)(lVar15 + 0x19) & 8) == 0" (parenthesized_expression "(*(byte *)(lVar15 + 0x19) & 8)" ( (binary_expression "*(byte *)(lVar15 + 0x19) & 8" (pointer_expression "*(byte *)(lVar15 + 0x19)" * (cast_expression "(byte *)(lVar15 + 0x19)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar15 + 0x19)" ( (binary_expression "lVar15 + 0x19" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n        puVar21 = (undefined8 *)(*(undefined8 **)(lVar15 + 0x28))[0xd];\n        if (((puVar21 == (undefined8 *)0x0) || (puVar21[0x1e] != lVar16)) ||\n           (iVar9 = strcmp((char *)**(undefined8 **)(lVar15 + 0x28),(char *)*puVar21), iVar9 != 0))\n        {\n          *(undefined1 *)(lVar15 + 0x18) = 1;\n          *(undefined8 *)(lVar15 + 0x28) = 0;\n        }\n      }" { (expression_statement "puVar21 = (undefined8 *)(*(undefined8 **)(lVar15 + 0x28))[0xd];" (assignment_expression "puVar21 = (undefined8 *)(*(undefined8 **)(lVar15 + 0x28))[0xd]" identifier = (cast_expression "(undefined8 *)(*(undefined8 **)(lVar15 + 0x28))[0xd]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "(*(undefined8 **)(lVar15 + 0x28))[0xd]" (parenthesized_expression "(*(undefined8 **)(lVar15 + 0x28))" ( (pointer_expression "*(undefined8 **)(lVar15 + 0x28)" * (cast_expression "(undefined8 **)(lVar15 + 0x28)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar15 + 0x28)" ( (binary_expression "lVar15 + 0x28" identifier + number_literal) )))) )) [ number_literal ]))) ;) (if_statement "if (((puVar21 == (undefined8 *)0x0) || (puVar21[0x1e] != lVar16)) ||\n           (iVar9 = strcmp((char *)**(undefined8 **)(lVar15 + 0x28),(char *)*puVar21), iVar9 != 0))\n        {\n          *(undefined1 *)(lVar15 + 0x18) = 1;\n          *(undefined8 *)(lVar15 + 0x28) = 0;\n        }" if (parenthesized_expression "(((puVar21 == (undefined8 *)0x0) || (puVar21[0x1e] != lVar16)) ||\n           (iVar9 = strcmp((char *)**(undefined8 **)(lVar15 + 0x28),(char *)*puVar21), iVar9 != 0))" ( (binary_expression "((puVar21 == (undefined8 *)0x0) || (puVar21[0x1e] != lVar16)) ||\n           (iVar9 = strcmp((char *)**(undefined8 **)(lVar15 + 0x28),(char *)*puVar21), iVar9 != 0)" (parenthesized_expression "((puVar21 == (undefined8 *)0x0) || (puVar21[0x1e] != lVar16))" ( (binary_expression "(puVar21 == (undefined8 *)0x0) || (puVar21[0x1e] != lVar16)" (parenthesized_expression "(puVar21 == (undefined8 *)0x0)" ( (binary_expression "puVar21 == (undefined8 *)0x0" identifier == (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(puVar21[0x1e] != lVar16)" ( (binary_expression "puVar21[0x1e] != lVar16" (subscript_expression "puVar21[0x1e]" identifier [ number_literal ]) != identifier) ))) )) || (parenthesized_expression "(iVar9 = strcmp((char *)**(undefined8 **)(lVar15 + 0x28),(char *)*puVar21), iVar9 != 0)" ( (comma_expression "iVar9 = strcmp((char *)**(undefined8 **)(lVar15 + 0x28),(char *)*puVar21), iVar9 != 0" (assignment_expression "iVar9 = strcmp((char *)**(undefined8 **)(lVar15 + 0x28),(char *)*puVar21)" identifier = (call_expression "strcmp((char *)**(undefined8 **)(lVar15 + 0x28),(char *)*puVar21)" identifier (argument_list "((char *)**(undefined8 **)(lVar15 + 0x28),(char *)*puVar21)" ( (cast_expression "(char *)**(undefined8 **)(lVar15 + 0x28)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined8 **)(lVar15 + 0x28)" * (pointer_expression "*(undefined8 **)(lVar15 + 0x28)" * (cast_expression "(undefined8 **)(lVar15 + 0x28)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar15 + 0x28)" ( (binary_expression "lVar15 + 0x28" identifier + number_literal) )))))) , (cast_expression "(char *)*puVar21" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar21" * identifier)) )))) , (binary_expression "iVar9 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n          *(undefined1 *)(lVar15 + 0x18) = 1;\n          *(undefined8 *)(lVar15 + 0x28) = 0;\n        }" { (expression_statement "*(undefined1 *)(lVar15 + 0x18) = 1;" (assignment_expression "*(undefined1 *)(lVar15 + 0x18) = 1" (pointer_expression "*(undefined1 *)(lVar15 + 0x18)" * (cast_expression "(undefined1 *)(lVar15 + 0x18)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar15 + 0x18)" ( (binary_expression "lVar15 + 0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined8 *)(lVar15 + 0x28) = 0;" (assignment_expression "*(undefined8 *)(lVar15 + 0x28) = 0" (pointer_expression "*(undefined8 *)(lVar15 + 0x28)" * (cast_expression "(undefined8 *)(lVar15 + 0x28)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar15 + 0x28)" ( (binary_expression "lVar15 + 0x28" identifier + number_literal) )))) = number_literal) ;) })) })) (expression_statement "plVar17 = plVar17 + 1;" (assignment_expression "plVar17 = plVar17 + 1" identifier = (binary_expression "plVar17 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(plVar18 != plVar17)" ( (binary_expression "plVar18 != plVar17" identifier != identifier) )) ;) })) (if_statement "if (bVar35 != 2) {\n    for (puVar21 = *(undefined8 **)(DAT_0017fb10 + 0x90); puVar21 != (undefined8 *)0x0;\n        puVar21 = (undefined8 *)puVar21[2]) {\n      pcVar31 = (char *)*puVar21;\n      sVar12 = strlen(pcVar31);\n      pcVar19 = (char *)xmalloc(sVar12 + 10);\n      sprintf(pcVar19,".startof.%s",pcVar31);\n      FUN_00112ee0(pcVar19,puVar21);\n      builtin_strncpy(pcVar19 + 1,".size",5);\n      FUN_00112ee0(pcVar19 + 1,puVar21);\n      free(pcVar19);\n    }\n  }" if (parenthesized_expression "(bVar35 != 2)" ( (binary_expression "bVar35 != 2" identifier != number_literal) )) (compound_statement "{\n    for (puVar21 = *(undefined8 **)(DAT_0017fb10 + 0x90); puVar21 != (undefined8 *)0x0;\n        puVar21 = (undefined8 *)puVar21[2]) {\n      pcVar31 = (char *)*puVar21;\n      sVar12 = strlen(pcVar31);\n      pcVar19 = (char *)xmalloc(sVar12 + 10);\n      sprintf(pcVar19,".startof.%s",pcVar31);\n      FUN_00112ee0(pcVar19,puVar21);\n      builtin_strncpy(pcVar19 + 1,".size",5);\n      FUN_00112ee0(pcVar19 + 1,puVar21);\n      free(pcVar19);\n    }\n  }" { (for_statement "for (puVar21 = *(undefined8 **)(DAT_0017fb10 + 0x90); puVar21 != (undefined8 *)0x0;\n        puVar21 = (undefined8 *)puVar21[2]) {\n      pcVar31 = (char *)*puVar21;\n      sVar12 = strlen(pcVar31);\n      pcVar19 = (char *)xmalloc(sVar12 + 10);\n      sprintf(pcVar19,".startof.%s",pcVar31);\n      FUN_00112ee0(pcVar19,puVar21);\n      builtin_strncpy(pcVar19 + 1,".size",5);\n      FUN_00112ee0(pcVar19 + 1,puVar21);\n      free(pcVar19);\n    }" for ( (assignment_expression "puVar21 = *(undefined8 **)(DAT_0017fb10 + 0x90)" identifier = (pointer_expression "*(undefined8 **)(DAT_0017fb10 + 0x90)" * (cast_expression "(undefined8 **)(DAT_0017fb10 + 0x90)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(DAT_0017fb10 + 0x90)" ( (binary_expression "DAT_0017fb10 + 0x90" identifier + number_literal) ))))) ; (binary_expression "puVar21 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "puVar21 = (undefined8 *)puVar21[2]" identifier = (cast_expression "(undefined8 *)puVar21[2]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar21[2]" identifier [ number_literal ]))) ) (compound_statement "{\n      pcVar31 = (char *)*puVar21;\n      sVar12 = strlen(pcVar31);\n      pcVar19 = (char *)xmalloc(sVar12 + 10);\n      sprintf(pcVar19,".startof.%s",pcVar31);\n      FUN_00112ee0(pcVar19,puVar21);\n      builtin_strncpy(pcVar19 + 1,".size",5);\n      FUN_00112ee0(pcVar19 + 1,puVar21);\n      free(pcVar19);\n    }" { (expression_statement "pcVar31 = (char *)*puVar21;" (assignment_expression "pcVar31 = (char *)*puVar21" identifier = (cast_expression "(char *)*puVar21" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar21" * identifier))) ;) (expression_statement "sVar12 = strlen(pcVar31);" (assignment_expression "sVar12 = strlen(pcVar31)" identifier = (call_expression "strlen(pcVar31)" identifier (argument_list "(pcVar31)" ( identifier )))) ;) (expression_statement "pcVar19 = (char *)xmalloc(sVar12 + 10);" (assignment_expression "pcVar19 = (char *)xmalloc(sVar12 + 10)" identifier = (cast_expression "(char *)xmalloc(sVar12 + 10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(sVar12 + 10)" identifier (argument_list "(sVar12 + 10)" ( (binary_expression "sVar12 + 10" identifier + number_literal) ))))) ;) (expression_statement "sprintf(pcVar19,".startof.%s",pcVar31);" (call_expression "sprintf(pcVar19,".startof.%s",pcVar31)" identifier (argument_list "(pcVar19,".startof.%s",pcVar31)" ( identifier , (string_literal "".startof.%s"" " string_content ") , identifier ))) ;) (expression_statement "FUN_00112ee0(pcVar19,puVar21);" (call_expression "FUN_00112ee0(pcVar19,puVar21)" identifier (argument_list "(pcVar19,puVar21)" ( identifier , identifier ))) ;) (expression_statement "builtin_strncpy(pcVar19 + 1,".size",5);" (call_expression "builtin_strncpy(pcVar19 + 1,".size",5)" identifier (argument_list "(pcVar19 + 1,".size",5)" ( (binary_expression "pcVar19 + 1" identifier + number_literal) , (string_literal "".size"" " string_content ") , number_literal ))) ;) (expression_statement "FUN_00112ee0(pcVar19 + 1,puVar21);" (call_expression "FUN_00112ee0(pcVar19 + 1,puVar21)" identifier (argument_list "(pcVar19 + 1,puVar21)" ( (binary_expression "pcVar19 + 1" identifier + number_literal) , identifier ))) ;) (expression_statement "free(pcVar19);" (call_expression "free(pcVar19)" identifier (argument_list "(pcVar19)" ( identifier ))) ;) })) })) (expression_statement "FUN_00123bc0();" (call_expression "FUN_00123bc0()" identifier (argument_list "()" ( ))) ;) (expression_statement "plVar17 = (long *)0x0;" (assignment_expression "plVar17 = (long *)0x0" identifier = (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "__ptr = (void *)xmalloc(0x50);" (assignment_expression "__ptr = (void *)xmalloc(0x50)" identifier = (cast_expression "(void *)xmalloc(0x50)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(0x50)" identifier (argument_list "(0x50)" ( number_literal ))))) ;) (expression_statement "uVar2 = 10;" (assignment_expression "uVar2 = 10" identifier = number_literal) ;) (for_statement "for (puVar21 = DAT_0017fa50; puVar21 != (undefined8 *)0x0; puVar21 = (undefined8 *)*puVar21) {\n    uVar30 = 0;\n    for (plVar18 = DAT_0017fa60; plVar18 != (long *)0x0; plVar18 = (long *)plVar18[4]) {\n      if (-1 < *(int *)((long)plVar18 + 0x84)) {\n        plVar26 = (long *)plVar18[0xe];\n        if (plVar26 == (long *)0x0) {\n          if (((*(int *)((long)plVar18 + 0x8c) != 2) && (plVar18[7] != 0)) &&\n             (((*(byte *)(plVar18[7] + 0x20) & 1) != 0 &&\n              (plVar26 = plVar17, plVar3 = plVar18, puVar21[2] != 3)))) {\n            while( true ) {\n              plVar17 = plVar26;\n              if (plVar26 != (long *)0x0) goto LAB_0011c7fd;\n              plVar3 = (long *)plVar3[4];\n              if (plVar3 == (long *)0x0) break;\n              plVar26 = (long *)plVar3[0xe];\n            }\n            plVar17 = (long *)0x0;\n            dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            FUN_001251f0();\n          }\n        }\n        else {\n          plVar17 = plVar26;\n          plVar3 = (long *)plVar18[7];\n          while (plVar3 != (long *)0x0) {\nLAB_0011c7fd:\n            iVar9 = strcmp((char *)plVar26[1],(char *)puVar21[1]);\n            uVar29 = uVar30;\n            if (iVar9 == 0) {\n              if (uVar2 <= (uint)uVar30) {\n                uVar2 = uVar2 << 1;\n                __ptr = (void *)xrealloc(__ptr,(ulong)uVar2 << 3);\n              }\n              uVar29 = (ulong)((uint)uVar30 + 1);\n              *(long *)((long)__ptr + uVar30 * 8) = plVar18[7];\n              *(undefined4 *)(plVar26 + 2) = 1;\n            }\n            plVar26 = (long *)*plVar26;\n            uVar30 = uVar29;\n            plVar3 = plVar26;\n          }\n        }\n      }\n    }\n    uVar10 = 0;\n    if (puVar21[5] != 0) {\n      uVar10 = FUN_00123800(puVar21[5],0,"phdr flags");\n    }\n    lVar16 = puVar21[4];\n    uVar11 = 0;\n    if (lVar16 != 0) {\n      uVar11 = FUN_00123800(lVar16,0,"phdr load address");\n      lVar16 = puVar21[4];\n    }\n    iVar9 = bfd_record_phdr(DAT_0017fb10,puVar21[2],puVar21[5] != 0,uVar10,lVar16 != 0,uVar11,\n                            *(undefined4 *)(puVar21 + 3),*(undefined4 *)((long)puVar21 + 0x1c),\n                            uVar30,__ptr);\n    if (iVar9 == 0) {\n      dcgettext(0,"%F%P: bfd_record_phdr failed: %E\n",5);\n      FUN_001251f0();\n    }\n  }" for ( (assignment_expression "puVar21 = DAT_0017fa50" identifier = identifier) ; (binary_expression "puVar21 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "puVar21 = (undefined8 *)*puVar21" identifier = (cast_expression "(undefined8 *)*puVar21" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar21" * identifier))) ) (compound_statement "{\n    uVar30 = 0;\n    for (plVar18 = DAT_0017fa60; plVar18 != (long *)0x0; plVar18 = (long *)plVar18[4]) {\n      if (-1 < *(int *)((long)plVar18 + 0x84)) {\n        plVar26 = (long *)plVar18[0xe];\n        if (plVar26 == (long *)0x0) {\n          if (((*(int *)((long)plVar18 + 0x8c) != 2) && (plVar18[7] != 0)) &&\n             (((*(byte *)(plVar18[7] + 0x20) & 1) != 0 &&\n              (plVar26 = plVar17, plVar3 = plVar18, puVar21[2] != 3)))) {\n            while( true ) {\n              plVar17 = plVar26;\n              if (plVar26 != (long *)0x0) goto LAB_0011c7fd;\n              plVar3 = (long *)plVar3[4];\n              if (plVar3 == (long *)0x0) break;\n              plVar26 = (long *)plVar3[0xe];\n            }\n            plVar17 = (long *)0x0;\n            dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            FUN_001251f0();\n          }\n        }\n        else {\n          plVar17 = plVar26;\n          plVar3 = (long *)plVar18[7];\n          while (plVar3 != (long *)0x0) {\nLAB_0011c7fd:\n            iVar9 = strcmp((char *)plVar26[1],(char *)puVar21[1]);\n            uVar29 = uVar30;\n            if (iVar9 == 0) {\n              if (uVar2 <= (uint)uVar30) {\n                uVar2 = uVar2 << 1;\n                __ptr = (void *)xrealloc(__ptr,(ulong)uVar2 << 3);\n              }\n              uVar29 = (ulong)((uint)uVar30 + 1);\n              *(long *)((long)__ptr + uVar30 * 8) = plVar18[7];\n              *(undefined4 *)(plVar26 + 2) = 1;\n            }\n            plVar26 = (long *)*plVar26;\n            uVar30 = uVar29;\n            plVar3 = plVar26;\n          }\n        }\n      }\n    }\n    uVar10 = 0;\n    if (puVar21[5] != 0) {\n      uVar10 = FUN_00123800(puVar21[5],0,"phdr flags");\n    }\n    lVar16 = puVar21[4];\n    uVar11 = 0;\n    if (lVar16 != 0) {\n      uVar11 = FUN_00123800(lVar16,0,"phdr load address");\n      lVar16 = puVar21[4];\n    }\n    iVar9 = bfd_record_phdr(DAT_0017fb10,puVar21[2],puVar21[5] != 0,uVar10,lVar16 != 0,uVar11,\n                            *(undefined4 *)(puVar21 + 3),*(undefined4 *)((long)puVar21 + 0x1c),\n                            uVar30,__ptr);\n    if (iVar9 == 0) {\n      dcgettext(0,"%F%P: bfd_record_phdr failed: %E\n",5);\n      FUN_001251f0();\n    }\n  }" { (expression_statement "uVar30 = 0;" (assignment_expression "uVar30 = 0" identifier = number_literal) ;) (for_statement "for (plVar18 = DAT_0017fa60; plVar18 != (long *)0x0; plVar18 = (long *)plVar18[4]) {\n      if (-1 < *(int *)((long)plVar18 + 0x84)) {\n        plVar26 = (long *)plVar18[0xe];\n        if (plVar26 == (long *)0x0) {\n          if (((*(int *)((long)plVar18 + 0x8c) != 2) && (plVar18[7] != 0)) &&\n             (((*(byte *)(plVar18[7] + 0x20) & 1) != 0 &&\n              (plVar26 = plVar17, plVar3 = plVar18, puVar21[2] != 3)))) {\n            while( true ) {\n              plVar17 = plVar26;\n              if (plVar26 != (long *)0x0) goto LAB_0011c7fd;\n              plVar3 = (long *)plVar3[4];\n              if (plVar3 == (long *)0x0) break;\n              plVar26 = (long *)plVar3[0xe];\n            }\n            plVar17 = (long *)0x0;\n            dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            FUN_001251f0();\n          }\n        }\n        else {\n          plVar17 = plVar26;\n          plVar3 = (long *)plVar18[7];\n          while (plVar3 != (long *)0x0) {\nLAB_0011c7fd:\n            iVar9 = strcmp((char *)plVar26[1],(char *)puVar21[1]);\n            uVar29 = uVar30;\n            if (iVar9 == 0) {\n              if (uVar2 <= (uint)uVar30) {\n                uVar2 = uVar2 << 1;\n                __ptr = (void *)xrealloc(__ptr,(ulong)uVar2 << 3);\n              }\n              uVar29 = (ulong)((uint)uVar30 + 1);\n              *(long *)((long)__ptr + uVar30 * 8) = plVar18[7];\n              *(undefined4 *)(plVar26 + 2) = 1;\n            }\n            plVar26 = (long *)*plVar26;\n            uVar30 = uVar29;\n            plVar3 = plVar26;\n          }\n        }\n      }\n    }" for ( (assignment_expression "plVar18 = DAT_0017fa60" identifier = identifier) ; (binary_expression "plVar18 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "plVar18 = (long *)plVar18[4]" identifier = (cast_expression "(long *)plVar18[4]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar18[4]" identifier [ number_literal ]))) ) (compound_statement "{\n      if (-1 < *(int *)((long)plVar18 + 0x84)) {\n        plVar26 = (long *)plVar18[0xe];\n        if (plVar26 == (long *)0x0) {\n          if (((*(int *)((long)plVar18 + 0x8c) != 2) && (plVar18[7] != 0)) &&\n             (((*(byte *)(plVar18[7] + 0x20) & 1) != 0 &&\n              (plVar26 = plVar17, plVar3 = plVar18, puVar21[2] != 3)))) {\n            while( true ) {\n              plVar17 = plVar26;\n              if (plVar26 != (long *)0x0) goto LAB_0011c7fd;\n              plVar3 = (long *)plVar3[4];\n              if (plVar3 == (long *)0x0) break;\n              plVar26 = (long *)plVar3[0xe];\n            }\n            plVar17 = (long *)0x0;\n            dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            FUN_001251f0();\n          }\n        }\n        else {\n          plVar17 = plVar26;\n          plVar3 = (long *)plVar18[7];\n          while (plVar3 != (long *)0x0) {\nLAB_0011c7fd:\n            iVar9 = strcmp((char *)plVar26[1],(char *)puVar21[1]);\n            uVar29 = uVar30;\n            if (iVar9 == 0) {\n              if (uVar2 <= (uint)uVar30) {\n                uVar2 = uVar2 << 1;\n                __ptr = (void *)xrealloc(__ptr,(ulong)uVar2 << 3);\n              }\n              uVar29 = (ulong)((uint)uVar30 + 1);\n              *(long *)((long)__ptr + uVar30 * 8) = plVar18[7];\n              *(undefined4 *)(plVar26 + 2) = 1;\n            }\n            plVar26 = (long *)*plVar26;\n            uVar30 = uVar29;\n            plVar3 = plVar26;\n          }\n        }\n      }\n    }" { (if_statement "if (-1 < *(int *)((long)plVar18 + 0x84)) {\n        plVar26 = (long *)plVar18[0xe];\n        if (plVar26 == (long *)0x0) {\n          if (((*(int *)((long)plVar18 + 0x8c) != 2) && (plVar18[7] != 0)) &&\n             (((*(byte *)(plVar18[7] + 0x20) & 1) != 0 &&\n              (plVar26 = plVar17, plVar3 = plVar18, puVar21[2] != 3)))) {\n            while( true ) {\n              plVar17 = plVar26;\n              if (plVar26 != (long *)0x0) goto LAB_0011c7fd;\n              plVar3 = (long *)plVar3[4];\n              if (plVar3 == (long *)0x0) break;\n              plVar26 = (long *)plVar3[0xe];\n            }\n            plVar17 = (long *)0x0;\n            dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            FUN_001251f0();\n          }\n        }\n        else {\n          plVar17 = plVar26;\n          plVar3 = (long *)plVar18[7];\n          while (plVar3 != (long *)0x0) {\nLAB_0011c7fd:\n            iVar9 = strcmp((char *)plVar26[1],(char *)puVar21[1]);\n            uVar29 = uVar30;\n            if (iVar9 == 0) {\n              if (uVar2 <= (uint)uVar30) {\n                uVar2 = uVar2 << 1;\n                __ptr = (void *)xrealloc(__ptr,(ulong)uVar2 << 3);\n              }\n              uVar29 = (ulong)((uint)uVar30 + 1);\n              *(long *)((long)__ptr + uVar30 * 8) = plVar18[7];\n              *(undefined4 *)(plVar26 + 2) = 1;\n            }\n            plVar26 = (long *)*plVar26;\n            uVar30 = uVar29;\n            plVar3 = plVar26;\n          }\n        }\n      }" if (parenthesized_expression "(-1 < *(int *)((long)plVar18 + 0x84))" ( (binary_expression "-1 < *(int *)((long)plVar18 + 0x84)" number_literal < (pointer_expression "*(int *)((long)plVar18 + 0x84)" * (cast_expression "(int *)((long)plVar18 + 0x84)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar18 + 0x84)" ( (binary_expression "(long)plVar18 + 0x84" (cast_expression "(long)plVar18" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) )) (compound_statement "{\n        plVar26 = (long *)plVar18[0xe];\n        if (plVar26 == (long *)0x0) {\n          if (((*(int *)((long)plVar18 + 0x8c) != 2) && (plVar18[7] != 0)) &&\n             (((*(byte *)(plVar18[7] + 0x20) & 1) != 0 &&\n              (plVar26 = plVar17, plVar3 = plVar18, puVar21[2] != 3)))) {\n            while( true ) {\n              plVar17 = plVar26;\n              if (plVar26 != (long *)0x0) goto LAB_0011c7fd;\n              plVar3 = (long *)plVar3[4];\n              if (plVar3 == (long *)0x0) break;\n              plVar26 = (long *)plVar3[0xe];\n            }\n            plVar17 = (long *)0x0;\n            dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            FUN_001251f0();\n          }\n        }\n        else {\n          plVar17 = plVar26;\n          plVar3 = (long *)plVar18[7];\n          while (plVar3 != (long *)0x0) {\nLAB_0011c7fd:\n            iVar9 = strcmp((char *)plVar26[1],(char *)puVar21[1]);\n            uVar29 = uVar30;\n            if (iVar9 == 0) {\n              if (uVar2 <= (uint)uVar30) {\n                uVar2 = uVar2 << 1;\n                __ptr = (void *)xrealloc(__ptr,(ulong)uVar2 << 3);\n              }\n              uVar29 = (ulong)((uint)uVar30 + 1);\n              *(long *)((long)__ptr + uVar30 * 8) = plVar18[7];\n              *(undefined4 *)(plVar26 + 2) = 1;\n            }\n            plVar26 = (long *)*plVar26;\n            uVar30 = uVar29;\n            plVar3 = plVar26;\n          }\n        }\n      }" { (expression_statement "plVar26 = (long *)plVar18[0xe];" (assignment_expression "plVar26 = (long *)plVar18[0xe]" identifier = (cast_expression "(long *)plVar18[0xe]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar18[0xe]" identifier [ number_literal ]))) ;) (if_statement "if (plVar26 == (long *)0x0) {\n          if (((*(int *)((long)plVar18 + 0x8c) != 2) && (plVar18[7] != 0)) &&\n             (((*(byte *)(plVar18[7] + 0x20) & 1) != 0 &&\n              (plVar26 = plVar17, plVar3 = plVar18, puVar21[2] != 3)))) {\n            while( true ) {\n              plVar17 = plVar26;\n              if (plVar26 != (long *)0x0) goto LAB_0011c7fd;\n              plVar3 = (long *)plVar3[4];\n              if (plVar3 == (long *)0x0) break;\n              plVar26 = (long *)plVar3[0xe];\n            }\n            plVar17 = (long *)0x0;\n            dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            FUN_001251f0();\n          }\n        }\n        else {\n          plVar17 = plVar26;\n          plVar3 = (long *)plVar18[7];\n          while (plVar3 != (long *)0x0) {\nLAB_0011c7fd:\n            iVar9 = strcmp((char *)plVar26[1],(char *)puVar21[1]);\n            uVar29 = uVar30;\n            if (iVar9 == 0) {\n              if (uVar2 <= (uint)uVar30) {\n                uVar2 = uVar2 << 1;\n                __ptr = (void *)xrealloc(__ptr,(ulong)uVar2 << 3);\n              }\n              uVar29 = (ulong)((uint)uVar30 + 1);\n              *(long *)((long)__ptr + uVar30 * 8) = plVar18[7];\n              *(undefined4 *)(plVar26 + 2) = 1;\n            }\n            plVar26 = (long *)*plVar26;\n            uVar30 = uVar29;\n            plVar3 = plVar26;\n          }\n        }" if (parenthesized_expression "(plVar26 == (long *)0x0)" ( (binary_expression "plVar26 == (long *)0x0" identifier == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          if (((*(int *)((long)plVar18 + 0x8c) != 2) && (plVar18[7] != 0)) &&\n             (((*(byte *)(plVar18[7] + 0x20) & 1) != 0 &&\n              (plVar26 = plVar17, plVar3 = plVar18, puVar21[2] != 3)))) {\n            while( true ) {\n              plVar17 = plVar26;\n              if (plVar26 != (long *)0x0) goto LAB_0011c7fd;\n              plVar3 = (long *)plVar3[4];\n              if (plVar3 == (long *)0x0) break;\n              plVar26 = (long *)plVar3[0xe];\n            }\n            plVar17 = (long *)0x0;\n            dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            FUN_001251f0();\n          }\n        }" { (if_statement "if (((*(int *)((long)plVar18 + 0x8c) != 2) && (plVar18[7] != 0)) &&\n             (((*(byte *)(plVar18[7] + 0x20) & 1) != 0 &&\n              (plVar26 = plVar17, plVar3 = plVar18, puVar21[2] != 3)))) {\n            while( true ) {\n              plVar17 = plVar26;\n              if (plVar26 != (long *)0x0) goto LAB_0011c7fd;\n              plVar3 = (long *)plVar3[4];\n              if (plVar3 == (long *)0x0) break;\n              plVar26 = (long *)plVar3[0xe];\n            }\n            plVar17 = (long *)0x0;\n            dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            FUN_001251f0();\n          }" if (parenthesized_expression "(((*(int *)((long)plVar18 + 0x8c) != 2) && (plVar18[7] != 0)) &&\n             (((*(byte *)(plVar18[7] + 0x20) & 1) != 0 &&\n              (plVar26 = plVar17, plVar3 = plVar18, puVar21[2] != 3))))" ( (binary_expression "((*(int *)((long)plVar18 + 0x8c) != 2) && (plVar18[7] != 0)) &&\n             (((*(byte *)(plVar18[7] + 0x20) & 1) != 0 &&\n              (plVar26 = plVar17, plVar3 = plVar18, puVar21[2] != 3)))" (parenthesized_expression "((*(int *)((long)plVar18 + 0x8c) != 2) && (plVar18[7] != 0))" ( (binary_expression "(*(int *)((long)plVar18 + 0x8c) != 2) && (plVar18[7] != 0)" (parenthesized_expression "(*(int *)((long)plVar18 + 0x8c) != 2)" ( (binary_expression "*(int *)((long)plVar18 + 0x8c) != 2" (pointer_expression "*(int *)((long)plVar18 + 0x8c)" * (cast_expression "(int *)((long)plVar18 + 0x8c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar18 + 0x8c)" ( (binary_expression "(long)plVar18 + 0x8c" (cast_expression "(long)plVar18" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) != number_literal) )) && (parenthesized_expression "(plVar18[7] != 0)" ( (binary_expression "plVar18[7] != 0" (subscript_expression "plVar18[7]" identifier [ number_literal ]) != number_literal) ))) )) && (parenthesized_expression "(((*(byte *)(plVar18[7] + 0x20) & 1) != 0 &&\n              (plVar26 = plVar17, plVar3 = plVar18, puVar21[2] != 3)))" ( (parenthesized_expression "((*(byte *)(plVar18[7] + 0x20) & 1) != 0 &&\n              (plVar26 = plVar17, plVar3 = plVar18, puVar21[2] != 3))" ( (binary_expression "(*(byte *)(plVar18[7] + 0x20) & 1) != 0 &&\n              (plVar26 = plVar17, plVar3 = plVar18, puVar21[2] != 3)" (binary_expression "(*(byte *)(plVar18[7] + 0x20) & 1) != 0" (parenthesized_expression "(*(byte *)(plVar18[7] + 0x20) & 1)" ( (binary_expression "*(byte *)(plVar18[7] + 0x20) & 1" (pointer_expression "*(byte *)(plVar18[7] + 0x20)" * (cast_expression "(byte *)(plVar18[7] + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar18[7] + 0x20)" ( (binary_expression "plVar18[7] + 0x20" (subscript_expression "plVar18[7]" identifier [ number_literal ]) + number_literal) )))) & number_literal) )) != number_literal) && (parenthesized_expression "(plVar26 = plVar17, plVar3 = plVar18, puVar21[2] != 3)" ( (comma_expression "plVar26 = plVar17, plVar3 = plVar18, puVar21[2] != 3" (assignment_expression "plVar26 = plVar17" identifier = identifier) , (comma_expression "plVar3 = plVar18, puVar21[2] != 3" (assignment_expression "plVar3 = plVar18" identifier = identifier) , (binary_expression "puVar21[2] != 3" (subscript_expression "puVar21[2]" identifier [ number_literal ]) != number_literal))) ))) )) ))) )) (compound_statement "{\n            while( true ) {\n              plVar17 = plVar26;\n              if (plVar26 != (long *)0x0) goto LAB_0011c7fd;\n              plVar3 = (long *)plVar3[4];\n              if (plVar3 == (long *)0x0) break;\n              plVar26 = (long *)plVar3[0xe];\n            }\n            plVar17 = (long *)0x0;\n            dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            FUN_001251f0();\n          }" { (while_statement "while( true ) {\n              plVar17 = plVar26;\n              if (plVar26 != (long *)0x0) goto LAB_0011c7fd;\n              plVar3 = (long *)plVar3[4];\n              if (plVar3 == (long *)0x0) break;\n              plVar26 = (long *)plVar3[0xe];\n            }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n              plVar17 = plVar26;\n              if (plVar26 != (long *)0x0) goto LAB_0011c7fd;\n              plVar3 = (long *)plVar3[4];\n              if (plVar3 == (long *)0x0) break;\n              plVar26 = (long *)plVar3[0xe];\n            }" { (expression_statement "plVar17 = plVar26;" (assignment_expression "plVar17 = plVar26" identifier = identifier) ;) (if_statement "if (plVar26 != (long *)0x0) goto LAB_0011c7fd;" if (parenthesized_expression "(plVar26 != (long *)0x0)" ( (binary_expression "plVar26 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0011c7fd;" goto statement_identifier ;)) (expression_statement "plVar3 = (long *)plVar3[4];" (assignment_expression "plVar3 = (long *)plVar3[4]" identifier = (cast_expression "(long *)plVar3[4]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar3[4]" identifier [ number_literal ]))) ;) (if_statement "if (plVar3 == (long *)0x0) break;" if (parenthesized_expression "(plVar3 == (long *)0x0)" ( (binary_expression "plVar3 == (long *)0x0" identifier == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "plVar26 = (long *)plVar3[0xe];" (assignment_expression "plVar26 = (long *)plVar3[0xe]" identifier = (cast_expression "(long *)plVar3[0xe]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar3[0xe]" identifier [ number_literal ]))) ;) })) (expression_statement "plVar17 = (long *)0x0;" (assignment_expression "plVar17 = (long *)0x0" identifier = (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);" (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_001251f0();" (call_expression "FUN_001251f0()" identifier (argument_list "()" ( ))) ;) })) }) (else_clause "else {\n          plVar17 = plVar26;\n          plVar3 = (long *)plVar18[7];\n          while (plVar3 != (long *)0x0) {\nLAB_0011c7fd:\n            iVar9 = strcmp((char *)plVar26[1],(char *)puVar21[1]);\n            uVar29 = uVar30;\n            if (iVar9 == 0) {\n              if (uVar2 <= (uint)uVar30) {\n                uVar2 = uVar2 << 1;\n                __ptr = (void *)xrealloc(__ptr,(ulong)uVar2 << 3);\n              }\n              uVar29 = (ulong)((uint)uVar30 + 1);\n              *(long *)((long)__ptr + uVar30 * 8) = plVar18[7];\n              *(undefined4 *)(plVar26 + 2) = 1;\n            }\n            plVar26 = (long *)*plVar26;\n            uVar30 = uVar29;\n            plVar3 = plVar26;\n          }\n        }" else (compound_statement "{\n          plVar17 = plVar26;\n          plVar3 = (long *)plVar18[7];\n          while (plVar3 != (long *)0x0) {\nLAB_0011c7fd:\n            iVar9 = strcmp((char *)plVar26[1],(char *)puVar21[1]);\n            uVar29 = uVar30;\n            if (iVar9 == 0) {\n              if (uVar2 <= (uint)uVar30) {\n                uVar2 = uVar2 << 1;\n                __ptr = (void *)xrealloc(__ptr,(ulong)uVar2 << 3);\n              }\n              uVar29 = (ulong)((uint)uVar30 + 1);\n              *(long *)((long)__ptr + uVar30 * 8) = plVar18[7];\n              *(undefined4 *)(plVar26 + 2) = 1;\n            }\n            plVar26 = (long *)*plVar26;\n            uVar30 = uVar29;\n            plVar3 = plVar26;\n          }\n        }" { (expression_statement "plVar17 = plVar26;" (assignment_expression "plVar17 = plVar26" identifier = identifier) ;) (expression_statement "plVar3 = (long *)plVar18[7];" (assignment_expression "plVar3 = (long *)plVar18[7]" identifier = (cast_expression "(long *)plVar18[7]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar18[7]" identifier [ number_literal ]))) ;) (while_statement "while (plVar3 != (long *)0x0) {\nLAB_0011c7fd:\n            iVar9 = strcmp((char *)plVar26[1],(char *)puVar21[1]);\n            uVar29 = uVar30;\n            if (iVar9 == 0) {\n              if (uVar2 <= (uint)uVar30) {\n                uVar2 = uVar2 << 1;\n                __ptr = (void *)xrealloc(__ptr,(ulong)uVar2 << 3);\n              }\n              uVar29 = (ulong)((uint)uVar30 + 1);\n              *(long *)((long)__ptr + uVar30 * 8) = plVar18[7];\n              *(undefined4 *)(plVar26 + 2) = 1;\n            }\n            plVar26 = (long *)*plVar26;\n            uVar30 = uVar29;\n            plVar3 = plVar26;\n          }" while (parenthesized_expression "(plVar3 != (long *)0x0)" ( (binary_expression "plVar3 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_0011c7fd:\n            iVar9 = strcmp((char *)plVar26[1],(char *)puVar21[1]);\n            uVar29 = uVar30;\n            if (iVar9 == 0) {\n              if (uVar2 <= (uint)uVar30) {\n                uVar2 = uVar2 << 1;\n                __ptr = (void *)xrealloc(__ptr,(ulong)uVar2 << 3);\n              }\n              uVar29 = (ulong)((uint)uVar30 + 1);\n              *(long *)((long)__ptr + uVar30 * 8) = plVar18[7];\n              *(undefined4 *)(plVar26 + 2) = 1;\n            }\n            plVar26 = (long *)*plVar26;\n            uVar30 = uVar29;\n            plVar3 = plVar26;\n          }" { (labeled_statement "LAB_0011c7fd:\n            iVar9 = strcmp((char *)plVar26[1],(char *)puVar21[1]);" statement_identifier : (expression_statement "iVar9 = strcmp((char *)plVar26[1],(char *)puVar21[1]);" (assignment_expression "iVar9 = strcmp((char *)plVar26[1],(char *)puVar21[1])" identifier = (call_expression "strcmp((char *)plVar26[1],(char *)puVar21[1])" identifier (argument_list "((char *)plVar26[1],(char *)puVar21[1])" ( (cast_expression "(char *)plVar26[1]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar26[1]" identifier [ number_literal ])) , (cast_expression "(char *)puVar21[1]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar21[1]" identifier [ number_literal ])) )))) ;)) (expression_statement "uVar29 = uVar30;" (assignment_expression "uVar29 = uVar30" identifier = identifier) ;) (if_statement "if (iVar9 == 0) {\n              if (uVar2 <= (uint)uVar30) {\n                uVar2 = uVar2 << 1;\n                __ptr = (void *)xrealloc(__ptr,(ulong)uVar2 << 3);\n              }\n              uVar29 = (ulong)((uint)uVar30 + 1);\n              *(long *)((long)__ptr + uVar30 * 8) = plVar18[7];\n              *(undefined4 *)(plVar26 + 2) = 1;\n            }" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (compound_statement "{\n              if (uVar2 <= (uint)uVar30) {\n                uVar2 = uVar2 << 1;\n                __ptr = (void *)xrealloc(__ptr,(ulong)uVar2 << 3);\n              }\n              uVar29 = (ulong)((uint)uVar30 + 1);\n              *(long *)((long)__ptr + uVar30 * 8) = plVar18[7];\n              *(undefined4 *)(plVar26 + 2) = 1;\n            }" { (if_statement "if (uVar2 <= (uint)uVar30) {\n                uVar2 = uVar2 << 1;\n                __ptr = (void *)xrealloc(__ptr,(ulong)uVar2 << 3);\n              }" if (parenthesized_expression "(uVar2 <= (uint)uVar30)" ( (binary_expression "uVar2 <= (uint)uVar30" identifier <= (cast_expression "(uint)uVar30" ( (type_descriptor "uint" type_identifier) ) identifier)) )) (compound_statement "{\n                uVar2 = uVar2 << 1;\n                __ptr = (void *)xrealloc(__ptr,(ulong)uVar2 << 3);\n              }" { (expression_statement "uVar2 = uVar2 << 1;" (assignment_expression "uVar2 = uVar2 << 1" identifier = (binary_expression "uVar2 << 1" identifier << number_literal)) ;) (expression_statement "__ptr = (void *)xrealloc(__ptr,(ulong)uVar2 << 3);" (assignment_expression "__ptr = (void *)xrealloc(__ptr,(ulong)uVar2 << 3)" identifier = (cast_expression "(void *)xrealloc(__ptr,(ulong)uVar2 << 3)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xrealloc(__ptr,(ulong)uVar2 << 3)" identifier (argument_list "(__ptr,(ulong)uVar2 << 3)" ( identifier , (binary_expression "(ulong)uVar2 << 3" (cast_expression "(ulong)uVar2" ( (type_descriptor "ulong" type_identifier) ) identifier) << number_literal) ))))) ;) })) (expression_statement "uVar29 = (ulong)((uint)uVar30 + 1);" (assignment_expression "uVar29 = (ulong)((uint)uVar30 + 1)" identifier = (call_expression "(ulong)((uint)uVar30 + 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((uint)uVar30 + 1)" ( (binary_expression "(uint)uVar30 + 1" (cast_expression "(uint)uVar30" ( (type_descriptor "uint" type_identifier) ) identifier) + number_literal) )))) ;) (expression_statement "*(long *)((long)__ptr + uVar30 * 8) = plVar18[7];" (assignment_expression "*(long *)((long)__ptr + uVar30 * 8) = plVar18[7]" (pointer_expression "*(long *)((long)__ptr + uVar30 * 8)" * (cast_expression "(long *)((long)__ptr + uVar30 * 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__ptr + uVar30 * 8)" ( (binary_expression "(long)__ptr + uVar30 * 8" (cast_expression "(long)__ptr" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (binary_expression "uVar30 * 8" identifier * number_literal)) )))) = (subscript_expression "plVar18[7]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(plVar26 + 2) = 1;" (assignment_expression "*(undefined4 *)(plVar26 + 2) = 1" (pointer_expression "*(undefined4 *)(plVar26 + 2)" * (cast_expression "(undefined4 *)(plVar26 + 2)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar26 + 2)" ( (binary_expression "plVar26 + 2" identifier + number_literal) )))) = number_literal) ;) })) (expression_statement "plVar26 = (long *)*plVar26;" (assignment_expression "plVar26 = (long *)*plVar26" identifier = (cast_expression "(long *)*plVar26" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar26" * identifier))) ;) (expression_statement "uVar30 = uVar29;" (assignment_expression "uVar30 = uVar29" identifier = identifier) ;) (expression_statement "plVar3 = plVar26;" (assignment_expression "plVar3 = plVar26" identifier = identifier) ;) })) }))) })) })) (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" identifier = number_literal) ;) (if_statement "if (puVar21[5] != 0) {\n      uVar10 = FUN_00123800(puVar21[5],0,"phdr flags");\n    }" if (parenthesized_expression "(puVar21[5] != 0)" ( (binary_expression "puVar21[5] != 0" (subscript_expression "puVar21[5]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n      uVar10 = FUN_00123800(puVar21[5],0,"phdr flags");\n    }" { (expression_statement "uVar10 = FUN_00123800(puVar21[5],0,"phdr flags");" (assignment_expression "uVar10 = FUN_00123800(puVar21[5],0,"phdr flags")" identifier = (call_expression "FUN_00123800(puVar21[5],0,"phdr flags")" identifier (argument_list "(puVar21[5],0,"phdr flags")" ( (subscript_expression "puVar21[5]" identifier [ number_literal ]) , number_literal , (string_literal ""phdr flags"" " string_content ") )))) ;) })) (expression_statement "lVar16 = puVar21[4];" (assignment_expression "lVar16 = puVar21[4]" identifier = (subscript_expression "puVar21[4]" identifier [ number_literal ])) ;) (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" identifier = number_literal) ;) (if_statement "if (lVar16 != 0) {\n      uVar11 = FUN_00123800(lVar16,0,"phdr load address");\n      lVar16 = puVar21[4];\n    }" if (parenthesized_expression "(lVar16 != 0)" ( (binary_expression "lVar16 != 0" identifier != number_literal) )) (compound_statement "{\n      uVar11 = FUN_00123800(lVar16,0,"phdr load address");\n      lVar16 = puVar21[4];\n    }" { (expression_statement "uVar11 = FUN_00123800(lVar16,0,"phdr load address");" (assignment_expression "uVar11 = FUN_00123800(lVar16,0,"phdr load address")" identifier = (call_expression "FUN_00123800(lVar16,0,"phdr load address")" identifier (argument_list "(lVar16,0,"phdr load address")" ( identifier , number_literal , (string_literal ""phdr load address"" " string_content ") )))) ;) (expression_statement "lVar16 = puVar21[4];" (assignment_expression "lVar16 = puVar21[4]" identifier = (subscript_expression "puVar21[4]" identifier [ number_literal ])) ;) })) (expression_statement "iVar9 = bfd_record_phdr(DAT_0017fb10,puVar21[2],puVar21[5] != 0,uVar10,lVar16 != 0,uVar11,\n                            *(undefined4 *)(puVar21 + 3),*(undefined4 *)((long)puVar21 + 0x1c),\n                            uVar30,__ptr);" (assignment_expression "iVar9 = bfd_record_phdr(DAT_0017fb10,puVar21[2],puVar21[5] != 0,uVar10,lVar16 != 0,uVar11,\n                            *(undefined4 *)(puVar21 + 3),*(undefined4 *)((long)puVar21 + 0x1c),\n                            uVar30,__ptr)" identifier = (call_expression "bfd_record_phdr(DAT_0017fb10,puVar21[2],puVar21[5] != 0,uVar10,lVar16 != 0,uVar11,\n                            *(undefined4 *)(puVar21 + 3),*(undefined4 *)((long)puVar21 + 0x1c),\n                            uVar30,__ptr)" identifier (argument_list "(DAT_0017fb10,puVar21[2],puVar21[5] != 0,uVar10,lVar16 != 0,uVar11,\n                            *(undefined4 *)(puVar21 + 3),*(undefined4 *)((long)puVar21 + 0x1c),\n                            uVar30,__ptr)" ( identifier , (subscript_expression "puVar21[2]" identifier [ number_literal ]) , (binary_expression "puVar21[5] != 0" (subscript_expression "puVar21[5]" identifier [ number_literal ]) != number_literal) , identifier , (binary_expression "lVar16 != 0" identifier != number_literal) , identifier , (pointer_expression "*(undefined4 *)(puVar21 + 3)" * (cast_expression "(undefined4 *)(puVar21 + 3)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + 3)" ( (binary_expression "puVar21 + 3" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)((long)puVar21 + 0x1c)" * (cast_expression "(undefined4 *)((long)puVar21 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar21 + 0x1c)" ( (binary_expression "(long)puVar21 + 0x1c" (cast_expression "(long)puVar21" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) , identifier , identifier )))) ;) (if_statement "if (iVar9 == 0) {\n      dcgettext(0,"%F%P: bfd_record_phdr failed: %E\n",5);\n      FUN_001251f0();\n    }" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (compound_statement "{\n      dcgettext(0,"%F%P: bfd_record_phdr failed: %E\n",5);\n      FUN_001251f0();\n    }" { (expression_statement "dcgettext(0,"%F%P: bfd_record_phdr failed: %E\n",5);" (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_001251f0();" (call_expression "FUN_001251f0()" identifier (argument_list "()" ( ))) ;) })) })) (expression_statement "free(__ptr);" (call_expression "free(__ptr)" identifier (argument_list "(__ptr)" ( identifier ))) ;) (for_statement "for (plVar17 = DAT_0017fa60; plVar17 != (long *)0x0; plVar17 = (long *)plVar17[4]) {\n    if ((-1 < *(int *)((long)plVar17 + 0x84)) && (plVar17[7] != 0)) {\n      plVar18 = (long *)plVar17[0xe];\njoined_r0x0011c90a:\n      if (plVar18 != (long *)0x0) {\n        do {\n          bVar38 = false;\n          bVar39 = (int)plVar18[2] == 0;\n          if (bVar39) {\n            pbVar4 = (byte *)plVar18[1];\n            lVar16 = 5;\n            pbVar20 = pbVar4;\n            pbVar32 = (byte *)0x130359;\n            do {\n              if (lVar16 == 0) break;\n              lVar16 = lVar16 + -1;\n              bVar38 = *pbVar20 < *pbVar32;\n              bVar39 = *pbVar20 == *pbVar32;\n              pbVar20 = pbVar20 + (ulong)bVar40 * -2 + 1;\n              pbVar32 = pbVar32 + (ulong)bVar40 * -2 + 1;\n            } while (bVar39);\n            if ((!bVar38 && !bVar39) != bVar38) goto code_r0x0011c93b;\n          }\n          plVar18 = (long *)*plVar18;\n          if (plVar18 == (long *)0x0) break;\n        } while( true );\n      }\n    }\n  }" for ( (assignment_expression "plVar17 = DAT_0017fa60" identifier = identifier) ; (binary_expression "plVar17 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "plVar17 = (long *)plVar17[4]" identifier = (cast_expression "(long *)plVar17[4]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar17[4]" identifier [ number_literal ]))) ) (compound_statement "{\n    if ((-1 < *(int *)((long)plVar17 + 0x84)) && (plVar17[7] != 0)) {\n      plVar18 = (long *)plVar17[0xe];\njoined_r0x0011c90a:\n      if (plVar18 != (long *)0x0) {\n        do {\n          bVar38 = false;\n          bVar39 = (int)plVar18[2] == 0;\n          if (bVar39) {\n            pbVar4 = (byte *)plVar18[1];\n            lVar16 = 5;\n            pbVar20 = pbVar4;\n            pbVar32 = (byte *)0x130359;\n            do {\n              if (lVar16 == 0) break;\n              lVar16 = lVar16 + -1;\n              bVar38 = *pbVar20 < *pbVar32;\n              bVar39 = *pbVar20 == *pbVar32;\n              pbVar20 = pbVar20 + (ulong)bVar40 * -2 + 1;\n              pbVar32 = pbVar32 + (ulong)bVar40 * -2 + 1;\n            } while (bVar39);\n            if ((!bVar38 && !bVar39) != bVar38) goto code_r0x0011c93b;\n          }\n          plVar18 = (long *)*plVar18;\n          if (plVar18 == (long *)0x0) break;\n        } while( true );\n      }\n    }\n  }" { (if_statement "if ((-1 < *(int *)((long)plVar17 + 0x84)) && (plVar17[7] != 0)) {\n      plVar18 = (long *)plVar17[0xe];\njoined_r0x0011c90a:\n      if (plVar18 != (long *)0x0) {\n        do {\n          bVar38 = false;\n          bVar39 = (int)plVar18[2] == 0;\n          if (bVar39) {\n            pbVar4 = (byte *)plVar18[1];\n            lVar16 = 5;\n            pbVar20 = pbVar4;\n            pbVar32 = (byte *)0x130359;\n            do {\n              if (lVar16 == 0) break;\n              lVar16 = lVar16 + -1;\n              bVar38 = *pbVar20 < *pbVar32;\n              bVar39 = *pbVar20 == *pbVar32;\n              pbVar20 = pbVar20 + (ulong)bVar40 * -2 + 1;\n              pbVar32 = pbVar32 + (ulong)bVar40 * -2 + 1;\n            } while (bVar39);\n            if ((!bVar38 && !bVar39) != bVar38) goto code_r0x0011c93b;\n          }\n          plVar18 = (long *)*plVar18;\n          if (plVar18 == (long *)0x0) break;\n        } while( true );\n      }\n    }" if (parenthesized_expression "((-1 < *(int *)((long)plVar17 + 0x84)) && (plVar17[7] != 0))" ( (binary_expression "(-1 < *(int *)((long)plVar17 + 0x84)) && (plVar17[7] != 0)" (parenthesized_expression "(-1 < *(int *)((long)plVar17 + 0x84))" ( (binary_expression "-1 < *(int *)((long)plVar17 + 0x84)" number_literal < (pointer_expression "*(int *)((long)plVar17 + 0x84)" * (cast_expression "(int *)((long)plVar17 + 0x84)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar17 + 0x84)" ( (binary_expression "(long)plVar17 + 0x84" (cast_expression "(long)plVar17" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) )) && (parenthesized_expression "(plVar17[7] != 0)" ( (binary_expression "plVar17[7] != 0" (subscript_expression "plVar17[7]" identifier [ number_literal ]) != number_literal) ))) )) (compound_statement "{\n      plVar18 = (long *)plVar17[0xe];\njoined_r0x0011c90a:\n      if (plVar18 != (long *)0x0) {\n        do {\n          bVar38 = false;\n          bVar39 = (int)plVar18[2] == 0;\n          if (bVar39) {\n            pbVar4 = (byte *)plVar18[1];\n            lVar16 = 5;\n            pbVar20 = pbVar4;\n            pbVar32 = (byte *)0x130359;\n            do {\n              if (lVar16 == 0) break;\n              lVar16 = lVar16 + -1;\n              bVar38 = *pbVar20 < *pbVar32;\n              bVar39 = *pbVar20 == *pbVar32;\n              pbVar20 = pbVar20 + (ulong)bVar40 * -2 + 1;\n              pbVar32 = pbVar32 + (ulong)bVar40 * -2 + 1;\n            } while (bVar39);\n            if ((!bVar38 && !bVar39) != bVar38) goto code_r0x0011c93b;\n          }\n          plVar18 = (long *)*plVar18;\n          if (plVar18 == (long *)0x0) break;\n        } while( true );\n      }\n    }" { (expression_statement "plVar18 = (long *)plVar17[0xe];" (assignment_expression "plVar18 = (long *)plVar17[0xe]" identifier = (cast_expression "(long *)plVar17[0xe]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar17[0xe]" identifier [ number_literal ]))) ;) (labeled_statement "joined_r0x0011c90a:\n      if (plVar18 != (long *)0x0) {\n        do {\n          bVar38 = false;\n          bVar39 = (int)plVar18[2] == 0;\n          if (bVar39) {\n            pbVar4 = (byte *)plVar18[1];\n            lVar16 = 5;\n            pbVar20 = pbVar4;\n            pbVar32 = (byte *)0x130359;\n            do {\n              if (lVar16 == 0) break;\n              lVar16 = lVar16 + -1;\n              bVar38 = *pbVar20 < *pbVar32;\n              bVar39 = *pbVar20 == *pbVar32;\n              pbVar20 = pbVar20 + (ulong)bVar40 * -2 + 1;\n              pbVar32 = pbVar32 + (ulong)bVar40 * -2 + 1;\n            } while (bVar39);\n            if ((!bVar38 && !bVar39) != bVar38) goto code_r0x0011c93b;\n          }\n          plVar18 = (long *)*plVar18;\n          if (plVar18 == (long *)0x0) break;\n        } while( true );\n      }" statement_identifier : (if_statement "if (plVar18 != (long *)0x0) {\n        do {\n          bVar38 = false;\n          bVar39 = (int)plVar18[2] == 0;\n          if (bVar39) {\n            pbVar4 = (byte *)plVar18[1];\n            lVar16 = 5;\n            pbVar20 = pbVar4;\n            pbVar32 = (byte *)0x130359;\n            do {\n              if (lVar16 == 0) break;\n              lVar16 = lVar16 + -1;\n              bVar38 = *pbVar20 < *pbVar32;\n              bVar39 = *pbVar20 == *pbVar32;\n              pbVar20 = pbVar20 + (ulong)bVar40 * -2 + 1;\n              pbVar32 = pbVar32 + (ulong)bVar40 * -2 + 1;\n            } while (bVar39);\n            if ((!bVar38 && !bVar39) != bVar38) goto code_r0x0011c93b;\n          }\n          plVar18 = (long *)*plVar18;\n          if (plVar18 == (long *)0x0) break;\n        } while( true );\n      }" if (parenthesized_expression "(plVar18 != (long *)0x0)" ( (binary_expression "plVar18 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        do {\n          bVar38 = false;\n          bVar39 = (int)plVar18[2] == 0;\n          if (bVar39) {\n            pbVar4 = (byte *)plVar18[1];\n            lVar16 = 5;\n            pbVar20 = pbVar4;\n            pbVar32 = (byte *)0x130359;\n            do {\n              if (lVar16 == 0) break;\n              lVar16 = lVar16 + -1;\n              bVar38 = *pbVar20 < *pbVar32;\n              bVar39 = *pbVar20 == *pbVar32;\n              pbVar20 = pbVar20 + (ulong)bVar40 * -2 + 1;\n              pbVar32 = pbVar32 + (ulong)bVar40 * -2 + 1;\n            } while (bVar39);\n            if ((!bVar38 && !bVar39) != bVar38) goto code_r0x0011c93b;\n          }\n          plVar18 = (long *)*plVar18;\n          if (plVar18 == (long *)0x0) break;\n        } while( true );\n      }" { (do_statement "do {\n          bVar38 = false;\n          bVar39 = (int)plVar18[2] == 0;\n          if (bVar39) {\n            pbVar4 = (byte *)plVar18[1];\n            lVar16 = 5;\n            pbVar20 = pbVar4;\n            pbVar32 = (byte *)0x130359;\n            do {\n              if (lVar16 == 0) break;\n              lVar16 = lVar16 + -1;\n              bVar38 = *pbVar20 < *pbVar32;\n              bVar39 = *pbVar20 == *pbVar32;\n              pbVar20 = pbVar20 + (ulong)bVar40 * -2 + 1;\n              pbVar32 = pbVar32 + (ulong)bVar40 * -2 + 1;\n            } while (bVar39);\n            if ((!bVar38 && !bVar39) != bVar38) goto code_r0x0011c93b;\n          }\n          plVar18 = (long *)*plVar18;\n          if (plVar18 == (long *)0x0) break;\n        } while( true );" do (compound_statement "{\n          bVar38 = false;\n          bVar39 = (int)plVar18[2] == 0;\n          if (bVar39) {\n            pbVar4 = (byte *)plVar18[1];\n            lVar16 = 5;\n            pbVar20 = pbVar4;\n            pbVar32 = (byte *)0x130359;\n            do {\n              if (lVar16 == 0) break;\n              lVar16 = lVar16 + -1;\n              bVar38 = *pbVar20 < *pbVar32;\n              bVar39 = *pbVar20 == *pbVar32;\n              pbVar20 = pbVar20 + (ulong)bVar40 * -2 + 1;\n              pbVar32 = pbVar32 + (ulong)bVar40 * -2 + 1;\n            } while (bVar39);\n            if ((!bVar38 && !bVar39) != bVar38) goto code_r0x0011c93b;\n          }\n          plVar18 = (long *)*plVar18;\n          if (plVar18 == (long *)0x0) break;\n        }" { (expression_statement "bVar38 = false;" (assignment_expression "bVar38 = false" identifier = false) ;) (expression_statement "bVar39 = (int)plVar18[2] == 0;" (assignment_expression "bVar39 = (int)plVar18[2] == 0" identifier = (binary_expression "(int)plVar18[2] == 0" (cast_expression "(int)plVar18[2]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "plVar18[2]" identifier [ number_literal ])) == number_literal)) ;) (if_statement "if (bVar39) {\n            pbVar4 = (byte *)plVar18[1];\n            lVar16 = 5;\n            pbVar20 = pbVar4;\n            pbVar32 = (byte *)0x130359;\n            do {\n              if (lVar16 == 0) break;\n              lVar16 = lVar16 + -1;\n              bVar38 = *pbVar20 < *pbVar32;\n              bVar39 = *pbVar20 == *pbVar32;\n              pbVar20 = pbVar20 + (ulong)bVar40 * -2 + 1;\n              pbVar32 = pbVar32 + (ulong)bVar40 * -2 + 1;\n            } while (bVar39);\n            if ((!bVar38 && !bVar39) != bVar38) goto code_r0x0011c93b;\n          }" if (parenthesized_expression "(bVar39)" ( identifier )) (compound_statement "{\n            pbVar4 = (byte *)plVar18[1];\n            lVar16 = 5;\n            pbVar20 = pbVar4;\n            pbVar32 = (byte *)0x130359;\n            do {\n              if (lVar16 == 0) break;\n              lVar16 = lVar16 + -1;\n              bVar38 = *pbVar20 < *pbVar32;\n              bVar39 = *pbVar20 == *pbVar32;\n              pbVar20 = pbVar20 + (ulong)bVar40 * -2 + 1;\n              pbVar32 = pbVar32 + (ulong)bVar40 * -2 + 1;\n            } while (bVar39);\n            if ((!bVar38 && !bVar39) != bVar38) goto code_r0x0011c93b;\n          }" { (expression_statement "pbVar4 = (byte *)plVar18[1];" (assignment_expression "pbVar4 = (byte *)plVar18[1]" identifier = (cast_expression "(byte *)plVar18[1]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar18[1]" identifier [ number_literal ]))) ;) (expression_statement "lVar16 = 5;" (assignment_expression "lVar16 = 5" identifier = number_literal) ;) (expression_statement "pbVar20 = pbVar4;" (assignment_expression "pbVar20 = pbVar4" identifier = identifier) ;) (expression_statement "pbVar32 = (byte *)0x130359;" (assignment_expression "pbVar32 = (byte *)0x130359" identifier = (cast_expression "(byte *)0x130359" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n              if (lVar16 == 0) break;\n              lVar16 = lVar16 + -1;\n              bVar38 = *pbVar20 < *pbVar32;\n              bVar39 = *pbVar20 == *pbVar32;\n              pbVar20 = pbVar20 + (ulong)bVar40 * -2 + 1;\n              pbVar32 = pbVar32 + (ulong)bVar40 * -2 + 1;\n            } while (bVar39);" do (compound_statement "{\n              if (lVar16 == 0) break;\n              lVar16 = lVar16 + -1;\n              bVar38 = *pbVar20 < *pbVar32;\n              bVar39 = *pbVar20 == *pbVar32;\n              pbVar20 = pbVar20 + (ulong)bVar40 * -2 + 1;\n              pbVar32 = pbVar32 + (ulong)bVar40 * -2 + 1;\n            }" { (if_statement "if (lVar16 == 0) break;" if (parenthesized_expression "(lVar16 == 0)" ( (binary_expression "lVar16 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar16 = lVar16 + -1;" (assignment_expression "lVar16 = lVar16 + -1" identifier = (binary_expression "lVar16 + -1" identifier + number_literal)) ;) (expression_statement "bVar38 = *pbVar20 < *pbVar32;" (assignment_expression "bVar38 = *pbVar20 < *pbVar32" identifier = (binary_expression "*pbVar20 < *pbVar32" (pointer_expression "*pbVar20" * identifier) < (pointer_expression "*pbVar32" * identifier))) ;) (expression_statement "bVar39 = *pbVar20 == *pbVar32;" (assignment_expression "bVar39 = *pbVar20 == *pbVar32" identifier = (binary_expression "*pbVar20 == *pbVar32" (pointer_expression "*pbVar20" * identifier) == (pointer_expression "*pbVar32" * identifier))) ;) (expression_statement "pbVar20 = pbVar20 + (ulong)bVar40 * -2 + 1;" (assignment_expression "pbVar20 = pbVar20 + (ulong)bVar40 * -2 + 1" identifier = (binary_expression "pbVar20 + (ulong)bVar40 * -2 + 1" (binary_expression "pbVar20 + (ulong)bVar40 * -2" identifier + (binary_expression "(ulong)bVar40 * -2" (cast_expression "(ulong)bVar40" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar32 = pbVar32 + (ulong)bVar40 * -2 + 1;" (assignment_expression "pbVar32 = pbVar32 + (ulong)bVar40 * -2 + 1" identifier = (binary_expression "pbVar32 + (ulong)bVar40 * -2 + 1" (binary_expression "pbVar32 + (ulong)bVar40 * -2" identifier + (binary_expression "(ulong)bVar40 * -2" (cast_expression "(ulong)bVar40" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar39)" ( identifier )) ;) (if_statement "if ((!bVar38 && !bVar39) != bVar38) goto code_r0x0011c93b;" if (parenthesized_expression "((!bVar38 && !bVar39) != bVar38)" ( (binary_expression "(!bVar38 && !bVar39) != bVar38" (parenthesized_expression "(!bVar38 && !bVar39)" ( (binary_expression "!bVar38 && !bVar39" (unary_expression "!bVar38" ! identifier) && (unary_expression "!bVar39" ! identifier)) )) != identifier) )) (goto_statement "goto code_r0x0011c93b;" goto statement_identifier ;)) })) (expression_statement "plVar18 = (long *)*plVar18;" (assignment_expression "plVar18 = (long *)*plVar18" identifier = (cast_expression "(long *)*plVar18" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar18" * identifier))) ;) (if_statement "if (plVar18 == (long *)0x0) break;" if (parenthesized_expression "(plVar18 == (long *)0x0)" ( (binary_expression "plVar18 == (long *)0x0" identifier == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) }) while (parenthesized_expression "( true )" ( true )) ;) }))) })) })) (if_statement "if (((DAT_0017fac3 & 0x10) != 0) && ((DAT_0017fac0 & 3) != 2)) {\n    local_40 = 0;\n    FUN_00119860(DAT_0017fd98,&local_40);\n    if (local_40 == 0) {\n      DAT_0017fac3 = DAT_0017fac3 & 0xef;\n    }\n  }" if (parenthesized_expression "(((DAT_0017fac3 & 0x10) != 0) && ((DAT_0017fac0 & 3) != 2))" ( (binary_expression "((DAT_0017fac3 & 0x10) != 0) && ((DAT_0017fac0 & 3) != 2)" (parenthesized_expression "((DAT_0017fac3 & 0x10) != 0)" ( (binary_expression "(DAT_0017fac3 & 0x10) != 0" (parenthesized_expression "(DAT_0017fac3 & 0x10)" ( (binary_expression "DAT_0017fac3 & 0x10" identifier & number_literal) )) != number_literal) )) && (parenthesized_expression "((DAT_0017fac0 & 3) != 2)" ( (binary_expression "(DAT_0017fac0 & 3) != 2" (parenthesized_expression "(DAT_0017fac0 & 3)" ( (binary_expression "DAT_0017fac0 & 3" identifier & number_literal) )) != number_literal) ))) )) (compound_statement "{\n    local_40 = 0;\n    FUN_00119860(DAT_0017fd98,&local_40);\n    if (local_40 == 0) {\n      DAT_0017fac3 = DAT_0017fac3 & 0xef;\n    }\n  }" { (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" identifier = number_literal) ;) (expression_statement "FUN_00119860(DAT_0017fd98,&local_40);" (call_expression "FUN_00119860(DAT_0017fd98,&local_40)" identifier (argument_list "(DAT_0017fd98,&local_40)" ( identifier , (pointer_expression "&local_40" & identifier) ))) ;) (if_statement "if (local_40 == 0) {\n      DAT_0017fac3 = DAT_0017fac3 & 0xef;\n    }" if (parenthesized_expression "(local_40 == 0)" ( (binary_expression "local_40 == 0" identifier == number_literal) )) (compound_statement "{\n      DAT_0017fac3 = DAT_0017fac3 & 0xef;\n    }" { (expression_statement "DAT_0017fac3 = DAT_0017fac3 & 0xef;" (assignment_expression "DAT_0017fac3 = DAT_0017fac3 & 0xef" identifier = (binary_expression "DAT_0017fac3 & 0xef" identifier & number_literal)) ;) })) })) (expression_statement "FUN_0011a050(0,1 < DAT_0017fad8);" (call_expression "FUN_0011a050(0,1 < DAT_0017fad8)" identifier (argument_list "(0,1 < DAT_0017fad8)" ( number_literal , (binary_expression "1 < DAT_0017fad8" number_literal < identifier) ))) ;) (expression_statement "FUN_00123bb0();" (call_expression "FUN_00123bb0()" identifier (argument_list "()" ( ))) ;) (expression_statement "lVar16 = DAT_0017fb10;" (assignment_expression "lVar16 = DAT_0017fb10" identifier = identifier) ;) (expression_statement "uVar10 = DAT_0017f3c8;" (assignment_expression "uVar10 = DAT_0017f3c8" identifier = identifier) ;) (if_statement "if (DAT_0017f350 != 0) {\n    plVar17 = DAT_0017f358 + DAT_0017f350;\n    plVar18 = DAT_0017f358;\n    do {\n      while (lVar15 = *plVar18, (*(ushort *)(lVar15 + 0x18) & 0x8ff) == 3) {\n        pcVar31 = *(char **)(lVar15 + 8);\n        if (*pcVar31 != '.') {\n          cVar8 = *(char *)(*(long *)(lVar16 + 8) + 0x1c);\n          lVar13 = *(long *)(*(long *)(lVar15 + 0x28) + 0x68);\n          *(long *)(lVar15 + 0x28) = lVar13;\n          if (pcVar31[(int)((cVar8 != '\0') + 4)] == 'o') {\n            *(ulong *)(lVar15 + 0x30) = *(ulong *)(lVar13 + 0x38) >> ((byte)uVar10 & 0x3f);\n          }\n          break;\n        }\n        if (pcVar31[2] != 'i') break;\n        plVar18 = plVar18 + 1;\n        uVar30 = *(ulong *)(*(long *)(lVar15 + 0x28) + 0x38);\n        *(undefined8 *)(lVar15 + 0x28) = 0x17ed50;\n        *(ulong *)(lVar15 + 0x30) = uVar30 >> ((byte)uVar10 & 0x3f);\n        if (plVar18 == plVar17) goto LAB_0011ca60;\n      }\n      plVar18 = plVar18 + 1;\n    } while (plVar18 != plVar17);\n  }" if (parenthesized_expression "(DAT_0017f350 != 0)" ( (binary_expression "DAT_0017f350 != 0" identifier != number_literal) )) (compound_statement "{\n    plVar17 = DAT_0017f358 + DAT_0017f350;\n    plVar18 = DAT_0017f358;\n    do {\n      while (lVar15 = *plVar18, (*(ushort *)(lVar15 + 0x18) & 0x8ff) == 3) {\n        pcVar31 = *(char **)(lVar15 + 8);\n        if (*pcVar31 != '.') {\n          cVar8 = *(char *)(*(long *)(lVar16 + 8) + 0x1c);\n          lVar13 = *(long *)(*(long *)(lVar15 + 0x28) + 0x68);\n          *(long *)(lVar15 + 0x28) = lVar13;\n          if (pcVar31[(int)((cVar8 != '\0') + 4)] == 'o') {\n            *(ulong *)(lVar15 + 0x30) = *(ulong *)(lVar13 + 0x38) >> ((byte)uVar10 & 0x3f);\n          }\n          break;\n        }\n        if (pcVar31[2] != 'i') break;\n        plVar18 = plVar18 + 1;\n        uVar30 = *(ulong *)(*(long *)(lVar15 + 0x28) + 0x38);\n        *(undefined8 *)(lVar15 + 0x28) = 0x17ed50;\n        *(ulong *)(lVar15 + 0x30) = uVar30 >> ((byte)uVar10 & 0x3f);\n        if (plVar18 == plVar17) goto LAB_0011ca60;\n      }\n      plVar18 = plVar18 + 1;\n    } while (plVar18 != plVar17);\n  }" { (expression_statement "plVar17 = DAT_0017f358 + DAT_0017f350;" (assignment_expression "plVar17 = DAT_0017f358 + DAT_0017f350" identifier = (binary_expression "DAT_0017f358 + DAT_0017f350" identifier + identifier)) ;) (expression_statement "plVar18 = DAT_0017f358;" (assignment_expression "plVar18 = DAT_0017f358" identifier = identifier) ;) (do_statement "do {\n      while (lVar15 = *plVar18, (*(ushort *)(lVar15 + 0x18) & 0x8ff) == 3) {\n        pcVar31 = *(char **)(lVar15 + 8);\n        if (*pcVar31 != '.') {\n          cVar8 = *(char *)(*(long *)(lVar16 + 8) + 0x1c);\n          lVar13 = *(long *)(*(long *)(lVar15 + 0x28) + 0x68);\n          *(long *)(lVar15 + 0x28) = lVar13;\n          if (pcVar31[(int)((cVar8 != '\0') + 4)] == 'o') {\n            *(ulong *)(lVar15 + 0x30) = *(ulong *)(lVar13 + 0x38) >> ((byte)uVar10 & 0x3f);\n          }\n          break;\n        }\n        if (pcVar31[2] != 'i') break;\n        plVar18 = plVar18 + 1;\n        uVar30 = *(ulong *)(*(long *)(lVar15 + 0x28) + 0x38);\n        *(undefined8 *)(lVar15 + 0x28) = 0x17ed50;\n        *(ulong *)(lVar15 + 0x30) = uVar30 >> ((byte)uVar10 & 0x3f);\n        if (plVar18 == plVar17) goto LAB_0011ca60;\n      }\n      plVar18 = plVar18 + 1;\n    } while (plVar18 != plVar17);" do (compound_statement "{\n      while (lVar15 = *plVar18, (*(ushort *)(lVar15 + 0x18) & 0x8ff) == 3) {\n        pcVar31 = *(char **)(lVar15 + 8);\n        if (*pcVar31 != '.') {\n          cVar8 = *(char *)(*(long *)(lVar16 + 8) + 0x1c);\n          lVar13 = *(long *)(*(long *)(lVar15 + 0x28) + 0x68);\n          *(long *)(lVar15 + 0x28) = lVar13;\n          if (pcVar31[(int)((cVar8 != '\0') + 4)] == 'o') {\n            *(ulong *)(lVar15 + 0x30) = *(ulong *)(lVar13 + 0x38) >> ((byte)uVar10 & 0x3f);\n          }\n          break;\n        }\n        if (pcVar31[2] != 'i') break;\n        plVar18 = plVar18 + 1;\n        uVar30 = *(ulong *)(*(long *)(lVar15 + 0x28) + 0x38);\n        *(undefined8 *)(lVar15 + 0x28) = 0x17ed50;\n        *(ulong *)(lVar15 + 0x30) = uVar30 >> ((byte)uVar10 & 0x3f);\n        if (plVar18 == plVar17) goto LAB_0011ca60;\n      }\n      plVar18 = plVar18 + 1;\n    }" { (while_statement "while (lVar15 = *plVar18, (*(ushort *)(lVar15 + 0x18) & 0x8ff) == 3) {\n        pcVar31 = *(char **)(lVar15 + 8);\n        if (*pcVar31 != '.') {\n          cVar8 = *(char *)(*(long *)(lVar16 + 8) + 0x1c);\n          lVar13 = *(long *)(*(long *)(lVar15 + 0x28) + 0x68);\n          *(long *)(lVar15 + 0x28) = lVar13;\n          if (pcVar31[(int)((cVar8 != '\0') + 4)] == 'o') {\n            *(ulong *)(lVar15 + 0x30) = *(ulong *)(lVar13 + 0x38) >> ((byte)uVar10 & 0x3f);\n          }\n          break;\n        }\n        if (pcVar31[2] != 'i') break;\n        plVar18 = plVar18 + 1;\n        uVar30 = *(ulong *)(*(long *)(lVar15 + 0x28) + 0x38);\n        *(undefined8 *)(lVar15 + 0x28) = 0x17ed50;\n        *(ulong *)(lVar15 + 0x30) = uVar30 >> ((byte)uVar10 & 0x3f);\n        if (plVar18 == plVar17) goto LAB_0011ca60;\n      }" while (parenthesized_expression "(lVar15 = *plVar18, (*(ushort *)(lVar15 + 0x18) & 0x8ff) == 3)" ( (comma_expression "lVar15 = *plVar18, (*(ushort *)(lVar15 + 0x18) & 0x8ff) == 3" (assignment_expression "lVar15 = *plVar18" identifier = (pointer_expression "*plVar18" * identifier)) , (binary_expression "(*(ushort *)(lVar15 + 0x18) & 0x8ff) == 3" (parenthesized_expression "(*(ushort *)(lVar15 + 0x18) & 0x8ff)" ( (binary_expression "*(ushort *)(lVar15 + 0x18) & 0x8ff" (pointer_expression "*(ushort *)(lVar15 + 0x18)" * (cast_expression "(ushort *)(lVar15 + 0x18)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar15 + 0x18)" ( (binary_expression "lVar15 + 0x18" identifier + number_literal) )))) & number_literal) )) == number_literal)) )) (compound_statement "{\n        pcVar31 = *(char **)(lVar15 + 8);\n        if (*pcVar31 != '.') {\n          cVar8 = *(char *)(*(long *)(lVar16 + 8) + 0x1c);\n          lVar13 = *(long *)(*(long *)(lVar15 + 0x28) + 0x68);\n          *(long *)(lVar15 + 0x28) = lVar13;\n          if (pcVar31[(int)((cVar8 != '\0') + 4)] == 'o') {\n            *(ulong *)(lVar15 + 0x30) = *(ulong *)(lVar13 + 0x38) >> ((byte)uVar10 & 0x3f);\n          }\n          break;\n        }\n        if (pcVar31[2] != 'i') break;\n        plVar18 = plVar18 + 1;\n        uVar30 = *(ulong *)(*(long *)(lVar15 + 0x28) + 0x38);\n        *(undefined8 *)(lVar15 + 0x28) = 0x17ed50;\n        *(ulong *)(lVar15 + 0x30) = uVar30 >> ((byte)uVar10 & 0x3f);\n        if (plVar18 == plVar17) goto LAB_0011ca60;\n      }" { (expression_statement "pcVar31 = *(char **)(lVar15 + 8);" (assignment_expression "pcVar31 = *(char **)(lVar15 + 8)" identifier = (pointer_expression "*(char **)(lVar15 + 8)" * (cast_expression "(char **)(lVar15 + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar15 + 8)" ( (binary_expression "lVar15 + 8" identifier + number_literal) ))))) ;) (if_statement "if (*pcVar31 != '.') {\n          cVar8 = *(char *)(*(long *)(lVar16 + 8) + 0x1c);\n          lVar13 = *(long *)(*(long *)(lVar15 + 0x28) + 0x68);\n          *(long *)(lVar15 + 0x28) = lVar13;\n          if (pcVar31[(int)((cVar8 != '\0') + 4)] == 'o') {\n            *(ulong *)(lVar15 + 0x30) = *(ulong *)(lVar13 + 0x38) >> ((byte)uVar10 & 0x3f);\n          }\n          break;\n        }" if (parenthesized_expression "(*pcVar31 != '.')" ( (binary_expression "*pcVar31 != '.'" (pointer_expression "*pcVar31" * identifier) != (char_literal "'.'" ' character ')) )) (compound_statement "{\n          cVar8 = *(char *)(*(long *)(lVar16 + 8) + 0x1c);\n          lVar13 = *(long *)(*(long *)(lVar15 + 0x28) + 0x68);\n          *(long *)(lVar15 + 0x28) = lVar13;\n          if (pcVar31[(int)((cVar8 != '\0') + 4)] == 'o') {\n            *(ulong *)(lVar15 + 0x30) = *(ulong *)(lVar13 + 0x38) >> ((byte)uVar10 & 0x3f);\n          }\n          break;\n        }" { (expression_statement "cVar8 = *(char *)(*(long *)(lVar16 + 8) + 0x1c);" (assignment_expression "cVar8 = *(char *)(*(long *)(lVar16 + 8) + 0x1c)" identifier = (pointer_expression "*(char *)(*(long *)(lVar16 + 8) + 0x1c)" * (cast_expression "(char *)(*(long *)(lVar16 + 8) + 0x1c)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(lVar16 + 8) + 0x1c)" ( (binary_expression "*(long *)(lVar16 + 8) + 0x1c" (pointer_expression "*(long *)(lVar16 + 8)" * (cast_expression "(long *)(lVar16 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar16 + 8)" ( (binary_expression "lVar16 + 8" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "lVar13 = *(long *)(*(long *)(lVar15 + 0x28) + 0x68);" (assignment_expression "lVar13 = *(long *)(*(long *)(lVar15 + 0x28) + 0x68)" identifier = (pointer_expression "*(long *)(*(long *)(lVar15 + 0x28) + 0x68)" * (cast_expression "(long *)(*(long *)(lVar15 + 0x28) + 0x68)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(lVar15 + 0x28) + 0x68)" ( (binary_expression "*(long *)(lVar15 + 0x28) + 0x68" (pointer_expression "*(long *)(lVar15 + 0x28)" * (cast_expression "(long *)(lVar15 + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar15 + 0x28)" ( (binary_expression "lVar15 + 0x28" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "*(long *)(lVar15 + 0x28) = lVar13;" (assignment_expression "*(long *)(lVar15 + 0x28) = lVar13" (pointer_expression "*(long *)(lVar15 + 0x28)" * (cast_expression "(long *)(lVar15 + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar15 + 0x28)" ( (binary_expression "lVar15 + 0x28" identifier + number_literal) )))) = identifier) ;) (if_statement "if (pcVar31[(int)((cVar8 != '\0') + 4)] == 'o') {\n            *(ulong *)(lVar15 + 0x30) = *(ulong *)(lVar13 + 0x38) >> ((byte)uVar10 & 0x3f);\n          }" if (parenthesized_expression "(pcVar31[(int)((cVar8 != '\0') + 4)] == 'o')" ( (binary_expression "pcVar31[(int)((cVar8 != '\0') + 4)] == 'o'" (subscript_expression "pcVar31[(int)((cVar8 != '\0') + 4)]" identifier [ (cast_expression "(int)((cVar8 != '\0') + 4)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((cVar8 != '\0') + 4)" ( (binary_expression "(cVar8 != '\0') + 4" (parenthesized_expression "(cVar8 != '\0')" ( (binary_expression "cVar8 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) + number_literal) ))) ]) == (char_literal "'o'" ' character ')) )) (compound_statement "{\n            *(ulong *)(lVar15 + 0x30) = *(ulong *)(lVar13 + 0x38) >> ((byte)uVar10 & 0x3f);\n          }" { (expression_statement "*(ulong *)(lVar15 + 0x30) = *(ulong *)(lVar13 + 0x38) >> ((byte)uVar10 & 0x3f);" (assignment_expression "*(ulong *)(lVar15 + 0x30) = *(ulong *)(lVar13 + 0x38) >> ((byte)uVar10 & 0x3f)" (pointer_expression "*(ulong *)(lVar15 + 0x30)" * (cast_expression "(ulong *)(lVar15 + 0x30)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar15 + 0x30)" ( (binary_expression "lVar15 + 0x30" identifier + number_literal) )))) = (binary_expression "*(ulong *)(lVar13 + 0x38) >> ((byte)uVar10 & 0x3f)" (pointer_expression "*(ulong *)(lVar13 + 0x38)" * (cast_expression "(ulong *)(lVar13 + 0x38)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar13 + 0x38)" ( (binary_expression "lVar13 + 0x38" identifier + number_literal) )))) >> (parenthesized_expression "((byte)uVar10 & 0x3f)" ( (binary_expression "(byte)uVar10 & 0x3f" (cast_expression "(byte)uVar10" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )))) ;) })) (break_statement "break;" break ;) })) (if_statement "if (pcVar31[2] != 'i') break;" if (parenthesized_expression "(pcVar31[2] != 'i')" ( (binary_expression "pcVar31[2] != 'i'" (subscript_expression "pcVar31[2]" identifier [ number_literal ]) != (char_literal "'i'" ' character ')) )) (break_statement "break;" break ;)) (expression_statement "plVar18 = plVar18 + 1;" (assignment_expression "plVar18 = plVar18 + 1" identifier = (binary_expression "plVar18 + 1" identifier + number_literal)) ;) (expression_statement "uVar30 = *(ulong *)(*(long *)(lVar15 + 0x28) + 0x38);" (assignment_expression "uVar30 = *(ulong *)(*(long *)(lVar15 + 0x28) + 0x38)" identifier = (pointer_expression "*(ulong *)(*(long *)(lVar15 + 0x28) + 0x38)" * (cast_expression "(ulong *)(*(long *)(lVar15 + 0x28) + 0x38)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(lVar15 + 0x28) + 0x38)" ( (binary_expression "*(long *)(lVar15 + 0x28) + 0x38" (pointer_expression "*(long *)(lVar15 + 0x28)" * (cast_expression "(long *)(lVar15 + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar15 + 0x28)" ( (binary_expression "lVar15 + 0x28" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "*(undefined8 *)(lVar15 + 0x28) = 0x17ed50;" (assignment_expression "*(undefined8 *)(lVar15 + 0x28) = 0x17ed50" (pointer_expression "*(undefined8 *)(lVar15 + 0x28)" * (cast_expression "(undefined8 *)(lVar15 + 0x28)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar15 + 0x28)" ( (binary_expression "lVar15 + 0x28" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(ulong *)(lVar15 + 0x30) = uVar30 >> ((byte)uVar10 & 0x3f);" (assignment_expression "*(ulong *)(lVar15 + 0x30) = uVar30 >> ((byte)uVar10 & 0x3f)" (pointer_expression "*(ulong *)(lVar15 + 0x30)" * (cast_expression "(ulong *)(lVar15 + 0x30)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar15 + 0x30)" ( (binary_expression "lVar15 + 0x30" identifier + number_literal) )))) = (binary_expression "uVar30 >> ((byte)uVar10 & 0x3f)" identifier >> (parenthesized_expression "((byte)uVar10 & 0x3f)" ( (binary_expression "(byte)uVar10 & 0x3f" (cast_expression "(byte)uVar10" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )))) ;) (if_statement "if (plVar18 == plVar17) goto LAB_0011ca60;" if (parenthesized_expression "(plVar18 == plVar17)" ( (binary_expression "plVar18 == plVar17" identifier == identifier) )) (goto_statement "goto LAB_0011ca60;" goto statement_identifier ;)) })) (expression_statement "plVar18 = plVar18 + 1;" (assignment_expression "plVar18 = plVar18 + 1" identifier = (binary_expression "plVar18 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(plVar18 != plVar17)" ( (binary_expression "plVar18 != plVar17" identifier != identifier) )) ;) })) (labeled_statement "LAB_0011ca60:\n  FUN_001188a0(4);" statement_identifier : (expression_statement "FUN_001188a0(4);" (call_expression "FUN_001188a0(4)" identifier (argument_list "(4)" ( number_literal ))) ;)) (expression_statement "FUN_00123be0();" (call_expression "FUN_00123be0()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00123b20();" (call_expression "FUN_00123b20()" identifier (argument_list "()" ( ))) ;) (expression_statement "puVar21 = DAT_0017f378;" (assignment_expression "puVar21 = DAT_0017f378" identifier = identifier) ;) (if_statement "if (DAT_0017fbd8 != '\0') {\n    cVar8 = bfd_arch_bits_per_address(DAT_0017fb10);\n    puVar21 = *(undefined8 **)(DAT_0017fb10 + 0x90);\n    uVar30 = (1L << (cVar8 - 1U & 0x3f)) * 2 - 1;\n    if (puVar21 != (undefined8 *)0x0) {\n      do {\n        if ((*(byte *)(puVar21 + 4) & 1) != 0) {\n          uVar29 = puVar21[5] + puVar21[7] & uVar30;\n          if ((uVar29 == 0) || ((puVar21[5] & uVar30) <= uVar29)) {\n            uVar29 = puVar21[7] + puVar21[6] & uVar30;\n            if ((uVar29 == 0) || ((puVar21[6] & uVar30) <= uVar29)) goto LAB_0011d2f0;\n            uVar11 = *puVar21;\n            pcVar31 = "%X%P: section %s LMA wraps around address space\n";\n          }\n          else {\n            uVar11 = *puVar21;\n            pcVar31 = "%X%P: section %s VMA wraps around address space\n";\n          }\n          uVar14 = dcgettext(0,pcVar31,5);\n          FUN_001251f0(uVar14,uVar11);\n        }\nLAB_0011d2f0:\n        puVar21 = (undefined8 *)puVar21[2];\n      } while (puVar21 != (undefined8 *)0x0);\n    }\n    puVar21 = DAT_0017f378;\n    if (1 < *(uint *)(DAT_0017fb10 + 0xa0)) {\n      uVar30 = 0;\n      plVar17 = (long *)xmalloc((ulong)*(uint *)(DAT_0017fb10 + 0xa0) << 4);\n      lVar16 = *(long *)(DAT_0017fb10 + 0x90);\n      if (lVar16 != 0) {\n        do {\n          uVar29 = uVar30;\n          if ((((*(uint *)(lVar16 + 0x20) & 1) != 0) &&\n              ((*(uint *)(lVar16 + 0x20) & 0x402) != 0x400)) && (*(long *)(lVar16 + 0x38) != 0)) {\n            uVar29 = uVar30 + 1;\n            plVar17[uVar30 * 2] = lVar16;\n            *(undefined4 *)(plVar17 + uVar30 * 2 + 1) = 0;\n          }\n          lVar16 = *(long *)(lVar16 + 0x10);\n          uVar30 = uVar29;\n        } while (lVar16 != 0);\n        if (1 < uVar29) {\n          qsort(plVar17,uVar29,0x10,FUN_00112320);\n          puVar21 = (undefined8 *)0x0;\n          plVar18 = plVar17;\n          uVar30 = 0;\n          uVar25 = 0;\n          do {\n            puVar27 = (undefined8 *)*plVar18;\n            puVar22 = puVar21;\n            uVar34 = uVar30;\n            uVar23 = uVar25;\n            if ((*(byte *)(puVar27 + 4) & 2) != 0) {\n              uVar34 = puVar27[6];\n              uVar23 = (uVar34 - 1) + ((ulong)puVar27[7] >> ((byte)DAT_0017f3c8 & 0x3f));\n              puVar22 = puVar27;\n              if ((puVar21 != (undefined8 *)0x0) && ((uVar34 <= uVar25 || (uVar25 < uVar30)))) {\n                uVar11 = *puVar21;\n                uVar14 = *puVar27;\n                uVar24 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);\n                FUN_001251f0(uVar24,uVar14,uVar34,uVar23,uVar11,uVar30,uVar25);\n                *(undefined4 *)(plVar18 + 1) = 1;\n              }\n            }\n            plVar18 = plVar18 + 2;\n            puVar21 = puVar22;\n            uVar30 = uVar34;\n            uVar25 = uVar23;\n          } while (plVar18 != plVar17 + uVar29 * 2);\n          qsort(plVar17,uVar29,0x10,FUN_00112350);\n          puVar21 = (undefined8 *)*plVar17;\n          uVar23 = 1;\n          uVar30 = puVar21[5];\n          uVar25 = uVar30;\n          do {\n            lVar16 = uVar23 * 2;\n            if (*(ulong *)(plVar17[lVar16] + 0x28) == uVar25) goto LAB_0011d4c4;\n            uVar23 = uVar23 + 1;\n            uVar25 = *(ulong *)(plVar17[lVar16] + 0x28);\n          } while (uVar23 != uVar29);\n          uVar23 = 0;\n          uVar25 = (uVar30 - 1) + ((ulong)puVar21[7] >> ((byte)DAT_0017f3c8 & 0x3f));\n          plVar18 = plVar17;\n          while( true ) {\n            uVar37 = uVar25;\n            uVar34 = uVar30;\n            puVar27 = puVar21;\n            plVar26 = plVar18 + 2;\n            uVar23 = uVar23 + 1;\n            if (uVar23 == uVar29) break;\n            puVar21 = (undefined8 *)*plVar26;\n            plVar3 = plVar18 + 3;\n            uVar30 = puVar21[5];\n            uVar25 = (uVar30 - 1) + ((ulong)puVar21[7] >> ((byte)DAT_0017f3c8 & 0x3f));\n            plVar18 = plVar26;\n            if (((int)*plVar3 == 0) && ((uVar30 <= uVar37 || (uVar37 < uVar34)))) {\n              uVar11 = *puVar27;\n              uVar14 = *puVar21;\n              uVar24 = dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",\n                                 5);\n              FUN_001251f0(uVar24,uVar14,uVar30,uVar25,uVar11,uVar34,uVar37);\n            }\n          }\nLAB_0011d4c4:\n          free(plVar17);\n          for (puVar27 = DAT_0017f398; puVar21 = DAT_0017f378, puVar27 != (undefined8 *)0x0;\n              puVar27 = (undefined8 *)puVar27[2]) {\n            if (*(int *)(puVar27 + 10) != 0) {\n              uVar11 = *puVar27;\n              lVar16 = puVar27[7] - (puVar27[5] + puVar27[4]);\n              uVar14 = dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",lVar16,5);\n              FUN_001251f0(uVar14,uVar11,lVar16);\n            }\n          }\n          goto joined_r0x0011ca92;\n        }\n      }\n      free(plVar17);\n      puVar21 = DAT_0017f378;\n    }\n  }" if (parenthesized_expression "(DAT_0017fbd8 != '\0')" ( (binary_expression "DAT_0017fbd8 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    cVar8 = bfd_arch_bits_per_address(DAT_0017fb10);\n    puVar21 = *(undefined8 **)(DAT_0017fb10 + 0x90);\n    uVar30 = (1L << (cVar8 - 1U & 0x3f)) * 2 - 1;\n    if (puVar21 != (undefined8 *)0x0) {\n      do {\n        if ((*(byte *)(puVar21 + 4) & 1) != 0) {\n          uVar29 = puVar21[5] + puVar21[7] & uVar30;\n          if ((uVar29 == 0) || ((puVar21[5] & uVar30) <= uVar29)) {\n            uVar29 = puVar21[7] + puVar21[6] & uVar30;\n            if ((uVar29 == 0) || ((puVar21[6] & uVar30) <= uVar29)) goto LAB_0011d2f0;\n            uVar11 = *puVar21;\n            pcVar31 = "%X%P: section %s LMA wraps around address space\n";\n          }\n          else {\n            uVar11 = *puVar21;\n            pcVar31 = "%X%P: section %s VMA wraps around address space\n";\n          }\n          uVar14 = dcgettext(0,pcVar31,5);\n          FUN_001251f0(uVar14,uVar11);\n        }\nLAB_0011d2f0:\n        puVar21 = (undefined8 *)puVar21[2];\n      } while (puVar21 != (undefined8 *)0x0);\n    }\n    puVar21 = DAT_0017f378;\n    if (1 < *(uint *)(DAT_0017fb10 + 0xa0)) {\n      uVar30 = 0;\n      plVar17 = (long *)xmalloc((ulong)*(uint *)(DAT_0017fb10 + 0xa0) << 4);\n      lVar16 = *(long *)(DAT_0017fb10 + 0x90);\n      if (lVar16 != 0) {\n        do {\n          uVar29 = uVar30;\n          if ((((*(uint *)(lVar16 + 0x20) & 1) != 0) &&\n              ((*(uint *)(lVar16 + 0x20) & 0x402) != 0x400)) && (*(long *)(lVar16 + 0x38) != 0)) {\n            uVar29 = uVar30 + 1;\n            plVar17[uVar30 * 2] = lVar16;\n            *(undefined4 *)(plVar17 + uVar30 * 2 + 1) = 0;\n          }\n          lVar16 = *(long *)(lVar16 + 0x10);\n          uVar30 = uVar29;\n        } while (lVar16 != 0);\n        if (1 < uVar29) {\n          qsort(plVar17,uVar29,0x10,FUN_00112320);\n          puVar21 = (undefined8 *)0x0;\n          plVar18 = plVar17;\n          uVar30 = 0;\n          uVar25 = 0;\n          do {\n            puVar27 = (undefined8 *)*plVar18;\n            puVar22 = puVar21;\n            uVar34 = uVar30;\n            uVar23 = uVar25;\n            if ((*(byte *)(puVar27 + 4) & 2) != 0) {\n              uVar34 = puVar27[6];\n              uVar23 = (uVar34 - 1) + ((ulong)puVar27[7] >> ((byte)DAT_0017f3c8 & 0x3f));\n              puVar22 = puVar27;\n              if ((puVar21 != (undefined8 *)0x0) && ((uVar34 <= uVar25 || (uVar25 < uVar30)))) {\n                uVar11 = *puVar21;\n                uVar14 = *puVar27;\n                uVar24 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);\n                FUN_001251f0(uVar24,uVar14,uVar34,uVar23,uVar11,uVar30,uVar25);\n                *(undefined4 *)(plVar18 + 1) = 1;\n              }\n            }\n            plVar18 = plVar18 + 2;\n            puVar21 = puVar22;\n            uVar30 = uVar34;\n            uVar25 = uVar23;\n          } while (plVar18 != plVar17 + uVar29 * 2);\n          qsort(plVar17,uVar29,0x10,FUN_00112350);\n          puVar21 = (undefined8 *)*plVar17;\n          uVar23 = 1;\n          uVar30 = puVar21[5];\n          uVar25 = uVar30;\n          do {\n            lVar16 = uVar23 * 2;\n            if (*(ulong *)(plVar17[lVar16] + 0x28) == uVar25) goto LAB_0011d4c4;\n            uVar23 = uVar23 + 1;\n            uVar25 = *(ulong *)(plVar17[lVar16] + 0x28);\n          } while (uVar23 != uVar29);\n          uVar23 = 0;\n          uVar25 = (uVar30 - 1) + ((ulong)puVar21[7] >> ((byte)DAT_0017f3c8 & 0x3f));\n          plVar18 = plVar17;\n          while( true ) {\n            uVar37 = uVar25;\n            uVar34 = uVar30;\n            puVar27 = puVar21;\n            plVar26 = plVar18 + 2;\n            uVar23 = uVar23 + 1;\n            if (uVar23 == uVar29) break;\n            puVar21 = (undefined8 *)*plVar26;\n            plVar3 = plVar18 + 3;\n            uVar30 = puVar21[5];\n            uVar25 = (uVar30 - 1) + ((ulong)puVar21[7] >> ((byte)DAT_0017f3c8 & 0x3f));\n            plVar18 = plVar26;\n            if (((int)*plVar3 == 0) && ((uVar30 <= uVar37 || (uVar37 < uVar34)))) {\n              uVar11 = *puVar27;\n              uVar14 = *puVar21;\n              uVar24 = dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",\n                                 5);\n              FUN_001251f0(uVar24,uVar14,uVar30,uVar25,uVar11,uVar34,uVar37);\n            }\n          }\nLAB_0011d4c4:\n          free(plVar17);\n          for (puVar27 = DAT_0017f398; puVar21 = DAT_0017f378, puVar27 != (undefined8 *)0x0;\n              puVar27 = (undefined8 *)puVar27[2]) {\n            if (*(int *)(puVar27 + 10) != 0) {\n              uVar11 = *puVar27;\n              lVar16 = puVar27[7] - (puVar27[5] + puVar27[4]);\n              uVar14 = dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",lVar16,5);\n              FUN_001251f0(uVar14,uVar11,lVar16);\n            }\n          }\n          goto joined_r0x0011ca92;\n        }\n      }\n      free(plVar17);\n      puVar21 = DAT_0017f378;\n    }\n  }" { (expression_statement "cVar8 = bfd_arch_bits_per_address(DAT_0017fb10);" (assignment_expression "cVar8 = bfd_arch_bits_per_address(DAT_0017fb10)" identifier = (call_expression "bfd_arch_bits_per_address(DAT_0017fb10)" identifier (argument_list "(DAT_0017fb10)" ( identifier )))) ;) (expression_statement "puVar21 = *(undefined8 **)(DAT_0017fb10 + 0x90);" (assignment_expression "puVar21 = *(undefined8 **)(DAT_0017fb10 + 0x90)" identifier = (pointer_expression "*(undefined8 **)(DAT_0017fb10 + 0x90)" * (cast_expression "(undefined8 **)(DAT_0017fb10 + 0x90)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(DAT_0017fb10 + 0x90)" ( (binary_expression "DAT_0017fb10 + 0x90" identifier + number_literal) ))))) ;) (expression_statement "uVar30 = (1L << (cVar8 - 1U & 0x3f)) * 2 - 1;" (assignment_expression "uVar30 = (1L << (cVar8 - 1U & 0x3f)) * 2 - 1" identifier = (binary_expression "(1L << (cVar8 - 1U & 0x3f)) * 2 - 1" (binary_expression "(1L << (cVar8 - 1U & 0x3f)) * 2" (parenthesized_expression "(1L << (cVar8 - 1U & 0x3f))" ( (binary_expression "1L << (cVar8 - 1U & 0x3f)" number_literal << (parenthesized_expression "(cVar8 - 1U & 0x3f)" ( (binary_expression "cVar8 - 1U & 0x3f" (binary_expression "cVar8 - 1U" identifier - number_literal) & number_literal) ))) )) * number_literal) - number_literal)) ;) (if_statement "if (puVar21 != (undefined8 *)0x0) {\n      do {\n        if ((*(byte *)(puVar21 + 4) & 1) != 0) {\n          uVar29 = puVar21[5] + puVar21[7] & uVar30;\n          if ((uVar29 == 0) || ((puVar21[5] & uVar30) <= uVar29)) {\n            uVar29 = puVar21[7] + puVar21[6] & uVar30;\n            if ((uVar29 == 0) || ((puVar21[6] & uVar30) <= uVar29)) goto LAB_0011d2f0;\n            uVar11 = *puVar21;\n            pcVar31 = "%X%P: section %s LMA wraps around address space\n";\n          }\n          else {\n            uVar11 = *puVar21;\n            pcVar31 = "%X%P: section %s VMA wraps around address space\n";\n          }\n          uVar14 = dcgettext(0,pcVar31,5);\n          FUN_001251f0(uVar14,uVar11);\n        }\nLAB_0011d2f0:\n        puVar21 = (undefined8 *)puVar21[2];\n      } while (puVar21 != (undefined8 *)0x0);\n    }" if (parenthesized_expression "(puVar21 != (undefined8 *)0x0)" ( (binary_expression "puVar21 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      do {\n        if ((*(byte *)(puVar21 + 4) & 1) != 0) {\n          uVar29 = puVar21[5] + puVar21[7] & uVar30;\n          if ((uVar29 == 0) || ((puVar21[5] & uVar30) <= uVar29)) {\n            uVar29 = puVar21[7] + puVar21[6] & uVar30;\n            if ((uVar29 == 0) || ((puVar21[6] & uVar30) <= uVar29)) goto LAB_0011d2f0;\n            uVar11 = *puVar21;\n            pcVar31 = "%X%P: section %s LMA wraps around address space\n";\n          }\n          else {\n            uVar11 = *puVar21;\n            pcVar31 = "%X%P: section %s VMA wraps around address space\n";\n          }\n          uVar14 = dcgettext(0,pcVar31,5);\n          FUN_001251f0(uVar14,uVar11);\n        }\nLAB_0011d2f0:\n        puVar21 = (undefined8 *)puVar21[2];\n      } while (puVar21 != (undefined8 *)0x0);\n    }" { (do_statement "do {\n        if ((*(byte *)(puVar21 + 4) & 1) != 0) {\n          uVar29 = puVar21[5] + puVar21[7] & uVar30;\n          if ((uVar29 == 0) || ((puVar21[5] & uVar30) <= uVar29)) {\n            uVar29 = puVar21[7] + puVar21[6] & uVar30;\n            if ((uVar29 == 0) || ((puVar21[6] & uVar30) <= uVar29)) goto LAB_0011d2f0;\n            uVar11 = *puVar21;\n            pcVar31 = "%X%P: section %s LMA wraps around address space\n";\n          }\n          else {\n            uVar11 = *puVar21;\n            pcVar31 = "%X%P: section %s VMA wraps around address space\n";\n          }\n          uVar14 = dcgettext(0,pcVar31,5);\n          FUN_001251f0(uVar14,uVar11);\n        }\nLAB_0011d2f0:\n        puVar21 = (undefined8 *)puVar21[2];\n      } while (puVar21 != (undefined8 *)0x0);" do (compound_statement "{\n        if ((*(byte *)(puVar21 + 4) & 1) != 0) {\n          uVar29 = puVar21[5] + puVar21[7] & uVar30;\n          if ((uVar29 == 0) || ((puVar21[5] & uVar30) <= uVar29)) {\n            uVar29 = puVar21[7] + puVar21[6] & uVar30;\n            if ((uVar29 == 0) || ((puVar21[6] & uVar30) <= uVar29)) goto LAB_0011d2f0;\n            uVar11 = *puVar21;\n            pcVar31 = "%X%P: section %s LMA wraps around address space\n";\n          }\n          else {\n            uVar11 = *puVar21;\n            pcVar31 = "%X%P: section %s VMA wraps around address space\n";\n          }\n          uVar14 = dcgettext(0,pcVar31,5);\n          FUN_001251f0(uVar14,uVar11);\n        }\nLAB_0011d2f0:\n        puVar21 = (undefined8 *)puVar21[2];\n      }" { (if_statement "if ((*(byte *)(puVar21 + 4) & 1) != 0) {\n          uVar29 = puVar21[5] + puVar21[7] & uVar30;\n          if ((uVar29 == 0) || ((puVar21[5] & uVar30) <= uVar29)) {\n            uVar29 = puVar21[7] + puVar21[6] & uVar30;\n            if ((uVar29 == 0) || ((puVar21[6] & uVar30) <= uVar29)) goto LAB_0011d2f0;\n            uVar11 = *puVar21;\n            pcVar31 = "%X%P: section %s LMA wraps around address space\n";\n          }\n          else {\n            uVar11 = *puVar21;\n            pcVar31 = "%X%P: section %s VMA wraps around address space\n";\n          }\n          uVar14 = dcgettext(0,pcVar31,5);\n          FUN_001251f0(uVar14,uVar11);\n        }" if (parenthesized_expression "((*(byte *)(puVar21 + 4) & 1) != 0)" ( (binary_expression "(*(byte *)(puVar21 + 4) & 1) != 0" (parenthesized_expression "(*(byte *)(puVar21 + 4) & 1)" ( (binary_expression "*(byte *)(puVar21 + 4) & 1" (pointer_expression "*(byte *)(puVar21 + 4)" * (cast_expression "(byte *)(puVar21 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + 4)" ( (binary_expression "puVar21 + 4" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n          uVar29 = puVar21[5] + puVar21[7] & uVar30;\n          if ((uVar29 == 0) || ((puVar21[5] & uVar30) <= uVar29)) {\n            uVar29 = puVar21[7] + puVar21[6] & uVar30;\n            if ((uVar29 == 0) || ((puVar21[6] & uVar30) <= uVar29)) goto LAB_0011d2f0;\n            uVar11 = *puVar21;\n            pcVar31 = "%X%P: section %s LMA wraps around address space\n";\n          }\n          else {\n            uVar11 = *puVar21;\n            pcVar31 = "%X%P: section %s VMA wraps around address space\n";\n          }\n          uVar14 = dcgettext(0,pcVar31,5);\n          FUN_001251f0(uVar14,uVar11);\n        }" { (expression_statement "uVar29 = puVar21[5] + puVar21[7] & uVar30;" (assignment_expression "uVar29 = puVar21[5] + puVar21[7] & uVar30" identifier = (binary_expression "puVar21[5] + puVar21[7] & uVar30" (binary_expression "puVar21[5] + puVar21[7]" (subscript_expression "puVar21[5]" identifier [ number_literal ]) + (subscript_expression "puVar21[7]" identifier [ number_literal ])) & identifier)) ;) (if_statement "if ((uVar29 == 0) || ((puVar21[5] & uVar30) <= uVar29)) {\n            uVar29 = puVar21[7] + puVar21[6] & uVar30;\n            if ((uVar29 == 0) || ((puVar21[6] & uVar30) <= uVar29)) goto LAB_0011d2f0;\n            uVar11 = *puVar21;\n            pcVar31 = "%X%P: section %s LMA wraps around address space\n";\n          }\n          else {\n            uVar11 = *puVar21;\n            pcVar31 = "%X%P: section %s VMA wraps around address space\n";\n          }" if (parenthesized_expression "((uVar29 == 0) || ((puVar21[5] & uVar30) <= uVar29))" ( (binary_expression "(uVar29 == 0) || ((puVar21[5] & uVar30) <= uVar29)" (parenthesized_expression "(uVar29 == 0)" ( (binary_expression "uVar29 == 0" identifier == number_literal) )) || (parenthesized_expression "((puVar21[5] & uVar30) <= uVar29)" ( (binary_expression "(puVar21[5] & uVar30) <= uVar29" (parenthesized_expression "(puVar21[5] & uVar30)" ( (binary_expression "puVar21[5] & uVar30" (subscript_expression "puVar21[5]" identifier [ number_literal ]) & identifier) )) <= identifier) ))) )) (compound_statement "{\n            uVar29 = puVar21[7] + puVar21[6] & uVar30;\n            if ((uVar29 == 0) || ((puVar21[6] & uVar30) <= uVar29)) goto LAB_0011d2f0;\n            uVar11 = *puVar21;\n            pcVar31 = "%X%P: section %s LMA wraps around address space\n";\n          }" { (expression_statement "uVar29 = puVar21[7] + puVar21[6] & uVar30;" (assignment_expression "uVar29 = puVar21[7] + puVar21[6] & uVar30" identifier = (binary_expression "puVar21[7] + puVar21[6] & uVar30" (binary_expression "puVar21[7] + puVar21[6]" (subscript_expression "puVar21[7]" identifier [ number_literal ]) + (subscript_expression "puVar21[6]" identifier [ number_literal ])) & identifier)) ;) (if_statement "if ((uVar29 == 0) || ((puVar21[6] & uVar30) <= uVar29)) goto LAB_0011d2f0;" if (parenthesized_expression "((uVar29 == 0) || ((puVar21[6] & uVar30) <= uVar29))" ( (binary_expression "(uVar29 == 0) || ((puVar21[6] & uVar30) <= uVar29)" (parenthesized_expression "(uVar29 == 0)" ( (binary_expression "uVar29 == 0" identifier == number_literal) )) || (parenthesized_expression "((puVar21[6] & uVar30) <= uVar29)" ( (binary_expression "(puVar21[6] & uVar30) <= uVar29" (parenthesized_expression "(puVar21[6] & uVar30)" ( (binary_expression "puVar21[6] & uVar30" (subscript_expression "puVar21[6]" identifier [ number_literal ]) & identifier) )) <= identifier) ))) )) (goto_statement "goto LAB_0011d2f0;" goto statement_identifier ;)) (expression_statement "uVar11 = *puVar21;" (assignment_expression "uVar11 = *puVar21" identifier = (pointer_expression "*puVar21" * identifier)) ;) (expression_statement "pcVar31 = "%X%P: section %s LMA wraps around address space\n";" (assignment_expression "pcVar31 = "%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            uVar11 = *puVar21;\n            pcVar31 = "%X%P: section %s VMA wraps around address space\n";\n          }" else (compound_statement "{\n            uVar11 = *puVar21;\n            pcVar31 = "%X%P: section %s VMA wraps around address space\n";\n          }" { (expression_statement "uVar11 = *puVar21;" (assignment_expression "uVar11 = *puVar21" identifier = (pointer_expression "*puVar21" * identifier)) ;) (expression_statement "pcVar31 = "%X%P: section %s VMA wraps around address space\n";" (assignment_expression "pcVar31 = "%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,pcVar31,5);" (assignment_expression "uVar14 = dcgettext(0,pcVar31,5)" identifier = (call_expression "dcgettext(0,pcVar31,5)" identifier (argument_list "(0,pcVar31,5)" ( number_literal , identifier , number_literal )))) ;) (expression_statement "FUN_001251f0(uVar14,uVar11);" (call_expression "FUN_001251f0(uVar14,uVar11)" identifier (argument_list "(uVar14,uVar11)" ( identifier , identifier ))) ;) })) (labeled_statement "LAB_0011d2f0:\n        puVar21 = (undefined8 *)puVar21[2];" statement_identifier : (expression_statement "puVar21 = (undefined8 *)puVar21[2];" (assignment_expression "puVar21 = (undefined8 *)puVar21[2]" identifier = (cast_expression "(undefined8 *)puVar21[2]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar21[2]" identifier [ number_literal ]))) ;)) }) while (parenthesized_expression "(puVar21 != (undefined8 *)0x0)" ( (binary_expression "puVar21 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) (expression_statement "puVar21 = DAT_0017f378;" (assignment_expression "puVar21 = DAT_0017f378" identifier = identifier) ;) (if_statement "if (1 < *(uint *)(DAT_0017fb10 + 0xa0)) {\n      uVar30 = 0;\n      plVar17 = (long *)xmalloc((ulong)*(uint *)(DAT_0017fb10 + 0xa0) << 4);\n      lVar16 = *(long *)(DAT_0017fb10 + 0x90);\n      if (lVar16 != 0) {\n        do {\n          uVar29 = uVar30;\n          if ((((*(uint *)(lVar16 + 0x20) & 1) != 0) &&\n              ((*(uint *)(lVar16 + 0x20) & 0x402) != 0x400)) && (*(long *)(lVar16 + 0x38) != 0)) {\n            uVar29 = uVar30 + 1;\n            plVar17[uVar30 * 2] = lVar16;\n            *(undefined4 *)(plVar17 + uVar30 * 2 + 1) = 0;\n          }\n          lVar16 = *(long *)(lVar16 + 0x10);\n          uVar30 = uVar29;\n        } while (lVar16 != 0);\n        if (1 < uVar29) {\n          qsort(plVar17,uVar29,0x10,FUN_00112320);\n          puVar21 = (undefined8 *)0x0;\n          plVar18 = plVar17;\n          uVar30 = 0;\n          uVar25 = 0;\n          do {\n            puVar27 = (undefined8 *)*plVar18;\n            puVar22 = puVar21;\n            uVar34 = uVar30;\n            uVar23 = uVar25;\n            if ((*(byte *)(puVar27 + 4) & 2) != 0) {\n              uVar34 = puVar27[6];\n              uVar23 = (uVar34 - 1) + ((ulong)puVar27[7] >> ((byte)DAT_0017f3c8 & 0x3f));\n              puVar22 = puVar27;\n              if ((puVar21 != (undefined8 *)0x0) && ((uVar34 <= uVar25 || (uVar25 < uVar30)))) {\n                uVar11 = *puVar21;\n                uVar14 = *puVar27;\n                uVar24 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);\n                FUN_001251f0(uVar24,uVar14,uVar34,uVar23,uVar11,uVar30,uVar25);\n                *(undefined4 *)(plVar18 + 1) = 1;\n              }\n            }\n            plVar18 = plVar18 + 2;\n            puVar21 = puVar22;\n            uVar30 = uVar34;\n            uVar25 = uVar23;\n          } while (plVar18 != plVar17 + uVar29 * 2);\n          qsort(plVar17,uVar29,0x10,FUN_00112350);\n          puVar21 = (undefined8 *)*plVar17;\n          uVar23 = 1;\n          uVar30 = puVar21[5];\n          uVar25 = uVar30;\n          do {\n            lVar16 = uVar23 * 2;\n            if (*(ulong *)(plVar17[lVar16] + 0x28) == uVar25) goto LAB_0011d4c4;\n            uVar23 = uVar23 + 1;\n            uVar25 = *(ulong *)(plVar17[lVar16] + 0x28);\n          } while (uVar23 != uVar29);\n          uVar23 = 0;\n          uVar25 = (uVar30 - 1) + ((ulong)puVar21[7] >> ((byte)DAT_0017f3c8 & 0x3f));\n          plVar18 = plVar17;\n          while( true ) {\n            uVar37 = uVar25;\n            uVar34 = uVar30;\n            puVar27 = puVar21;\n            plVar26 = plVar18 + 2;\n            uVar23 = uVar23 + 1;\n            if (uVar23 == uVar29) break;\n            puVar21 = (undefined8 *)*plVar26;\n            plVar3 = plVar18 + 3;\n            uVar30 = puVar21[5];\n            uVar25 = (uVar30 - 1) + ((ulong)puVar21[7] >> ((byte)DAT_0017f3c8 & 0x3f));\n            plVar18 = plVar26;\n            if (((int)*plVar3 == 0) && ((uVar30 <= uVar37 || (uVar37 < uVar34)))) {\n              uVar11 = *puVar27;\n              uVar14 = *puVar21;\n              uVar24 = dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",\n                                 5);\n              FUN_001251f0(uVar24,uVar14,uVar30,uVar25,uVar11,uVar34,uVar37);\n            }\n          }\nLAB_0011d4c4:\n          free(plVar17);\n          for (puVar27 = DAT_0017f398; puVar21 = DAT_0017f378, puVar27 != (undefined8 *)0x0;\n              puVar27 = (undefined8 *)puVar27[2]) {\n            if (*(int *)(puVar27 + 10) != 0) {\n              uVar11 = *puVar27;\n              lVar16 = puVar27[7] - (puVar27[5] + puVar27[4]);\n              uVar14 = dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",lVar16,5);\n              FUN_001251f0(uVar14,uVar11,lVar16);\n            }\n          }\n          goto joined_r0x0011ca92;\n        }\n      }\n      free(plVar17);\n      puVar21 = DAT_0017f378;\n    }" if (parenthesized_expression "(1 < *(uint *)(DAT_0017fb10 + 0xa0))" ( (binary_expression "1 < *(uint *)(DAT_0017fb10 + 0xa0)" number_literal < (pointer_expression "*(uint *)(DAT_0017fb10 + 0xa0)" * (cast_expression "(uint *)(DAT_0017fb10 + 0xa0)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0017fb10 + 0xa0)" ( (binary_expression "DAT_0017fb10 + 0xa0" identifier + number_literal) ))))) )) (compound_statement "{\n      uVar30 = 0;\n      plVar17 = (long *)xmalloc((ulong)*(uint *)(DAT_0017fb10 + 0xa0) << 4);\n      lVar16 = *(long *)(DAT_0017fb10 + 0x90);\n      if (lVar16 != 0) {\n        do {\n          uVar29 = uVar30;\n          if ((((*(uint *)(lVar16 + 0x20) & 1) != 0) &&\n              ((*(uint *)(lVar16 + 0x20) & 0x402) != 0x400)) && (*(long *)(lVar16 + 0x38) != 0)) {\n            uVar29 = uVar30 + 1;\n            plVar17[uVar30 * 2] = lVar16;\n            *(undefined4 *)(plVar17 + uVar30 * 2 + 1) = 0;\n          }\n          lVar16 = *(long *)(lVar16 + 0x10);\n          uVar30 = uVar29;\n        } while (lVar16 != 0);\n        if (1 < uVar29) {\n          qsort(plVar17,uVar29,0x10,FUN_00112320);\n          puVar21 = (undefined8 *)0x0;\n          plVar18 = plVar17;\n          uVar30 = 0;\n          uVar25 = 0;\n          do {\n            puVar27 = (undefined8 *)*plVar18;\n            puVar22 = puVar21;\n            uVar34 = uVar30;\n            uVar23 = uVar25;\n            if ((*(byte *)(puVar27 + 4) & 2) != 0) {\n              uVar34 = puVar27[6];\n              uVar23 = (uVar34 - 1) + ((ulong)puVar27[7] >> ((byte)DAT_0017f3c8 & 0x3f));\n              puVar22 = puVar27;\n              if ((puVar21 != (undefined8 *)0x0) && ((uVar34 <= uVar25 || (uVar25 < uVar30)))) {\n                uVar11 = *puVar21;\n                uVar14 = *puVar27;\n                uVar24 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);\n                FUN_001251f0(uVar24,uVar14,uVar34,uVar23,uVar11,uVar30,uVar25);\n                *(undefined4 *)(plVar18 + 1) = 1;\n              }\n            }\n            plVar18 = plVar18 + 2;\n            puVar21 = puVar22;\n            uVar30 = uVar34;\n            uVar25 = uVar23;\n          } while (plVar18 != plVar17 + uVar29 * 2);\n          qsort(plVar17,uVar29,0x10,FUN_00112350);\n          puVar21 = (undefined8 *)*plVar17;\n          uVar23 = 1;\n          uVar30 = puVar21[5];\n          uVar25 = uVar30;\n          do {\n            lVar16 = uVar23 * 2;\n            if (*(ulong *)(plVar17[lVar16] + 0x28) == uVar25) goto LAB_0011d4c4;\n            uVar23 = uVar23 + 1;\n            uVar25 = *(ulong *)(plVar17[lVar16] + 0x28);\n          } while (uVar23 != uVar29);\n          uVar23 = 0;\n          uVar25 = (uVar30 - 1) + ((ulong)puVar21[7] >> ((byte)DAT_0017f3c8 & 0x3f));\n          plVar18 = plVar17;\n          while( true ) {\n            uVar37 = uVar25;\n            uVar34 = uVar30;\n            puVar27 = puVar21;\n            plVar26 = plVar18 + 2;\n            uVar23 = uVar23 + 1;\n            if (uVar23 == uVar29) break;\n            puVar21 = (undefined8 *)*plVar26;\n            plVar3 = plVar18 + 3;\n            uVar30 = puVar21[5];\n            uVar25 = (uVar30 - 1) + ((ulong)puVar21[7] >> ((byte)DAT_0017f3c8 & 0x3f));\n            plVar18 = plVar26;\n            if (((int)*plVar3 == 0) && ((uVar30 <= uVar37 || (uVar37 < uVar34)))) {\n              uVar11 = *puVar27;\n              uVar14 = *puVar21;\n              uVar24 = dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",\n                                 5);\n              FUN_001251f0(uVar24,uVar14,uVar30,uVar25,uVar11,uVar34,uVar37);\n            }\n          }\nLAB_0011d4c4:\n          free(plVar17);\n          for (puVar27 = DAT_0017f398; puVar21 = DAT_0017f378, puVar27 != (undefined8 *)0x0;\n              puVar27 = (undefined8 *)puVar27[2]) {\n            if (*(int *)(puVar27 + 10) != 0) {\n              uVar11 = *puVar27;\n              lVar16 = puVar27[7] - (puVar27[5] + puVar27[4]);\n              uVar14 = dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",lVar16,5);\n              FUN_001251f0(uVar14,uVar11,lVar16);\n            }\n          }\n          goto joined_r0x0011ca92;\n        }\n      }\n      free(plVar17);\n      puVar21 = DAT_0017f378;\n    }" { (expression_statement "uVar30 = 0;" (assignment_expression "uVar30 = 0" identifier = number_literal) ;) (expression_statement "plVar17 = (long *)xmalloc((ulong)*(uint *)(DAT_0017fb10 + 0xa0) << 4);" (assignment_expression "plVar17 = (long *)xmalloc((ulong)*(uint *)(DAT_0017fb10 + 0xa0) << 4)" identifier = (cast_expression "(long *)xmalloc((ulong)*(uint *)(DAT_0017fb10 + 0xa0) << 4)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc((ulong)*(uint *)(DAT_0017fb10 + 0xa0) << 4)" identifier (argument_list "((ulong)*(uint *)(DAT_0017fb10 + 0xa0) << 4)" ( (binary_expression "(ulong)*(uint *)(DAT_0017fb10 + 0xa0) << 4" (binary_expression "(ulong)*(uint *)(DAT_0017fb10 + 0xa0)" (parenthesized_expression "(ulong)" ( identifier )) * (cast_expression "(uint *)(DAT_0017fb10 + 0xa0)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0017fb10 + 0xa0)" ( (binary_expression "DAT_0017fb10 + 0xa0" identifier + number_literal) )))) << number_literal) ))))) ;) (expression_statement "lVar16 = *(long *)(DAT_0017fb10 + 0x90);" (assignment_expression "lVar16 = *(long *)(DAT_0017fb10 + 0x90)" identifier = (pointer_expression "*(long *)(DAT_0017fb10 + 0x90)" * (cast_expression "(long *)(DAT_0017fb10 + 0x90)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0017fb10 + 0x90)" ( (binary_expression "DAT_0017fb10 + 0x90" identifier + number_literal) ))))) ;) (if_statement "if (lVar16 != 0) {\n        do {\n          uVar29 = uVar30;\n          if ((((*(uint *)(lVar16 + 0x20) & 1) != 0) &&\n              ((*(uint *)(lVar16 + 0x20) & 0x402) != 0x400)) && (*(long *)(lVar16 + 0x38) != 0)) {\n            uVar29 = uVar30 + 1;\n            plVar17[uVar30 * 2] = lVar16;\n            *(undefined4 *)(plVar17 + uVar30 * 2 + 1) = 0;\n          }\n          lVar16 = *(long *)(lVar16 + 0x10);\n          uVar30 = uVar29;\n        } while (lVar16 != 0);\n        if (1 < uVar29) {\n          qsort(plVar17,uVar29,0x10,FUN_00112320);\n          puVar21 = (undefined8 *)0x0;\n          plVar18 = plVar17;\n          uVar30 = 0;\n          uVar25 = 0;\n          do {\n            puVar27 = (undefined8 *)*plVar18;\n            puVar22 = puVar21;\n            uVar34 = uVar30;\n            uVar23 = uVar25;\n            if ((*(byte *)(puVar27 + 4) & 2) != 0) {\n              uVar34 = puVar27[6];\n              uVar23 = (uVar34 - 1) + ((ulong)puVar27[7] >> ((byte)DAT_0017f3c8 & 0x3f));\n              puVar22 = puVar27;\n              if ((puVar21 != (undefined8 *)0x0) && ((uVar34 <= uVar25 || (uVar25 < uVar30)))) {\n                uVar11 = *puVar21;\n                uVar14 = *puVar27;\n                uVar24 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);\n                FUN_001251f0(uVar24,uVar14,uVar34,uVar23,uVar11,uVar30,uVar25);\n                *(undefined4 *)(plVar18 + 1) = 1;\n              }\n            }\n            plVar18 = plVar18 + 2;\n            puVar21 = puVar22;\n            uVar30 = uVar34;\n            uVar25 = uVar23;\n          } while (plVar18 != plVar17 + uVar29 * 2);\n          qsort(plVar17,uVar29,0x10,FUN_00112350);\n          puVar21 = (undefined8 *)*plVar17;\n          uVar23 = 1;\n          uVar30 = puVar21[5];\n          uVar25 = uVar30;\n          do {\n            lVar16 = uVar23 * 2;\n            if (*(ulong *)(plVar17[lVar16] + 0x28) == uVar25) goto LAB_0011d4c4;\n            uVar23 = uVar23 + 1;\n            uVar25 = *(ulong *)(plVar17[lVar16] + 0x28);\n          } while (uVar23 != uVar29);\n          uVar23 = 0;\n          uVar25 = (uVar30 - 1) + ((ulong)puVar21[7] >> ((byte)DAT_0017f3c8 & 0x3f));\n          plVar18 = plVar17;\n          while( true ) {\n            uVar37 = uVar25;\n            uVar34 = uVar30;\n            puVar27 = puVar21;\n            plVar26 = plVar18 + 2;\n            uVar23 = uVar23 + 1;\n            if (uVar23 == uVar29) break;\n            puVar21 = (undefined8 *)*plVar26;\n            plVar3 = plVar18 + 3;\n            uVar30 = puVar21[5];\n            uVar25 = (uVar30 - 1) + ((ulong)puVar21[7] >> ((byte)DAT_0017f3c8 & 0x3f));\n            plVar18 = plVar26;\n            if (((int)*plVar3 == 0) && ((uVar30 <= uVar37 || (uVar37 < uVar34)))) {\n              uVar11 = *puVar27;\n              uVar14 = *puVar21;\n              uVar24 = dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",\n                                 5);\n              FUN_001251f0(uVar24,uVar14,uVar30,uVar25,uVar11,uVar34,uVar37);\n            }\n          }\nLAB_0011d4c4:\n          free(plVar17);\n          for (puVar27 = DAT_0017f398; puVar21 = DAT_0017f378, puVar27 != (undefined8 *)0x0;\n              puVar27 = (undefined8 *)puVar27[2]) {\n            if (*(int *)(puVar27 + 10) != 0) {\n              uVar11 = *puVar27;\n              lVar16 = puVar27[7] - (puVar27[5] + puVar27[4]);\n              uVar14 = dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",lVar16,5);\n              FUN_001251f0(uVar14,uVar11,lVar16);\n            }\n          }\n          goto joined_r0x0011ca92;\n        }\n      }" if (parenthesized_expression "(lVar16 != 0)" ( (binary_expression "lVar16 != 0" identifier != number_literal) )) (compound_statement "{\n        do {\n          uVar29 = uVar30;\n          if ((((*(uint *)(lVar16 + 0x20) & 1) != 0) &&\n              ((*(uint *)(lVar16 + 0x20) & 0x402) != 0x400)) && (*(long *)(lVar16 + 0x38) != 0)) {\n            uVar29 = uVar30 + 1;\n            plVar17[uVar30 * 2] = lVar16;\n            *(undefined4 *)(plVar17 + uVar30 * 2 + 1) = 0;\n          }\n          lVar16 = *(long *)(lVar16 + 0x10);\n          uVar30 = uVar29;\n        } while (lVar16 != 0);\n        if (1 < uVar29) {\n          qsort(plVar17,uVar29,0x10,FUN_00112320);\n          puVar21 = (undefined8 *)0x0;\n          plVar18 = plVar17;\n          uVar30 = 0;\n          uVar25 = 0;\n          do {\n            puVar27 = (undefined8 *)*plVar18;\n            puVar22 = puVar21;\n            uVar34 = uVar30;\n            uVar23 = uVar25;\n            if ((*(byte *)(puVar27 + 4) & 2) != 0) {\n              uVar34 = puVar27[6];\n              uVar23 = (uVar34 - 1) + ((ulong)puVar27[7] >> ((byte)DAT_0017f3c8 & 0x3f));\n              puVar22 = puVar27;\n              if ((puVar21 != (undefined8 *)0x0) && ((uVar34 <= uVar25 || (uVar25 < uVar30)))) {\n                uVar11 = *puVar21;\n                uVar14 = *puVar27;\n                uVar24 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);\n                FUN_001251f0(uVar24,uVar14,uVar34,uVar23,uVar11,uVar30,uVar25);\n                *(undefined4 *)(plVar18 + 1) = 1;\n              }\n            }\n            plVar18 = plVar18 + 2;\n            puVar21 = puVar22;\n            uVar30 = uVar34;\n            uVar25 = uVar23;\n          } while (plVar18 != plVar17 + uVar29 * 2);\n          qsort(plVar17,uVar29,0x10,FUN_00112350);\n          puVar21 = (undefined8 *)*plVar17;\n          uVar23 = 1;\n          uVar30 = puVar21[5];\n          uVar25 = uVar30;\n          do {\n            lVar16 = uVar23 * 2;\n            if (*(ulong *)(plVar17[lVar16] + 0x28) == uVar25) goto LAB_0011d4c4;\n            uVar23 = uVar23 + 1;\n            uVar25 = *(ulong *)(plVar17[lVar16] + 0x28);\n          } while (uVar23 != uVar29);\n          uVar23 = 0;\n          uVar25 = (uVar30 - 1) + ((ulong)puVar21[7] >> ((byte)DAT_0017f3c8 & 0x3f));\n          plVar18 = plVar17;\n          while( true ) {\n            uVar37 = uVar25;\n            uVar34 = uVar30;\n            puVar27 = puVar21;\n            plVar26 = plVar18 + 2;\n            uVar23 = uVar23 + 1;\n            if (uVar23 == uVar29) break;\n            puVar21 = (undefined8 *)*plVar26;\n            plVar3 = plVar18 + 3;\n            uVar30 = puVar21[5];\n            uVar25 = (uVar30 - 1) + ((ulong)puVar21[7] >> ((byte)DAT_0017f3c8 & 0x3f));\n            plVar18 = plVar26;\n            if (((int)*plVar3 == 0) && ((uVar30 <= uVar37 || (uVar37 < uVar34)))) {\n              uVar11 = *puVar27;\n              uVar14 = *puVar21;\n              uVar24 = dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",\n                                 5);\n              FUN_001251f0(uVar24,uVar14,uVar30,uVar25,uVar11,uVar34,uVar37);\n            }\n          }\nLAB_0011d4c4:\n          free(plVar17);\n          for (puVar27 = DAT_0017f398; puVar21 = DAT_0017f378, puVar27 != (undefined8 *)0x0;\n              puVar27 = (undefined8 *)puVar27[2]) {\n            if (*(int *)(puVar27 + 10) != 0) {\n              uVar11 = *puVar27;\n              lVar16 = puVar27[7] - (puVar27[5] + puVar27[4]);\n              uVar14 = dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",lVar16,5);\n              FUN_001251f0(uVar14,uVar11,lVar16);\n            }\n          }\n          goto joined_r0x0011ca92;\n        }\n      }" { (do_statement "do {\n          uVar29 = uVar30;\n          if ((((*(uint *)(lVar16 + 0x20) & 1) != 0) &&\n              ((*(uint *)(lVar16 + 0x20) & 0x402) != 0x400)) && (*(long *)(lVar16 + 0x38) != 0)) {\n            uVar29 = uVar30 + 1;\n            plVar17[uVar30 * 2] = lVar16;\n            *(undefined4 *)(plVar17 + uVar30 * 2 + 1) = 0;\n          }\n          lVar16 = *(long *)(lVar16 + 0x10);\n          uVar30 = uVar29;\n        } while (lVar16 != 0);" do (compound_statement "{\n          uVar29 = uVar30;\n          if ((((*(uint *)(lVar16 + 0x20) & 1) != 0) &&\n              ((*(uint *)(lVar16 + 0x20) & 0x402) != 0x400)) && (*(long *)(lVar16 + 0x38) != 0)) {\n            uVar29 = uVar30 + 1;\n            plVar17[uVar30 * 2] = lVar16;\n            *(undefined4 *)(plVar17 + uVar30 * 2 + 1) = 0;\n          }\n          lVar16 = *(long *)(lVar16 + 0x10);\n          uVar30 = uVar29;\n        }" { (expression_statement "uVar29 = uVar30;" (assignment_expression "uVar29 = uVar30" identifier = identifier) ;) (if_statement "if ((((*(uint *)(lVar16 + 0x20) & 1) != 0) &&\n              ((*(uint *)(lVar16 + 0x20) & 0x402) != 0x400)) && (*(long *)(lVar16 + 0x38) != 0)) {\n            uVar29 = uVar30 + 1;\n            plVar17[uVar30 * 2] = lVar16;\n            *(undefined4 *)(plVar17 + uVar30 * 2 + 1) = 0;\n          }" if (parenthesized_expression "((((*(uint *)(lVar16 + 0x20) & 1) != 0) &&\n              ((*(uint *)(lVar16 + 0x20) & 0x402) != 0x400)) && (*(long *)(lVar16 + 0x38) != 0))" ( (binary_expression "(((*(uint *)(lVar16 + 0x20) & 1) != 0) &&\n              ((*(uint *)(lVar16 + 0x20) & 0x402) != 0x400)) && (*(long *)(lVar16 + 0x38) != 0)" (parenthesized_expression "(((*(uint *)(lVar16 + 0x20) & 1) != 0) &&\n              ((*(uint *)(lVar16 + 0x20) & 0x402) != 0x400))" ( (binary_expression "((*(uint *)(lVar16 + 0x20) & 1) != 0) &&\n              ((*(uint *)(lVar16 + 0x20) & 0x402) != 0x400)" (parenthesized_expression "((*(uint *)(lVar16 + 0x20) & 1) != 0)" ( (binary_expression "(*(uint *)(lVar16 + 0x20) & 1) != 0" (parenthesized_expression "(*(uint *)(lVar16 + 0x20) & 1)" ( (binary_expression "*(uint *)(lVar16 + 0x20) & 1" (pointer_expression "*(uint *)(lVar16 + 0x20)" * (cast_expression "(uint *)(lVar16 + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar16 + 0x20)" ( (binary_expression "lVar16 + 0x20" identifier + number_literal) )))) & number_literal) )) != number_literal) )) && (parenthesized_expression "((*(uint *)(lVar16 + 0x20) & 0x402) != 0x400)" ( (binary_expression "(*(uint *)(lVar16 + 0x20) & 0x402) != 0x400" (parenthesized_expression "(*(uint *)(lVar16 + 0x20) & 0x402)" ( (binary_expression "*(uint *)(lVar16 + 0x20) & 0x402" (pointer_expression "*(uint *)(lVar16 + 0x20)" * (cast_expression "(uint *)(lVar16 + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar16 + 0x20)" ( (binary_expression "lVar16 + 0x20" identifier + number_literal) )))) & number_literal) )) != number_literal) ))) )) && (parenthesized_expression "(*(long *)(lVar16 + 0x38) != 0)" ( (binary_expression "*(long *)(lVar16 + 0x38) != 0" (pointer_expression "*(long *)(lVar16 + 0x38)" * (cast_expression "(long *)(lVar16 + 0x38)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar16 + 0x38)" ( (binary_expression "lVar16 + 0x38" identifier + number_literal) )))) != number_literal) ))) )) (compound_statement "{\n            uVar29 = uVar30 + 1;\n            plVar17[uVar30 * 2] = lVar16;\n            *(undefined4 *)(plVar17 + uVar30 * 2 + 1) = 0;\n          }" { (expression_statement "uVar29 = uVar30 + 1;" (assignment_expression "uVar29 = uVar30 + 1" identifier = (binary_expression "uVar30 + 1" identifier + number_literal)) ;) (expression_statement "plVar17[uVar30 * 2] = lVar16;" (assignment_expression "plVar17[uVar30 * 2] = lVar16" (subscript_expression "plVar17[uVar30 * 2]" identifier [ (binary_expression "uVar30 * 2" identifier * number_literal) ]) = identifier) ;) (expression_statement "*(undefined4 *)(plVar17 + uVar30 * 2 + 1) = 0;" (assignment_expression "*(undefined4 *)(plVar17 + uVar30 * 2 + 1) = 0" (pointer_expression "*(undefined4 *)(plVar17 + uVar30 * 2 + 1)" * (cast_expression "(undefined4 *)(plVar17 + uVar30 * 2 + 1)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar17 + uVar30 * 2 + 1)" ( (binary_expression "plVar17 + uVar30 * 2 + 1" (binary_expression "plVar17 + uVar30 * 2" identifier + (binary_expression "uVar30 * 2" identifier * number_literal)) + number_literal) )))) = number_literal) ;) })) (expression_statement "lVar16 = *(long *)(lVar16 + 0x10);" (assignment_expression "lVar16 = *(long *)(lVar16 + 0x10)" identifier = (pointer_expression "*(long *)(lVar16 + 0x10)" * (cast_expression "(long *)(lVar16 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar16 + 0x10)" ( (binary_expression "lVar16 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "uVar30 = uVar29;" (assignment_expression "uVar30 = uVar29" identifier = identifier) ;) }) while (parenthesized_expression "(lVar16 != 0)" ( (binary_expression "lVar16 != 0" identifier != number_literal) )) ;) (if_statement "if (1 < uVar29) {\n          qsort(plVar17,uVar29,0x10,FUN_00112320);\n          puVar21 = (undefined8 *)0x0;\n          plVar18 = plVar17;\n          uVar30 = 0;\n          uVar25 = 0;\n          do {\n            puVar27 = (undefined8 *)*plVar18;\n            puVar22 = puVar21;\n            uVar34 = uVar30;\n            uVar23 = uVar25;\n            if ((*(byte *)(puVar27 + 4) & 2) != 0) {\n              uVar34 = puVar27[6];\n              uVar23 = (uVar34 - 1) + ((ulong)puVar27[7] >> ((byte)DAT_0017f3c8 & 0x3f));\n              puVar22 = puVar27;\n              if ((puVar21 != (undefined8 *)0x0) && ((uVar34 <= uVar25 || (uVar25 < uVar30)))) {\n                uVar11 = *puVar21;\n                uVar14 = *puVar27;\n                uVar24 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);\n                FUN_001251f0(uVar24,uVar14,uVar34,uVar23,uVar11,uVar30,uVar25);\n                *(undefined4 *)(plVar18 + 1) = 1;\n              }\n            }\n            plVar18 = plVar18 + 2;\n            puVar21 = puVar22;\n            uVar30 = uVar34;\n            uVar25 = uVar23;\n          } while (plVar18 != plVar17 + uVar29 * 2);\n          qsort(plVar17,uVar29,0x10,FUN_00112350);\n          puVar21 = (undefined8 *)*plVar17;\n          uVar23 = 1;\n          uVar30 = puVar21[5];\n          uVar25 = uVar30;\n          do {\n            lVar16 = uVar23 * 2;\n            if (*(ulong *)(plVar17[lVar16] + 0x28) == uVar25) goto LAB_0011d4c4;\n            uVar23 = uVar23 + 1;\n            uVar25 = *(ulong *)(plVar17[lVar16] + 0x28);\n          } while (uVar23 != uVar29);\n          uVar23 = 0;\n          uVar25 = (uVar30 - 1) + ((ulong)puVar21[7] >> ((byte)DAT_0017f3c8 & 0x3f));\n          plVar18 = plVar17;\n          while( true ) {\n            uVar37 = uVar25;\n            uVar34 = uVar30;\n            puVar27 = puVar21;\n            plVar26 = plVar18 + 2;\n            uVar23 = uVar23 + 1;\n            if (uVar23 == uVar29) break;\n            puVar21 = (undefined8 *)*plVar26;\n            plVar3 = plVar18 + 3;\n            uVar30 = puVar21[5];\n            uVar25 = (uVar30 - 1) + ((ulong)puVar21[7] >> ((byte)DAT_0017f3c8 & 0x3f));\n            plVar18 = plVar26;\n            if (((int)*plVar3 == 0) && ((uVar30 <= uVar37 || (uVar37 < uVar34)))) {\n              uVar11 = *puVar27;\n              uVar14 = *puVar21;\n              uVar24 = dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",\n                                 5);\n              FUN_001251f0(uVar24,uVar14,uVar30,uVar25,uVar11,uVar34,uVar37);\n            }\n          }\nLAB_0011d4c4:\n          free(plVar17);\n          for (puVar27 = DAT_0017f398; puVar21 = DAT_0017f378, puVar27 != (undefined8 *)0x0;\n              puVar27 = (undefined8 *)puVar27[2]) {\n            if (*(int *)(puVar27 + 10) != 0) {\n              uVar11 = *puVar27;\n              lVar16 = puVar27[7] - (puVar27[5] + puVar27[4]);\n              uVar14 = dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",lVar16,5);\n              FUN_001251f0(uVar14,uVar11,lVar16);\n            }\n          }\n          goto joined_r0x0011ca92;\n        }" if (parenthesized_expression "(1 < uVar29)" ( (binary_expression "1 < uVar29" number_literal < identifier) )) (compound_statement "{\n          qsort(plVar17,uVar29,0x10,FUN_00112320);\n          puVar21 = (undefined8 *)0x0;\n          plVar18 = plVar17;\n          uVar30 = 0;\n          uVar25 = 0;\n          do {\n            puVar27 = (undefined8 *)*plVar18;\n            puVar22 = puVar21;\n            uVar34 = uVar30;\n            uVar23 = uVar25;\n            if ((*(byte *)(puVar27 + 4) & 2) != 0) {\n              uVar34 = puVar27[6];\n              uVar23 = (uVar34 - 1) + ((ulong)puVar27[7] >> ((byte)DAT_0017f3c8 & 0x3f));\n              puVar22 = puVar27;\n              if ((puVar21 != (undefined8 *)0x0) && ((uVar34 <= uVar25 || (uVar25 < uVar30)))) {\n                uVar11 = *puVar21;\n                uVar14 = *puVar27;\n                uVar24 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);\n                FUN_001251f0(uVar24,uVar14,uVar34,uVar23,uVar11,uVar30,uVar25);\n                *(undefined4 *)(plVar18 + 1) = 1;\n              }\n            }\n            plVar18 = plVar18 + 2;\n            puVar21 = puVar22;\n            uVar30 = uVar34;\n            uVar25 = uVar23;\n          } while (plVar18 != plVar17 + uVar29 * 2);\n          qsort(plVar17,uVar29,0x10,FUN_00112350);\n          puVar21 = (undefined8 *)*plVar17;\n          uVar23 = 1;\n          uVar30 = puVar21[5];\n          uVar25 = uVar30;\n          do {\n            lVar16 = uVar23 * 2;\n            if (*(ulong *)(plVar17[lVar16] + 0x28) == uVar25) goto LAB_0011d4c4;\n            uVar23 = uVar23 + 1;\n            uVar25 = *(ulong *)(plVar17[lVar16] + 0x28);\n          } while (uVar23 != uVar29);\n          uVar23 = 0;\n          uVar25 = (uVar30 - 1) + ((ulong)puVar21[7] >> ((byte)DAT_0017f3c8 & 0x3f));\n          plVar18 = plVar17;\n          while( true ) {\n            uVar37 = uVar25;\n            uVar34 = uVar30;\n            puVar27 = puVar21;\n            plVar26 = plVar18 + 2;\n            uVar23 = uVar23 + 1;\n            if (uVar23 == uVar29) break;\n            puVar21 = (undefined8 *)*plVar26;\n            plVar3 = plVar18 + 3;\n            uVar30 = puVar21[5];\n            uVar25 = (uVar30 - 1) + ((ulong)puVar21[7] >> ((byte)DAT_0017f3c8 & 0x3f));\n            plVar18 = plVar26;\n            if (((int)*plVar3 == 0) && ((uVar30 <= uVar37 || (uVar37 < uVar34)))) {\n              uVar11 = *puVar27;\n              uVar14 = *puVar21;\n              uVar24 = dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",\n                                 5);\n              FUN_001251f0(uVar24,uVar14,uVar30,uVar25,uVar11,uVar34,uVar37);\n            }\n          }\nLAB_0011d4c4:\n          free(plVar17);\n          for (puVar27 = DAT_0017f398; puVar21 = DAT_0017f378, puVar27 != (undefined8 *)0x0;\n              puVar27 = (undefined8 *)puVar27[2]) {\n            if (*(int *)(puVar27 + 10) != 0) {\n              uVar11 = *puVar27;\n              lVar16 = puVar27[7] - (puVar27[5] + puVar27[4]);\n              uVar14 = dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",lVar16,5);\n              FUN_001251f0(uVar14,uVar11,lVar16);\n            }\n          }\n          goto joined_r0x0011ca92;\n        }" { (expression_statement "qsort(plVar17,uVar29,0x10,FUN_00112320);" (call_expression "qsort(plVar17,uVar29,0x10,FUN_00112320)" identifier (argument_list "(plVar17,uVar29,0x10,FUN_00112320)" ( identifier , identifier , number_literal , identifier ))) ;) (expression_statement "puVar21 = (undefined8 *)0x0;" (assignment_expression "puVar21 = (undefined8 *)0x0" identifier = (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "plVar18 = plVar17;" (assignment_expression "plVar18 = plVar17" identifier = identifier) ;) (expression_statement "uVar30 = 0;" (assignment_expression "uVar30 = 0" identifier = number_literal) ;) (expression_statement "uVar25 = 0;" (assignment_expression "uVar25 = 0" identifier = number_literal) ;) (do_statement "do {\n            puVar27 = (undefined8 *)*plVar18;\n            puVar22 = puVar21;\n            uVar34 = uVar30;\n            uVar23 = uVar25;\n            if ((*(byte *)(puVar27 + 4) & 2) != 0) {\n              uVar34 = puVar27[6];\n              uVar23 = (uVar34 - 1) + ((ulong)puVar27[7] >> ((byte)DAT_0017f3c8 & 0x3f));\n              puVar22 = puVar27;\n              if ((puVar21 != (undefined8 *)0x0) && ((uVar34 <= uVar25 || (uVar25 < uVar30)))) {\n                uVar11 = *puVar21;\n                uVar14 = *puVar27;\n                uVar24 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);\n                FUN_001251f0(uVar24,uVar14,uVar34,uVar23,uVar11,uVar30,uVar25);\n                *(undefined4 *)(plVar18 + 1) = 1;\n              }\n            }\n            plVar18 = plVar18 + 2;\n            puVar21 = puVar22;\n            uVar30 = uVar34;\n            uVar25 = uVar23;\n          } while (plVar18 != plVar17 + uVar29 * 2);" do (compound_statement "{\n            puVar27 = (undefined8 *)*plVar18;\n            puVar22 = puVar21;\n            uVar34 = uVar30;\n            uVar23 = uVar25;\n            if ((*(byte *)(puVar27 + 4) & 2) != 0) {\n              uVar34 = puVar27[6];\n              uVar23 = (uVar34 - 1) + ((ulong)puVar27[7] >> ((byte)DAT_0017f3c8 & 0x3f));\n              puVar22 = puVar27;\n              if ((puVar21 != (undefined8 *)0x0) && ((uVar34 <= uVar25 || (uVar25 < uVar30)))) {\n                uVar11 = *puVar21;\n                uVar14 = *puVar27;\n                uVar24 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);\n                FUN_001251f0(uVar24,uVar14,uVar34,uVar23,uVar11,uVar30,uVar25);\n                *(undefined4 *)(plVar18 + 1) = 1;\n              }\n            }\n            plVar18 = plVar18 + 2;\n            puVar21 = puVar22;\n            uVar30 = uVar34;\n            uVar25 = uVar23;\n          }" { (expression_statement "puVar27 = (undefined8 *)*plVar18;" (assignment_expression "puVar27 = (undefined8 *)*plVar18" identifier = (cast_expression "(undefined8 *)*plVar18" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar18" * identifier))) ;) (expression_statement "puVar22 = puVar21;" (assignment_expression "puVar22 = puVar21" identifier = identifier) ;) (expression_statement "uVar34 = uVar30;" (assignment_expression "uVar34 = uVar30" identifier = identifier) ;) (expression_statement "uVar23 = uVar25;" (assignment_expression "uVar23 = uVar25" identifier = identifier) ;) (if_statement "if ((*(byte *)(puVar27 + 4) & 2) != 0) {\n              uVar34 = puVar27[6];\n              uVar23 = (uVar34 - 1) + ((ulong)puVar27[7] >> ((byte)DAT_0017f3c8 & 0x3f));\n              puVar22 = puVar27;\n              if ((puVar21 != (undefined8 *)0x0) && ((uVar34 <= uVar25 || (uVar25 < uVar30)))) {\n                uVar11 = *puVar21;\n                uVar14 = *puVar27;\n                uVar24 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);\n                FUN_001251f0(uVar24,uVar14,uVar34,uVar23,uVar11,uVar30,uVar25);\n                *(undefined4 *)(plVar18 + 1) = 1;\n              }\n            }" if (parenthesized_expression "((*(byte *)(puVar27 + 4) & 2) != 0)" ( (binary_expression "(*(byte *)(puVar27 + 4) & 2) != 0" (parenthesized_expression "(*(byte *)(puVar27 + 4) & 2)" ( (binary_expression "*(byte *)(puVar27 + 4) & 2" (pointer_expression "*(byte *)(puVar27 + 4)" * (cast_expression "(byte *)(puVar27 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + 4)" ( (binary_expression "puVar27 + 4" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n              uVar34 = puVar27[6];\n              uVar23 = (uVar34 - 1) + ((ulong)puVar27[7] >> ((byte)DAT_0017f3c8 & 0x3f));\n              puVar22 = puVar27;\n              if ((puVar21 != (undefined8 *)0x0) && ((uVar34 <= uVar25 || (uVar25 < uVar30)))) {\n                uVar11 = *puVar21;\n                uVar14 = *puVar27;\n                uVar24 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);\n                FUN_001251f0(uVar24,uVar14,uVar34,uVar23,uVar11,uVar30,uVar25);\n                *(undefined4 *)(plVar18 + 1) = 1;\n              }\n            }" { (expression_statement "uVar34 = puVar27[6];" (assignment_expression "uVar34 = puVar27[6]" identifier = (subscript_expression "puVar27[6]" identifier [ number_literal ])) ;) (expression_statement "uVar23 = (uVar34 - 1) + ((ulong)puVar27[7] >> ((byte)DAT_0017f3c8 & 0x3f));" (assignment_expression "uVar23 = (uVar34 - 1) + ((ulong)puVar27[7] >> ((byte)DAT_0017f3c8 & 0x3f))" identifier = (binary_expression "(uVar34 - 1) + ((ulong)puVar27[7] >> ((byte)DAT_0017f3c8 & 0x3f))" (parenthesized_expression "(uVar34 - 1)" ( (binary_expression "uVar34 - 1" identifier - number_literal) )) + (parenthesized_expression "((ulong)puVar27[7] >> ((byte)DAT_0017f3c8 & 0x3f))" ( (binary_expression "(ulong)puVar27[7] >> ((byte)DAT_0017f3c8 & 0x3f)" (cast_expression "(ulong)puVar27[7]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "puVar27[7]" identifier [ number_literal ])) >> (parenthesized_expression "((byte)DAT_0017f3c8 & 0x3f)" ( (binary_expression "(byte)DAT_0017f3c8 & 0x3f" (cast_expression "(byte)DAT_0017f3c8" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) )))) ;) (expression_statement "puVar22 = puVar27;" (assignment_expression "puVar22 = puVar27" identifier = identifier) ;) (if_statement "if ((puVar21 != (undefined8 *)0x0) && ((uVar34 <= uVar25 || (uVar25 < uVar30)))) {\n                uVar11 = *puVar21;\n                uVar14 = *puVar27;\n                uVar24 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);\n                FUN_001251f0(uVar24,uVar14,uVar34,uVar23,uVar11,uVar30,uVar25);\n                *(undefined4 *)(plVar18 + 1) = 1;\n              }" if (parenthesized_expression "((puVar21 != (undefined8 *)0x0) && ((uVar34 <= uVar25 || (uVar25 < uVar30))))" ( (binary_expression "(puVar21 != (undefined8 *)0x0) && ((uVar34 <= uVar25 || (uVar25 < uVar30)))" (parenthesized_expression "(puVar21 != (undefined8 *)0x0)" ( (binary_expression "puVar21 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "((uVar34 <= uVar25 || (uVar25 < uVar30)))" ( (parenthesized_expression "(uVar34 <= uVar25 || (uVar25 < uVar30))" ( (binary_expression "uVar34 <= uVar25 || (uVar25 < uVar30)" (binary_expression "uVar34 <= uVar25" identifier <= identifier) || (parenthesized_expression "(uVar25 < uVar30)" ( (binary_expression "uVar25 < uVar30" identifier < identifier) ))) )) ))) )) (compound_statement "{\n                uVar11 = *puVar21;\n                uVar14 = *puVar27;\n                uVar24 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);\n                FUN_001251f0(uVar24,uVar14,uVar34,uVar23,uVar11,uVar30,uVar25);\n                *(undefined4 *)(plVar18 + 1) = 1;\n              }" { (expression_statement "uVar11 = *puVar21;" (assignment_expression "uVar11 = *puVar21" identifier = (pointer_expression "*puVar21" * identifier)) ;) (expression_statement "uVar14 = *puVar27;" (assignment_expression "uVar14 = *puVar27" identifier = (pointer_expression "*puVar27" * identifier)) ;) (expression_statement "uVar24 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);" (assignment_expression "uVar24 = 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_001251f0(uVar24,uVar14,uVar34,uVar23,uVar11,uVar30,uVar25);" (call_expression "FUN_001251f0(uVar24,uVar14,uVar34,uVar23,uVar11,uVar30,uVar25)" identifier (argument_list "(uVar24,uVar14,uVar34,uVar23,uVar11,uVar30,uVar25)" ( identifier , identifier , identifier , identifier , identifier , identifier , identifier ))) ;) (expression_statement "*(undefined4 *)(plVar18 + 1) = 1;" (assignment_expression "*(undefined4 *)(plVar18 + 1) = 1" (pointer_expression "*(undefined4 *)(plVar18 + 1)" * (cast_expression "(undefined4 *)(plVar18 + 1)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar18 + 1)" ( (binary_expression "plVar18 + 1" identifier + number_literal) )))) = number_literal) ;) })) })) (expression_statement "plVar18 = plVar18 + 2;" (assignment_expression "plVar18 = plVar18 + 2" identifier = (binary_expression "plVar18 + 2" identifier + number_literal)) ;) (expression_statement "puVar21 = puVar22;" (assignment_expression "puVar21 = puVar22" identifier = identifier) ;) (expression_statement "uVar30 = uVar34;" (assignment_expression "uVar30 = uVar34" identifier = identifier) ;) (expression_statement "uVar25 = uVar23;" (assignment_expression "uVar25 = uVar23" identifier = identifier) ;) }) while (parenthesized_expression "(plVar18 != plVar17 + uVar29 * 2)" ( (binary_expression "plVar18 != plVar17 + uVar29 * 2" identifier != (binary_expression "plVar17 + uVar29 * 2" identifier + (binary_expression "uVar29 * 2" identifier * number_literal))) )) ;) (expression_statement "qsort(plVar17,uVar29,0x10,FUN_00112350);" (call_expression "qsort(plVar17,uVar29,0x10,FUN_00112350)" identifier (argument_list "(plVar17,uVar29,0x10,FUN_00112350)" ( identifier , identifier , number_literal , identifier ))) ;) (expression_statement "puVar21 = (undefined8 *)*plVar17;" (assignment_expression "puVar21 = (undefined8 *)*plVar17" identifier = (cast_expression "(undefined8 *)*plVar17" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar17" * identifier))) ;) (expression_statement "uVar23 = 1;" (assignment_expression "uVar23 = 1" identifier = number_literal) ;) (expression_statement "uVar30 = puVar21[5];" (assignment_expression "uVar30 = puVar21[5]" identifier = (subscript_expression "puVar21[5]" identifier [ number_literal ])) ;) (expression_statement "uVar25 = uVar30;" (assignment_expression "uVar25 = uVar30" identifier = identifier) ;) (do_statement "do {\n            lVar16 = uVar23 * 2;\n            if (*(ulong *)(plVar17[lVar16] + 0x28) == uVar25) goto LAB_0011d4c4;\n            uVar23 = uVar23 + 1;\n            uVar25 = *(ulong *)(plVar17[lVar16] + 0x28);\n          } while (uVar23 != uVar29);" do (compound_statement "{\n            lVar16 = uVar23 * 2;\n            if (*(ulong *)(plVar17[lVar16] + 0x28) == uVar25) goto LAB_0011d4c4;\n            uVar23 = uVar23 + 1;\n            uVar25 = *(ulong *)(plVar17[lVar16] + 0x28);\n          }" { (expression_statement "lVar16 = uVar23 * 2;" (assignment_expression "lVar16 = uVar23 * 2" identifier = (binary_expression "uVar23 * 2" identifier * number_literal)) ;) (if_statement "if (*(ulong *)(plVar17[lVar16] + 0x28) == uVar25) goto LAB_0011d4c4;" if (parenthesized_expression "(*(ulong *)(plVar17[lVar16] + 0x28) == uVar25)" ( (binary_expression "*(ulong *)(plVar17[lVar16] + 0x28) == uVar25" (pointer_expression "*(ulong *)(plVar17[lVar16] + 0x28)" * (cast_expression "(ulong *)(plVar17[lVar16] + 0x28)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar17[lVar16] + 0x28)" ( (binary_expression "plVar17[lVar16] + 0x28" (subscript_expression "plVar17[lVar16]" identifier [ identifier ]) + number_literal) )))) == identifier) )) (goto_statement "goto LAB_0011d4c4;" goto statement_identifier ;)) (expression_statement "uVar23 = uVar23 + 1;" (assignment_expression "uVar23 = uVar23 + 1" identifier = (binary_expression "uVar23 + 1" identifier + number_literal)) ;) (expression_statement "uVar25 = *(ulong *)(plVar17[lVar16] + 0x28);" (assignment_expression "uVar25 = *(ulong *)(plVar17[lVar16] + 0x28)" identifier = (pointer_expression "*(ulong *)(plVar17[lVar16] + 0x28)" * (cast_expression "(ulong *)(plVar17[lVar16] + 0x28)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar17[lVar16] + 0x28)" ( (binary_expression "plVar17[lVar16] + 0x28" (subscript_expression "plVar17[lVar16]" identifier [ identifier ]) + number_literal) ))))) ;) }) while (parenthesized_expression "(uVar23 != uVar29)" ( (binary_expression "uVar23 != uVar29" identifier != identifier) )) ;) (expression_statement "uVar23 = 0;" (assignment_expression "uVar23 = 0" identifier = number_literal) ;) (expression_statement "uVar25 = (uVar30 - 1) + ((ulong)puVar21[7] >> ((byte)DAT_0017f3c8 & 0x3f));" (assignment_expression "uVar25 = (uVar30 - 1) + ((ulong)puVar21[7] >> ((byte)DAT_0017f3c8 & 0x3f))" identifier = (binary_expression "(uVar30 - 1) + ((ulong)puVar21[7] >> ((byte)DAT_0017f3c8 & 0x3f))" (parenthesized_expression "(uVar30 - 1)" ( (binary_expression "uVar30 - 1" identifier - number_literal) )) + (parenthesized_expression "((ulong)puVar21[7] >> ((byte)DAT_0017f3c8 & 0x3f))" ( (binary_expression "(ulong)puVar21[7] >> ((byte)DAT_0017f3c8 & 0x3f)" (cast_expression "(ulong)puVar21[7]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "puVar21[7]" identifier [ number_literal ])) >> (parenthesized_expression "((byte)DAT_0017f3c8 & 0x3f)" ( (binary_expression "(byte)DAT_0017f3c8 & 0x3f" (cast_expression "(byte)DAT_0017f3c8" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) )))) ;) (expression_statement "plVar18 = plVar17;" (assignment_expression "plVar18 = plVar17" identifier = identifier) ;) (while_statement "while( true ) {\n            uVar37 = uVar25;\n            uVar34 = uVar30;\n            puVar27 = puVar21;\n            plVar26 = plVar18 + 2;\n            uVar23 = uVar23 + 1;\n            if (uVar23 == uVar29) break;\n            puVar21 = (undefined8 *)*plVar26;\n            plVar3 = plVar18 + 3;\n            uVar30 = puVar21[5];\n            uVar25 = (uVar30 - 1) + ((ulong)puVar21[7] >> ((byte)DAT_0017f3c8 & 0x3f));\n            plVar18 = plVar26;\n            if (((int)*plVar3 == 0) && ((uVar30 <= uVar37 || (uVar37 < uVar34)))) {\n              uVar11 = *puVar27;\n              uVar14 = *puVar21;\n              uVar24 = dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",\n                                 5);\n              FUN_001251f0(uVar24,uVar14,uVar30,uVar25,uVar11,uVar34,uVar37);\n            }\n          }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n            uVar37 = uVar25;\n            uVar34 = uVar30;\n            puVar27 = puVar21;\n            plVar26 = plVar18 + 2;\n            uVar23 = uVar23 + 1;\n            if (uVar23 == uVar29) break;\n            puVar21 = (undefined8 *)*plVar26;\n            plVar3 = plVar18 + 3;\n            uVar30 = puVar21[5];\n            uVar25 = (uVar30 - 1) + ((ulong)puVar21[7] >> ((byte)DAT_0017f3c8 & 0x3f));\n            plVar18 = plVar26;\n            if (((int)*plVar3 == 0) && ((uVar30 <= uVar37 || (uVar37 < uVar34)))) {\n              uVar11 = *puVar27;\n              uVar14 = *puVar21;\n              uVar24 = dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",\n                                 5);\n              FUN_001251f0(uVar24,uVar14,uVar30,uVar25,uVar11,uVar34,uVar37);\n            }\n          }" { (expression_statement "uVar37 = uVar25;" (assignment_expression "uVar37 = uVar25" identifier = identifier) ;) (expression_statement "uVar34 = uVar30;" (assignment_expression "uVar34 = uVar30" identifier = identifier) ;) (expression_statement "puVar27 = puVar21;" (assignment_expression "puVar27 = puVar21" identifier = identifier) ;) (expression_statement "plVar26 = plVar18 + 2;" (assignment_expression "plVar26 = plVar18 + 2" identifier = (binary_expression "plVar18 + 2" identifier + number_literal)) ;) (expression_statement "uVar23 = uVar23 + 1;" (assignment_expression "uVar23 = uVar23 + 1" identifier = (binary_expression "uVar23 + 1" identifier + number_literal)) ;) (if_statement "if (uVar23 == uVar29) break;" if (parenthesized_expression "(uVar23 == uVar29)" ( (binary_expression "uVar23 == uVar29" identifier == identifier) )) (break_statement "break;" break ;)) (expression_statement "puVar21 = (undefined8 *)*plVar26;" (assignment_expression "puVar21 = (undefined8 *)*plVar26" identifier = (cast_expression "(undefined8 *)*plVar26" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar26" * identifier))) ;) (expression_statement "plVar3 = plVar18 + 3;" (assignment_expression "plVar3 = plVar18 + 3" identifier = (binary_expression "plVar18 + 3" identifier + number_literal)) ;) (expression_statement "uVar30 = puVar21[5];" (assignment_expression "uVar30 = puVar21[5]" identifier = (subscript_expression "puVar21[5]" identifier [ number_literal ])) ;) (expression_statement "uVar25 = (uVar30 - 1) + ((ulong)puVar21[7] >> ((byte)DAT_0017f3c8 & 0x3f));" (assignment_expression "uVar25 = (uVar30 - 1) + ((ulong)puVar21[7] >> ((byte)DAT_0017f3c8 & 0x3f))" identifier = (binary_expression "(uVar30 - 1) + ((ulong)puVar21[7] >> ((byte)DAT_0017f3c8 & 0x3f))" (parenthesized_expression "(uVar30 - 1)" ( (binary_expression "uVar30 - 1" identifier - number_literal) )) + (parenthesized_expression "((ulong)puVar21[7] >> ((byte)DAT_0017f3c8 & 0x3f))" ( (binary_expression "(ulong)puVar21[7] >> ((byte)DAT_0017f3c8 & 0x3f)" (cast_expression "(ulong)puVar21[7]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "puVar21[7]" identifier [ number_literal ])) >> (parenthesized_expression "((byte)DAT_0017f3c8 & 0x3f)" ( (binary_expression "(byte)DAT_0017f3c8 & 0x3f" (cast_expression "(byte)DAT_0017f3c8" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) )))) ;) (expression_statement "plVar18 = plVar26;" (assignment_expression "plVar18 = plVar26" identifier = identifier) ;) (if_statement "if (((int)*plVar3 == 0) && ((uVar30 <= uVar37 || (uVar37 < uVar34)))) {\n              uVar11 = *puVar27;\n              uVar14 = *puVar21;\n              uVar24 = dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",\n                                 5);\n              FUN_001251f0(uVar24,uVar14,uVar30,uVar25,uVar11,uVar34,uVar37);\n            }" if (parenthesized_expression "(((int)*plVar3 == 0) && ((uVar30 <= uVar37 || (uVar37 < uVar34))))" ( (binary_expression "((int)*plVar3 == 0) && ((uVar30 <= uVar37 || (uVar37 < uVar34)))" (parenthesized_expression "((int)*plVar3 == 0)" ( (binary_expression "(int)*plVar3 == 0" (cast_expression "(int)*plVar3" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*plVar3" * identifier)) == number_literal) )) && (parenthesized_expression "((uVar30 <= uVar37 || (uVar37 < uVar34)))" ( (parenthesized_expression "(uVar30 <= uVar37 || (uVar37 < uVar34))" ( (binary_expression "uVar30 <= uVar37 || (uVar37 < uVar34)" (binary_expression "uVar30 <= uVar37" identifier <= identifier) || (parenthesized_expression "(uVar37 < uVar34)" ( (binary_expression "uVar37 < uVar34" identifier < identifier) ))) )) ))) )) (compound_statement "{\n              uVar11 = *puVar27;\n              uVar14 = *puVar21;\n              uVar24 = dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",\n                                 5);\n              FUN_001251f0(uVar24,uVar14,uVar30,uVar25,uVar11,uVar34,uVar37);\n            }" { (expression_statement "uVar11 = *puVar27;" (assignment_expression "uVar11 = *puVar27" identifier = (pointer_expression "*puVar27" * identifier)) ;) (expression_statement "uVar14 = *puVar21;" (assignment_expression "uVar14 = *puVar21" identifier = (pointer_expression "*puVar21" * identifier)) ;) (expression_statement "uVar24 = dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",\n                                 5);" (assignment_expression "uVar24 = 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_001251f0(uVar24,uVar14,uVar30,uVar25,uVar11,uVar34,uVar37);" (call_expression "FUN_001251f0(uVar24,uVar14,uVar30,uVar25,uVar11,uVar34,uVar37)" identifier (argument_list "(uVar24,uVar14,uVar30,uVar25,uVar11,uVar34,uVar37)" ( identifier , identifier , identifier , identifier , identifier , identifier , identifier ))) ;) })) })) (labeled_statement "LAB_0011d4c4:\n          free(plVar17);" statement_identifier : (expression_statement "free(plVar17);" (call_expression "free(plVar17)" identifier (argument_list "(plVar17)" ( identifier ))) ;)) (for_statement "for (puVar27 = DAT_0017f398; puVar21 = DAT_0017f378, puVar27 != (undefined8 *)0x0;\n              puVar27 = (undefined8 *)puVar27[2]) {\n            if (*(int *)(puVar27 + 10) != 0) {\n              uVar11 = *puVar27;\n              lVar16 = puVar27[7] - (puVar27[5] + puVar27[4]);\n              uVar14 = dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",lVar16,5);\n              FUN_001251f0(uVar14,uVar11,lVar16);\n            }\n          }" for ( (assignment_expression "puVar27 = DAT_0017f398" identifier = identifier) ; (comma_expression "puVar21 = DAT_0017f378, puVar27 != (undefined8 *)0x0" (assignment_expression "puVar21 = DAT_0017f378" identifier = identifier) , (binary_expression "puVar27 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ; (assignment_expression "puVar27 = (undefined8 *)puVar27[2]" identifier = (cast_expression "(undefined8 *)puVar27[2]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar27[2]" identifier [ number_literal ]))) ) (compound_statement "{\n            if (*(int *)(puVar27 + 10) != 0) {\n              uVar11 = *puVar27;\n              lVar16 = puVar27[7] - (puVar27[5] + puVar27[4]);\n              uVar14 = dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",lVar16,5);\n              FUN_001251f0(uVar14,uVar11,lVar16);\n            }\n          }" { (if_statement "if (*(int *)(puVar27 + 10) != 0) {\n              uVar11 = *puVar27;\n              lVar16 = puVar27[7] - (puVar27[5] + puVar27[4]);\n              uVar14 = dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",lVar16,5);\n              FUN_001251f0(uVar14,uVar11,lVar16);\n            }" if (parenthesized_expression "(*(int *)(puVar27 + 10) != 0)" ( (binary_expression "*(int *)(puVar27 + 10) != 0" (pointer_expression "*(int *)(puVar27 + 10)" * (cast_expression "(int *)(puVar27 + 10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + 10)" ( (binary_expression "puVar27 + 10" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n              uVar11 = *puVar27;\n              lVar16 = puVar27[7] - (puVar27[5] + puVar27[4]);\n              uVar14 = dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",lVar16,5);\n              FUN_001251f0(uVar14,uVar11,lVar16);\n            }" { (expression_statement "uVar11 = *puVar27;" (assignment_expression "uVar11 = *puVar27" identifier = (pointer_expression "*puVar27" * identifier)) ;) (expression_statement "lVar16 = puVar27[7] - (puVar27[5] + puVar27[4]);" (assignment_expression "lVar16 = puVar27[7] - (puVar27[5] + puVar27[4])" identifier = (binary_expression "puVar27[7] - (puVar27[5] + puVar27[4])" (subscript_expression "puVar27[7]" identifier [ number_literal ]) - (parenthesized_expression "(puVar27[5] + puVar27[4])" ( (binary_expression "puVar27[5] + puVar27[4]" (subscript_expression "puVar27[5]" identifier [ number_literal ]) + (subscript_expression "puVar27[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",lVar16,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",lVar16,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",lVar16,5)" identifier (argument_list "(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",lVar16,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_001251f0(uVar14,uVar11,lVar16);" (call_expression "FUN_001251f0(uVar14,uVar11,lVar16)" identifier (argument_list "(uVar14,uVar11,lVar16)" ( identifier , identifier , identifier ))) ;) })) })) (goto_statement "goto joined_r0x0011ca92;" goto statement_identifier ;) })) })) (expression_statement "free(plVar17);" (call_expression "free(plVar17)" identifier (argument_list "(plVar17)" ( identifier ))) ;) (expression_statement "puVar21 = DAT_0017f378;" (assignment_expression "puVar21 = DAT_0017f378" identifier = identifier) ;) })) })) (labeled_statement "joined_r0x0011ca92:\n  for (; puVar21 != (undefined8 *)0x0; puVar21 = (undefined8 *)puVar21[1]) {\n    lVar16 = bfd_link_hash_lookup(DAT_0017fae8,*puVar21,0,0,1);\n    if ((lVar16 == 0) || (1 < (byte)(*(char *)(lVar16 + 0x18) - 3U))) {\n      uVar11 = *puVar21;\n      uVar14 = dcgettext(0,"%X%P: required symbol `%s\' not defined\n",5);\n      FUN_001251f0(uVar14,uVar11);\n    }\n  }" statement_identifier : (for_statement "for (; puVar21 != (undefined8 *)0x0; puVar21 = (undefined8 *)puVar21[1]) {\n    lVar16 = bfd_link_hash_lookup(DAT_0017fae8,*puVar21,0,0,1);\n    if ((lVar16 == 0) || (1 < (byte)(*(char *)(lVar16 + 0x18) - 3U))) {\n      uVar11 = *puVar21;\n      uVar14 = dcgettext(0,"%X%P: required symbol `%s\' not defined\n",5);\n      FUN_001251f0(uVar14,uVar11);\n    }\n  }" for ( ; (binary_expression "puVar21 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "puVar21 = (undefined8 *)puVar21[1]" identifier = (cast_expression "(undefined8 *)puVar21[1]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar21[1]" identifier [ number_literal ]))) ) (compound_statement "{\n    lVar16 = bfd_link_hash_lookup(DAT_0017fae8,*puVar21,0,0,1);\n    if ((lVar16 == 0) || (1 < (byte)(*(char *)(lVar16 + 0x18) - 3U))) {\n      uVar11 = *puVar21;\n      uVar14 = dcgettext(0,"%X%P: required symbol `%s\' not defined\n",5);\n      FUN_001251f0(uVar14,uVar11);\n    }\n  }" { (expression_statement "lVar16 = bfd_link_hash_lookup(DAT_0017fae8,*puVar21,0,0,1);" (assignment_expression "lVar16 = bfd_link_hash_lookup(DAT_0017fae8,*puVar21,0,0,1)" identifier = (call_expression "bfd_link_hash_lookup(DAT_0017fae8,*puVar21,0,0,1)" identifier (argument_list "(DAT_0017fae8,*puVar21,0,0,1)" ( identifier , (pointer_expression "*puVar21" * identifier) , number_literal , number_literal , number_literal )))) ;) (if_statement "if ((lVar16 == 0) || (1 < (byte)(*(char *)(lVar16 + 0x18) - 3U))) {\n      uVar11 = *puVar21;\n      uVar14 = dcgettext(0,"%X%P: required symbol `%s\' not defined\n",5);\n      FUN_001251f0(uVar14,uVar11);\n    }" if (parenthesized_expression "((lVar16 == 0) || (1 < (byte)(*(char *)(lVar16 + 0x18) - 3U)))" ( (binary_expression "(lVar16 == 0) || (1 < (byte)(*(char *)(lVar16 + 0x18) - 3U))" (parenthesized_expression "(lVar16 == 0)" ( (binary_expression "lVar16 == 0" identifier == number_literal) )) || (parenthesized_expression "(1 < (byte)(*(char *)(lVar16 + 0x18) - 3U))" ( (binary_expression "1 < (byte)(*(char *)(lVar16 + 0x18) - 3U)" number_literal < (call_expression "(byte)(*(char *)(lVar16 + 0x18) - 3U)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(*(char *)(lVar16 + 0x18) - 3U)" ( (binary_expression "*(char *)(lVar16 + 0x18) - 3U" (pointer_expression "*(char *)(lVar16 + 0x18)" * (cast_expression "(char *)(lVar16 + 0x18)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar16 + 0x18)" ( (binary_expression "lVar16 + 0x18" identifier + number_literal) )))) - number_literal) )))) ))) )) (compound_statement "{\n      uVar11 = *puVar21;\n      uVar14 = dcgettext(0,"%X%P: required symbol `%s\' not defined\n",5);\n      FUN_001251f0(uVar14,uVar11);\n    }" { (expression_statement "uVar11 = *puVar21;" (assignment_expression "uVar11 = *puVar21" identifier = (pointer_expression "*puVar21" * 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_001251f0(uVar14,uVar11);" (call_expression "FUN_001251f0(uVar14,uVar11)" identifier (argument_list "(uVar14,uVar11)" ( identifier , identifier ))) ;) })) }))) (expression_statement "iVar9 = DAT_0017fa0c;" (assignment_expression "iVar9 = DAT_0017fa0c" identifier = identifier) ;) (if_statement "if (((DAT_0017fac0 & 0x43) != 2) && ((DAT_0017fac0 & 3) != 3)) {\n    iVar9 = 1;\n  }" if (parenthesized_expression "(((DAT_0017fac0 & 0x43) != 2) && ((DAT_0017fac0 & 3) != 3))" ( (binary_expression "((DAT_0017fac0 & 0x43) != 2) && ((DAT_0017fac0 & 3) != 3)" (parenthesized_expression "((DAT_0017fac0 & 0x43) != 2)" ( (binary_expression "(DAT_0017fac0 & 0x43) != 2" (parenthesized_expression "(DAT_0017fac0 & 0x43)" ( (binary_expression "DAT_0017fac0 & 0x43" identifier & number_literal) )) != number_literal) )) && (parenthesized_expression "((DAT_0017fac0 & 3) != 3)" ( (binary_expression "(DAT_0017fac0 & 3) != 3" (parenthesized_expression "(DAT_0017fac0 & 3)" ( (binary_expression "DAT_0017fac0 & 3" identifier & number_literal) )) != number_literal) ))) )) (compound_statement "{\n    iVar9 = 1;\n  }" { (expression_statement "iVar9 = 1;" (assignment_expression "iVar9 = 1" identifier = number_literal) ;) })) (if_statement "if (((DAT_0017fac0 & 0x43) == 0x42) && (DAT_0017fa0c == 0 && _DAT_0017fa08 == 0)) {\n    uVar11 = dcgettext(0,"%F%P: gc-sections requires either an entry or an undefined symbol\n",5);\n    FUN_001251f0(uVar11);\n  }" if (parenthesized_expression "(((DAT_0017fac0 & 0x43) == 0x42) && (DAT_0017fa0c == 0 && _DAT_0017fa08 == 0))" ( (binary_expression "((DAT_0017fac0 & 0x43) == 0x42) && (DAT_0017fa0c == 0 && _DAT_0017fa08 == 0)" (parenthesized_expression "((DAT_0017fac0 & 0x43) == 0x42)" ( (binary_expression "(DAT_0017fac0 & 0x43) == 0x42" (parenthesized_expression "(DAT_0017fac0 & 0x43)" ( (binary_expression "DAT_0017fac0 & 0x43" identifier & number_literal) )) == number_literal) )) && (parenthesized_expression "(DAT_0017fa0c == 0 && _DAT_0017fa08 == 0)" ( (binary_expression "DAT_0017fa0c == 0 && _DAT_0017fa08 == 0" (binary_expression "DAT_0017fa0c == 0" identifier == number_literal) && (binary_expression "_DAT_0017fa08 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n    uVar11 = dcgettext(0,"%F%P: gc-sections requires either an entry or an undefined symbol\n",5);\n    FUN_001251f0(uVar11);\n  }" { (expression_statement "uVar11 = dcgettext(0,"%F%P: gc-sections requires either an entry or an undefined symbol\n",5);" (assignment_expression "uVar11 = 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_001251f0(uVar11);" (call_expression "FUN_001251f0(uVar11)" identifier (argument_list "(uVar11)" ( identifier ))) ;) })) (if_statement "if (DAT_0017f2e8 == (undefined *)0x0) {\n    DAT_0017f2e8 = PTR_s_start_0017e660;\n    iVar9 = 0;\n  }" if (parenthesized_expression "(DAT_0017f2e8 == (undefined *)0x0)" ( (binary_expression "DAT_0017f2e8 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    DAT_0017f2e8 = PTR_s_start_0017e660;\n    iVar9 = 0;\n  }" { (expression_statement "DAT_0017f2e8 = PTR_s_start_0017e660;" (assignment_expression "DAT_0017f2e8 = PTR_s_start_0017e660" identifier = identifier) ;) (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" identifier = number_literal) ;) })) (expression_statement "lVar16 = bfd_link_hash_lookup(DAT_0017fae8,DAT_0017f2e8,0,0,1);" (assignment_expression "lVar16 = bfd_link_hash_lookup(DAT_0017fae8,DAT_0017f2e8,0,0,1)" identifier = (call_expression "bfd_link_hash_lookup(DAT_0017fae8,DAT_0017f2e8,0,0,1)" identifier (argument_list "(DAT_0017fae8,DAT_0017f2e8,0,0,1)" ( identifier , identifier , number_literal , number_literal , number_literal )))) ;) (if_statement "if ((lVar16 != 0) && ((byte)(*(char *)(lVar16 + 0x18) - 3U) < 2)) {\n    lVar15 = *(long *)(*(long *)(lVar16 + 0x28) + 0x68);\n    if (lVar15 != 0) {\n      iVar9 = bfd_set_start_address\n                        (DAT_0017fb10,\n                         *(long *)(lVar15 + 0x28) +\n                         *(long *)(*(long *)(lVar16 + 0x28) + 0x60) + *(long *)(lVar16 + 0x30));\n      if (iVar9 != 0) {\n        return;\n      }\n      pcVar31 = "%F%P: %s: can\'t set start address\n";\n      goto LAB_0011cf37;\n    }\n  }" if (parenthesized_expression "((lVar16 != 0) && ((byte)(*(char *)(lVar16 + 0x18) - 3U) < 2))" ( (binary_expression "(lVar16 != 0) && ((byte)(*(char *)(lVar16 + 0x18) - 3U) < 2)" (parenthesized_expression "(lVar16 != 0)" ( (binary_expression "lVar16 != 0" identifier != number_literal) )) && (parenthesized_expression "((byte)(*(char *)(lVar16 + 0x18) - 3U) < 2)" ( (binary_expression "(byte)(*(char *)(lVar16 + 0x18) - 3U) < 2" (call_expression "(byte)(*(char *)(lVar16 + 0x18) - 3U)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(*(char *)(lVar16 + 0x18) - 3U)" ( (binary_expression "*(char *)(lVar16 + 0x18) - 3U" (pointer_expression "*(char *)(lVar16 + 0x18)" * (cast_expression "(char *)(lVar16 + 0x18)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar16 + 0x18)" ( (binary_expression "lVar16 + 0x18" identifier + number_literal) )))) - number_literal) ))) < number_literal) ))) )) (compound_statement "{\n    lVar15 = *(long *)(*(long *)(lVar16 + 0x28) + 0x68);\n    if (lVar15 != 0) {\n      iVar9 = bfd_set_start_address\n                        (DAT_0017fb10,\n                         *(long *)(lVar15 + 0x28) +\n                         *(long *)(*(long *)(lVar16 + 0x28) + 0x60) + *(long *)(lVar16 + 0x30));\n      if (iVar9 != 0) {\n        return;\n      }\n      pcVar31 = "%F%P: %s: can\'t set start address\n";\n      goto LAB_0011cf37;\n    }\n  }" { (expression_statement "lVar15 = *(long *)(*(long *)(lVar16 + 0x28) + 0x68);" (assignment_expression "lVar15 = *(long *)(*(long *)(lVar16 + 0x28) + 0x68)" identifier = (pointer_expression "*(long *)(*(long *)(lVar16 + 0x28) + 0x68)" * (cast_expression "(long *)(*(long *)(lVar16 + 0x28) + 0x68)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(lVar16 + 0x28) + 0x68)" ( (binary_expression "*(long *)(lVar16 + 0x28) + 0x68" (pointer_expression "*(long *)(lVar16 + 0x28)" * (cast_expression "(long *)(lVar16 + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar16 + 0x28)" ( (binary_expression "lVar16 + 0x28" identifier + number_literal) )))) + number_literal) ))))) ;) (if_statement "if (lVar15 != 0) {\n      iVar9 = bfd_set_start_address\n                        (DAT_0017fb10,\n                         *(long *)(lVar15 + 0x28) +\n                         *(long *)(*(long *)(lVar16 + 0x28) + 0x60) + *(long *)(lVar16 + 0x30));\n      if (iVar9 != 0) {\n        return;\n      }\n      pcVar31 = "%F%P: %s: can\'t set start address\n";\n      goto LAB_0011cf37;\n    }" if (parenthesized_expression "(lVar15 != 0)" ( (binary_expression "lVar15 != 0" identifier != number_literal) )) (compound_statement "{\n      iVar9 = bfd_set_start_address\n                        (DAT_0017fb10,\n                         *(long *)(lVar15 + 0x28) +\n                         *(long *)(*(long *)(lVar16 + 0x28) + 0x60) + *(long *)(lVar16 + 0x30));\n      if (iVar9 != 0) {\n        return;\n      }\n      pcVar31 = "%F%P: %s: can\'t set start address\n";\n      goto LAB_0011cf37;\n    }" { (expression_statement "iVar9 = bfd_set_start_address\n                        (DAT_0017fb10,\n                         *(long *)(lVar15 + 0x28) +\n                         *(long *)(*(long *)(lVar16 + 0x28) + 0x60) + *(long *)(lVar16 + 0x30));" (assignment_expression "iVar9 = bfd_set_start_address\n                        (DAT_0017fb10,\n                         *(long *)(lVar15 + 0x28) +\n                         *(long *)(*(long *)(lVar16 + 0x28) + 0x60) + *(long *)(lVar16 + 0x30))" identifier = (call_expression "bfd_set_start_address\n                        (DAT_0017fb10,\n                         *(long *)(lVar15 + 0x28) +\n                         *(long *)(*(long *)(lVar16 + 0x28) + 0x60) + *(long *)(lVar16 + 0x30))" identifier (argument_list "(DAT_0017fb10,\n                         *(long *)(lVar15 + 0x28) +\n                         *(long *)(*(long *)(lVar16 + 0x28) + 0x60) + *(long *)(lVar16 + 0x30))" ( identifier , (binary_expression "*(long *)(lVar15 + 0x28) +\n                         *(long *)(*(long *)(lVar16 + 0x28) + 0x60) + *(long *)(lVar16 + 0x30)" (binary_expression "*(long *)(lVar15 + 0x28) +\n                         *(long *)(*(long *)(lVar16 + 0x28) + 0x60)" (pointer_expression "*(long *)(lVar15 + 0x28)" * (cast_expression "(long *)(lVar15 + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar15 + 0x28)" ( (binary_expression "lVar15 + 0x28" identifier + number_literal) )))) + (pointer_expression "*(long *)(*(long *)(lVar16 + 0x28) + 0x60)" * (cast_expression "(long *)(*(long *)(lVar16 + 0x28) + 0x60)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(lVar16 + 0x28) + 0x60)" ( (binary_expression "*(long *)(lVar16 + 0x28) + 0x60" (pointer_expression "*(long *)(lVar16 + 0x28)" * (cast_expression "(long *)(lVar16 + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar16 + 0x28)" ( (binary_expression "lVar16 + 0x28" identifier + number_literal) )))) + number_literal) ))))) + (pointer_expression "*(long *)(lVar16 + 0x30)" * (cast_expression "(long *)(lVar16 + 0x30)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar16 + 0x30)" ( (binary_expression "lVar16 + 0x30" identifier + number_literal) ))))) )))) ;) (if_statement "if (iVar9 != 0) {\n        return;\n      }" if (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) (compound_statement "{\n        return;\n      }" { (return_statement "return;" return ;) })) (expression_statement "pcVar31 = "%F%P: %s: can\'t set start address\n";" (assignment_expression "pcVar31 = "%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_0011cf37;" goto statement_identifier ;) })) })) (expression_statement "uVar11 = bfd_scan_vma(DAT_0017f2e8,&local_40,0);" (assignment_expression "uVar11 = bfd_scan_vma(DAT_0017f2e8,&local_40,0)" identifier = (call_expression "bfd_scan_vma(DAT_0017f2e8,&local_40,0)" identifier (argument_list "(DAT_0017f2e8,&local_40,0)" ( identifier , (pointer_expression "&local_40" & identifier) , number_literal )))) ;) (if_statement "if (*(char *)CONCAT44(uStack_3c,local_40) == '\0') {\n    iVar9 = bfd_set_start_address(DAT_0017fb10,uVar11);\n  }\n  else {\n    lVar16 = bfd_get_section_by_name(DAT_0017fb10,PTR_s__text_0017e648);\n    puVar7 = DAT_0017f2e8;\n    if (lVar16 == 0) {\n      if (iVar9 == 0) {\n        return;\n      }\n      pcVar31 = "%P: warning: cannot find entry symbol %s; not setting start address\n";\nLAB_0011cf37:\n      puVar7 = DAT_0017f2e8;\n      uVar11 = dcgettext(0,pcVar31,5);\n      FUN_001251f0(uVar11,puVar7);\n      return;\n    }\n    uVar11 = *(undefined8 *)(lVar16 + 0x28);\n    if (iVar9 != 0) {\n      uVar14 = dcgettext(0,"%P: warning: cannot find entry symbol %s; defaulting to %V\n",5);\n      FUN_001251f0(uVar14,puVar7,uVar11);\n      uVar11 = *(undefined8 *)(lVar16 + 0x28);\n    }\n    iVar9 = bfd_set_start_address(DAT_0017fb10,uVar11);\n  }" if (parenthesized_expression "(*(char *)CONCAT44(uStack_3c,local_40) == '\0')" ( (binary_expression "*(char *)CONCAT44(uStack_3c,local_40) == '\0'" (pointer_expression "*(char *)CONCAT44(uStack_3c,local_40)" * (cast_expression "(char *)CONCAT44(uStack_3c,local_40)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "CONCAT44(uStack_3c,local_40)" identifier (argument_list "(uStack_3c,local_40)" ( identifier , identifier ))))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    iVar9 = bfd_set_start_address(DAT_0017fb10,uVar11);\n  }" { (expression_statement "iVar9 = bfd_set_start_address(DAT_0017fb10,uVar11);" (assignment_expression "iVar9 = bfd_set_start_address(DAT_0017fb10,uVar11)" identifier = (call_expression "bfd_set_start_address(DAT_0017fb10,uVar11)" identifier (argument_list "(DAT_0017fb10,uVar11)" ( identifier , identifier )))) ;) }) (else_clause "else {\n    lVar16 = bfd_get_section_by_name(DAT_0017fb10,PTR_s__text_0017e648);\n    puVar7 = DAT_0017f2e8;\n    if (lVar16 == 0) {\n      if (iVar9 == 0) {\n        return;\n      }\n      pcVar31 = "%P: warning: cannot find entry symbol %s; not setting start address\n";\nLAB_0011cf37:\n      puVar7 = DAT_0017f2e8;\n      uVar11 = dcgettext(0,pcVar31,5);\n      FUN_001251f0(uVar11,puVar7);\n      return;\n    }\n    uVar11 = *(undefined8 *)(lVar16 + 0x28);\n    if (iVar9 != 0) {\n      uVar14 = dcgettext(0,"%P: warning: cannot find entry symbol %s; defaulting to %V\n",5);\n      FUN_001251f0(uVar14,puVar7,uVar11);\n      uVar11 = *(undefined8 *)(lVar16 + 0x28);\n    }\n    iVar9 = bfd_set_start_address(DAT_0017fb10,uVar11);\n  }" else (compound_statement "{\n    lVar16 = bfd_get_section_by_name(DAT_0017fb10,PTR_s__text_0017e648);\n    puVar7 = DAT_0017f2e8;\n    if (lVar16 == 0) {\n      if (iVar9 == 0) {\n        return;\n      }\n      pcVar31 = "%P: warning: cannot find entry symbol %s; not setting start address\n";\nLAB_0011cf37:\n      puVar7 = DAT_0017f2e8;\n      uVar11 = dcgettext(0,pcVar31,5);\n      FUN_001251f0(uVar11,puVar7);\n      return;\n    }\n    uVar11 = *(undefined8 *)(lVar16 + 0x28);\n    if (iVar9 != 0) {\n      uVar14 = dcgettext(0,"%P: warning: cannot find entry symbol %s; defaulting to %V\n",5);\n      FUN_001251f0(uVar14,puVar7,uVar11);\n      uVar11 = *(undefined8 *)(lVar16 + 0x28);\n    }\n    iVar9 = bfd_set_start_address(DAT_0017fb10,uVar11);\n  }" { (expression_statement "lVar16 = bfd_get_section_by_name(DAT_0017fb10,PTR_s__text_0017e648);" (assignment_expression "lVar16 = bfd_get_section_by_name(DAT_0017fb10,PTR_s__text_0017e648)" identifier = (call_expression "bfd_get_section_by_name(DAT_0017fb10,PTR_s__text_0017e648)" identifier (argument_list "(DAT_0017fb10,PTR_s__text_0017e648)" ( identifier , identifier )))) ;) (expression_statement "puVar7 = DAT_0017f2e8;" (assignment_expression "puVar7 = DAT_0017f2e8" identifier = identifier) ;) (if_statement "if (lVar16 == 0) {\n      if (iVar9 == 0) {\n        return;\n      }\n      pcVar31 = "%P: warning: cannot find entry symbol %s; not setting start address\n";\nLAB_0011cf37:\n      puVar7 = DAT_0017f2e8;\n      uVar11 = dcgettext(0,pcVar31,5);\n      FUN_001251f0(uVar11,puVar7);\n      return;\n    }" if (parenthesized_expression "(lVar16 == 0)" ( (binary_expression "lVar16 == 0" identifier == number_literal) )) (compound_statement "{\n      if (iVar9 == 0) {\n        return;\n      }\n      pcVar31 = "%P: warning: cannot find entry symbol %s; not setting start address\n";\nLAB_0011cf37:\n      puVar7 = DAT_0017f2e8;\n      uVar11 = dcgettext(0,pcVar31,5);\n      FUN_001251f0(uVar11,puVar7);\n      return;\n    }" { (if_statement "if (iVar9 == 0) {\n        return;\n      }" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (compound_statement "{\n        return;\n      }" { (return_statement "return;" return ;) })) (expression_statement "pcVar31 = "%P: warning: cannot find entry symbol %s; not setting start address\n";" (assignment_expression "pcVar31 = "%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_0011cf37:\n      puVar7 = DAT_0017f2e8;" statement_identifier : (expression_statement "puVar7 = DAT_0017f2e8;" (assignment_expression "puVar7 = DAT_0017f2e8" identifier = identifier) ;)) (expression_statement "uVar11 = dcgettext(0,pcVar31,5);" (assignment_expression "uVar11 = dcgettext(0,pcVar31,5)" identifier = (call_expression "dcgettext(0,pcVar31,5)" identifier (argument_list "(0,pcVar31,5)" ( number_literal , identifier , number_literal )))) ;) (expression_statement "FUN_001251f0(uVar11,puVar7);" (call_expression "FUN_001251f0(uVar11,puVar7)" identifier (argument_list "(uVar11,puVar7)" ( identifier , identifier ))) ;) (return_statement "return;" return ;) })) (expression_statement "uVar11 = *(undefined8 *)(lVar16 + 0x28);" (assignment_expression "uVar11 = *(undefined8 *)(lVar16 + 0x28)" identifier = (pointer_expression "*(undefined8 *)(lVar16 + 0x28)" * (cast_expression "(undefined8 *)(lVar16 + 0x28)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar16 + 0x28)" ( (binary_expression "lVar16 + 0x28" identifier + number_literal) ))))) ;) (if_statement "if (iVar9 != 0) {\n      uVar14 = dcgettext(0,"%P: warning: cannot find entry symbol %s; defaulting to %V\n",5);\n      FUN_001251f0(uVar14,puVar7,uVar11);\n      uVar11 = *(undefined8 *)(lVar16 + 0x28);\n    }" if (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) (compound_statement "{\n      uVar14 = dcgettext(0,"%P: warning: cannot find entry symbol %s; defaulting to %V\n",5);\n      FUN_001251f0(uVar14,puVar7,uVar11);\n      uVar11 = *(undefined8 *)(lVar16 + 0x28);\n    }" { (expression_statement "uVar14 = dcgettext(0,"%P: warning: cannot find entry symbol %s; defaulting to %V\n",5);" (assignment_expression "uVar14 = 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_001251f0(uVar14,puVar7,uVar11);" (call_expression "FUN_001251f0(uVar14,puVar7,uVar11)" identifier (argument_list "(uVar14,puVar7,uVar11)" ( identifier , identifier , identifier ))) ;) (expression_statement "uVar11 = *(undefined8 *)(lVar16 + 0x28);" (assignment_expression "uVar11 = *(undefined8 *)(lVar16 + 0x28)" identifier = (pointer_expression "*(undefined8 *)(lVar16 + 0x28)" * (cast_expression "(undefined8 *)(lVar16 + 0x28)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar16 + 0x28)" ( (binary_expression "lVar16 + 0x28" identifier + number_literal) ))))) ;) })) (expression_statement "iVar9 = bfd_set_start_address(DAT_0017fb10,uVar11);" (assignment_expression "iVar9 = bfd_set_start_address(DAT_0017fb10,uVar11)" identifier = (call_expression "bfd_set_start_address(DAT_0017fb10,uVar11)" identifier (argument_list "(DAT_0017fb10,uVar11)" ( identifier , identifier )))) ;) }))) (if_statement "if (iVar9 != 0) {\n    return;\n  }" if (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "uVar11 = dcgettext(0,"%F%P: can\'t set start address\n",5);" (assignment_expression "uVar11 = 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_001251f0(uVar11);" (call_expression "FUN_001251f0(uVar11)" identifier (argument_list "(uVar11)" ( identifier ))) ;) (return_statement "return;" return ;) (labeled_statement "code_r0x0011c5be:\n  plVar17 = (long *)plVar17[6];" statement_identifier : (expression_statement "plVar17 = (long *)plVar17[6];" (assignment_expression "plVar17 = (long *)plVar17[6]" identifier = (cast_expression "(long *)plVar17[6]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar17[6]" identifier [ number_literal ]))) ;)) (goto_statement "goto joined_r0x0011be7f;" goto statement_identifier ;) (labeled_statement "LAB_0011c1d0:\n  uVar11 = *puVar21;" statement_identifier : (expression_statement "uVar11 = *puVar21;" (assignment_expression "uVar11 = *puVar21" identifier = (pointer_expression "*puVar21" * 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_001251f0(uVar14,uVar11);" (call_expression "FUN_001251f0(uVar14,uVar11)" identifier (argument_list "(uVar14,uVar11)" ( identifier , identifier ))) ;) (expression_statement "puVar21 = (undefined8 *)puVar21[2];" (assignment_expression "puVar21 = (undefined8 *)puVar21[2]" identifier = (cast_expression "(undefined8 *)puVar21[2]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar21[2]" identifier [ number_literal ]))) ;) (goto_statement "goto joined_r0x0011bfdf;" goto statement_identifier ;) (labeled_statement "code_r0x0011c493:\n  (**(code **)(*(long *)(plVar17[4] + 8) + 0x2c8))(puVar21,&DAT_0017fac0);" statement_identifier : (expression_statement "(**(code **)(*(long *)(plVar17[4] + 8) + 0x2c8))(puVar21,&DAT_0017fac0);" (call_expression "(**(code **)(*(long *)(plVar17[4] + 8) + 0x2c8))(puVar21,&DAT_0017fac0)" (parenthesized_expression "(**(code **)(*(long *)(plVar17[4] + 8) + 0x2c8))" ( (pointer_expression "**(code **)(*(long *)(plVar17[4] + 8) + 0x2c8)" * (pointer_expression "*(code **)(*(long *)(plVar17[4] + 8) + 0x2c8)" * (cast_expression "(code **)(*(long *)(plVar17[4] + 8) + 0x2c8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)(plVar17[4] + 8) + 0x2c8)" ( (binary_expression "*(long *)(plVar17[4] + 8) + 0x2c8" (pointer_expression "*(long *)(plVar17[4] + 8)" * (cast_expression "(long *)(plVar17[4] + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar17[4] + 8)" ( (binary_expression "plVar17[4] + 8" (subscript_expression "plVar17[4]" identifier [ number_literal ]) + number_literal) )))) + number_literal) ))))) )) (argument_list "(puVar21,&DAT_0017fac0)" ( identifier , (pointer_expression "&DAT_0017fac0" & identifier) ))) ;)) (expression_statement "puVar21 = (undefined8 *)puVar21[2];" (assignment_expression "puVar21 = (undefined8 *)puVar21[2]" identifier = (cast_expression "(undefined8 *)puVar21[2]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar21[2]" identifier [ number_literal ]))) ;) (goto_statement "goto joined_r0x0011c46e;" goto statement_identifier ;) (labeled_statement "code_r0x0011c93b:\n  lVar16 = plVar17[6];" statement_identifier : (expression_statement "lVar16 = plVar17[6];" (assignment_expression "lVar16 = plVar17[6]" identifier = (subscript_expression "plVar17[6]" identifier [ number_literal ])) ;)) (expression_statement "uVar11 = dcgettext(0,"%X%P: section `%s\' assigned to non-existent phdr `%s\'\n",5);" (assignment_expression "uVar11 = 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_001251f0(uVar11,lVar16,pbVar4);" (call_expression "FUN_001251f0(uVar11,lVar16,pbVar4)" identifier (argument_list "(uVar11,lVar16,pbVar4)" ( identifier , identifier , identifier ))) ;) (expression_statement "plVar18 = (long *)*plVar18;" (assignment_expression "plVar18 = (long *)*plVar18" identifier = (cast_expression "(long *)*plVar18" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar18" * identifier))) ;) (goto_statement "goto joined_r0x0011c90a;" 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 (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (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 ( (subscript_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 ( 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 ( 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) ;) (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 (sized_type_specifier long) (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (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 ( (pointer_expression * IDENT) , LIT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (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 (sized_type_specifier long) (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 (sized_type_specifier long) (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 (sized_type_specifier long) (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 (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT))) ; (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (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 (sized_type_specifier long)) ) 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 (sized_type_specifier long)) ) 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 (sized_type_specifier long) (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 (sized_type_specifier long) (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 (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (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 IDENT = (binary_expression IDENT == (binary_expression IDENT + LIT))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( IDENT )) (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 (sized_type_specifier long)) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long) (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 (sized_type_specifier long)) ) 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 ( IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") ))) ;) })) (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 (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) ;) (do_statement do (compound_statement { (while_statement while (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) )) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;))) }))) (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 (sized_type_specifier long) (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 (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (break_statement break ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (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 (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) })) })) (expression_statement (assignment_expression (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 (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) = (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) ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence ") , (subscript_expression IDENT [ LIT ]) ))) ;) })) })) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) || (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (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) ))))) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) != LIT) ))) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT , IDENT ))) ;) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (goto_statement goto statement_identifier ;))) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) )) (argument_list ( IDENT , (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;))) }))) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (goto_statement goto statement_identifier ;) }))) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence string_content escape_sequence ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;)) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) )) (break_statement break ;)) }) while (parenthesized_expression ( BOOL )) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (for_statement for ( (assignment_expression IDENT = IDENT) ; (binary_expression IDENT != (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) ; (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , (string_literal " string_content ") )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (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 , 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 )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) | LIT)) ;) })) })) (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 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) ;) (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 ( ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) , (binary_expression IDENT != LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (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 ( IDENT , IDENT ))) ;) (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 ( (binary_expression IDENT + LIT) , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (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 ( ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) }))) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (break_statement break ;)) }) while (parenthesized_expression ( BOOL )) ;) }))) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression 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 IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , (pointer_expression & IDENT) ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , (pointer_expression & IDENT) ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT < LIT) )) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , (pointer_expression & IDENT) ))) ;) }))) })) (expression_statement (call_expression IDENT (argument_list ( 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 { (for_statement for ( ; (binary_expression IDENT != (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) ; (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (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 (sized_type_specifier long)) ) IDENT) + LIT) )))) & LIT) )) == LIT) )) (compound_statement { (for_statement for ( (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) ))))) ; (binary_expression IDENT != LIT) ; (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (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 (sized_type_specifier long) (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 (sized_type_specifier long) (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 (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , LIT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (while_statement while (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) , (binary_expression IDENT != (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)))) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) )) && (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor (sized_type_specifier long) (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 (sized_type_specifier long) (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) = (binary_expression LIT - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) == LIT) )) (compound_statement { (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 { (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 = IDENT) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) != LIT) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression 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 (sized_type_specifier long) (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 (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) }))) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) = IDENT) ;) }))) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) = (binary_expression LIT - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (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 (sized_type_specifier long) (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 (sized_type_specifier long) (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) , (binary_expression IDENT != (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT))) ))) )) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor (sized_type_specifier long) (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 < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) 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 (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) )) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) ;) })) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (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 (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (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 (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) }))) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) })) }))) })) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (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 (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })))) })) (for_statement for ( ; (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression (binary_expression IDENT != (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) && (parenthesized_expression ( (comma_expression (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) = (binary_expression LIT - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))))) , (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT != IDENT))) )))) )) ; (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ) (compound_statement { })) (labeled_statement statement_identifier : (for_statement for ( ; (binary_expression IDENT != (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) ; (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (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 ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (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 { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , LIT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , IDENT , LIT ))) ;)) })) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) && (parenthesized_expression ( (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 )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) })) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression 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 ( IDENT , LIT )))) , (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 (sized_type_specifier long) (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 )))) ;) (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 ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence string_content escape_sequence string_content escape_sequence escape_sequence ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) })) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = 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)) )) (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 (sized_type_specifier long) (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 (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)))) ; (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (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 (sized_type_specifier long) (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 (sized_type_specifier long) (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 { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (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) ;) })) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) })) (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 ( IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (string_literal " string_content ") , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) })) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor 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 = LIT) ;) (for_statement for ( (assignment_expression IDENT = IDENT) ; (binary_expression IDENT != (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) ; (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) 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 (cast_expression ( (type_descriptor (sized_type_specifier long)) ) 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 (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (while_statement while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor (sized_type_specifier long) (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 <= (cast_expression ( (type_descriptor TYPE) ) 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 (cast_expression ( (type_descriptor TYPE) ) IDENT) << LIT) ))))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + (binary_expression IDENT * LIT)) )))) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) }))) })) })) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , LIT , (string_literal " string_content ") )))) ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , (string_literal " string_content ") )))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (subscript_expression IDENT [ LIT ]) , (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) , IDENT , (binary_expression IDENT != LIT) , IDENT , (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 (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) })) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (for_statement for ( (assignment_expression IDENT = IDENT) ; (binary_expression IDENT != (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) ; (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) ))))) )) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (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 (sized_type_specifier long) (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor (sized_type_specifier long) (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 IDENT & LIT) )) != LIT) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (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 = (binary_expression IDENT & 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 = 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) ))))) ;) (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 (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) + LIT) ))) ]) == (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) >> (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )))) ;) })) (break_statement break ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != (char_literal ' character ')) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (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) )))) = (binary_expression IDENT >> (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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 : (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;)) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (parenthesized_expression ( (binary_expression LIT << (parenthesized_expression ( (binary_expression (binary_expression IDENT - LIT) & LIT) ))) )) * LIT) - LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) + (subscript_expression IDENT [ LIT ])) & IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) & IDENT) )) <= IDENT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) + (subscript_expression IDENT [ LIT ])) & IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) & IDENT) )) <= IDENT) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (string_literal " string_content escape_sequence ")) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (string_literal " string_content escape_sequence ")) ;) }))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;)) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (binary_expression (binary_expression (parenthesized_expression ( IDENT )) * (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 (sized_type_specifier long) (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 { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) != LIT) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) != LIT) ))) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (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 (subscript_expression IDENT [ (binary_expression IDENT * LIT) ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression IDENT * LIT)) + LIT) )))) = LIT) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) 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 = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT - LIT) )) + (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) >> (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) ))) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression IDENT <= IDENT) || (parenthesized_expression ( (binary_expression IDENT < IDENT) ))) )) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT , IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) })) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (binary_expression IDENT + (binary_expression IDENT * LIT))) )) ;) (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 = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT * LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ IDENT ]) + LIT) )))) == IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ IDENT ]) + LIT) ))))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT - LIT) )) + (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) >> (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) ))) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (while_statement while (parenthesized_expression ( BOOL )) (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 = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT - LIT) )) + (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) >> (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) ))) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * IDENT)) == LIT) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression IDENT <= IDENT) || (parenthesized_expression ( (binary_expression IDENT < IDENT) ))) )) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT , IDENT , IDENT , IDENT ))) ;) })) })) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;)) (for_statement for ( (assignment_expression IDENT = IDENT) ; (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ; (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (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 = (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 (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) + (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != 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 , (pointer_expression & IDENT) , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , IDENT ))))) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return ;) })) (expression_statement (assignment_expression IDENT = (string_literal " string_content escape_sequence ")) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (return_statement return ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (return_statement return ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence string_content escape_sequence ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (return_statement return ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;)) (goto_statement goto statement_identifier ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (goto_statement goto statement_identifier ;) (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (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 (sized_type_specifier long) (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (goto_statement goto statement_identifier ;) })))
(function_definition "void FUN_0011bca0(void)\n\n{\n  byte bVar1;\n  uint uVar2;\n  long *plVar3;\n  byte *pbVar4;\n  long lVar5;\n  long *plVar6;\n  undefined *puVar7;\n  char cVar8;\n  int iVar9;\n  undefined4 uVar10;\n  undefined8 uVar11;\n  size_t sVar12;\n  long lVar13;\n  undefined8 uVar14;\n  long lVar15;\n  long lVar16;\n  long *plVar17;\n  void *__ptr;\n  long *plVar18;\n  char *pcVar19;\n  byte *pbVar20;\n  undefined8 *puVar21;\n  undefined8 *puVar22;\n  ulong uVar23;\n  undefined8 uVar24;\n  ulong uVar25;\n  long *plVar26;\n  undefined8 *puVar27;\n  long lVar28;\n  ulong uVar29;\n  ulong uVar30;\n  char *pcVar31;\n  byte *pbVar32;\n  long lVar33;\n  ulong uVar34;\n  byte bVar35;\n  long *plVar36;\n  ulong uVar37;\n  bool bVar38;\n  bool bVar39;\n  byte bVar40;\n  uint local_40;\n  undefined4 uStack_3c;\n  \n  bVar40 = 0;\n  if (DAT_0017fb98 != 0) {\n    FUN_00112d70();\n  }\n  DAT_0017f440 = DAT_0017fcc8;\n  FUN_00115a50(FUN_001182b0,DAT_0017f430);\n  FUN_00113540();\n  FUN_00123c10();\n  for (puVar21 = DAT_0017f2e0; puVar21 != (undefined8 *)0x0; puVar21 = (undefined8 *)*puVar21) {\n    FUN_00112b40(puVar21[1]);\n  }\n  iVar9 = bfd_section_already_linked_table_init();\n  if (iVar9 == 0) {\n    uVar11 = dcgettext(0,"%F%P: can not create hash table: %E\n",5);\n    FUN_001251f0(uVar11);\n  }\n  _DAT_0017f2c0 = _DAT_0017f2c0 + 1;\n  DAT_0017f440 = DAT_0017fcc8;\n  FUN_00119910(DAT_0017f430,0);\n  plVar3 = DAT_0017fa28;\n  plVar26 = DAT_0017fa20;\n  plVar18 = DAT_0017f2f8;\n  plVar17 = DAT_0017f2f0;\n  if ((DAT_0017fac1 & 2) != 0) {\n    lVar16 = *(long *)PTR_DAT_0017e650;\n    plVar36 = *(long **)(PTR_DAT_0017e650 + 8);\n    iVar9 = FUN_00128bb0();\n    if (iVar9 != 0) {\n      uVar11 = FUN_00128550();\n      uVar14 = dcgettext(0,"%F%P: %s: plugin reported error after all symbols read\n",5);\n      FUN_001251f0(uVar14,uVar11);\n    }\n    FUN_00119910(*plVar36,0);\n    puVar7 = PTR_DAT_0017e650;\n    if (*(long *)PTR_DAT_0017e650 != lVar16) {\n      FUN_001252b0("../../ld/ldlang.c",0x1baf);\n    }\n    plVar6 = *(long **)(puVar7 + 8);\n    lVar16 = *plVar36;\n    *(long **)(puVar7 + 8) = plVar36;\n    *plVar36 = 0;\n    if (DAT_0017f2f0 != plVar17) {\n      FUN_001252b0("../../ld/ldlang.c",0x1baf);\n    }\n    plVar36 = DAT_0017f2f8;\n    plVar17 = (long *)*plVar18;\n    DAT_0017f2f8 = plVar18;\n    *plVar18 = 0;\n    if (DAT_0017fa20 != plVar26) {\n      FUN_001252b0("../../ld/ldlang.c",0x1baf);\n    }\n    plVar26 = DAT_0017fa28;\n    lVar15 = *plVar3;\n    DAT_0017fa28 = plVar3;\n    *plVar3 = 0;\n    plVar18 = DAT_0017f2f0;\n    plVar3 = DAT_0017fa20;\n    if (lVar16 != 0) {\n      for (; DAT_0017f380 = plVar3, plVar18 != (long *)0x0; plVar18 = (long *)plVar18[6]) {\n        if ((*(byte *)((long)plVar18 + 0x49) & 0x20) != 0) {\n          if ((*(byte *)((long)plVar18 + 0x49) & 0x40) == 0) goto LAB_0011d6c0;\n          break;\n        }\n        if ((plVar18[4] != 0) && (*(long *)(plVar18[4] + 0xd0) == 0)) {\n          DAT_0017f380 = plVar18;\n        }\n        plVar3 = DAT_0017f380;\n      }\n      plVar18 = DAT_0017f380;\n      if (DAT_0017f380 == (long *)0x0) {\n        FUN_001252b0("../../ld/ldlang.c",0x1c32);\n        plVar18 = DAT_0017f380;\n      }\nLAB_0011d6c0:\n      DAT_0017f380 = plVar18;\n      plVar18 = DAT_0017f380;\n      puVar7 = PTR_DAT_0017e650;\n      *plVar6 = *DAT_0017f380;\n      *plVar18 = lVar16;\n      if (plVar18 == *(long **)(puVar7 + 8)) {\n        *(long **)(puVar7 + 8) = plVar6;\n      }\n      *plVar26 = plVar18[7];\n      bVar38 = DAT_0017fa28 == plVar18 + 7;\n      plVar18[7] = lVar15;\n      plVar3 = DAT_0017f2f8;\n      if (bVar38) {\n        DAT_0017fa28 = plVar26;\n      }\n      if (plVar18[2] == 0) {\n        *plVar36 = (long)DAT_0017f2f0;\n        DAT_0017f2f0 = plVar17;\n        if ((long **)plVar3 != &DAT_0017f2f0) {\n          plVar36 = DAT_0017f2f8;\n        }\n      }\n      else {\n        *plVar36 = plVar18[6];\n        plVar18[6] = (long)plVar17;\n        if (plVar3 != plVar18 + 6) {\n          plVar36 = DAT_0017f2f8;\n        }\n      }\n      DAT_0017f2f8 = plVar36;\n      plVar18 = DAT_0017f2f8;\n      plVar17 = DAT_0017f2f0;\n      _DAT_0017f2c0 = _DAT_0017f2c0 + 1;\n      FUN_00119910(DAT_0017f430);\n      if (DAT_0017f2f0 != plVar17) {\n        FUN_001252b0("../../ld/ldlang.c");\n      }\n      lVar16 = *plVar18;\n      DAT_0017f2f8 = plVar18;\n      *plVar18 = 0;\n      while (lVar16 != 0) {\n        lVar15 = *(long *)(*(long *)(lVar16 + 0x20) + 0xd0);\n        lVar13 = *(long *)(lVar16 + 0x20);\n        if (lVar15 != 0) {\n          lVar13 = lVar15;\n        }\n        if (DAT_0017fa20 == (long *)0x0) {\nLAB_0011dad0:\n          plVar17 = DAT_0017f2f0;\n        }\n        else {\n          plVar26 = (long *)0x0;\n          plVar18 = DAT_0017fa20;\n          plVar17 = (long *)0x0;\n          do {\n            while (plVar18[4] != lVar13) {\n              if ((plVar18[4] != 0) && (plVar18[6] != 0)) {\n                plVar26 = plVar18;\n              }\n              plVar18 = (long *)plVar18[7];\n              if (plVar18 == (long *)0x0) goto LAB_0011d7f1;\n            }\n            lVar28 = plVar18[6];\n            if (lVar28 != 0) {\n              plVar17 = (long *)(lVar28 + 0x30);\n              lVar13 = *(long *)(lVar28 + 0x30);\n              goto LAB_0011d835;\n            }\n            plVar18 = (long *)plVar18[7];\n            plVar17 = plVar26;\n          } while (plVar18 != (long *)0x0);\nLAB_0011d7f1:\n          if (plVar17 == (long *)0x0) goto LAB_0011dad0;\n        }\n        plVar17 = plVar17 + 6;\n        for (lVar13 = *plVar17; lVar13 != 0; lVar13 = *(long *)(lVar13 + 0x30)) {\n          if (((*(byte *)(lVar13 + 0x49) & 0x40) == 0) &&\n             (*(long *)(*(long *)(lVar13 + 0x20) + 0xd0) == 0)) {\n            lVar13 = *plVar17;\n            break;\n          }\n          plVar17 = (long *)(lVar13 + 0x30);\n        }\nLAB_0011d835:\n        plVar18 = (long *)(lVar16 + 0x30);\n        if (lVar15 == 0) {\n          *plVar17 = lVar16;\n          lVar15 = *(long *)(lVar16 + 0x30);\n          *(long *)(lVar16 + 0x30) = lVar13;\n          lVar16 = lVar15;\n        }\n        else {\n          lVar28 = *(long *)(lVar16 + 0x30);\n          if (lVar28 != 0) {\n            lVar5 = *(long *)(*(long *)(lVar28 + 0x20) + 0xd0);\n            while (lVar15 == lVar5) {\n              plVar18 = (long *)(lVar28 + 0x30);\n              lVar28 = *(long *)(lVar28 + 0x30);\n              if (lVar28 == 0) break;\n              lVar5 = *(long *)(*(long *)(lVar28 + 0x20) + 0xd0);\n            }\n          }\n          *plVar17 = lVar16;\n          lVar16 = *plVar18;\n          *plVar18 = lVar13;\n          if (*(long *)(lVar15 + 0x100) != 0) {\n            *(long **)(*(long *)(lVar15 + 0x100) + 0x30) = plVar18 + -6;\n          }\n        }\n      }\n    }\n  }\n  if (DAT_0017fb38 != (undefined8 *)0x0) {\n    FUN_001252b0("../../ld/ldlang.c",0x1c67);\n  }\n  DAT_0017fb38 = &DAT_0017f2e0;\n  if (DAT_0017f2e8 == (undefined *)0x0) {\n    DAT_0017fb38 = DAT_0017f2e0;\n    if (PTR_s_start_0017e660 != (undefined *)0x0) {\n      FUN_00115880();\n    }\n  }\n  if (DAT_0017fb48 != 0) {\n    FUN_00115880();\n  }\n  if (DAT_0017fb50 != 0) {\n    FUN_00115880();\n  }\n  FUN_00123b90();\n  if ((DAT_0017fc98 != 0) && (DAT_0017f3d0 != (undefined8 *)0x0)) {\n    uVar11 = dcgettext(0,"\nAs-needed library included to satisfy reference by file (symbol)\n\n",5)\n    ;\n    FUN_001252f0(uVar11);\n    for (puVar21 = DAT_0017f3d0; puVar21 != (undefined8 *)0x0; puVar21 = (undefined8 *)*puVar21) {\n      FUN_001252f0(&DAT_0013efee,puVar21[1]);\n      sVar12 = strlen((char *)puVar21[1]);\n      if (0x1c < sVar12) {\n        FUN_00124290();\n        sVar12 = 0;\n      }\n      do {\n        FUN_00124270();\n        sVar12 = sVar12 + 1;\n      } while (sVar12 != 0x1e);\n      if (puVar21[2] != 0) {\n        FUN_001252f0(&DAT_0013f279);\n      }\n      FUN_001252f0("(%pT)\n",puVar21[3]);\n    }\n  }\n  bfd_section_already_linked_table_free();\n  plVar17 = DAT_0017f2f0;\njoined_r0x0011be7f:\n  if (plVar17 != (long *)0x0) {\n    do {\n      if ((*(byte *)((long)plVar17 + 0x49) & 0x20) == 0) {\n        lVar16 = plVar17[4];\n        lVar13 = bfd_arch_get_compatible(lVar16,DAT_0017fb10,DAT_0017fbdc);\n        lVar15 = DAT_0017fb10;\n        if (((DAT_0017fac0 & 3) == 2) || ((DAT_0017fac3 & 8) != 0)) {\n          if (lVar13 != 0) {\n            puVar21 = *(undefined8 **)(lVar16 + 8);\n            puVar27 = *(undefined8 **)(DAT_0017fb10 + 8);\n            if ((*(int *)(puVar21 + 1) != *(int *)(puVar27 + 1)) &&\n               ((*(byte *)(lVar16 + 0x44) & 0x20) != 0)) goto LAB_0011c12e;\n            goto LAB_0011bed4;\n          }\n          if ((*(byte *)(lVar16 + 0x44) & 0x20) != 0) {\n            puVar21 = *(undefined8 **)(lVar16 + 8);\n            puVar27 = *(undefined8 **)(DAT_0017fb10 + 8);\nLAB_0011c12e:\n            uVar11 = *puVar27;\n            uVar14 = *puVar21;\n            uVar24 = 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_001251f0(uVar24,uVar14,lVar16,uVar11,lVar15);\n            goto joined_r0x0011c167;\n          }\n        }\n        else {\njoined_r0x0011c167:\n          if (lVar13 != 0) {\nLAB_0011bed4:\n            if (*(int *)(lVar16 + 0xa0) == 0) goto LAB_0011bf30;\n            uVar11 = 0;\n            if (DAT_0017fbd0 == 0) {\n              uVar11 = bfd_set_error_handler(FUN_00112380);\n            }\n            iVar9 = (**(code **)(*(long *)(DAT_0017fb10 + 8) + 0x140))(lVar16,&DAT_0017fac0);\n            if (iVar9 == 0) {\n              if (DAT_0017fbd0 != 0) {\n                uVar14 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);\n                FUN_001251f0(uVar14,lVar16);\n                goto LAB_0011c5b0;\n              }\n            }\n            else {\nLAB_0011c5b0:\n              if (DAT_0017fbd0 != 0) goto code_r0x0011c5be;\n            }\n            bfd_set_error_handler(uVar11);\n            goto LAB_0011bf30;\n          }\n        }\n        if (DAT_0017fbd0 == 0) goto LAB_0011bf30;\n        uVar11 = bfd_printable_name(DAT_0017fb10);\n        uVar14 = bfd_printable_name(lVar16);\n        uVar24 = dcgettext(0,\n                           "%X%P: %s architecture of input file `%pB\' is incompatible with %s output\n"\n                           ,5);\n        FUN_001251f0(uVar24,uVar14,lVar16,uVar11);\n        plVar17 = (long *)plVar17[6];\n      }\n      else {\nLAB_0011bf30:\n        plVar17 = (long *)plVar17[6];\n      }\n      if (plVar17 == (long *)0x0) break;\n    } while( true );\n  }\n  if (DAT_0017fc30 != 0) {\n    uVar11 = 0;\n    for (plVar17 = DAT_0017f2f0; plVar17 != (long *)0x0; plVar17 = (long *)plVar17[6]) {\n      lVar16 = bfd_get_section_by_name(plVar17[4],".exports");\n      if (lVar16 != 0) {\n        lVar15 = *(long *)(lVar16 + 0x38);\n        pcVar31 = (char *)xmalloc(lVar15);\n        iVar9 = bfd_get_section_contents(plVar17[4],lVar16,pcVar31,0,lVar15);\n        if (iVar9 == 0) {\n          uVar14 = dcgettext(0,"%X%P: unable to read .exports section contents\n",5);\n          FUN_001251f0(uVar14,lVar16);\n        }\n        pcVar19 = pcVar31 + lVar15;\n        for (; pcVar31 < pcVar19; pcVar31 = pcVar31 + sVar12 + 1) {\n          uVar11 = FUN_0011b640(uVar11,pcVar31,0);\n          sVar12 = strlen(pcVar31);\n        }\n        *(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) | 0x208000;\n      }\n    }\n    uVar14 = FUN_0011b640(0,&DAT_0013f157,0,0);\n    lVar15 = xcalloc(1,0x70);\n    lVar16 = DAT_0017fc30;\n    *(undefined8 *)(lVar15 + 0x18) = uVar11;\n    *(undefined8 *)(lVar15 + 0x38) = uVar14;\n    *(code **)(lVar15 + 0x68) = FUN_00112f60;\n    *(undefined4 *)(lVar15 + 0x60) = 0xffffffff;\n    FUN_0011b860(lVar16,lVar15,0);\n  }\n  FUN_0011eaa0();\n  if ((DAT_0017fc4c != 0) &&\n     (cVar8 = *(char *)(*(long *)(DAT_0017fb10 + 8) + 0x1c), DAT_0017fb20 != 0)) {\n    lVar16 = DAT_0017fb20;\n    do {\n      for (puVar21 = *(undefined8 **)(lVar16 + 0x90); puVar21 != (undefined8 *)0x0;\n          puVar21 = (undefined8 *)puVar21[2]) {\n        while( true ) {\n          pbVar4 = (byte *)*puVar21;\n          bVar35 = *pbVar4;\n          if (bVar35 == 0) break;\n          bVar1 = _sch_istable[(ulong)bVar35 * 2];\n          pbVar20 = pbVar4;\n          while (((bVar1 & 0x8c) != 0 || (bVar35 == 0x5f))) {\n            pbVar20 = pbVar20 + 1;\n            bVar35 = *pbVar20;\n            if (bVar35 == 0) goto LAB_0011d178;\n            bVar1 = _sch_istable[(ulong)bVar35 * 2];\n          }\n          puVar21 = (undefined8 *)puVar21[2];\n          if (puVar21 == (undefined8 *)0x0) goto LAB_0011d163;\n        }\nLAB_0011d178:\n        sVar12 = strlen((char *)pbVar4);\n        pcVar31 = (char *)xmalloc(sVar12 + 10);\n        *pcVar31 = cVar8;\n        sprintf(pcVar31 + (cVar8 != '\0'),"__start_%s",pbVar4);\n        FUN_00112ee0(pcVar31,puVar21);\n        pcVar31[1] = cVar8;\n        builtin_strncpy(pcVar31 + (2 - (ulong)(cVar8 == '\0')),"__stop",6);\n        FUN_00112ee0(pcVar31 + 1,puVar21);\n        free(pcVar31);\n      }\nLAB_0011d163:\n      lVar16 = *(long *)(lVar16 + 0xf0);\n    } while (lVar16 != 0);\n  }\n  FUN_001188a0(1);\n  puVar21 = DAT_0017f398;\njoined_r0x0011bfdf:\n  if (puVar21 != (undefined8 *)0x0) {\n    do {\n      if (puVar21[3] != 0) {\n        FUN_00123150();\n        uVar11 = DAT_0017fd20;\n        if (DAT_0017fd38 == 0) {\n          uVar11 = *puVar21;\n          uVar14 = dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);\n          FUN_001251f0(uVar14,uVar11);\n        }\n        else {\n          puVar21[4] = DAT_0017fd20;\n          puVar21[7] = uVar11;\n        }\n      }\n      if (puVar21[6] != 0) {\n        FUN_00123150();\n        if (DAT_0017fd38 == 0) goto LAB_0011c1d0;\n        puVar21[5] = DAT_0017fd20;\n      }\n      puVar21 = (undefined8 *)puVar21[2];\n      if (puVar21 == (undefined8 *)0x0) break;\n    } while( true );\n  }\n  DAT_0017fd00 = 0;\n  if (((DAT_0017fac7 & 0x20) == 0) && (((DAT_0017fac0 & 3) != 2 || (DAT_0017fbc0 != 0)))) {\n    if (DAT_0017fc6c == 0) {\n      bfd_link_hash_traverse(DAT_0017fae8,FUN_001145f0,0);\n    }\n    else {\n      if (DAT_0017fc6c == 2) {\n        local_40 = 4;\n        do {\n          bfd_link_hash_traverse(DAT_0017fae8,FUN_001145f0,&local_40);\n          local_40 = local_40 - 1;\n        } while (local_40 != 0);\n        local_40 = 0;\n      }\n      else {\n        local_40 = 0;\n        do {\n          bfd_link_hash_traverse(DAT_0017fae8,FUN_001145f0,&local_40);\n          local_40 = local_40 + 1;\n        } while (local_40 < 5);\n        local_40 = 0xffffffff;\n      }\n      bfd_link_hash_traverse(DAT_0017fae8,FUN_001145f0,&local_40);\n    }\n  }\n  FUN_00119400(DAT_0017f430);\n  bVar35 = DAT_0017fac0;\n  plVar17 = DAT_0017f2f0;\n  if ((DAT_0017fac0 & 3) == 2) {\n    for (; plVar17 != (long *)0x0; plVar17 = (long *)plVar17[6]) {\n      if ((*(byte *)((long)plVar17 + 0x49) & 0x20) == 0) {\n        for (lVar16 = *(long *)(plVar17[4] + 0x90); lVar16 != 0; lVar16 = *(long *)(lVar16 + 0x10))\n        {\n          if ((*(uint *)(lVar16 + 0x20) & 0x2000) == 0) {\n            *(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) & 0xffff7fff;\n          }\n        }\n      }\n    }\n  }\n  if ((bVar35 & 0x40) != 0) {\n    (**(code **)(*(long *)(DAT_0017fb10 + 8) + 0x2f0))(DAT_0017fb10,&DAT_0017fac0);\n  }\n  lVar16 = DAT_0017fb20;\n  if ((DAT_0017fac6 & 0x20) != 0) {\n    for (; lVar16 != 0; lVar16 = *(long *)(lVar16 + 0xf0)) {\n      iVar9 = bfd_link_check_relocs(lVar16,&DAT_0017fac0);\n      if (iVar9 == 0) {\n        DAT_0017fc44 = 0;\n      }\n    }\n  }\n  FUN_00123ba0();\n  FUN_001124e0(DAT_0017f430);\n  _DAT_0017f2c0 = _DAT_0017f2c0 + 1;\n  FUN_00119520(DAT_0017f430,0,0);\n  plVar18 = (long *)0x0;\n  plVar26 = (long *)0x0;\n  plVar17 = DAT_0017fa60;\n  while (plVar36 = plVar17, plVar3 = (long *)*plVar36, plVar3 != (long *)0x0) {\n    plVar17 = plVar3;\n    if ((int)plVar3[1] == 0) {\n      if ((plVar26 != (long *)0x0) && (plVar3 != (long *)plVar26[4])) {\n        FUN_001252b0("../../ld/ldlang.c",0xea0);\n        plVar17 = (long *)*plVar36;\n      }\n      *(int *)((long)plVar3 + 0x84) = -2 - *(int *)((long)plVar3 + 0x84);\n      plVar26 = plVar3;\n      if (plVar18 == (long *)0x0) {\n        plVar18 = plVar3;\n      }\n    }\n    else if ((int)plVar3[1] == 0xe) {\n      lVar16 = FUN_00116e20(plVar3[2],0,0);\n      if (lVar16 == 0) {\nLAB_0011c415:\n        lVar16 = plVar3[2];\n        uVar11 = dcgettext(0,"%F%P: %s not found for insert\n",5);\n        FUN_001251f0(uVar11,lVar16);\n        plVar17 = DAT_0017f2f0;\n        goto joined_r0x0011c458;\n      }\n      if ((int)plVar3[3] != 0) {\n        do {\n          lVar16 = *(long *)(lVar16 + 0x28);\n          if (lVar16 == 0) goto LAB_0011c415;\n        } while (*(int *)(lVar16 + 0x84) < 0);\n      }\n      if (plVar26 != (long *)0x0) {\n        lVar15 = plVar18[5];\n        lVar13 = plVar26[4];\n        *(long *)(lVar15 + 0x20) = lVar13;\n        if (lVar13 == 0) {\n          DAT_0017fa68 = (long *)(lVar15 + 0x20);\n        }\n        else {\n          *(long *)(lVar13 + 0x28) = lVar15;\n        }\n        plVar26[4] = *(long *)(lVar16 + 0x20);\n        if (*(long *)(lVar16 + 0x20) == 0) {\n          DAT_0017fa68 = plVar26 + 4;\n        }\n        else {\n          *(long **)(*(long *)(lVar16 + 0x20) + 0x28) = plVar26;\n        }\n        plVar18[5] = lVar16;\n        lVar13 = 0;\n        lVar15 = 0;\n        *(long **)(lVar16 + 0x20) = plVar18;\n        do {\n          *(int *)((long)plVar18 + 0x84) = -2 - *(int *)((long)plVar18 + 0x84);\n          lVar28 = plVar18[7];\n          if (((lVar28 != 0) && (*(long *)(lVar28 + 0xf0) != 0)) && (lVar13 = lVar28, lVar15 == 0))\n          {\n            lVar15 = lVar28;\n          }\n        } while ((plVar26 != plVar18) && (plVar18 = (long *)plVar18[4], plVar18 != (long *)0x0));\n        plVar18 = (long *)0x0;\n        if (lVar13 != 0) {\n          lVar28 = *(long *)(lVar16 + 0x38);\n          if (lVar28 == 0) {\n            plVar18 = *(long **)(lVar16 + 0x28);\n            if (plVar18 != (long *)0x0) {\n              do {\n                if (((-1 < *(int *)((long)plVar18 + 0x84)) && (lVar28 = plVar18[7], lVar28 != 0)) &&\n                   (*(long *)(lVar28 + 0xf0) != 0)) goto LAB_0011cd61;\n                plVar18 = (long *)plVar18[5];\n              } while (plVar18 != (long *)0x0);\n              plVar18 = (long *)0x0;\n            }\n          }\n          else {\nLAB_0011cd61:\n            plVar18 = (long *)0x0;\n            if (lVar28 != lVar13) {\n              lVar5 = *(long *)(lVar15 + 0x18);\n              lVar33 = *(long *)(lVar13 + 0x10);\n              if (lVar5 == 0) {\n                *(long *)(DAT_0017fb10 + 0x90) = lVar33;\n              }\n              else {\n                *(long *)(lVar5 + 0x10) = lVar33;\n                lVar33 = *(long *)(lVar13 + 0x10);\n              }\n              if (lVar33 == 0) {\n                *(long *)(DAT_0017fb10 + 0x98) = lVar5;\n              }\n              else {\n                *(long *)(lVar33 + 0x18) = lVar5;\n              }\n              lVar5 = *(long *)(lVar28 + 0x10);\n              *(long *)(lVar13 + 0x10) = lVar5;\n              if (lVar5 == 0) {\n                *(long *)(DAT_0017fb10 + 0x98) = lVar13;\n              }\n              else {\n                *(long *)(lVar5 + 0x18) = lVar13;\n              }\n              *(long *)(lVar15 + 0x18) = lVar28;\n              plVar18 = (long *)0x0;\n              *(long *)(lVar28 + 0x10) = lVar15;\n            }\n          }\n        }\n      }\n      plVar17 = (long *)FUN_00112240(lVar16);\n      lVar16 = *DAT_0017fa60;\n      *DAT_0017fa60 = *(long *)*plVar36;\n      lVar15 = *plVar17;\n      *plVar36 = lVar15;\n      if (lVar15 == 0) {\n        DAT_0017f438 = plVar36;\n      }\n      *plVar17 = lVar16;\n      plVar26 = (long *)0x0;\n      plVar17 = DAT_0017fa60;\n    }\n  }\n  for (; (plVar17 = DAT_0017f2f0, plVar18 != (long *)0x0 &&\n         (*(int *)((long)plVar18 + 0x84) = -2 - *(int *)((long)plVar18 + 0x84),\n         plVar17 = DAT_0017f2f0, plVar26 != plVar18)); plVar18 = (long *)plVar18[4]) {\n  }\njoined_r0x0011c458:\n  for (; plVar17 != (long *)0x0; plVar17 = (long *)plVar17[6]) {\n    puVar21 = *(undefined8 **)(plVar17[4] + 0x90);\njoined_r0x0011c46e:\n    if (puVar21 != (undefined8 *)0x0) {\n      do {\n        if (puVar21[0xd] == 0) {\n          if ((*(byte *)(plVar17 + 9) & 0x10) != 0) goto code_r0x0011c493;\n          iVar9 = FUN_00113350(*(undefined4 *)(puVar21 + 4));\n          bVar38 = false;\n          bVar39 = iVar9 == 0;\n          if (bVar39) {\n            pbVar4 = (byte *)*puVar21;\n            lVar16 = 7;\n            pbVar20 = pbVar4;\n            pbVar32 = (byte *)"COMMON";\n            do {\n              if (lVar16 == 0) break;\n              lVar16 = lVar16 + -1;\n              bVar38 = *pbVar20 < *pbVar32;\n              bVar39 = *pbVar20 == *pbVar32;\n              pbVar20 = pbVar20 + (ulong)bVar40 * -2 + 1;\n              pbVar32 = pbVar32 + (ulong)bVar40 * -2 + 1;\n            } while (bVar39);\n            if ((!bVar38 && !bVar39) == bVar38) {\n              if (((DAT_0017fac0 & 3) != 2) || (DAT_0017fbc0 != 0)) {\n                lVar16 = DAT_0017f458;\n                if (DAT_0017f458 == 0) {\n                  lVar16 = FUN_00116e20(".bss",0,1);\n                  DAT_0017f458 = lVar16;\n                }\nLAB_0011c659:\n                FUN_00117b90(lVar16 + 0x10,puVar21,0);\n              }\n            }\n            else {\n              if (DAT_0017fc5c == 1) {\n                lVar16 = FUN_00116e20("/DISCARD/",0,1);\n                if ((*(long *)(lVar16 + 0x58) == 0) &&\n                   (((DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0)))) {\n                  uVar11 = FUN_00123030(0);\n                  *(undefined8 *)(lVar16 + 0x58) = uVar11;\n                }\n                goto LAB_0011c659;\n              }\n              if (DAT_0017fc5c == 3) {\n                uVar11 = puVar21[0x1e];\n                uVar14 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_001251f0(uVar14,puVar21,uVar11);\n              }\n              if ((DAT_0017fc78 == 0) && (iVar9 = FUN_001150a0(puVar21,0), iVar9 == 0)) {\n                uVar10 = 0;\n              }\n              else {\n                uVar10 = 0x17e;\n              }\n              lVar16 = FUN_00123c60(puVar21,pbVar4,uVar10);\n              if (lVar16 == 0) {\n                lVar16 = FUN_00116e20(pbVar4,uVar10,1);\n                if ((*(long *)(lVar16 + 0x58) == 0) &&\n                   (((DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0)))) {\n                  uVar11 = FUN_00123030(0);\n                  *(undefined8 *)(lVar16 + 0x58) = uVar11;\n                }\n                FUN_00117b90(lVar16 + 0x10,puVar21,0);\n              }\n              if (DAT_0017fc5c == 2) {\n                uVar11 = puVar21[0x1e];\n                uVar14 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_001251f0(uVar14,puVar21,uVar11);\n              }\n            }\n          }\n          else {\n            puVar21[0xd] = 0x17ed50;\n          }\n        }\n        puVar21 = (undefined8 *)puVar21[2];\n        if (puVar21 == (undefined8 *)0x0) break;\n      } while( true );\n    }\n  }\n  bVar35 = DAT_0017fac0 & 3;\n  plVar17 = DAT_0017f358;\n  plVar18 = DAT_0017fa60;\n  lVar16 = DAT_0017fb10;\n  if (bVar35 != 2) {\n    (**(code **)(*(long *)(DAT_0017fb10 + 8) + 0x300))(DAT_0017fb10,&DAT_0017fac0);\n    lVar16 = bfd_get_section_by_name(DAT_0017fb10,".text");\n    if (lVar16 == 0) {\n      bVar35 = DAT_0017fac0 & 3;\n      plVar17 = DAT_0017f358;\n      plVar18 = DAT_0017fa60;\n      lVar16 = DAT_0017fb10;\n    }\n    else {\n      bVar35 = DAT_0017fac0 & 3;\n      if (DAT_0017fc70 == 0) {\n        *(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) & 0xfffffff7;\n        plVar17 = DAT_0017f358;\n        plVar18 = DAT_0017fa60;\n        lVar16 = DAT_0017fb10;\n      }\n      else {\n        *(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) | 8;\n        plVar17 = DAT_0017f358;\n        plVar18 = DAT_0017fa60;\n        lVar16 = DAT_0017fb10;\n      }\n    }\n  }\n  for (; DAT_0017f358 = plVar17, DAT_0017fb10 = lVar16, plVar18 != (long *)0x0;\n      plVar18 = (long *)plVar18[4]) {\n    lVar16 = plVar18[5];\n    if ((((lVar16 != 0) && (plVar18[9] == 0)) && (plVar18[0xc] == 0)) &&\n       ((plVar18[0xb] == 0 && (plVar18[8] == *(long *)(lVar16 + 0x40))))) {\n      plVar18[9] = *(long *)(lVar16 + 0x48);\n    }\n    plVar17 = DAT_0017f358;\n    lVar16 = DAT_0017fb10;\n  }\n  if ((DAT_0017fc4c != 0) && (DAT_0017f350 != 0)) {\n    plVar18 = plVar17 + DAT_0017f350;\n    do {\n      lVar15 = *plVar17;\n      if ((*(byte *)(lVar15 + 0x19) & 8) == 0) {\n        puVar21 = (undefined8 *)(*(undefined8 **)(lVar15 + 0x28))[0xd];\n        if (((puVar21 == (undefined8 *)0x0) || (puVar21[0x1e] != lVar16)) ||\n           (iVar9 = strcmp((char *)**(undefined8 **)(lVar15 + 0x28),(char *)*puVar21), iVar9 != 0))\n        {\n          *(undefined1 *)(lVar15 + 0x18) = 1;\n          *(undefined8 *)(lVar15 + 0x28) = 0;\n        }\n      }\n      plVar17 = plVar17 + 1;\n    } while (plVar18 != plVar17);\n  }\n  if (bVar35 != 2) {\n    for (puVar21 = *(undefined8 **)(DAT_0017fb10 + 0x90); puVar21 != (undefined8 *)0x0;\n        puVar21 = (undefined8 *)puVar21[2]) {\n      pcVar31 = (char *)*puVar21;\n      sVar12 = strlen(pcVar31);\n      pcVar19 = (char *)xmalloc(sVar12 + 10);\n      sprintf(pcVar19,".startof.%s",pcVar31);\n      FUN_00112ee0(pcVar19,puVar21);\n      builtin_strncpy(pcVar19 + 1,".size",5);\n      FUN_00112ee0(pcVar19 + 1,puVar21);\n      free(pcVar19);\n    }\n  }\n  FUN_00123bc0();\n  plVar17 = (long *)0x0;\n  __ptr = (void *)xmalloc(0x50);\n  uVar2 = 10;\n  for (puVar21 = DAT_0017fa50; puVar21 != (undefined8 *)0x0; puVar21 = (undefined8 *)*puVar21) {\n    uVar30 = 0;\n    for (plVar18 = DAT_0017fa60; plVar18 != (long *)0x0; plVar18 = (long *)plVar18[4]) {\n      if (-1 < *(int *)((long)plVar18 + 0x84)) {\n        plVar26 = (long *)plVar18[0xe];\n        if (plVar26 == (long *)0x0) {\n          if (((*(int *)((long)plVar18 + 0x8c) != 2) && (plVar18[7] != 0)) &&\n             (((*(byte *)(plVar18[7] + 0x20) & 1) != 0 &&\n              (plVar26 = plVar17, plVar3 = plVar18, puVar21[2] != 3)))) {\n            while( true ) {\n              plVar17 = plVar26;\n              if (plVar26 != (long *)0x0) goto LAB_0011c7fd;\n              plVar3 = (long *)plVar3[4];\n              if (plVar3 == (long *)0x0) break;\n              plVar26 = (long *)plVar3[0xe];\n            }\n            plVar17 = (long *)0x0;\n            dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            FUN_001251f0();\n          }\n        }\n        else {\n          plVar17 = plVar26;\n          plVar3 = (long *)plVar18[7];\n          while (plVar3 != (long *)0x0) {\nLAB_0011c7fd:\n            iVar9 = strcmp((char *)plVar26[1],(char *)puVar21[1]);\n            uVar29 = uVar30;\n            if (iVar9 == 0) {\n              if (uVar2 <= (uint)uVar30) {\n                uVar2 = uVar2 << 1;\n                __ptr = (void *)xrealloc(__ptr,(ulong)uVar2 << 3);\n              }\n              uVar29 = (ulong)((uint)uVar30 + 1);\n              *(long *)((long)__ptr + uVar30 * 8) = plVar18[7];\n              *(undefined4 *)(plVar26 + 2) = 1;\n            }\n            plVar26 = (long *)*plVar26;\n            uVar30 = uVar29;\n            plVar3 = plVar26;\n          }\n        }\n      }\n    }\n    uVar10 = 0;\n    if (puVar21[5] != 0) {\n      uVar10 = FUN_00123800(puVar21[5],0,"phdr flags");\n    }\n    lVar16 = puVar21[4];\n    uVar11 = 0;\n    if (lVar16 != 0) {\n      uVar11 = FUN_00123800(lVar16,0,"phdr load address");\n      lVar16 = puVar21[4];\n    }\n    iVar9 = bfd_record_phdr(DAT_0017fb10,puVar21[2],puVar21[5] != 0,uVar10,lVar16 != 0,uVar11,\n                            *(undefined4 *)(puVar21 + 3),*(undefined4 *)((long)puVar21 + 0x1c),\n                            uVar30,__ptr);\n    if (iVar9 == 0) {\n      dcgettext(0,"%F%P: bfd_record_phdr failed: %E\n",5);\n      FUN_001251f0();\n    }\n  }\n  free(__ptr);\n  for (plVar17 = DAT_0017fa60; plVar17 != (long *)0x0; plVar17 = (long *)plVar17[4]) {\n    if ((-1 < *(int *)((long)plVar17 + 0x84)) && (plVar17[7] != 0)) {\n      plVar18 = (long *)plVar17[0xe];\njoined_r0x0011c90a:\n      if (plVar18 != (long *)0x0) {\n        do {\n          bVar38 = false;\n          bVar39 = (int)plVar18[2] == 0;\n          if (bVar39) {\n            pbVar4 = (byte *)plVar18[1];\n            lVar16 = 5;\n            pbVar20 = pbVar4;\n            pbVar32 = (byte *)0x130359;\n            do {\n              if (lVar16 == 0) break;\n              lVar16 = lVar16 + -1;\n              bVar38 = *pbVar20 < *pbVar32;\n              bVar39 = *pbVar20 == *pbVar32;\n              pbVar20 = pbVar20 + (ulong)bVar40 * -2 + 1;\n              pbVar32 = pbVar32 + (ulong)bVar40 * -2 + 1;\n            } while (bVar39);\n            if ((!bVar38 && !bVar39) != bVar38) goto code_r0x0011c93b;\n          }\n          plVar18 = (long *)*plVar18;\n          if (plVar18 == (long *)0x0) break;\n        } while( true );\n      }\n    }\n  }\n  if (((DAT_0017fac3 & 0x10) != 0) && ((DAT_0017fac0 & 3) != 2)) {\n    local_40 = 0;\n    FUN_00119860(DAT_0017fd98,&local_40);\n    if (local_40 == 0) {\n      DAT_0017fac3 = DAT_0017fac3 & 0xef;\n    }\n  }\n  FUN_0011a050(0,1 < DAT_0017fad8);\n  FUN_00123bb0();\n  lVar16 = DAT_0017fb10;\n  uVar10 = DAT_0017f3c8;\n  if (DAT_0017f350 != 0) {\n    plVar17 = DAT_0017f358 + DAT_0017f350;\n    plVar18 = DAT_0017f358;\n    do {\n      while (lVar15 = *plVar18, (*(ushort *)(lVar15 + 0x18) & 0x8ff) == 3) {\n        pcVar31 = *(char **)(lVar15 + 8);\n        if (*pcVar31 != '.') {\n          cVar8 = *(char *)(*(long *)(lVar16 + 8) + 0x1c);\n          lVar13 = *(long *)(*(long *)(lVar15 + 0x28) + 0x68);\n          *(long *)(lVar15 + 0x28) = lVar13;\n          if (pcVar31[(int)((cVar8 != '\0') + 4)] == 'o') {\n            *(ulong *)(lVar15 + 0x30) = *(ulong *)(lVar13 + 0x38) >> ((byte)uVar10 & 0x3f);\n          }\n          break;\n        }\n        if (pcVar31[2] != 'i') break;\n        plVar18 = plVar18 + 1;\n        uVar30 = *(ulong *)(*(long *)(lVar15 + 0x28) + 0x38);\n        *(undefined8 *)(lVar15 + 0x28) = 0x17ed50;\n        *(ulong *)(lVar15 + 0x30) = uVar30 >> ((byte)uVar10 & 0x3f);\n        if (plVar18 == plVar17) goto LAB_0011ca60;\n      }\n      plVar18 = plVar18 + 1;\n    } while (plVar18 != plVar17);\n  }\nLAB_0011ca60:\n  FUN_001188a0(4);\n  FUN_00123be0();\n  FUN_00123b20();\n  puVar21 = DAT_0017f378;\n  if (DAT_0017fbd8 != '\0') {\n    cVar8 = bfd_arch_bits_per_address(DAT_0017fb10);\n    puVar21 = *(undefined8 **)(DAT_0017fb10 + 0x90);\n    uVar30 = (1L << (cVar8 - 1U & 0x3f)) * 2 - 1;\n    if (puVar21 != (undefined8 *)0x0) {\n      do {\n        if ((*(byte *)(puVar21 + 4) & 1) != 0) {\n          uVar29 = puVar21[5] + puVar21[7] & uVar30;\n          if ((uVar29 == 0) || ((puVar21[5] & uVar30) <= uVar29)) {\n            uVar29 = puVar21[7] + puVar21[6] & uVar30;\n            if ((uVar29 == 0) || ((puVar21[6] & uVar30) <= uVar29)) goto LAB_0011d2f0;\n            uVar11 = *puVar21;\n            pcVar31 = "%X%P: section %s LMA wraps around address space\n";\n          }\n          else {\n            uVar11 = *puVar21;\n            pcVar31 = "%X%P: section %s VMA wraps around address space\n";\n          }\n          uVar14 = dcgettext(0,pcVar31,5);\n          FUN_001251f0(uVar14,uVar11);\n        }\nLAB_0011d2f0:\n        puVar21 = (undefined8 *)puVar21[2];\n      } while (puVar21 != (undefined8 *)0x0);\n    }\n    puVar21 = DAT_0017f378;\n    if (1 < *(uint *)(DAT_0017fb10 + 0xa0)) {\n      uVar30 = 0;\n      plVar17 = (long *)xmalloc((ulong)*(uint *)(DAT_0017fb10 + 0xa0) << 4);\n      lVar16 = *(long *)(DAT_0017fb10 + 0x90);\n      if (lVar16 != 0) {\n        do {\n          uVar29 = uVar30;\n          if ((((*(uint *)(lVar16 + 0x20) & 1) != 0) &&\n              ((*(uint *)(lVar16 + 0x20) & 0x402) != 0x400)) && (*(long *)(lVar16 + 0x38) != 0)) {\n            uVar29 = uVar30 + 1;\n            plVar17[uVar30 * 2] = lVar16;\n            *(undefined4 *)(plVar17 + uVar30 * 2 + 1) = 0;\n          }\n          lVar16 = *(long *)(lVar16 + 0x10);\n          uVar30 = uVar29;\n        } while (lVar16 != 0);\n        if (1 < uVar29) {\n          qsort(plVar17,uVar29,0x10,FUN_00112320);\n          puVar21 = (undefined8 *)0x0;\n          plVar18 = plVar17;\n          uVar30 = 0;\n          uVar25 = 0;\n          do {\n            puVar27 = (undefined8 *)*plVar18;\n            puVar22 = puVar21;\n            uVar34 = uVar30;\n            uVar23 = uVar25;\n            if ((*(byte *)(puVar27 + 4) & 2) != 0) {\n              uVar34 = puVar27[6];\n              uVar23 = (uVar34 - 1) + ((ulong)puVar27[7] >> ((byte)DAT_0017f3c8 & 0x3f));\n              puVar22 = puVar27;\n              if ((puVar21 != (undefined8 *)0x0) && ((uVar34 <= uVar25 || (uVar25 < uVar30)))) {\n                uVar11 = *puVar21;\n                uVar14 = *puVar27;\n                uVar24 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);\n                FUN_001251f0(uVar24,uVar14,uVar34,uVar23,uVar11,uVar30,uVar25);\n                *(undefined4 *)(plVar18 + 1) = 1;\n              }\n            }\n            plVar18 = plVar18 + 2;\n            puVar21 = puVar22;\n            uVar30 = uVar34;\n            uVar25 = uVar23;\n          } while (plVar18 != plVar17 + uVar29 * 2);\n          qsort(plVar17,uVar29,0x10,FUN_00112350);\n          puVar21 = (undefined8 *)*plVar17;\n          uVar23 = 1;\n          uVar30 = puVar21[5];\n          uVar25 = uVar30;\n          do {\n            lVar16 = uVar23 * 2;\n            if (*(ulong *)(plVar17[lVar16] + 0x28) == uVar25) goto LAB_0011d4c4;\n            uVar23 = uVar23 + 1;\n            uVar25 = *(ulong *)(plVar17[lVar16] + 0x28);\n          } while (uVar23 != uVar29);\n          uVar23 = 0;\n          uVar25 = (uVar30 - 1) + ((ulong)puVar21[7] >> ((byte)DAT_0017f3c8 & 0x3f));\n          plVar18 = plVar17;\n          while( true ) {\n            uVar37 = uVar25;\n            uVar34 = uVar30;\n            puVar27 = puVar21;\n            plVar26 = plVar18 + 2;\n            uVar23 = uVar23 + 1;\n            if (uVar23 == uVar29) break;\n            puVar21 = (undefined8 *)*plVar26;\n            plVar3 = plVar18 + 3;\n            uVar30 = puVar21[5];\n            uVar25 = (uVar30 - 1) + ((ulong)puVar21[7] >> ((byte)DAT_0017f3c8 & 0x3f));\n            plVar18 = plVar26;\n            if (((int)*plVar3 == 0) && ((uVar30 <= uVar37 || (uVar37 < uVar34)))) {\n              uVar11 = *puVar27;\n              uVar14 = *puVar21;\n              uVar24 = dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",\n                                 5);\n              FUN_001251f0(uVar24,uVar14,uVar30,uVar25,uVar11,uVar34,uVar37);\n            }\n          }\nLAB_0011d4c4:\n          free(plVar17);\n          for (puVar27 = DAT_0017f398; puVar21 = DAT_0017f378, puVar27 != (undefined8 *)0x0;\n              puVar27 = (undefined8 *)puVar27[2]) {\n            if (*(int *)(puVar27 + 10) != 0) {\n              uVar11 = *puVar27;\n              lVar16 = puVar27[7] - (puVar27[5] + puVar27[4]);\n              uVar14 = dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",lVar16,5);\n              FUN_001251f0(uVar14,uVar11,lVar16);\n            }\n          }\n          goto joined_r0x0011ca92;\n        }\n      }\n      free(plVar17);\n      puVar21 = DAT_0017f378;\n    }\n  }\njoined_r0x0011ca92:\n  for (; puVar21 != (undefined8 *)0x0; puVar21 = (undefined8 *)puVar21[1]) {\n    lVar16 = bfd_link_hash_lookup(DAT_0017fae8,*puVar21,0,0,1);\n    if ((lVar16 == 0) || (1 < (byte)(*(char *)(lVar16 + 0x18) - 3U))) {\n      uVar11 = *puVar21;\n      uVar14 = dcgettext(0,"%X%P: required symbol `%s\' not defined\n",5);\n      FUN_001251f0(uVar14,uVar11);\n    }\n  }\n  iVar9 = DAT_0017fa0c;\n  if (((DAT_0017fac0 & 0x43) != 2) && ((DAT_0017fac0 & 3) != 3)) {\n    iVar9 = 1;\n  }\n  if (((DAT_0017fac0 & 0x43) == 0x42) && (DAT_0017fa0c == 0 && _DAT_0017fa08 == 0)) {\n    uVar11 = dcgettext(0,"%F%P: gc-sections requires either an entry or an undefined symbol\n",5);\n    FUN_001251f0(uVar11);\n  }\n  if (DAT_0017f2e8 == (undefined *)0x0) {\n    DAT_0017f2e8 = PTR_s_start_0017e660;\n    iVar9 = 0;\n  }\n  lVar16 = bfd_link_hash_lookup(DAT_0017fae8,DAT_0017f2e8,0,0,1);\n  if ((lVar16 != 0) && ((byte)(*(char *)(lVar16 + 0x18) - 3U) < 2)) {\n    lVar15 = *(long *)(*(long *)(lVar16 + 0x28) + 0x68);\n    if (lVar15 != 0) {\n      iVar9 = bfd_set_start_address\n                        (DAT_0017fb10,\n                         *(long *)(lVar15 + 0x28) +\n                         *(long *)(*(long *)(lVar16 + 0x28) + 0x60) + *(long *)(lVar16 + 0x30));\n      if (iVar9 != 0) {\n        return;\n      }\n      pcVar31 = "%F%P: %s: can\'t set start address\n";\n      goto LAB_0011cf37;\n    }\n  }\n  uVar11 = bfd_scan_vma(DAT_0017f2e8,&local_40,0);\n  if (*(char *)CONCAT44(uStack_3c,local_40) == '\0') {\n    iVar9 = bfd_set_start_address(DAT_0017fb10,uVar11);\n  }\n  else {\n    lVar16 = bfd_get_section_by_name(DAT_0017fb10,PTR_s__text_0017e648);\n    puVar7 = DAT_0017f2e8;\n    if (lVar16 == 0) {\n      if (iVar9 == 0) {\n        return;\n      }\n      pcVar31 = "%P: warning: cannot find entry symbol %s; not setting start address\n";\nLAB_0011cf37:\n      puVar7 = DAT_0017f2e8;\n      uVar11 = dcgettext(0,pcVar31,5);\n      FUN_001251f0(uVar11,puVar7);\n      return;\n    }\n    uVar11 = *(undefined8 *)(lVar16 + 0x28);\n    if (iVar9 != 0) {\n      uVar14 = dcgettext(0,"%P: warning: cannot find entry symbol %s; defaulting to %V\n",5);\n      FUN_001251f0(uVar14,puVar7,uVar11);\n      uVar11 = *(undefined8 *)(lVar16 + 0x28);\n    }\n    iVar9 = bfd_set_start_address(DAT_0017fb10,uVar11);\n  }\n  if (iVar9 != 0) {\n    return;\n  }\n  uVar11 = dcgettext(0,"%F%P: can\'t set start address\n",5);\n  FUN_001251f0(uVar11);\n  return;\ncode_r0x0011c5be:\n  plVar17 = (long *)plVar17[6];\n  goto joined_r0x0011be7f;\nLAB_0011c1d0:\n  uVar11 = *puVar21;\n  uVar14 = dcgettext(0,"%F%P: invalid length for memory region %s\n",5);\n  FUN_001251f0(uVar14,uVar11);\n  puVar21 = (undefined8 *)puVar21[2];\n  goto joined_r0x0011bfdf;\ncode_r0x0011c493:\n  (**(code **)(*(long *)(plVar17[4] + 8) + 0x2c8))(puVar21,&DAT_0017fac0);\n  puVar21 = (undefined8 *)puVar21[2];\n  goto joined_r0x0011c46e;\ncode_r0x0011c93b:\n  lVar16 = plVar17[6];\n  uVar11 = dcgettext(0,"%X%P: section `%s\' assigned to non-existent phdr `%s\'\n",5);\n  FUN_001251f0(uVar11,lVar16,pbVar4);\n  plVar18 = (long *)*plVar18;\n  goto joined_r0x0011c90a;\n}" (primitive_type "void") (function_declarator "FUN_0011bca0(void)" (identifier "FUN_0011bca0") (parameter_list "(void)" (( "(") (parameter_declaration "void" (primitive_type "void")) () ")"))) (compound_statement "{\n  byte bVar1;\n  uint uVar2;\n  long *plVar3;\n  byte *pbVar4;\n  long lVar5;\n  long *plVar6;\n  undefined *puVar7;\n  char cVar8;\n  int iVar9;\n  undefined4 uVar10;\n  undefined8 uVar11;\n  size_t sVar12;\n  long lVar13;\n  undefined8 uVar14;\n  long lVar15;\n  long lVar16;\n  long *plVar17;\n  void *__ptr;\n  long *plVar18;\n  char *pcVar19;\n  byte *pbVar20;\n  undefined8 *puVar21;\n  undefined8 *puVar22;\n  ulong uVar23;\n  undefined8 uVar24;\n  ulong uVar25;\n  long *plVar26;\n  undefined8 *puVar27;\n  long lVar28;\n  ulong uVar29;\n  ulong uVar30;\n  char *pcVar31;\n  byte *pbVar32;\n  long lVar33;\n  ulong uVar34;\n  byte bVar35;\n  long *plVar36;\n  ulong uVar37;\n  bool bVar38;\n  bool bVar39;\n  byte bVar40;\n  uint local_40;\n  undefined4 uStack_3c;\n  \n  bVar40 = 0;\n  if (DAT_0017fb98 != 0) {\n    FUN_00112d70();\n  }\n  DAT_0017f440 = DAT_0017fcc8;\n  FUN_00115a50(FUN_001182b0,DAT_0017f430);\n  FUN_00113540();\n  FUN_00123c10();\n  for (puVar21 = DAT_0017f2e0; puVar21 != (undefined8 *)0x0; puVar21 = (undefined8 *)*puVar21) {\n    FUN_00112b40(puVar21[1]);\n  }\n  iVar9 = bfd_section_already_linked_table_init();\n  if (iVar9 == 0) {\n    uVar11 = dcgettext(0,"%F%P: can not create hash table: %E\n",5);\n    FUN_001251f0(uVar11);\n  }\n  _DAT_0017f2c0 = _DAT_0017f2c0 + 1;\n  DAT_0017f440 = DAT_0017fcc8;\n  FUN_00119910(DAT_0017f430,0);\n  plVar3 = DAT_0017fa28;\n  plVar26 = DAT_0017fa20;\n  plVar18 = DAT_0017f2f8;\n  plVar17 = DAT_0017f2f0;\n  if ((DAT_0017fac1 & 2) != 0) {\n    lVar16 = *(long *)PTR_DAT_0017e650;\n    plVar36 = *(long **)(PTR_DAT_0017e650 + 8);\n    iVar9 = FUN_00128bb0();\n    if (iVar9 != 0) {\n      uVar11 = FUN_00128550();\n      uVar14 = dcgettext(0,"%F%P: %s: plugin reported error after all symbols read\n",5);\n      FUN_001251f0(uVar14,uVar11);\n    }\n    FUN_00119910(*plVar36,0);\n    puVar7 = PTR_DAT_0017e650;\n    if (*(long *)PTR_DAT_0017e650 != lVar16) {\n      FUN_001252b0("../../ld/ldlang.c",0x1baf);\n    }\n    plVar6 = *(long **)(puVar7 + 8);\n    lVar16 = *plVar36;\n    *(long **)(puVar7 + 8) = plVar36;\n    *plVar36 = 0;\n    if (DAT_0017f2f0 != plVar17) {\n      FUN_001252b0("../../ld/ldlang.c",0x1baf);\n    }\n    plVar36 = DAT_0017f2f8;\n    plVar17 = (long *)*plVar18;\n    DAT_0017f2f8 = plVar18;\n    *plVar18 = 0;\n    if (DAT_0017fa20 != plVar26) {\n      FUN_001252b0("../../ld/ldlang.c",0x1baf);\n    }\n    plVar26 = DAT_0017fa28;\n    lVar15 = *plVar3;\n    DAT_0017fa28 = plVar3;\n    *plVar3 = 0;\n    plVar18 = DAT_0017f2f0;\n    plVar3 = DAT_0017fa20;\n    if (lVar16 != 0) {\n      for (; DAT_0017f380 = plVar3, plVar18 != (long *)0x0; plVar18 = (long *)plVar18[6]) {\n        if ((*(byte *)((long)plVar18 + 0x49) & 0x20) != 0) {\n          if ((*(byte *)((long)plVar18 + 0x49) & 0x40) == 0) goto LAB_0011d6c0;\n          break;\n        }\n        if ((plVar18[4] != 0) && (*(long *)(plVar18[4] + 0xd0) == 0)) {\n          DAT_0017f380 = plVar18;\n        }\n        plVar3 = DAT_0017f380;\n      }\n      plVar18 = DAT_0017f380;\n      if (DAT_0017f380 == (long *)0x0) {\n        FUN_001252b0("../../ld/ldlang.c",0x1c32);\n        plVar18 = DAT_0017f380;\n      }\nLAB_0011d6c0:\n      DAT_0017f380 = plVar18;\n      plVar18 = DAT_0017f380;\n      puVar7 = PTR_DAT_0017e650;\n      *plVar6 = *DAT_0017f380;\n      *plVar18 = lVar16;\n      if (plVar18 == *(long **)(puVar7 + 8)) {\n        *(long **)(puVar7 + 8) = plVar6;\n      }\n      *plVar26 = plVar18[7];\n      bVar38 = DAT_0017fa28 == plVar18 + 7;\n      plVar18[7] = lVar15;\n      plVar3 = DAT_0017f2f8;\n      if (bVar38) {\n        DAT_0017fa28 = plVar26;\n      }\n      if (plVar18[2] == 0) {\n        *plVar36 = (long)DAT_0017f2f0;\n        DAT_0017f2f0 = plVar17;\n        if ((long **)plVar3 != &DAT_0017f2f0) {\n          plVar36 = DAT_0017f2f8;\n        }\n      }\n      else {\n        *plVar36 = plVar18[6];\n        plVar18[6] = (long)plVar17;\n        if (plVar3 != plVar18 + 6) {\n          plVar36 = DAT_0017f2f8;\n        }\n      }\n      DAT_0017f2f8 = plVar36;\n      plVar18 = DAT_0017f2f8;\n      plVar17 = DAT_0017f2f0;\n      _DAT_0017f2c0 = _DAT_0017f2c0 + 1;\n      FUN_00119910(DAT_0017f430);\n      if (DAT_0017f2f0 != plVar17) {\n        FUN_001252b0("../../ld/ldlang.c");\n      }\n      lVar16 = *plVar18;\n      DAT_0017f2f8 = plVar18;\n      *plVar18 = 0;\n      while (lVar16 != 0) {\n        lVar15 = *(long *)(*(long *)(lVar16 + 0x20) + 0xd0);\n        lVar13 = *(long *)(lVar16 + 0x20);\n        if (lVar15 != 0) {\n          lVar13 = lVar15;\n        }\n        if (DAT_0017fa20 == (long *)0x0) {\nLAB_0011dad0:\n          plVar17 = DAT_0017f2f0;\n        }\n        else {\n          plVar26 = (long *)0x0;\n          plVar18 = DAT_0017fa20;\n          plVar17 = (long *)0x0;\n          do {\n            while (plVar18[4] != lVar13) {\n              if ((plVar18[4] != 0) && (plVar18[6] != 0)) {\n                plVar26 = plVar18;\n              }\n              plVar18 = (long *)plVar18[7];\n              if (plVar18 == (long *)0x0) goto LAB_0011d7f1;\n            }\n            lVar28 = plVar18[6];\n            if (lVar28 != 0) {\n              plVar17 = (long *)(lVar28 + 0x30);\n              lVar13 = *(long *)(lVar28 + 0x30);\n              goto LAB_0011d835;\n            }\n            plVar18 = (long *)plVar18[7];\n            plVar17 = plVar26;\n          } while (plVar18 != (long *)0x0);\nLAB_0011d7f1:\n          if (plVar17 == (long *)0x0) goto LAB_0011dad0;\n        }\n        plVar17 = plVar17 + 6;\n        for (lVar13 = *plVar17; lVar13 != 0; lVar13 = *(long *)(lVar13 + 0x30)) {\n          if (((*(byte *)(lVar13 + 0x49) & 0x40) == 0) &&\n             (*(long *)(*(long *)(lVar13 + 0x20) + 0xd0) == 0)) {\n            lVar13 = *plVar17;\n            break;\n          }\n          plVar17 = (long *)(lVar13 + 0x30);\n        }\nLAB_0011d835:\n        plVar18 = (long *)(lVar16 + 0x30);\n        if (lVar15 == 0) {\n          *plVar17 = lVar16;\n          lVar15 = *(long *)(lVar16 + 0x30);\n          *(long *)(lVar16 + 0x30) = lVar13;\n          lVar16 = lVar15;\n        }\n        else {\n          lVar28 = *(long *)(lVar16 + 0x30);\n          if (lVar28 != 0) {\n            lVar5 = *(long *)(*(long *)(lVar28 + 0x20) + 0xd0);\n            while (lVar15 == lVar5) {\n              plVar18 = (long *)(lVar28 + 0x30);\n              lVar28 = *(long *)(lVar28 + 0x30);\n              if (lVar28 == 0) break;\n              lVar5 = *(long *)(*(long *)(lVar28 + 0x20) + 0xd0);\n            }\n          }\n          *plVar17 = lVar16;\n          lVar16 = *plVar18;\n          *plVar18 = lVar13;\n          if (*(long *)(lVar15 + 0x100) != 0) {\n            *(long **)(*(long *)(lVar15 + 0x100) + 0x30) = plVar18 + -6;\n          }\n        }\n      }\n    }\n  }\n  if (DAT_0017fb38 != (undefined8 *)0x0) {\n    FUN_001252b0("../../ld/ldlang.c",0x1c67);\n  }\n  DAT_0017fb38 = &DAT_0017f2e0;\n  if (DAT_0017f2e8 == (undefined *)0x0) {\n    DAT_0017fb38 = DAT_0017f2e0;\n    if (PTR_s_start_0017e660 != (undefined *)0x0) {\n      FUN_00115880();\n    }\n  }\n  if (DAT_0017fb48 != 0) {\n    FUN_00115880();\n  }\n  if (DAT_0017fb50 != 0) {\n    FUN_00115880();\n  }\n  FUN_00123b90();\n  if ((DAT_0017fc98 != 0) && (DAT_0017f3d0 != (undefined8 *)0x0)) {\n    uVar11 = dcgettext(0,"\nAs-needed library included to satisfy reference by file (symbol)\n\n",5)\n    ;\n    FUN_001252f0(uVar11);\n    for (puVar21 = DAT_0017f3d0; puVar21 != (undefined8 *)0x0; puVar21 = (undefined8 *)*puVar21) {\n      FUN_001252f0(&DAT_0013efee,puVar21[1]);\n      sVar12 = strlen((char *)puVar21[1]);\n      if (0x1c < sVar12) {\n        FUN_00124290();\n        sVar12 = 0;\n      }\n      do {\n        FUN_00124270();\n        sVar12 = sVar12 + 1;\n      } while (sVar12 != 0x1e);\n      if (puVar21[2] != 0) {\n        FUN_001252f0(&DAT_0013f279);\n      }\n      FUN_001252f0("(%pT)\n",puVar21[3]);\n    }\n  }\n  bfd_section_already_linked_table_free();\n  plVar17 = DAT_0017f2f0;\njoined_r0x0011be7f:\n  if (plVar17 != (long *)0x0) {\n    do {\n      if ((*(byte *)((long)plVar17 + 0x49) & 0x20) == 0) {\n        lVar16 = plVar17[4];\n        lVar13 = bfd_arch_get_compatible(lVar16,DAT_0017fb10,DAT_0017fbdc);\n        lVar15 = DAT_0017fb10;\n        if (((DAT_0017fac0 & 3) == 2) || ((DAT_0017fac3 & 8) != 0)) {\n          if (lVar13 != 0) {\n            puVar21 = *(undefined8 **)(lVar16 + 8);\n            puVar27 = *(undefined8 **)(DAT_0017fb10 + 8);\n            if ((*(int *)(puVar21 + 1) != *(int *)(puVar27 + 1)) &&\n               ((*(byte *)(lVar16 + 0x44) & 0x20) != 0)) goto LAB_0011c12e;\n            goto LAB_0011bed4;\n          }\n          if ((*(byte *)(lVar16 + 0x44) & 0x20) != 0) {\n            puVar21 = *(undefined8 **)(lVar16 + 8);\n            puVar27 = *(undefined8 **)(DAT_0017fb10 + 8);\nLAB_0011c12e:\n            uVar11 = *puVar27;\n            uVar14 = *puVar21;\n            uVar24 = 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_001251f0(uVar24,uVar14,lVar16,uVar11,lVar15);\n            goto joined_r0x0011c167;\n          }\n        }\n        else {\njoined_r0x0011c167:\n          if (lVar13 != 0) {\nLAB_0011bed4:\n            if (*(int *)(lVar16 + 0xa0) == 0) goto LAB_0011bf30;\n            uVar11 = 0;\n            if (DAT_0017fbd0 == 0) {\n              uVar11 = bfd_set_error_handler(FUN_00112380);\n            }\n            iVar9 = (**(code **)(*(long *)(DAT_0017fb10 + 8) + 0x140))(lVar16,&DAT_0017fac0);\n            if (iVar9 == 0) {\n              if (DAT_0017fbd0 != 0) {\n                uVar14 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);\n                FUN_001251f0(uVar14,lVar16);\n                goto LAB_0011c5b0;\n              }\n            }\n            else {\nLAB_0011c5b0:\n              if (DAT_0017fbd0 != 0) goto code_r0x0011c5be;\n            }\n            bfd_set_error_handler(uVar11);\n            goto LAB_0011bf30;\n          }\n        }\n        if (DAT_0017fbd0 == 0) goto LAB_0011bf30;\n        uVar11 = bfd_printable_name(DAT_0017fb10);\n        uVar14 = bfd_printable_name(lVar16);\n        uVar24 = dcgettext(0,\n                           "%X%P: %s architecture of input file `%pB\' is incompatible with %s output\n"\n                           ,5);\n        FUN_001251f0(uVar24,uVar14,lVar16,uVar11);\n        plVar17 = (long *)plVar17[6];\n      }\n      else {\nLAB_0011bf30:\n        plVar17 = (long *)plVar17[6];\n      }\n      if (plVar17 == (long *)0x0) break;\n    } while( true );\n  }\n  if (DAT_0017fc30 != 0) {\n    uVar11 = 0;\n    for (plVar17 = DAT_0017f2f0; plVar17 != (long *)0x0; plVar17 = (long *)plVar17[6]) {\n      lVar16 = bfd_get_section_by_name(plVar17[4],".exports");\n      if (lVar16 != 0) {\n        lVar15 = *(long *)(lVar16 + 0x38);\n        pcVar31 = (char *)xmalloc(lVar15);\n        iVar9 = bfd_get_section_contents(plVar17[4],lVar16,pcVar31,0,lVar15);\n        if (iVar9 == 0) {\n          uVar14 = dcgettext(0,"%X%P: unable to read .exports section contents\n",5);\n          FUN_001251f0(uVar14,lVar16);\n        }\n        pcVar19 = pcVar31 + lVar15;\n        for (; pcVar31 < pcVar19; pcVar31 = pcVar31 + sVar12 + 1) {\n          uVar11 = FUN_0011b640(uVar11,pcVar31,0);\n          sVar12 = strlen(pcVar31);\n        }\n        *(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) | 0x208000;\n      }\n    }\n    uVar14 = FUN_0011b640(0,&DAT_0013f157,0,0);\n    lVar15 = xcalloc(1,0x70);\n    lVar16 = DAT_0017fc30;\n    *(undefined8 *)(lVar15 + 0x18) = uVar11;\n    *(undefined8 *)(lVar15 + 0x38) = uVar14;\n    *(code **)(lVar15 + 0x68) = FUN_00112f60;\n    *(undefined4 *)(lVar15 + 0x60) = 0xffffffff;\n    FUN_0011b860(lVar16,lVar15,0);\n  }\n  FUN_0011eaa0();\n  if ((DAT_0017fc4c != 0) &&\n     (cVar8 = *(char *)(*(long *)(DAT_0017fb10 + 8) + 0x1c), DAT_0017fb20 != 0)) {\n    lVar16 = DAT_0017fb20;\n    do {\n      for (puVar21 = *(undefined8 **)(lVar16 + 0x90); puVar21 != (undefined8 *)0x0;\n          puVar21 = (undefined8 *)puVar21[2]) {\n        while( true ) {\n          pbVar4 = (byte *)*puVar21;\n          bVar35 = *pbVar4;\n          if (bVar35 == 0) break;\n          bVar1 = _sch_istable[(ulong)bVar35 * 2];\n          pbVar20 = pbVar4;\n          while (((bVar1 & 0x8c) != 0 || (bVar35 == 0x5f))) {\n            pbVar20 = pbVar20 + 1;\n            bVar35 = *pbVar20;\n            if (bVar35 == 0) goto LAB_0011d178;\n            bVar1 = _sch_istable[(ulong)bVar35 * 2];\n          }\n          puVar21 = (undefined8 *)puVar21[2];\n          if (puVar21 == (undefined8 *)0x0) goto LAB_0011d163;\n        }\nLAB_0011d178:\n        sVar12 = strlen((char *)pbVar4);\n        pcVar31 = (char *)xmalloc(sVar12 + 10);\n        *pcVar31 = cVar8;\n        sprintf(pcVar31 + (cVar8 != '\0'),"__start_%s",pbVar4);\n        FUN_00112ee0(pcVar31,puVar21);\n        pcVar31[1] = cVar8;\n        builtin_strncpy(pcVar31 + (2 - (ulong)(cVar8 == '\0')),"__stop",6);\n        FUN_00112ee0(pcVar31 + 1,puVar21);\n        free(pcVar31);\n      }\nLAB_0011d163:\n      lVar16 = *(long *)(lVar16 + 0xf0);\n    } while (lVar16 != 0);\n  }\n  FUN_001188a0(1);\n  puVar21 = DAT_0017f398;\njoined_r0x0011bfdf:\n  if (puVar21 != (undefined8 *)0x0) {\n    do {\n      if (puVar21[3] != 0) {\n        FUN_00123150();\n        uVar11 = DAT_0017fd20;\n        if (DAT_0017fd38 == 0) {\n          uVar11 = *puVar21;\n          uVar14 = dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);\n          FUN_001251f0(uVar14,uVar11);\n        }\n        else {\n          puVar21[4] = DAT_0017fd20;\n          puVar21[7] = uVar11;\n        }\n      }\n      if (puVar21[6] != 0) {\n        FUN_00123150();\n        if (DAT_0017fd38 == 0) goto LAB_0011c1d0;\n        puVar21[5] = DAT_0017fd20;\n      }\n      puVar21 = (undefined8 *)puVar21[2];\n      if (puVar21 == (undefined8 *)0x0) break;\n    } while( true );\n  }\n  DAT_0017fd00 = 0;\n  if (((DAT_0017fac7 & 0x20) == 0) && (((DAT_0017fac0 & 3) != 2 || (DAT_0017fbc0 != 0)))) {\n    if (DAT_0017fc6c == 0) {\n      bfd_link_hash_traverse(DAT_0017fae8,FUN_001145f0,0);\n    }\n    else {\n      if (DAT_0017fc6c == 2) {\n        local_40 = 4;\n        do {\n          bfd_link_hash_traverse(DAT_0017fae8,FUN_001145f0,&local_40);\n          local_40 = local_40 - 1;\n        } while (local_40 != 0);\n        local_40 = 0;\n      }\n      else {\n        local_40 = 0;\n        do {\n          bfd_link_hash_traverse(DAT_0017fae8,FUN_001145f0,&local_40);\n          local_40 = local_40 + 1;\n        } while (local_40 < 5);\n        local_40 = 0xffffffff;\n      }\n      bfd_link_hash_traverse(DAT_0017fae8,FUN_001145f0,&local_40);\n    }\n  }\n  FUN_00119400(DAT_0017f430);\n  bVar35 = DAT_0017fac0;\n  plVar17 = DAT_0017f2f0;\n  if ((DAT_0017fac0 & 3) == 2) {\n    for (; plVar17 != (long *)0x0; plVar17 = (long *)plVar17[6]) {\n      if ((*(byte *)((long)plVar17 + 0x49) & 0x20) == 0) {\n        for (lVar16 = *(long *)(plVar17[4] + 0x90); lVar16 != 0; lVar16 = *(long *)(lVar16 + 0x10))\n        {\n          if ((*(uint *)(lVar16 + 0x20) & 0x2000) == 0) {\n            *(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) & 0xffff7fff;\n          }\n        }\n      }\n    }\n  }\n  if ((bVar35 & 0x40) != 0) {\n    (**(code **)(*(long *)(DAT_0017fb10 + 8) + 0x2f0))(DAT_0017fb10,&DAT_0017fac0);\n  }\n  lVar16 = DAT_0017fb20;\n  if ((DAT_0017fac6 & 0x20) != 0) {\n    for (; lVar16 != 0; lVar16 = *(long *)(lVar16 + 0xf0)) {\n      iVar9 = bfd_link_check_relocs(lVar16,&DAT_0017fac0);\n      if (iVar9 == 0) {\n        DAT_0017fc44 = 0;\n      }\n    }\n  }\n  FUN_00123ba0();\n  FUN_001124e0(DAT_0017f430);\n  _DAT_0017f2c0 = _DAT_0017f2c0 + 1;\n  FUN_00119520(DAT_0017f430,0,0);\n  plVar18 = (long *)0x0;\n  plVar26 = (long *)0x0;\n  plVar17 = DAT_0017fa60;\n  while (plVar36 = plVar17, plVar3 = (long *)*plVar36, plVar3 != (long *)0x0) {\n    plVar17 = plVar3;\n    if ((int)plVar3[1] == 0) {\n      if ((plVar26 != (long *)0x0) && (plVar3 != (long *)plVar26[4])) {\n        FUN_001252b0("../../ld/ldlang.c",0xea0);\n        plVar17 = (long *)*plVar36;\n      }\n      *(int *)((long)plVar3 + 0x84) = -2 - *(int *)((long)plVar3 + 0x84);\n      plVar26 = plVar3;\n      if (plVar18 == (long *)0x0) {\n        plVar18 = plVar3;\n      }\n    }\n    else if ((int)plVar3[1] == 0xe) {\n      lVar16 = FUN_00116e20(plVar3[2],0,0);\n      if (lVar16 == 0) {\nLAB_0011c415:\n        lVar16 = plVar3[2];\n        uVar11 = dcgettext(0,"%F%P: %s not found for insert\n",5);\n        FUN_001251f0(uVar11,lVar16);\n        plVar17 = DAT_0017f2f0;\n        goto joined_r0x0011c458;\n      }\n      if ((int)plVar3[3] != 0) {\n        do {\n          lVar16 = *(long *)(lVar16 + 0x28);\n          if (lVar16 == 0) goto LAB_0011c415;\n        } while (*(int *)(lVar16 + 0x84) < 0);\n      }\n      if (plVar26 != (long *)0x0) {\n        lVar15 = plVar18[5];\n        lVar13 = plVar26[4];\n        *(long *)(lVar15 + 0x20) = lVar13;\n        if (lVar13 == 0) {\n          DAT_0017fa68 = (long *)(lVar15 + 0x20);\n        }\n        else {\n          *(long *)(lVar13 + 0x28) = lVar15;\n        }\n        plVar26[4] = *(long *)(lVar16 + 0x20);\n        if (*(long *)(lVar16 + 0x20) == 0) {\n          DAT_0017fa68 = plVar26 + 4;\n        }\n        else {\n          *(long **)(*(long *)(lVar16 + 0x20) + 0x28) = plVar26;\n        }\n        plVar18[5] = lVar16;\n        lVar13 = 0;\n        lVar15 = 0;\n        *(long **)(lVar16 + 0x20) = plVar18;\n        do {\n          *(int *)((long)plVar18 + 0x84) = -2 - *(int *)((long)plVar18 + 0x84);\n          lVar28 = plVar18[7];\n          if (((lVar28 != 0) && (*(long *)(lVar28 + 0xf0) != 0)) && (lVar13 = lVar28, lVar15 == 0))\n          {\n            lVar15 = lVar28;\n          }\n        } while ((plVar26 != plVar18) && (plVar18 = (long *)plVar18[4], plVar18 != (long *)0x0));\n        plVar18 = (long *)0x0;\n        if (lVar13 != 0) {\n          lVar28 = *(long *)(lVar16 + 0x38);\n          if (lVar28 == 0) {\n            plVar18 = *(long **)(lVar16 + 0x28);\n            if (plVar18 != (long *)0x0) {\n              do {\n                if (((-1 < *(int *)((long)plVar18 + 0x84)) && (lVar28 = plVar18[7], lVar28 != 0)) &&\n                   (*(long *)(lVar28 + 0xf0) != 0)) goto LAB_0011cd61;\n                plVar18 = (long *)plVar18[5];\n              } while (plVar18 != (long *)0x0);\n              plVar18 = (long *)0x0;\n            }\n          }\n          else {\nLAB_0011cd61:\n            plVar18 = (long *)0x0;\n            if (lVar28 != lVar13) {\n              lVar5 = *(long *)(lVar15 + 0x18);\n              lVar33 = *(long *)(lVar13 + 0x10);\n              if (lVar5 == 0) {\n                *(long *)(DAT_0017fb10 + 0x90) = lVar33;\n              }\n              else {\n                *(long *)(lVar5 + 0x10) = lVar33;\n                lVar33 = *(long *)(lVar13 + 0x10);\n              }\n              if (lVar33 == 0) {\n                *(long *)(DAT_0017fb10 + 0x98) = lVar5;\n              }\n              else {\n                *(long *)(lVar33 + 0x18) = lVar5;\n              }\n              lVar5 = *(long *)(lVar28 + 0x10);\n              *(long *)(lVar13 + 0x10) = lVar5;\n              if (lVar5 == 0) {\n                *(long *)(DAT_0017fb10 + 0x98) = lVar13;\n              }\n              else {\n                *(long *)(lVar5 + 0x18) = lVar13;\n              }\n              *(long *)(lVar15 + 0x18) = lVar28;\n              plVar18 = (long *)0x0;\n              *(long *)(lVar28 + 0x10) = lVar15;\n            }\n          }\n        }\n      }\n      plVar17 = (long *)FUN_00112240(lVar16);\n      lVar16 = *DAT_0017fa60;\n      *DAT_0017fa60 = *(long *)*plVar36;\n      lVar15 = *plVar17;\n      *plVar36 = lVar15;\n      if (lVar15 == 0) {\n        DAT_0017f438 = plVar36;\n      }\n      *plVar17 = lVar16;\n      plVar26 = (long *)0x0;\n      plVar17 = DAT_0017fa60;\n    }\n  }\n  for (; (plVar17 = DAT_0017f2f0, plVar18 != (long *)0x0 &&\n         (*(int *)((long)plVar18 + 0x84) = -2 - *(int *)((long)plVar18 + 0x84),\n         plVar17 = DAT_0017f2f0, plVar26 != plVar18)); plVar18 = (long *)plVar18[4]) {\n  }\njoined_r0x0011c458:\n  for (; plVar17 != (long *)0x0; plVar17 = (long *)plVar17[6]) {\n    puVar21 = *(undefined8 **)(plVar17[4] + 0x90);\njoined_r0x0011c46e:\n    if (puVar21 != (undefined8 *)0x0) {\n      do {\n        if (puVar21[0xd] == 0) {\n          if ((*(byte *)(plVar17 + 9) & 0x10) != 0) goto code_r0x0011c493;\n          iVar9 = FUN_00113350(*(undefined4 *)(puVar21 + 4));\n          bVar38 = false;\n          bVar39 = iVar9 == 0;\n          if (bVar39) {\n            pbVar4 = (byte *)*puVar21;\n            lVar16 = 7;\n            pbVar20 = pbVar4;\n            pbVar32 = (byte *)"COMMON";\n            do {\n              if (lVar16 == 0) break;\n              lVar16 = lVar16 + -1;\n              bVar38 = *pbVar20 < *pbVar32;\n              bVar39 = *pbVar20 == *pbVar32;\n              pbVar20 = pbVar20 + (ulong)bVar40 * -2 + 1;\n              pbVar32 = pbVar32 + (ulong)bVar40 * -2 + 1;\n            } while (bVar39);\n            if ((!bVar38 && !bVar39) == bVar38) {\n              if (((DAT_0017fac0 & 3) != 2) || (DAT_0017fbc0 != 0)) {\n                lVar16 = DAT_0017f458;\n                if (DAT_0017f458 == 0) {\n                  lVar16 = FUN_00116e20(".bss",0,1);\n                  DAT_0017f458 = lVar16;\n                }\nLAB_0011c659:\n                FUN_00117b90(lVar16 + 0x10,puVar21,0);\n              }\n            }\n            else {\n              if (DAT_0017fc5c == 1) {\n                lVar16 = FUN_00116e20("/DISCARD/",0,1);\n                if ((*(long *)(lVar16 + 0x58) == 0) &&\n                   (((DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0)))) {\n                  uVar11 = FUN_00123030(0);\n                  *(undefined8 *)(lVar16 + 0x58) = uVar11;\n                }\n                goto LAB_0011c659;\n              }\n              if (DAT_0017fc5c == 3) {\n                uVar11 = puVar21[0x1e];\n                uVar14 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_001251f0(uVar14,puVar21,uVar11);\n              }\n              if ((DAT_0017fc78 == 0) && (iVar9 = FUN_001150a0(puVar21,0), iVar9 == 0)) {\n                uVar10 = 0;\n              }\n              else {\n                uVar10 = 0x17e;\n              }\n              lVar16 = FUN_00123c60(puVar21,pbVar4,uVar10);\n              if (lVar16 == 0) {\n                lVar16 = FUN_00116e20(pbVar4,uVar10,1);\n                if ((*(long *)(lVar16 + 0x58) == 0) &&\n                   (((DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0)))) {\n                  uVar11 = FUN_00123030(0);\n                  *(undefined8 *)(lVar16 + 0x58) = uVar11;\n                }\n                FUN_00117b90(lVar16 + 0x10,puVar21,0);\n              }\n              if (DAT_0017fc5c == 2) {\n                uVar11 = puVar21[0x1e];\n                uVar14 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_001251f0(uVar14,puVar21,uVar11);\n              }\n            }\n          }\n          else {\n            puVar21[0xd] = 0x17ed50;\n          }\n        }\n        puVar21 = (undefined8 *)puVar21[2];\n        if (puVar21 == (undefined8 *)0x0) break;\n      } while( true );\n    }\n  }\n  bVar35 = DAT_0017fac0 & 3;\n  plVar17 = DAT_0017f358;\n  plVar18 = DAT_0017fa60;\n  lVar16 = DAT_0017fb10;\n  if (bVar35 != 2) {\n    (**(code **)(*(long *)(DAT_0017fb10 + 8) + 0x300))(DAT_0017fb10,&DAT_0017fac0);\n    lVar16 = bfd_get_section_by_name(DAT_0017fb10,".text");\n    if (lVar16 == 0) {\n      bVar35 = DAT_0017fac0 & 3;\n      plVar17 = DAT_0017f358;\n      plVar18 = DAT_0017fa60;\n      lVar16 = DAT_0017fb10;\n    }\n    else {\n      bVar35 = DAT_0017fac0 & 3;\n      if (DAT_0017fc70 == 0) {\n        *(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) & 0xfffffff7;\n        plVar17 = DAT_0017f358;\n        plVar18 = DAT_0017fa60;\n        lVar16 = DAT_0017fb10;\n      }\n      else {\n        *(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) | 8;\n        plVar17 = DAT_0017f358;\n        plVar18 = DAT_0017fa60;\n        lVar16 = DAT_0017fb10;\n      }\n    }\n  }\n  for (; DAT_0017f358 = plVar17, DAT_0017fb10 = lVar16, plVar18 != (long *)0x0;\n      plVar18 = (long *)plVar18[4]) {\n    lVar16 = plVar18[5];\n    if ((((lVar16 != 0) && (plVar18[9] == 0)) && (plVar18[0xc] == 0)) &&\n       ((plVar18[0xb] == 0 && (plVar18[8] == *(long *)(lVar16 + 0x40))))) {\n      plVar18[9] = *(long *)(lVar16 + 0x48);\n    }\n    plVar17 = DAT_0017f358;\n    lVar16 = DAT_0017fb10;\n  }\n  if ((DAT_0017fc4c != 0) && (DAT_0017f350 != 0)) {\n    plVar18 = plVar17 + DAT_0017f350;\n    do {\n      lVar15 = *plVar17;\n      if ((*(byte *)(lVar15 + 0x19) & 8) == 0) {\n        puVar21 = (undefined8 *)(*(undefined8 **)(lVar15 + 0x28))[0xd];\n        if (((puVar21 == (undefined8 *)0x0) || (puVar21[0x1e] != lVar16)) ||\n           (iVar9 = strcmp((char *)**(undefined8 **)(lVar15 + 0x28),(char *)*puVar21), iVar9 != 0))\n        {\n          *(undefined1 *)(lVar15 + 0x18) = 1;\n          *(undefined8 *)(lVar15 + 0x28) = 0;\n        }\n      }\n      plVar17 = plVar17 + 1;\n    } while (plVar18 != plVar17);\n  }\n  if (bVar35 != 2) {\n    for (puVar21 = *(undefined8 **)(DAT_0017fb10 + 0x90); puVar21 != (undefined8 *)0x0;\n        puVar21 = (undefined8 *)puVar21[2]) {\n      pcVar31 = (char *)*puVar21;\n      sVar12 = strlen(pcVar31);\n      pcVar19 = (char *)xmalloc(sVar12 + 10);\n      sprintf(pcVar19,".startof.%s",pcVar31);\n      FUN_00112ee0(pcVar19,puVar21);\n      builtin_strncpy(pcVar19 + 1,".size",5);\n      FUN_00112ee0(pcVar19 + 1,puVar21);\n      free(pcVar19);\n    }\n  }\n  FUN_00123bc0();\n  plVar17 = (long *)0x0;\n  __ptr = (void *)xmalloc(0x50);\n  uVar2 = 10;\n  for (puVar21 = DAT_0017fa50; puVar21 != (undefined8 *)0x0; puVar21 = (undefined8 *)*puVar21) {\n    uVar30 = 0;\n    for (plVar18 = DAT_0017fa60; plVar18 != (long *)0x0; plVar18 = (long *)plVar18[4]) {\n      if (-1 < *(int *)((long)plVar18 + 0x84)) {\n        plVar26 = (long *)plVar18[0xe];\n        if (plVar26 == (long *)0x0) {\n          if (((*(int *)((long)plVar18 + 0x8c) != 2) && (plVar18[7] != 0)) &&\n             (((*(byte *)(plVar18[7] + 0x20) & 1) != 0 &&\n              (plVar26 = plVar17, plVar3 = plVar18, puVar21[2] != 3)))) {\n            while( true ) {\n              plVar17 = plVar26;\n              if (plVar26 != (long *)0x0) goto LAB_0011c7fd;\n              plVar3 = (long *)plVar3[4];\n              if (plVar3 == (long *)0x0) break;\n              plVar26 = (long *)plVar3[0xe];\n            }\n            plVar17 = (long *)0x0;\n            dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            FUN_001251f0();\n          }\n        }\n        else {\n          plVar17 = plVar26;\n          plVar3 = (long *)plVar18[7];\n          while (plVar3 != (long *)0x0) {\nLAB_0011c7fd:\n            iVar9 = strcmp((char *)plVar26[1],(char *)puVar21[1]);\n            uVar29 = uVar30;\n            if (iVar9 == 0) {\n              if (uVar2 <= (uint)uVar30) {\n                uVar2 = uVar2 << 1;\n                __ptr = (void *)xrealloc(__ptr,(ulong)uVar2 << 3);\n              }\n              uVar29 = (ulong)((uint)uVar30 + 1);\n              *(long *)((long)__ptr + uVar30 * 8) = plVar18[7];\n              *(undefined4 *)(plVar26 + 2) = 1;\n            }\n            plVar26 = (long *)*plVar26;\n            uVar30 = uVar29;\n            plVar3 = plVar26;\n          }\n        }\n      }\n    }\n    uVar10 = 0;\n    if (puVar21[5] != 0) {\n      uVar10 = FUN_00123800(puVar21[5],0,"phdr flags");\n    }\n    lVar16 = puVar21[4];\n    uVar11 = 0;\n    if (lVar16 != 0) {\n      uVar11 = FUN_00123800(lVar16,0,"phdr load address");\n      lVar16 = puVar21[4];\n    }\n    iVar9 = bfd_record_phdr(DAT_0017fb10,puVar21[2],puVar21[5] != 0,uVar10,lVar16 != 0,uVar11,\n                            *(undefined4 *)(puVar21 + 3),*(undefined4 *)((long)puVar21 + 0x1c),\n                            uVar30,__ptr);\n    if (iVar9 == 0) {\n      dcgettext(0,"%F%P: bfd_record_phdr failed: %E\n",5);\n      FUN_001251f0();\n    }\n  }\n  free(__ptr);\n  for (plVar17 = DAT_0017fa60; plVar17 != (long *)0x0; plVar17 = (long *)plVar17[4]) {\n    if ((-1 < *(int *)((long)plVar17 + 0x84)) && (plVar17[7] != 0)) {\n      plVar18 = (long *)plVar17[0xe];\njoined_r0x0011c90a:\n      if (plVar18 != (long *)0x0) {\n        do {\n          bVar38 = false;\n          bVar39 = (int)plVar18[2] == 0;\n          if (bVar39) {\n            pbVar4 = (byte *)plVar18[1];\n            lVar16 = 5;\n            pbVar20 = pbVar4;\n            pbVar32 = (byte *)0x130359;\n            do {\n              if (lVar16 == 0) break;\n              lVar16 = lVar16 + -1;\n              bVar38 = *pbVar20 < *pbVar32;\n              bVar39 = *pbVar20 == *pbVar32;\n              pbVar20 = pbVar20 + (ulong)bVar40 * -2 + 1;\n              pbVar32 = pbVar32 + (ulong)bVar40 * -2 + 1;\n            } while (bVar39);\n            if ((!bVar38 && !bVar39) != bVar38) goto code_r0x0011c93b;\n          }\n          plVar18 = (long *)*plVar18;\n          if (plVar18 == (long *)0x0) break;\n        } while( true );\n      }\n    }\n  }\n  if (((DAT_0017fac3 & 0x10) != 0) && ((DAT_0017fac0 & 3) != 2)) {\n    local_40 = 0;\n    FUN_00119860(DAT_0017fd98,&local_40);\n    if (local_40 == 0) {\n      DAT_0017fac3 = DAT_0017fac3 & 0xef;\n    }\n  }\n  FUN_0011a050(0,1 < DAT_0017fad8);\n  FUN_00123bb0();\n  lVar16 = DAT_0017fb10;\n  uVar10 = DAT_0017f3c8;\n  if (DAT_0017f350 != 0) {\n    plVar17 = DAT_0017f358 + DAT_0017f350;\n    plVar18 = DAT_0017f358;\n    do {\n      while (lVar15 = *plVar18, (*(ushort *)(lVar15 + 0x18) & 0x8ff) == 3) {\n        pcVar31 = *(char **)(lVar15 + 8);\n        if (*pcVar31 != '.') {\n          cVar8 = *(char *)(*(long *)(lVar16 + 8) + 0x1c);\n          lVar13 = *(long *)(*(long *)(lVar15 + 0x28) + 0x68);\n          *(long *)(lVar15 + 0x28) = lVar13;\n          if (pcVar31[(int)((cVar8 != '\0') + 4)] == 'o') {\n            *(ulong *)(lVar15 + 0x30) = *(ulong *)(lVar13 + 0x38) >> ((byte)uVar10 & 0x3f);\n          }\n          break;\n        }\n        if (pcVar31[2] != 'i') break;\n        plVar18 = plVar18 + 1;\n        uVar30 = *(ulong *)(*(long *)(lVar15 + 0x28) + 0x38);\n        *(undefined8 *)(lVar15 + 0x28) = 0x17ed50;\n        *(ulong *)(lVar15 + 0x30) = uVar30 >> ((byte)uVar10 & 0x3f);\n        if (plVar18 == plVar17) goto LAB_0011ca60;\n      }\n      plVar18 = plVar18 + 1;\n    } while (plVar18 != plVar17);\n  }\nLAB_0011ca60:\n  FUN_001188a0(4);\n  FUN_00123be0();\n  FUN_00123b20();\n  puVar21 = DAT_0017f378;\n  if (DAT_0017fbd8 != '\0') {\n    cVar8 = bfd_arch_bits_per_address(DAT_0017fb10);\n    puVar21 = *(undefined8 **)(DAT_0017fb10 + 0x90);\n    uVar30 = (1L << (cVar8 - 1U & 0x3f)) * 2 - 1;\n    if (puVar21 != (undefined8 *)0x0) {\n      do {\n        if ((*(byte *)(puVar21 + 4) & 1) != 0) {\n          uVar29 = puVar21[5] + puVar21[7] & uVar30;\n          if ((uVar29 == 0) || ((puVar21[5] & uVar30) <= uVar29)) {\n            uVar29 = puVar21[7] + puVar21[6] & uVar30;\n            if ((uVar29 == 0) || ((puVar21[6] & uVar30) <= uVar29)) goto LAB_0011d2f0;\n            uVar11 = *puVar21;\n            pcVar31 = "%X%P: section %s LMA wraps around address space\n";\n          }\n          else {\n            uVar11 = *puVar21;\n            pcVar31 = "%X%P: section %s VMA wraps around address space\n";\n          }\n          uVar14 = dcgettext(0,pcVar31,5);\n          FUN_001251f0(uVar14,uVar11);\n        }\nLAB_0011d2f0:\n        puVar21 = (undefined8 *)puVar21[2];\n      } while (puVar21 != (undefined8 *)0x0);\n    }\n    puVar21 = DAT_0017f378;\n    if (1 < *(uint *)(DAT_0017fb10 + 0xa0)) {\n      uVar30 = 0;\n      plVar17 = (long *)xmalloc((ulong)*(uint *)(DAT_0017fb10 + 0xa0) << 4);\n      lVar16 = *(long *)(DAT_0017fb10 + 0x90);\n      if (lVar16 != 0) {\n        do {\n          uVar29 = uVar30;\n          if ((((*(uint *)(lVar16 + 0x20) & 1) != 0) &&\n              ((*(uint *)(lVar16 + 0x20) & 0x402) != 0x400)) && (*(long *)(lVar16 + 0x38) != 0)) {\n            uVar29 = uVar30 + 1;\n            plVar17[uVar30 * 2] = lVar16;\n            *(undefined4 *)(plVar17 + uVar30 * 2 + 1) = 0;\n          }\n          lVar16 = *(long *)(lVar16 + 0x10);\n          uVar30 = uVar29;\n        } while (lVar16 != 0);\n        if (1 < uVar29) {\n          qsort(plVar17,uVar29,0x10,FUN_00112320);\n          puVar21 = (undefined8 *)0x0;\n          plVar18 = plVar17;\n          uVar30 = 0;\n          uVar25 = 0;\n          do {\n            puVar27 = (undefined8 *)*plVar18;\n            puVar22 = puVar21;\n            uVar34 = uVar30;\n            uVar23 = uVar25;\n            if ((*(byte *)(puVar27 + 4) & 2) != 0) {\n              uVar34 = puVar27[6];\n              uVar23 = (uVar34 - 1) + ((ulong)puVar27[7] >> ((byte)DAT_0017f3c8 & 0x3f));\n              puVar22 = puVar27;\n              if ((puVar21 != (undefined8 *)0x0) && ((uVar34 <= uVar25 || (uVar25 < uVar30)))) {\n                uVar11 = *puVar21;\n                uVar14 = *puVar27;\n                uVar24 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);\n                FUN_001251f0(uVar24,uVar14,uVar34,uVar23,uVar11,uVar30,uVar25);\n                *(undefined4 *)(plVar18 + 1) = 1;\n              }\n            }\n            plVar18 = plVar18 + 2;\n            puVar21 = puVar22;\n            uVar30 = uVar34;\n            uVar25 = uVar23;\n          } while (plVar18 != plVar17 + uVar29 * 2);\n          qsort(plVar17,uVar29,0x10,FUN_00112350);\n          puVar21 = (undefined8 *)*plVar17;\n          uVar23 = 1;\n          uVar30 = puVar21[5];\n          uVar25 = uVar30;\n          do {\n            lVar16 = uVar23 * 2;\n            if (*(ulong *)(plVar17[lVar16] + 0x28) == uVar25) goto LAB_0011d4c4;\n            uVar23 = uVar23 + 1;\n            uVar25 = *(ulong *)(plVar17[lVar16] + 0x28);\n          } while (uVar23 != uVar29);\n          uVar23 = 0;\n          uVar25 = (uVar30 - 1) + ((ulong)puVar21[7] >> ((byte)DAT_0017f3c8 & 0x3f));\n          plVar18 = plVar17;\n          while( true ) {\n            uVar37 = uVar25;\n            uVar34 = uVar30;\n            puVar27 = puVar21;\n            plVar26 = plVar18 + 2;\n            uVar23 = uVar23 + 1;\n            if (uVar23 == uVar29) break;\n            puVar21 = (undefined8 *)*plVar26;\n            plVar3 = plVar18 + 3;\n            uVar30 = puVar21[5];\n            uVar25 = (uVar30 - 1) + ((ulong)puVar21[7] >> ((byte)DAT_0017f3c8 & 0x3f));\n            plVar18 = plVar26;\n            if (((int)*plVar3 == 0) && ((uVar30 <= uVar37 || (uVar37 < uVar34)))) {\n              uVar11 = *puVar27;\n              uVar14 = *puVar21;\n              uVar24 = dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",\n                                 5);\n              FUN_001251f0(uVar24,uVar14,uVar30,uVar25,uVar11,uVar34,uVar37);\n            }\n          }\nLAB_0011d4c4:\n          free(plVar17);\n          for (puVar27 = DAT_0017f398; puVar21 = DAT_0017f378, puVar27 != (undefined8 *)0x0;\n              puVar27 = (undefined8 *)puVar27[2]) {\n            if (*(int *)(puVar27 + 10) != 0) {\n              uVar11 = *puVar27;\n              lVar16 = puVar27[7] - (puVar27[5] + puVar27[4]);\n              uVar14 = dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",lVar16,5);\n              FUN_001251f0(uVar14,uVar11,lVar16);\n            }\n          }\n          goto joined_r0x0011ca92;\n        }\n      }\n      free(plVar17);\n      puVar21 = DAT_0017f378;\n    }\n  }\njoined_r0x0011ca92:\n  for (; puVar21 != (undefined8 *)0x0; puVar21 = (undefined8 *)puVar21[1]) {\n    lVar16 = bfd_link_hash_lookup(DAT_0017fae8,*puVar21,0,0,1);\n    if ((lVar16 == 0) || (1 < (byte)(*(char *)(lVar16 + 0x18) - 3U))) {\n      uVar11 = *puVar21;\n      uVar14 = dcgettext(0,"%X%P: required symbol `%s\' not defined\n",5);\n      FUN_001251f0(uVar14,uVar11);\n    }\n  }\n  iVar9 = DAT_0017fa0c;\n  if (((DAT_0017fac0 & 0x43) != 2) && ((DAT_0017fac0 & 3) != 3)) {\n    iVar9 = 1;\n  }\n  if (((DAT_0017fac0 & 0x43) == 0x42) && (DAT_0017fa0c == 0 && _DAT_0017fa08 == 0)) {\n    uVar11 = dcgettext(0,"%F%P: gc-sections requires either an entry or an undefined symbol\n",5);\n    FUN_001251f0(uVar11);\n  }\n  if (DAT_0017f2e8 == (undefined *)0x0) {\n    DAT_0017f2e8 = PTR_s_start_0017e660;\n    iVar9 = 0;\n  }\n  lVar16 = bfd_link_hash_lookup(DAT_0017fae8,DAT_0017f2e8,0,0,1);\n  if ((lVar16 != 0) && ((byte)(*(char *)(lVar16 + 0x18) - 3U) < 2)) {\n    lVar15 = *(long *)(*(long *)(lVar16 + 0x28) + 0x68);\n    if (lVar15 != 0) {\n      iVar9 = bfd_set_start_address\n                        (DAT_0017fb10,\n                         *(long *)(lVar15 + 0x28) +\n                         *(long *)(*(long *)(lVar16 + 0x28) + 0x60) + *(long *)(lVar16 + 0x30));\n      if (iVar9 != 0) {\n        return;\n      }\n      pcVar31 = "%F%P: %s: can\'t set start address\n";\n      goto LAB_0011cf37;\n    }\n  }\n  uVar11 = bfd_scan_vma(DAT_0017f2e8,&local_40,0);\n  if (*(char *)CONCAT44(uStack_3c,local_40) == '\0') {\n    iVar9 = bfd_set_start_address(DAT_0017fb10,uVar11);\n  }\n  else {\n    lVar16 = bfd_get_section_by_name(DAT_0017fb10,PTR_s__text_0017e648);\n    puVar7 = DAT_0017f2e8;\n    if (lVar16 == 0) {\n      if (iVar9 == 0) {\n        return;\n      }\n      pcVar31 = "%P: warning: cannot find entry symbol %s; not setting start address\n";\nLAB_0011cf37:\n      puVar7 = DAT_0017f2e8;\n      uVar11 = dcgettext(0,pcVar31,5);\n      FUN_001251f0(uVar11,puVar7);\n      return;\n    }\n    uVar11 = *(undefined8 *)(lVar16 + 0x28);\n    if (iVar9 != 0) {\n      uVar14 = dcgettext(0,"%P: warning: cannot find entry symbol %s; defaulting to %V\n",5);\n      FUN_001251f0(uVar14,puVar7,uVar11);\n      uVar11 = *(undefined8 *)(lVar16 + 0x28);\n    }\n    iVar9 = bfd_set_start_address(DAT_0017fb10,uVar11);\n  }\n  if (iVar9 != 0) {\n    return;\n  }\n  uVar11 = dcgettext(0,"%F%P: can\'t set start address\n",5);\n  FUN_001251f0(uVar11);\n  return;\ncode_r0x0011c5be:\n  plVar17 = (long *)plVar17[6];\n  goto joined_r0x0011be7f;\nLAB_0011c1d0:\n  uVar11 = *puVar21;\n  uVar14 = dcgettext(0,"%F%P: invalid length for memory region %s\n",5);\n  FUN_001251f0(uVar14,uVar11);\n  puVar21 = (undefined8 *)puVar21[2];\n  goto joined_r0x0011bfdf;\ncode_r0x0011c493:\n  (**(code **)(*(long *)(plVar17[4] + 8) + 0x2c8))(puVar21,&DAT_0017fac0);\n  puVar21 = (undefined8 *)puVar21[2];\n  goto joined_r0x0011c46e;\ncode_r0x0011c93b:\n  lVar16 = plVar17[6];\n  uVar11 = dcgettext(0,"%X%P: section `%s\' assigned to non-existent phdr `%s\'\n",5);\n  FUN_001251f0(uVar11,lVar16,pbVar4);\n  plVar18 = (long *)*plVar18;\n  goto joined_r0x0011c90a;\n}" ({ "{") (declaration "byte bVar1;" (type_identifier "byte") (identifier "bVar1") (; ";")) (declaration "uint uVar2;" (type_identifier "uint") (identifier "uVar2") (; ";")) (declaration "long *plVar3;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*plVar3" (* "*") (identifier "plVar3")) (; ";")) (declaration "byte *pbVar4;" (type_identifier "byte") (pointer_declarator "*pbVar4" (* "*") (identifier "pbVar4")) (; ";")) (declaration "long lVar5;" (sized_type_specifier "long" (long "long")) (identifier "lVar5") (; ";")) (declaration "long *plVar6;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*plVar6" (* "*") (identifier "plVar6")) (; ";")) (declaration "undefined *puVar7;" (type_identifier "undefined") (pointer_declarator "*puVar7" (* "*") (identifier "puVar7")) (; ";")) (declaration "char cVar8;" (primitive_type "char") (identifier "cVar8") (; ";")) (declaration "int iVar9;" (primitive_type "int") (identifier "iVar9") (; ";")) (declaration "undefined4 uVar10;" (type_identifier "undefined4") (identifier "uVar10") (; ";")) (declaration "undefined8 uVar11;" (type_identifier "undefined8") (identifier "uVar11") (; ";")) (declaration "size_t sVar12;" (primitive_type "size_t") (identifier "sVar12") (; ";")) (declaration "long lVar13;" (sized_type_specifier "long" (long "long")) (identifier "lVar13") (; ";")) (declaration "undefined8 uVar14;" (type_identifier "undefined8") (identifier "uVar14") (; ";")) (declaration "long lVar15;" (sized_type_specifier "long" (long "long")) (identifier "lVar15") (; ";")) (declaration "long lVar16;" (sized_type_specifier "long" (long "long")) (identifier "lVar16") (; ";")) (declaration "long *plVar17;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*plVar17" (* "*") (identifier "plVar17")) (; ";")) (declaration "void *__ptr;" (primitive_type "void") (pointer_declarator "*__ptr" (* "*") (identifier "__ptr")) (; ";")) (declaration "long *plVar18;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*plVar18" (* "*") (identifier "plVar18")) (; ";")) (declaration "char *pcVar19;" (primitive_type "char") (pointer_declarator "*pcVar19" (* "*") (identifier "pcVar19")) (; ";")) (declaration "byte *pbVar20;" (type_identifier "byte") (pointer_declarator "*pbVar20" (* "*") (identifier "pbVar20")) (; ";")) (declaration "undefined8 *puVar21;" (type_identifier "undefined8") (pointer_declarator "*puVar21" (* "*") (identifier "puVar21")) (; ";")) (declaration "undefined8 *puVar22;" (type_identifier "undefined8") (pointer_declarator "*puVar22" (* "*") (identifier "puVar22")) (; ";")) (declaration "ulong uVar23;" (type_identifier "ulong") (identifier "uVar23") (; ";")) (declaration "undefined8 uVar24;" (type_identifier "undefined8") (identifier "uVar24") (; ";")) (declaration "ulong uVar25;" (type_identifier "ulong") (identifier "uVar25") (; ";")) (declaration "long *plVar26;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*plVar26" (* "*") (identifier "plVar26")) (; ";")) (declaration "undefined8 *puVar27;" (type_identifier "undefined8") (pointer_declarator "*puVar27" (* "*") (identifier "puVar27")) (; ";")) (declaration "long lVar28;" (sized_type_specifier "long" (long "long")) (identifier "lVar28") (; ";")) (declaration "ulong uVar29;" (type_identifier "ulong") (identifier "uVar29") (; ";")) (declaration "ulong uVar30;" (type_identifier "ulong") (identifier "uVar30") (; ";")) (declaration "char *pcVar31;" (primitive_type "char") (pointer_declarator "*pcVar31" (* "*") (identifier "pcVar31")) (; ";")) (declaration "byte *pbVar32;" (type_identifier "byte") (pointer_declarator "*pbVar32" (* "*") (identifier "pbVar32")) (; ";")) (declaration "long lVar33;" (sized_type_specifier "long" (long "long")) (identifier "lVar33") (; ";")) (declaration "ulong uVar34;" (type_identifier "ulong") (identifier "uVar34") (; ";")) (declaration "byte bVar35;" (type_identifier "byte") (identifier "bVar35") (; ";")) (declaration "long *plVar36;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*plVar36" (* "*") (identifier "plVar36")) (; ";")) (declaration "ulong uVar37;" (type_identifier "ulong") (identifier "uVar37") (; ";")) (declaration "bool bVar38;" (primitive_type "bool") (identifier "bVar38") (; ";")) (declaration "bool bVar39;" (primitive_type "bool") (identifier "bVar39") (; ";")) (declaration "byte bVar40;" (type_identifier "byte") (identifier "bVar40") (; ";")) (declaration "uint local_40;" (type_identifier "uint") (identifier "local_40") (; ";")) (declaration "undefined4 uStack_3c;" (type_identifier "undefined4") (identifier "uStack_3c") (; ";")) (expression_statement "bVar40 = 0;" (assignment_expression "bVar40 = 0" (identifier "bVar40") (= "=") (number_literal "0")) (; ";")) (if_statement "if (DAT_0017fb98 != 0) {\n    FUN_00112d70();\n  }" (if "if") (parenthesized_expression "(DAT_0017fb98 != 0)" (( "(") (binary_expression "DAT_0017fb98 != 0" (identifier "DAT_0017fb98") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    FUN_00112d70();\n  }" ({ "{") (expression_statement "FUN_00112d70();" (call_expression "FUN_00112d70()" (identifier "FUN_00112d70") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "DAT_0017f440 = DAT_0017fcc8;" (assignment_expression "DAT_0017f440 = DAT_0017fcc8" (identifier "DAT_0017f440") (= "=") (identifier "DAT_0017fcc8")) (; ";")) (expression_statement "FUN_00115a50(FUN_001182b0,DAT_0017f430);" (call_expression "FUN_00115a50(FUN_001182b0,DAT_0017f430)" (identifier "FUN_00115a50") (argument_list "(FUN_001182b0,DAT_0017f430)" (( "(") (identifier "FUN_001182b0") (, ",") (identifier "DAT_0017f430") () ")"))) (; ";")) (expression_statement "FUN_00113540();" (call_expression "FUN_00113540()" (identifier "FUN_00113540") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_00123c10();" (call_expression "FUN_00123c10()" (identifier "FUN_00123c10") (argument_list "()" (( "(") () ")"))) (; ";")) (for_statement "for (puVar21 = DAT_0017f2e0; puVar21 != (undefined8 *)0x0; puVar21 = (undefined8 *)*puVar21) {\n    FUN_00112b40(puVar21[1]);\n  }" (for "for") (( "(") (assignment_expression "puVar21 = DAT_0017f2e0" (identifier "puVar21") (= "=") (identifier "DAT_0017f2e0")) (; ";") (binary_expression "puVar21 != (undefined8 *)0x0" (identifier "puVar21") (!= "!=") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";") (assignment_expression "puVar21 = (undefined8 *)*puVar21" (identifier "puVar21") (= "=") (cast_expression "(undefined8 *)*puVar21" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar21" (* "*") (identifier "puVar21")))) () ")") (compound_statement "{\n    FUN_00112b40(puVar21[1]);\n  }" ({ "{") (expression_statement "FUN_00112b40(puVar21[1]);" (call_expression "FUN_00112b40(puVar21[1])" (identifier "FUN_00112b40") (argument_list "(puVar21[1])" (( "(") (subscript_expression "puVar21[1]" (identifier "puVar21") ([ "[") (number_literal "1") (] "]")) () ")"))) (; ";")) (} "}"))) (expression_statement "iVar9 = bfd_section_already_linked_table_init();" (assignment_expression "iVar9 = bfd_section_already_linked_table_init()" (identifier "iVar9") (= "=") (call_expression "bfd_section_already_linked_table_init()" (identifier "bfd_section_already_linked_table_init") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar9 == 0) {\n    uVar11 = dcgettext(0,"%F%P: can not create hash table: %E\n",5);\n    FUN_001251f0(uVar11);\n  }" (if "if") (parenthesized_expression "(iVar9 == 0)" (( "(") (binary_expression "iVar9 == 0" (identifier "iVar9") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    uVar11 = dcgettext(0,"%F%P: can not create hash table: %E\n",5);\n    FUN_001251f0(uVar11);\n  }" ({ "{") (expression_statement "uVar11 = dcgettext(0,"%F%P: can not create hash table: %E\n",5);" (assignment_expression "uVar11 = dcgettext(0,"%F%P: can not create hash table: %E\n",5)" (identifier "uVar11") (= "=") (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_001251f0(uVar11);" (call_expression "FUN_001251f0(uVar11)" (identifier "FUN_001251f0") (argument_list "(uVar11)" (( "(") (identifier "uVar11") () ")"))) (; ";")) (} "}"))) (expression_statement "_DAT_0017f2c0 = _DAT_0017f2c0 + 1;" (assignment_expression "_DAT_0017f2c0 = _DAT_0017f2c0 + 1" (identifier "_DAT_0017f2c0") (= "=") (binary_expression "_DAT_0017f2c0 + 1" (identifier "_DAT_0017f2c0") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "DAT_0017f440 = DAT_0017fcc8;" (assignment_expression "DAT_0017f440 = DAT_0017fcc8" (identifier "DAT_0017f440") (= "=") (identifier "DAT_0017fcc8")) (; ";")) (expression_statement "FUN_00119910(DAT_0017f430,0);" (call_expression "FUN_00119910(DAT_0017f430,0)" (identifier "FUN_00119910") (argument_list "(DAT_0017f430,0)" (( "(") (identifier "DAT_0017f430") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "plVar3 = DAT_0017fa28;" (assignment_expression "plVar3 = DAT_0017fa28" (identifier "plVar3") (= "=") (identifier "DAT_0017fa28")) (; ";")) (expression_statement "plVar26 = DAT_0017fa20;" (assignment_expression "plVar26 = DAT_0017fa20" (identifier "plVar26") (= "=") (identifier "DAT_0017fa20")) (; ";")) (expression_statement "plVar18 = DAT_0017f2f8;" (assignment_expression "plVar18 = DAT_0017f2f8" (identifier "plVar18") (= "=") (identifier "DAT_0017f2f8")) (; ";")) (expression_statement "plVar17 = DAT_0017f2f0;" (assignment_expression "plVar17 = DAT_0017f2f0" (identifier "plVar17") (= "=") (identifier "DAT_0017f2f0")) (; ";")) (if_statement "if ((DAT_0017fac1 & 2) != 0) {\n    lVar16 = *(long *)PTR_DAT_0017e650;\n    plVar36 = *(long **)(PTR_DAT_0017e650 + 8);\n    iVar9 = FUN_00128bb0();\n    if (iVar9 != 0) {\n      uVar11 = FUN_00128550();\n      uVar14 = dcgettext(0,"%F%P: %s: plugin reported error after all symbols read\n",5);\n      FUN_001251f0(uVar14,uVar11);\n    }\n    FUN_00119910(*plVar36,0);\n    puVar7 = PTR_DAT_0017e650;\n    if (*(long *)PTR_DAT_0017e650 != lVar16) {\n      FUN_001252b0("../../ld/ldlang.c",0x1baf);\n    }\n    plVar6 = *(long **)(puVar7 + 8);\n    lVar16 = *plVar36;\n    *(long **)(puVar7 + 8) = plVar36;\n    *plVar36 = 0;\n    if (DAT_0017f2f0 != plVar17) {\n      FUN_001252b0("../../ld/ldlang.c",0x1baf);\n    }\n    plVar36 = DAT_0017f2f8;\n    plVar17 = (long *)*plVar18;\n    DAT_0017f2f8 = plVar18;\n    *plVar18 = 0;\n    if (DAT_0017fa20 != plVar26) {\n      FUN_001252b0("../../ld/ldlang.c",0x1baf);\n    }\n    plVar26 = DAT_0017fa28;\n    lVar15 = *plVar3;\n    DAT_0017fa28 = plVar3;\n    *plVar3 = 0;\n    plVar18 = DAT_0017f2f0;\n    plVar3 = DAT_0017fa20;\n    if (lVar16 != 0) {\n      for (; DAT_0017f380 = plVar3, plVar18 != (long *)0x0; plVar18 = (long *)plVar18[6]) {\n        if ((*(byte *)((long)plVar18 + 0x49) & 0x20) != 0) {\n          if ((*(byte *)((long)plVar18 + 0x49) & 0x40) == 0) goto LAB_0011d6c0;\n          break;\n        }\n        if ((plVar18[4] != 0) && (*(long *)(plVar18[4] + 0xd0) == 0)) {\n          DAT_0017f380 = plVar18;\n        }\n        plVar3 = DAT_0017f380;\n      }\n      plVar18 = DAT_0017f380;\n      if (DAT_0017f380 == (long *)0x0) {\n        FUN_001252b0("../../ld/ldlang.c",0x1c32);\n        plVar18 = DAT_0017f380;\n      }\nLAB_0011d6c0:\n      DAT_0017f380 = plVar18;\n      plVar18 = DAT_0017f380;\n      puVar7 = PTR_DAT_0017e650;\n      *plVar6 = *DAT_0017f380;\n      *plVar18 = lVar16;\n      if (plVar18 == *(long **)(puVar7 + 8)) {\n        *(long **)(puVar7 + 8) = plVar6;\n      }\n      *plVar26 = plVar18[7];\n      bVar38 = DAT_0017fa28 == plVar18 + 7;\n      plVar18[7] = lVar15;\n      plVar3 = DAT_0017f2f8;\n      if (bVar38) {\n        DAT_0017fa28 = plVar26;\n      }\n      if (plVar18[2] == 0) {\n        *plVar36 = (long)DAT_0017f2f0;\n        DAT_0017f2f0 = plVar17;\n        if ((long **)plVar3 != &DAT_0017f2f0) {\n          plVar36 = DAT_0017f2f8;\n        }\n      }\n      else {\n        *plVar36 = plVar18[6];\n        plVar18[6] = (long)plVar17;\n        if (plVar3 != plVar18 + 6) {\n          plVar36 = DAT_0017f2f8;\n        }\n      }\n      DAT_0017f2f8 = plVar36;\n      plVar18 = DAT_0017f2f8;\n      plVar17 = DAT_0017f2f0;\n      _DAT_0017f2c0 = _DAT_0017f2c0 + 1;\n      FUN_00119910(DAT_0017f430);\n      if (DAT_0017f2f0 != plVar17) {\n        FUN_001252b0("../../ld/ldlang.c");\n      }\n      lVar16 = *plVar18;\n      DAT_0017f2f8 = plVar18;\n      *plVar18 = 0;\n      while (lVar16 != 0) {\n        lVar15 = *(long *)(*(long *)(lVar16 + 0x20) + 0xd0);\n        lVar13 = *(long *)(lVar16 + 0x20);\n        if (lVar15 != 0) {\n          lVar13 = lVar15;\n        }\n        if (DAT_0017fa20 == (long *)0x0) {\nLAB_0011dad0:\n          plVar17 = DAT_0017f2f0;\n        }\n        else {\n          plVar26 = (long *)0x0;\n          plVar18 = DAT_0017fa20;\n          plVar17 = (long *)0x0;\n          do {\n            while (plVar18[4] != lVar13) {\n              if ((plVar18[4] != 0) && (plVar18[6] != 0)) {\n                plVar26 = plVar18;\n              }\n              plVar18 = (long *)plVar18[7];\n              if (plVar18 == (long *)0x0) goto LAB_0011d7f1;\n            }\n            lVar28 = plVar18[6];\n            if (lVar28 != 0) {\n              plVar17 = (long *)(lVar28 + 0x30);\n              lVar13 = *(long *)(lVar28 + 0x30);\n              goto LAB_0011d835;\n            }\n            plVar18 = (long *)plVar18[7];\n            plVar17 = plVar26;\n          } while (plVar18 != (long *)0x0);\nLAB_0011d7f1:\n          if (plVar17 == (long *)0x0) goto LAB_0011dad0;\n        }\n        plVar17 = plVar17 + 6;\n        for (lVar13 = *plVar17; lVar13 != 0; lVar13 = *(long *)(lVar13 + 0x30)) {\n          if (((*(byte *)(lVar13 + 0x49) & 0x40) == 0) &&\n             (*(long *)(*(long *)(lVar13 + 0x20) + 0xd0) == 0)) {\n            lVar13 = *plVar17;\n            break;\n          }\n          plVar17 = (long *)(lVar13 + 0x30);\n        }\nLAB_0011d835:\n        plVar18 = (long *)(lVar16 + 0x30);\n        if (lVar15 == 0) {\n          *plVar17 = lVar16;\n          lVar15 = *(long *)(lVar16 + 0x30);\n          *(long *)(lVar16 + 0x30) = lVar13;\n          lVar16 = lVar15;\n        }\n        else {\n          lVar28 = *(long *)(lVar16 + 0x30);\n          if (lVar28 != 0) {\n            lVar5 = *(long *)(*(long *)(lVar28 + 0x20) + 0xd0);\n            while (lVar15 == lVar5) {\n              plVar18 = (long *)(lVar28 + 0x30);\n              lVar28 = *(long *)(lVar28 + 0x30);\n              if (lVar28 == 0) break;\n              lVar5 = *(long *)(*(long *)(lVar28 + 0x20) + 0xd0);\n            }\n          }\n          *plVar17 = lVar16;\n          lVar16 = *plVar18;\n          *plVar18 = lVar13;\n          if (*(long *)(lVar15 + 0x100) != 0) {\n            *(long **)(*(long *)(lVar15 + 0x100) + 0x30) = plVar18 + -6;\n          }\n        }\n      }\n    }\n  }" (if "if") (parenthesized_expression "((DAT_0017fac1 & 2) != 0)" (( "(") (binary_expression "(DAT_0017fac1 & 2) != 0" (parenthesized_expression "(DAT_0017fac1 & 2)" (( "(") (binary_expression "DAT_0017fac1 & 2" (identifier "DAT_0017fac1") (& "&") (number_literal "2")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    lVar16 = *(long *)PTR_DAT_0017e650;\n    plVar36 = *(long **)(PTR_DAT_0017e650 + 8);\n    iVar9 = FUN_00128bb0();\n    if (iVar9 != 0) {\n      uVar11 = FUN_00128550();\n      uVar14 = dcgettext(0,"%F%P: %s: plugin reported error after all symbols read\n",5);\n      FUN_001251f0(uVar14,uVar11);\n    }\n    FUN_00119910(*plVar36,0);\n    puVar7 = PTR_DAT_0017e650;\n    if (*(long *)PTR_DAT_0017e650 != lVar16) {\n      FUN_001252b0("../../ld/ldlang.c",0x1baf);\n    }\n    plVar6 = *(long **)(puVar7 + 8);\n    lVar16 = *plVar36;\n    *(long **)(puVar7 + 8) = plVar36;\n    *plVar36 = 0;\n    if (DAT_0017f2f0 != plVar17) {\n      FUN_001252b0("../../ld/ldlang.c",0x1baf);\n    }\n    plVar36 = DAT_0017f2f8;\n    plVar17 = (long *)*plVar18;\n    DAT_0017f2f8 = plVar18;\n    *plVar18 = 0;\n    if (DAT_0017fa20 != plVar26) {\n      FUN_001252b0("../../ld/ldlang.c",0x1baf);\n    }\n    plVar26 = DAT_0017fa28;\n    lVar15 = *plVar3;\n    DAT_0017fa28 = plVar3;\n    *plVar3 = 0;\n    plVar18 = DAT_0017f2f0;\n    plVar3 = DAT_0017fa20;\n    if (lVar16 != 0) {\n      for (; DAT_0017f380 = plVar3, plVar18 != (long *)0x0; plVar18 = (long *)plVar18[6]) {\n        if ((*(byte *)((long)plVar18 + 0x49) & 0x20) != 0) {\n          if ((*(byte *)((long)plVar18 + 0x49) & 0x40) == 0) goto LAB_0011d6c0;\n          break;\n        }\n        if ((plVar18[4] != 0) && (*(long *)(plVar18[4] + 0xd0) == 0)) {\n          DAT_0017f380 = plVar18;\n        }\n        plVar3 = DAT_0017f380;\n      }\n      plVar18 = DAT_0017f380;\n      if (DAT_0017f380 == (long *)0x0) {\n        FUN_001252b0("../../ld/ldlang.c",0x1c32);\n        plVar18 = DAT_0017f380;\n      }\nLAB_0011d6c0:\n      DAT_0017f380 = plVar18;\n      plVar18 = DAT_0017f380;\n      puVar7 = PTR_DAT_0017e650;\n      *plVar6 = *DAT_0017f380;\n      *plVar18 = lVar16;\n      if (plVar18 == *(long **)(puVar7 + 8)) {\n        *(long **)(puVar7 + 8) = plVar6;\n      }\n      *plVar26 = plVar18[7];\n      bVar38 = DAT_0017fa28 == plVar18 + 7;\n      plVar18[7] = lVar15;\n      plVar3 = DAT_0017f2f8;\n      if (bVar38) {\n        DAT_0017fa28 = plVar26;\n      }\n      if (plVar18[2] == 0) {\n        *plVar36 = (long)DAT_0017f2f0;\n        DAT_0017f2f0 = plVar17;\n        if ((long **)plVar3 != &DAT_0017f2f0) {\n          plVar36 = DAT_0017f2f8;\n        }\n      }\n      else {\n        *plVar36 = plVar18[6];\n        plVar18[6] = (long)plVar17;\n        if (plVar3 != plVar18 + 6) {\n          plVar36 = DAT_0017f2f8;\n        }\n      }\n      DAT_0017f2f8 = plVar36;\n      plVar18 = DAT_0017f2f8;\n      plVar17 = DAT_0017f2f0;\n      _DAT_0017f2c0 = _DAT_0017f2c0 + 1;\n      FUN_00119910(DAT_0017f430);\n      if (DAT_0017f2f0 != plVar17) {\n        FUN_001252b0("../../ld/ldlang.c");\n      }\n      lVar16 = *plVar18;\n      DAT_0017f2f8 = plVar18;\n      *plVar18 = 0;\n      while (lVar16 != 0) {\n        lVar15 = *(long *)(*(long *)(lVar16 + 0x20) + 0xd0);\n        lVar13 = *(long *)(lVar16 + 0x20);\n        if (lVar15 != 0) {\n          lVar13 = lVar15;\n        }\n        if (DAT_0017fa20 == (long *)0x0) {\nLAB_0011dad0:\n          plVar17 = DAT_0017f2f0;\n        }\n        else {\n          plVar26 = (long *)0x0;\n          plVar18 = DAT_0017fa20;\n          plVar17 = (long *)0x0;\n          do {\n            while (plVar18[4] != lVar13) {\n              if ((plVar18[4] != 0) && (plVar18[6] != 0)) {\n                plVar26 = plVar18;\n              }\n              plVar18 = (long *)plVar18[7];\n              if (plVar18 == (long *)0x0) goto LAB_0011d7f1;\n            }\n            lVar28 = plVar18[6];\n            if (lVar28 != 0) {\n              plVar17 = (long *)(lVar28 + 0x30);\n              lVar13 = *(long *)(lVar28 + 0x30);\n              goto LAB_0011d835;\n            }\n            plVar18 = (long *)plVar18[7];\n            plVar17 = plVar26;\n          } while (plVar18 != (long *)0x0);\nLAB_0011d7f1:\n          if (plVar17 == (long *)0x0) goto LAB_0011dad0;\n        }\n        plVar17 = plVar17 + 6;\n        for (lVar13 = *plVar17; lVar13 != 0; lVar13 = *(long *)(lVar13 + 0x30)) {\n          if (((*(byte *)(lVar13 + 0x49) & 0x40) == 0) &&\n             (*(long *)(*(long *)(lVar13 + 0x20) + 0xd0) == 0)) {\n            lVar13 = *plVar17;\n            break;\n          }\n          plVar17 = (long *)(lVar13 + 0x30);\n        }\nLAB_0011d835:\n        plVar18 = (long *)(lVar16 + 0x30);\n        if (lVar15 == 0) {\n          *plVar17 = lVar16;\n          lVar15 = *(long *)(lVar16 + 0x30);\n          *(long *)(lVar16 + 0x30) = lVar13;\n          lVar16 = lVar15;\n        }\n        else {\n          lVar28 = *(long *)(lVar16 + 0x30);\n          if (lVar28 != 0) {\n            lVar5 = *(long *)(*(long *)(lVar28 + 0x20) + 0xd0);\n            while (lVar15 == lVar5) {\n              plVar18 = (long *)(lVar28 + 0x30);\n              lVar28 = *(long *)(lVar28 + 0x30);\n              if (lVar28 == 0) break;\n              lVar5 = *(long *)(*(long *)(lVar28 + 0x20) + 0xd0);\n            }\n          }\n          *plVar17 = lVar16;\n          lVar16 = *plVar18;\n          *plVar18 = lVar13;\n          if (*(long *)(lVar15 + 0x100) != 0) {\n            *(long **)(*(long *)(lVar15 + 0x100) + 0x30) = plVar18 + -6;\n          }\n        }\n      }\n    }\n  }" ({ "{") (expression_statement "lVar16 = *(long *)PTR_DAT_0017e650;" (assignment_expression "lVar16 = *(long *)PTR_DAT_0017e650" (identifier "lVar16") (= "=") (pointer_expression "*(long *)PTR_DAT_0017e650" (* "*") (cast_expression "(long *)PTR_DAT_0017e650" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_DAT_0017e650")))) (; ";")) (expression_statement "plVar36 = *(long **)(PTR_DAT_0017e650 + 8);" (assignment_expression "plVar36 = *(long **)(PTR_DAT_0017e650 + 8)" (identifier "plVar36") (= "=") (pointer_expression "*(long **)(PTR_DAT_0017e650 + 8)" (* "*") (cast_expression "(long **)(PTR_DAT_0017e650 + 8)" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(PTR_DAT_0017e650 + 8)" (( "(") (binary_expression "PTR_DAT_0017e650 + 8" (identifier "PTR_DAT_0017e650") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "iVar9 = FUN_00128bb0();" (assignment_expression "iVar9 = FUN_00128bb0()" (identifier "iVar9") (= "=") (call_expression "FUN_00128bb0()" (identifier "FUN_00128bb0") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar9 != 0) {\n      uVar11 = FUN_00128550();\n      uVar14 = dcgettext(0,"%F%P: %s: plugin reported error after all symbols read\n",5);\n      FUN_001251f0(uVar14,uVar11);\n    }" (if "if") (parenthesized_expression "(iVar9 != 0)" (( "(") (binary_expression "iVar9 != 0" (identifier "iVar9") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      uVar11 = FUN_00128550();\n      uVar14 = dcgettext(0,"%F%P: %s: plugin reported error after all symbols read\n",5);\n      FUN_001251f0(uVar14,uVar11);\n    }" ({ "{") (expression_statement "uVar11 = FUN_00128550();" (assignment_expression "uVar11 = FUN_00128550()" (identifier "uVar11") (= "=") (call_expression "FUN_00128550()" (identifier "FUN_00128550") (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_001251f0(uVar14,uVar11);" (call_expression "FUN_001251f0(uVar14,uVar11)" (identifier "FUN_001251f0") (argument_list "(uVar14,uVar11)" (( "(") (identifier "uVar14") (, ",") (identifier "uVar11") () ")"))) (; ";")) (} "}"))) (expression_statement "FUN_00119910(*plVar36,0);" (call_expression "FUN_00119910(*plVar36,0)" (identifier "FUN_00119910") (argument_list "(*plVar36,0)" (( "(") (pointer_expression "*plVar36" (* "*") (identifier "plVar36")) (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "puVar7 = PTR_DAT_0017e650;" (assignment_expression "puVar7 = PTR_DAT_0017e650" (identifier "puVar7") (= "=") (identifier "PTR_DAT_0017e650")) (; ";")) (if_statement "if (*(long *)PTR_DAT_0017e650 != lVar16) {\n      FUN_001252b0("../../ld/ldlang.c",0x1baf);\n    }" (if "if") (parenthesized_expression "(*(long *)PTR_DAT_0017e650 != lVar16)" (( "(") (binary_expression "*(long *)PTR_DAT_0017e650 != lVar16" (pointer_expression "*(long *)PTR_DAT_0017e650" (* "*") (cast_expression "(long *)PTR_DAT_0017e650" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_DAT_0017e650"))) (!= "!=") (identifier "lVar16")) () ")")) (compound_statement "{\n      FUN_001252b0("../../ld/ldlang.c",0x1baf);\n    }" ({ "{") (expression_statement "FUN_001252b0("../../ld/ldlang.c",0x1baf);" (call_expression "FUN_001252b0("../../ld/ldlang.c",0x1baf)" (identifier "FUN_001252b0") (argument_list "("../../ld/ldlang.c",0x1baf)" (( "(") (string_literal ""../../ld/ldlang.c"" (" """) (string_content "../../ld/ldlang.c") (" """)) (, ",") (number_literal "0x1baf") () ")"))) (; ";")) (} "}"))) (expression_statement "plVar6 = *(long **)(puVar7 + 8);" (assignment_expression "plVar6 = *(long **)(puVar7 + 8)" (identifier "plVar6") (= "=") (pointer_expression "*(long **)(puVar7 + 8)" (* "*") (cast_expression "(long **)(puVar7 + 8)" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar7 + 8)" (( "(") (binary_expression "puVar7 + 8" (identifier "puVar7") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "lVar16 = *plVar36;" (assignment_expression "lVar16 = *plVar36" (identifier "lVar16") (= "=") (pointer_expression "*plVar36" (* "*") (identifier "plVar36"))) (; ";")) (expression_statement "*(long **)(puVar7 + 8) = plVar36;" (assignment_expression "*(long **)(puVar7 + 8) = plVar36" (pointer_expression "*(long **)(puVar7 + 8)" (* "*") (cast_expression "(long **)(puVar7 + 8)" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar7 + 8)" (( "(") (binary_expression "puVar7 + 8" (identifier "puVar7") (+ "+") (number_literal "8")) () ")")))) (= "=") (identifier "plVar36")) (; ";")) (expression_statement "*plVar36 = 0;" (assignment_expression "*plVar36 = 0" (pointer_expression "*plVar36" (* "*") (identifier "plVar36")) (= "=") (number_literal "0")) (; ";")) (if_statement "if (DAT_0017f2f0 != plVar17) {\n      FUN_001252b0("../../ld/ldlang.c",0x1baf);\n    }" (if "if") (parenthesized_expression "(DAT_0017f2f0 != plVar17)" (( "(") (binary_expression "DAT_0017f2f0 != plVar17" (identifier "DAT_0017f2f0") (!= "!=") (identifier "plVar17")) () ")")) (compound_statement "{\n      FUN_001252b0("../../ld/ldlang.c",0x1baf);\n    }" ({ "{") (expression_statement "FUN_001252b0("../../ld/ldlang.c",0x1baf);" (call_expression "FUN_001252b0("../../ld/ldlang.c",0x1baf)" (identifier "FUN_001252b0") (argument_list "("../../ld/ldlang.c",0x1baf)" (( "(") (string_literal ""../../ld/ldlang.c"" (" """) (string_content "../../ld/ldlang.c") (" """)) (, ",") (number_literal "0x1baf") () ")"))) (; ";")) (} "}"))) (expression_statement "plVar36 = DAT_0017f2f8;" (assignment_expression "plVar36 = DAT_0017f2f8" (identifier "plVar36") (= "=") (identifier "DAT_0017f2f8")) (; ";")) (expression_statement "plVar17 = (long *)*plVar18;" (assignment_expression "plVar17 = (long *)*plVar18" (identifier "plVar17") (= "=") (cast_expression "(long *)*plVar18" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*plVar18" (* "*") (identifier "plVar18")))) (; ";")) (expression_statement "DAT_0017f2f8 = plVar18;" (assignment_expression "DAT_0017f2f8 = plVar18" (identifier "DAT_0017f2f8") (= "=") (identifier "plVar18")) (; ";")) (expression_statement "*plVar18 = 0;" (assignment_expression "*plVar18 = 0" (pointer_expression "*plVar18" (* "*") (identifier "plVar18")) (= "=") (number_literal "0")) (; ";")) (if_statement "if (DAT_0017fa20 != plVar26) {\n      FUN_001252b0("../../ld/ldlang.c",0x1baf);\n    }" (if "if") (parenthesized_expression "(DAT_0017fa20 != plVar26)" (( "(") (binary_expression "DAT_0017fa20 != plVar26" (identifier "DAT_0017fa20") (!= "!=") (identifier "plVar26")) () ")")) (compound_statement "{\n      FUN_001252b0("../../ld/ldlang.c",0x1baf);\n    }" ({ "{") (expression_statement "FUN_001252b0("../../ld/ldlang.c",0x1baf);" (call_expression "FUN_001252b0("../../ld/ldlang.c",0x1baf)" (identifier "FUN_001252b0") (argument_list "("../../ld/ldlang.c",0x1baf)" (( "(") (string_literal ""../../ld/ldlang.c"" (" """) (string_content "../../ld/ldlang.c") (" """)) (, ",") (number_literal "0x1baf") () ")"))) (; ";")) (} "}"))) (expression_statement "plVar26 = DAT_0017fa28;" (assignment_expression "plVar26 = DAT_0017fa28" (identifier "plVar26") (= "=") (identifier "DAT_0017fa28")) (; ";")) (expression_statement "lVar15 = *plVar3;" (assignment_expression "lVar15 = *plVar3" (identifier "lVar15") (= "=") (pointer_expression "*plVar3" (* "*") (identifier "plVar3"))) (; ";")) (expression_statement "DAT_0017fa28 = plVar3;" (assignment_expression "DAT_0017fa28 = plVar3" (identifier "DAT_0017fa28") (= "=") (identifier "plVar3")) (; ";")) (expression_statement "*plVar3 = 0;" (assignment_expression "*plVar3 = 0" (pointer_expression "*plVar3" (* "*") (identifier "plVar3")) (= "=") (number_literal "0")) (; ";")) (expression_statement "plVar18 = DAT_0017f2f0;" (assignment_expression "plVar18 = DAT_0017f2f0" (identifier "plVar18") (= "=") (identifier "DAT_0017f2f0")) (; ";")) (expression_statement "plVar3 = DAT_0017fa20;" (assignment_expression "plVar3 = DAT_0017fa20" (identifier "plVar3") (= "=") (identifier "DAT_0017fa20")) (; ";")) (if_statement "if (lVar16 != 0) {\n      for (; DAT_0017f380 = plVar3, plVar18 != (long *)0x0; plVar18 = (long *)plVar18[6]) {\n        if ((*(byte *)((long)plVar18 + 0x49) & 0x20) != 0) {\n          if ((*(byte *)((long)plVar18 + 0x49) & 0x40) == 0) goto LAB_0011d6c0;\n          break;\n        }\n        if ((plVar18[4] != 0) && (*(long *)(plVar18[4] + 0xd0) == 0)) {\n          DAT_0017f380 = plVar18;\n        }\n        plVar3 = DAT_0017f380;\n      }\n      plVar18 = DAT_0017f380;\n      if (DAT_0017f380 == (long *)0x0) {\n        FUN_001252b0("../../ld/ldlang.c",0x1c32);\n        plVar18 = DAT_0017f380;\n      }\nLAB_0011d6c0:\n      DAT_0017f380 = plVar18;\n      plVar18 = DAT_0017f380;\n      puVar7 = PTR_DAT_0017e650;\n      *plVar6 = *DAT_0017f380;\n      *plVar18 = lVar16;\n      if (plVar18 == *(long **)(puVar7 + 8)) {\n        *(long **)(puVar7 + 8) = plVar6;\n      }\n      *plVar26 = plVar18[7];\n      bVar38 = DAT_0017fa28 == plVar18 + 7;\n      plVar18[7] = lVar15;\n      plVar3 = DAT_0017f2f8;\n      if (bVar38) {\n        DAT_0017fa28 = plVar26;\n      }\n      if (plVar18[2] == 0) {\n        *plVar36 = (long)DAT_0017f2f0;\n        DAT_0017f2f0 = plVar17;\n        if ((long **)plVar3 != &DAT_0017f2f0) {\n          plVar36 = DAT_0017f2f8;\n        }\n      }\n      else {\n        *plVar36 = plVar18[6];\n        plVar18[6] = (long)plVar17;\n        if (plVar3 != plVar18 + 6) {\n          plVar36 = DAT_0017f2f8;\n        }\n      }\n      DAT_0017f2f8 = plVar36;\n      plVar18 = DAT_0017f2f8;\n      plVar17 = DAT_0017f2f0;\n      _DAT_0017f2c0 = _DAT_0017f2c0 + 1;\n      FUN_00119910(DAT_0017f430);\n      if (DAT_0017f2f0 != plVar17) {\n        FUN_001252b0("../../ld/ldlang.c");\n      }\n      lVar16 = *plVar18;\n      DAT_0017f2f8 = plVar18;\n      *plVar18 = 0;\n      while (lVar16 != 0) {\n        lVar15 = *(long *)(*(long *)(lVar16 + 0x20) + 0xd0);\n        lVar13 = *(long *)(lVar16 + 0x20);\n        if (lVar15 != 0) {\n          lVar13 = lVar15;\n        }\n        if (DAT_0017fa20 == (long *)0x0) {\nLAB_0011dad0:\n          plVar17 = DAT_0017f2f0;\n        }\n        else {\n          plVar26 = (long *)0x0;\n          plVar18 = DAT_0017fa20;\n          plVar17 = (long *)0x0;\n          do {\n            while (plVar18[4] != lVar13) {\n              if ((plVar18[4] != 0) && (plVar18[6] != 0)) {\n                plVar26 = plVar18;\n              }\n              plVar18 = (long *)plVar18[7];\n              if (plVar18 == (long *)0x0) goto LAB_0011d7f1;\n            }\n            lVar28 = plVar18[6];\n            if (lVar28 != 0) {\n              plVar17 = (long *)(lVar28 + 0x30);\n              lVar13 = *(long *)(lVar28 + 0x30);\n              goto LAB_0011d835;\n            }\n            plVar18 = (long *)plVar18[7];\n            plVar17 = plVar26;\n          } while (plVar18 != (long *)0x0);\nLAB_0011d7f1:\n          if (plVar17 == (long *)0x0) goto LAB_0011dad0;\n        }\n        plVar17 = plVar17 + 6;\n        for (lVar13 = *plVar17; lVar13 != 0; lVar13 = *(long *)(lVar13 + 0x30)) {\n          if (((*(byte *)(lVar13 + 0x49) & 0x40) == 0) &&\n             (*(long *)(*(long *)(lVar13 + 0x20) + 0xd0) == 0)) {\n            lVar13 = *plVar17;\n            break;\n          }\n          plVar17 = (long *)(lVar13 + 0x30);\n        }\nLAB_0011d835:\n        plVar18 = (long *)(lVar16 + 0x30);\n        if (lVar15 == 0) {\n          *plVar17 = lVar16;\n          lVar15 = *(long *)(lVar16 + 0x30);\n          *(long *)(lVar16 + 0x30) = lVar13;\n          lVar16 = lVar15;\n        }\n        else {\n          lVar28 = *(long *)(lVar16 + 0x30);\n          if (lVar28 != 0) {\n            lVar5 = *(long *)(*(long *)(lVar28 + 0x20) + 0xd0);\n            while (lVar15 == lVar5) {\n              plVar18 = (long *)(lVar28 + 0x30);\n              lVar28 = *(long *)(lVar28 + 0x30);\n              if (lVar28 == 0) break;\n              lVar5 = *(long *)(*(long *)(lVar28 + 0x20) + 0xd0);\n            }\n          }\n          *plVar17 = lVar16;\n          lVar16 = *plVar18;\n          *plVar18 = lVar13;\n          if (*(long *)(lVar15 + 0x100) != 0) {\n            *(long **)(*(long *)(lVar15 + 0x100) + 0x30) = plVar18 + -6;\n          }\n        }\n      }\n    }" (if "if") (parenthesized_expression "(lVar16 != 0)" (( "(") (binary_expression "lVar16 != 0" (identifier "lVar16") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      for (; DAT_0017f380 = plVar3, plVar18 != (long *)0x0; plVar18 = (long *)plVar18[6]) {\n        if ((*(byte *)((long)plVar18 + 0x49) & 0x20) != 0) {\n          if ((*(byte *)((long)plVar18 + 0x49) & 0x40) == 0) goto LAB_0011d6c0;\n          break;\n        }\n        if ((plVar18[4] != 0) && (*(long *)(plVar18[4] + 0xd0) == 0)) {\n          DAT_0017f380 = plVar18;\n        }\n        plVar3 = DAT_0017f380;\n      }\n      plVar18 = DAT_0017f380;\n      if (DAT_0017f380 == (long *)0x0) {\n        FUN_001252b0("../../ld/ldlang.c",0x1c32);\n        plVar18 = DAT_0017f380;\n      }\nLAB_0011d6c0:\n      DAT_0017f380 = plVar18;\n      plVar18 = DAT_0017f380;\n      puVar7 = PTR_DAT_0017e650;\n      *plVar6 = *DAT_0017f380;\n      *plVar18 = lVar16;\n      if (plVar18 == *(long **)(puVar7 + 8)) {\n        *(long **)(puVar7 + 8) = plVar6;\n      }\n      *plVar26 = plVar18[7];\n      bVar38 = DAT_0017fa28 == plVar18 + 7;\n      plVar18[7] = lVar15;\n      plVar3 = DAT_0017f2f8;\n      if (bVar38) {\n        DAT_0017fa28 = plVar26;\n      }\n      if (plVar18[2] == 0) {\n        *plVar36 = (long)DAT_0017f2f0;\n        DAT_0017f2f0 = plVar17;\n        if ((long **)plVar3 != &DAT_0017f2f0) {\n          plVar36 = DAT_0017f2f8;\n        }\n      }\n      else {\n        *plVar36 = plVar18[6];\n        plVar18[6] = (long)plVar17;\n        if (plVar3 != plVar18 + 6) {\n          plVar36 = DAT_0017f2f8;\n        }\n      }\n      DAT_0017f2f8 = plVar36;\n      plVar18 = DAT_0017f2f8;\n      plVar17 = DAT_0017f2f0;\n      _DAT_0017f2c0 = _DAT_0017f2c0 + 1;\n      FUN_00119910(DAT_0017f430);\n      if (DAT_0017f2f0 != plVar17) {\n        FUN_001252b0("../../ld/ldlang.c");\n      }\n      lVar16 = *plVar18;\n      DAT_0017f2f8 = plVar18;\n      *plVar18 = 0;\n      while (lVar16 != 0) {\n        lVar15 = *(long *)(*(long *)(lVar16 + 0x20) + 0xd0);\n        lVar13 = *(long *)(lVar16 + 0x20);\n        if (lVar15 != 0) {\n          lVar13 = lVar15;\n        }\n        if (DAT_0017fa20 == (long *)0x0) {\nLAB_0011dad0:\n          plVar17 = DAT_0017f2f0;\n        }\n        else {\n          plVar26 = (long *)0x0;\n          plVar18 = DAT_0017fa20;\n          plVar17 = (long *)0x0;\n          do {\n            while (plVar18[4] != lVar13) {\n              if ((plVar18[4] != 0) && (plVar18[6] != 0)) {\n                plVar26 = plVar18;\n              }\n              plVar18 = (long *)plVar18[7];\n              if (plVar18 == (long *)0x0) goto LAB_0011d7f1;\n            }\n            lVar28 = plVar18[6];\n            if (lVar28 != 0) {\n              plVar17 = (long *)(lVar28 + 0x30);\n              lVar13 = *(long *)(lVar28 + 0x30);\n              goto LAB_0011d835;\n            }\n            plVar18 = (long *)plVar18[7];\n            plVar17 = plVar26;\n          } while (plVar18 != (long *)0x0);\nLAB_0011d7f1:\n          if (plVar17 == (long *)0x0) goto LAB_0011dad0;\n        }\n        plVar17 = plVar17 + 6;\n        for (lVar13 = *plVar17; lVar13 != 0; lVar13 = *(long *)(lVar13 + 0x30)) {\n          if (((*(byte *)(lVar13 + 0x49) & 0x40) == 0) &&\n             (*(long *)(*(long *)(lVar13 + 0x20) + 0xd0) == 0)) {\n            lVar13 = *plVar17;\n            break;\n          }\n          plVar17 = (long *)(lVar13 + 0x30);\n        }\nLAB_0011d835:\n        plVar18 = (long *)(lVar16 + 0x30);\n        if (lVar15 == 0) {\n          *plVar17 = lVar16;\n          lVar15 = *(long *)(lVar16 + 0x30);\n          *(long *)(lVar16 + 0x30) = lVar13;\n          lVar16 = lVar15;\n        }\n        else {\n          lVar28 = *(long *)(lVar16 + 0x30);\n          if (lVar28 != 0) {\n            lVar5 = *(long *)(*(long *)(lVar28 + 0x20) + 0xd0);\n            while (lVar15 == lVar5) {\n              plVar18 = (long *)(lVar28 + 0x30);\n              lVar28 = *(long *)(lVar28 + 0x30);\n              if (lVar28 == 0) break;\n              lVar5 = *(long *)(*(long *)(lVar28 + 0x20) + 0xd0);\n            }\n          }\n          *plVar17 = lVar16;\n          lVar16 = *plVar18;\n          *plVar18 = lVar13;\n          if (*(long *)(lVar15 + 0x100) != 0) {\n            *(long **)(*(long *)(lVar15 + 0x100) + 0x30) = plVar18 + -6;\n          }\n        }\n      }\n    }" ({ "{") (for_statement "for (; DAT_0017f380 = plVar3, plVar18 != (long *)0x0; plVar18 = (long *)plVar18[6]) {\n        if ((*(byte *)((long)plVar18 + 0x49) & 0x20) != 0) {\n          if ((*(byte *)((long)plVar18 + 0x49) & 0x40) == 0) goto LAB_0011d6c0;\n          break;\n        }\n        if ((plVar18[4] != 0) && (*(long *)(plVar18[4] + 0xd0) == 0)) {\n          DAT_0017f380 = plVar18;\n        }\n        plVar3 = DAT_0017f380;\n      }" (for "for") (( "(") (; ";") (comma_expression "DAT_0017f380 = plVar3, plVar18 != (long *)0x0" (assignment_expression "DAT_0017f380 = plVar3" (identifier "DAT_0017f380") (= "=") (identifier "plVar3")) (, ",") (binary_expression "plVar18 != (long *)0x0" (identifier "plVar18") (!= "!=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) (; ";") (assignment_expression "plVar18 = (long *)plVar18[6]" (identifier "plVar18") (= "=") (cast_expression "(long *)plVar18[6]" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "plVar18[6]" (identifier "plVar18") ([ "[") (number_literal "6") (] "]")))) () ")") (compound_statement "{\n        if ((*(byte *)((long)plVar18 + 0x49) & 0x20) != 0) {\n          if ((*(byte *)((long)plVar18 + 0x49) & 0x40) == 0) goto LAB_0011d6c0;\n          break;\n        }\n        if ((plVar18[4] != 0) && (*(long *)(plVar18[4] + 0xd0) == 0)) {\n          DAT_0017f380 = plVar18;\n        }\n        plVar3 = DAT_0017f380;\n      }" ({ "{") (if_statement "if ((*(byte *)((long)plVar18 + 0x49) & 0x20) != 0) {\n          if ((*(byte *)((long)plVar18 + 0x49) & 0x40) == 0) goto LAB_0011d6c0;\n          break;\n        }" (if "if") (parenthesized_expression "((*(byte *)((long)plVar18 + 0x49) & 0x20) != 0)" (( "(") (binary_expression "(*(byte *)((long)plVar18 + 0x49) & 0x20) != 0" (parenthesized_expression "(*(byte *)((long)plVar18 + 0x49) & 0x20)" (( "(") (binary_expression "*(byte *)((long)plVar18 + 0x49) & 0x20" (pointer_expression "*(byte *)((long)plVar18 + 0x49)" (* "*") (cast_expression "(byte *)((long)plVar18 + 0x49)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)plVar18 + 0x49)" (( "(") (binary_expression "(long)plVar18 + 0x49" (cast_expression "(long)plVar18" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar18")) (+ "+") (number_literal "0x49")) () ")")))) (& "&") (number_literal "0x20")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          if ((*(byte *)((long)plVar18 + 0x49) & 0x40) == 0) goto LAB_0011d6c0;\n          break;\n        }" ({ "{") (if_statement "if ((*(byte *)((long)plVar18 + 0x49) & 0x40) == 0) goto LAB_0011d6c0;" (if "if") (parenthesized_expression "((*(byte *)((long)plVar18 + 0x49) & 0x40) == 0)" (( "(") (binary_expression "(*(byte *)((long)plVar18 + 0x49) & 0x40) == 0" (parenthesized_expression "(*(byte *)((long)plVar18 + 0x49) & 0x40)" (( "(") (binary_expression "*(byte *)((long)plVar18 + 0x49) & 0x40" (pointer_expression "*(byte *)((long)plVar18 + 0x49)" (* "*") (cast_expression "(byte *)((long)plVar18 + 0x49)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)plVar18 + 0x49)" (( "(") (binary_expression "(long)plVar18 + 0x49" (cast_expression "(long)plVar18" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar18")) (+ "+") (number_literal "0x49")) () ")")))) (& "&") (number_literal "0x40")) () ")")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0011d6c0;" (goto "goto") (statement_identifier "LAB_0011d6c0") (; ";"))) (break_statement "break;" (break "break") (; ";")) (} "}"))) (if_statement "if ((plVar18[4] != 0) && (*(long *)(plVar18[4] + 0xd0) == 0)) {\n          DAT_0017f380 = plVar18;\n        }" (if "if") (parenthesized_expression "((plVar18[4] != 0) && (*(long *)(plVar18[4] + 0xd0) == 0))" (( "(") (binary_expression "(plVar18[4] != 0) && (*(long *)(plVar18[4] + 0xd0) == 0)" (parenthesized_expression "(plVar18[4] != 0)" (( "(") (binary_expression "plVar18[4] != 0" (subscript_expression "plVar18[4]" (identifier "plVar18") ([ "[") (number_literal "4") (] "]")) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(*(long *)(plVar18[4] + 0xd0) == 0)" (( "(") (binary_expression "*(long *)(plVar18[4] + 0xd0) == 0" (pointer_expression "*(long *)(plVar18[4] + 0xd0)" (* "*") (cast_expression "(long *)(plVar18[4] + 0xd0)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(plVar18[4] + 0xd0)" (( "(") (binary_expression "plVar18[4] + 0xd0" (subscript_expression "plVar18[4]" (identifier "plVar18") ([ "[") (number_literal "4") (] "]")) (+ "+") (number_literal "0xd0")) () ")")))) (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n          DAT_0017f380 = plVar18;\n        }" ({ "{") (expression_statement "DAT_0017f380 = plVar18;" (assignment_expression "DAT_0017f380 = plVar18" (identifier "DAT_0017f380") (= "=") (identifier "plVar18")) (; ";")) (} "}"))) (expression_statement "plVar3 = DAT_0017f380;" (assignment_expression "plVar3 = DAT_0017f380" (identifier "plVar3") (= "=") (identifier "DAT_0017f380")) (; ";")) (} "}"))) (expression_statement "plVar18 = DAT_0017f380;" (assignment_expression "plVar18 = DAT_0017f380" (identifier "plVar18") (= "=") (identifier "DAT_0017f380")) (; ";")) (if_statement "if (DAT_0017f380 == (long *)0x0) {\n        FUN_001252b0("../../ld/ldlang.c",0x1c32);\n        plVar18 = DAT_0017f380;\n      }" (if "if") (parenthesized_expression "(DAT_0017f380 == (long *)0x0)" (( "(") (binary_expression "DAT_0017f380 == (long *)0x0" (identifier "DAT_0017f380") (== "==") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        FUN_001252b0("../../ld/ldlang.c",0x1c32);\n        plVar18 = DAT_0017f380;\n      }" ({ "{") (expression_statement "FUN_001252b0("../../ld/ldlang.c",0x1c32);" (call_expression "FUN_001252b0("../../ld/ldlang.c",0x1c32)" (identifier "FUN_001252b0") (argument_list "("../../ld/ldlang.c",0x1c32)" (( "(") (string_literal ""../../ld/ldlang.c"" (" """) (string_content "../../ld/ldlang.c") (" """)) (, ",") (number_literal "0x1c32") () ")"))) (; ";")) (expression_statement "plVar18 = DAT_0017f380;" (assignment_expression "plVar18 = DAT_0017f380" (identifier "plVar18") (= "=") (identifier "DAT_0017f380")) (; ";")) (} "}"))) (labeled_statement "LAB_0011d6c0:\n      DAT_0017f380 = plVar18;" (statement_identifier "LAB_0011d6c0") (: ":") (expression_statement "DAT_0017f380 = plVar18;" (assignment_expression "DAT_0017f380 = plVar18" (identifier "DAT_0017f380") (= "=") (identifier "plVar18")) (; ";"))) (expression_statement "plVar18 = DAT_0017f380;" (assignment_expression "plVar18 = DAT_0017f380" (identifier "plVar18") (= "=") (identifier "DAT_0017f380")) (; ";")) (expression_statement "puVar7 = PTR_DAT_0017e650;" (assignment_expression "puVar7 = PTR_DAT_0017e650" (identifier "puVar7") (= "=") (identifier "PTR_DAT_0017e650")) (; ";")) (expression_statement "*plVar6 = *DAT_0017f380;" (assignment_expression "*plVar6 = *DAT_0017f380" (pointer_expression "*plVar6" (* "*") (identifier "plVar6")) (= "=") (pointer_expression "*DAT_0017f380" (* "*") (identifier "DAT_0017f380"))) (; ";")) (expression_statement "*plVar18 = lVar16;" (assignment_expression "*plVar18 = lVar16" (pointer_expression "*plVar18" (* "*") (identifier "plVar18")) (= "=") (identifier "lVar16")) (; ";")) (if_statement "if (plVar18 == *(long **)(puVar7 + 8)) {\n        *(long **)(puVar7 + 8) = plVar6;\n      }" (if "if") (parenthesized_expression "(plVar18 == *(long **)(puVar7 + 8))" (( "(") (binary_expression "plVar18 == *(long **)(puVar7 + 8)" (identifier "plVar18") (== "==") (pointer_expression "*(long **)(puVar7 + 8)" (* "*") (cast_expression "(long **)(puVar7 + 8)" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar7 + 8)" (( "(") (binary_expression "puVar7 + 8" (identifier "puVar7") (+ "+") (number_literal "8")) () ")"))))) () ")")) (compound_statement "{\n        *(long **)(puVar7 + 8) = plVar6;\n      }" ({ "{") (expression_statement "*(long **)(puVar7 + 8) = plVar6;" (assignment_expression "*(long **)(puVar7 + 8) = plVar6" (pointer_expression "*(long **)(puVar7 + 8)" (* "*") (cast_expression "(long **)(puVar7 + 8)" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar7 + 8)" (( "(") (binary_expression "puVar7 + 8" (identifier "puVar7") (+ "+") (number_literal "8")) () ")")))) (= "=") (identifier "plVar6")) (; ";")) (} "}"))) (expression_statement "*plVar26 = plVar18[7];" (assignment_expression "*plVar26 = plVar18[7]" (pointer_expression "*plVar26" (* "*") (identifier "plVar26")) (= "=") (subscript_expression "plVar18[7]" (identifier "plVar18") ([ "[") (number_literal "7") (] "]"))) (; ";")) (expression_statement "bVar38 = DAT_0017fa28 == plVar18 + 7;" (assignment_expression "bVar38 = DAT_0017fa28 == plVar18 + 7" (identifier "bVar38") (= "=") (binary_expression "DAT_0017fa28 == plVar18 + 7" (identifier "DAT_0017fa28") (== "==") (binary_expression "plVar18 + 7" (identifier "plVar18") (+ "+") (number_literal "7")))) (; ";")) (expression_statement "plVar18[7] = lVar15;" (assignment_expression "plVar18[7] = lVar15" (subscript_expression "plVar18[7]" (identifier "plVar18") ([ "[") (number_literal "7") (] "]")) (= "=") (identifier "lVar15")) (; ";")) (expression_statement "plVar3 = DAT_0017f2f8;" (assignment_expression "plVar3 = DAT_0017f2f8" (identifier "plVar3") (= "=") (identifier "DAT_0017f2f8")) (; ";")) (if_statement "if (bVar38) {\n        DAT_0017fa28 = plVar26;\n      }" (if "if") (parenthesized_expression "(bVar38)" (( "(") (identifier "bVar38") () ")")) (compound_statement "{\n        DAT_0017fa28 = plVar26;\n      }" ({ "{") (expression_statement "DAT_0017fa28 = plVar26;" (assignment_expression "DAT_0017fa28 = plVar26" (identifier "DAT_0017fa28") (= "=") (identifier "plVar26")) (; ";")) (} "}"))) (if_statement "if (plVar18[2] == 0) {\n        *plVar36 = (long)DAT_0017f2f0;\n        DAT_0017f2f0 = plVar17;\n        if ((long **)plVar3 != &DAT_0017f2f0) {\n          plVar36 = DAT_0017f2f8;\n        }\n      }\n      else {\n        *plVar36 = plVar18[6];\n        plVar18[6] = (long)plVar17;\n        if (plVar3 != plVar18 + 6) {\n          plVar36 = DAT_0017f2f8;\n        }\n      }" (if "if") (parenthesized_expression "(plVar18[2] == 0)" (( "(") (binary_expression "plVar18[2] == 0" (subscript_expression "plVar18[2]" (identifier "plVar18") ([ "[") (number_literal "2") (] "]")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        *plVar36 = (long)DAT_0017f2f0;\n        DAT_0017f2f0 = plVar17;\n        if ((long **)plVar3 != &DAT_0017f2f0) {\n          plVar36 = DAT_0017f2f8;\n        }\n      }" ({ "{") (expression_statement "*plVar36 = (long)DAT_0017f2f0;" (assignment_expression "*plVar36 = (long)DAT_0017f2f0" (pointer_expression "*plVar36" (* "*") (identifier "plVar36")) (= "=") (cast_expression "(long)DAT_0017f2f0" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "DAT_0017f2f0"))) (; ";")) (expression_statement "DAT_0017f2f0 = plVar17;" (assignment_expression "DAT_0017f2f0 = plVar17" (identifier "DAT_0017f2f0") (= "=") (identifier "plVar17")) (; ";")) (if_statement "if ((long **)plVar3 != &DAT_0017f2f0) {\n          plVar36 = DAT_0017f2f8;\n        }" (if "if") (parenthesized_expression "((long **)plVar3 != &DAT_0017f2f0)" (( "(") (binary_expression "(long **)plVar3 != &DAT_0017f2f0" (cast_expression "(long **)plVar3" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "plVar3")) (!= "!=") (pointer_expression "&DAT_0017f2f0" (& "&") (identifier "DAT_0017f2f0"))) () ")")) (compound_statement "{\n          plVar36 = DAT_0017f2f8;\n        }" ({ "{") (expression_statement "plVar36 = DAT_0017f2f8;" (assignment_expression "plVar36 = DAT_0017f2f8" (identifier "plVar36") (= "=") (identifier "DAT_0017f2f8")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n        *plVar36 = plVar18[6];\n        plVar18[6] = (long)plVar17;\n        if (plVar3 != plVar18 + 6) {\n          plVar36 = DAT_0017f2f8;\n        }\n      }" (else "else") (compound_statement "{\n        *plVar36 = plVar18[6];\n        plVar18[6] = (long)plVar17;\n        if (plVar3 != plVar18 + 6) {\n          plVar36 = DAT_0017f2f8;\n        }\n      }" ({ "{") (expression_statement "*plVar36 = plVar18[6];" (assignment_expression "*plVar36 = plVar18[6]" (pointer_expression "*plVar36" (* "*") (identifier "plVar36")) (= "=") (subscript_expression "plVar18[6]" (identifier "plVar18") ([ "[") (number_literal "6") (] "]"))) (; ";")) (expression_statement "plVar18[6] = (long)plVar17;" (assignment_expression "plVar18[6] = (long)plVar17" (subscript_expression "plVar18[6]" (identifier "plVar18") ([ "[") (number_literal "6") (] "]")) (= "=") (cast_expression "(long)plVar17" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar17"))) (; ";")) (if_statement "if (plVar3 != plVar18 + 6) {\n          plVar36 = DAT_0017f2f8;\n        }" (if "if") (parenthesized_expression "(plVar3 != plVar18 + 6)" (( "(") (binary_expression "plVar3 != plVar18 + 6" (identifier "plVar3") (!= "!=") (binary_expression "plVar18 + 6" (identifier "plVar18") (+ "+") (number_literal "6"))) () ")")) (compound_statement "{\n          plVar36 = DAT_0017f2f8;\n        }" ({ "{") (expression_statement "plVar36 = DAT_0017f2f8;" (assignment_expression "plVar36 = DAT_0017f2f8" (identifier "plVar36") (= "=") (identifier "DAT_0017f2f8")) (; ";")) (} "}"))) (} "}")))) (expression_statement "DAT_0017f2f8 = plVar36;" (assignment_expression "DAT_0017f2f8 = plVar36" (identifier "DAT_0017f2f8") (= "=") (identifier "plVar36")) (; ";")) (expression_statement "plVar18 = DAT_0017f2f8;" (assignment_expression "plVar18 = DAT_0017f2f8" (identifier "plVar18") (= "=") (identifier "DAT_0017f2f8")) (; ";")) (expression_statement "plVar17 = DAT_0017f2f0;" (assignment_expression "plVar17 = DAT_0017f2f0" (identifier "plVar17") (= "=") (identifier "DAT_0017f2f0")) (; ";")) (expression_statement "_DAT_0017f2c0 = _DAT_0017f2c0 + 1;" (assignment_expression "_DAT_0017f2c0 = _DAT_0017f2c0 + 1" (identifier "_DAT_0017f2c0") (= "=") (binary_expression "_DAT_0017f2c0 + 1" (identifier "_DAT_0017f2c0") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "FUN_00119910(DAT_0017f430);" (call_expression "FUN_00119910(DAT_0017f430)" (identifier "FUN_00119910") (argument_list "(DAT_0017f430)" (( "(") (identifier "DAT_0017f430") () ")"))) (; ";")) (if_statement "if (DAT_0017f2f0 != plVar17) {\n        FUN_001252b0("../../ld/ldlang.c");\n      }" (if "if") (parenthesized_expression "(DAT_0017f2f0 != plVar17)" (( "(") (binary_expression "DAT_0017f2f0 != plVar17" (identifier "DAT_0017f2f0") (!= "!=") (identifier "plVar17")) () ")")) (compound_statement "{\n        FUN_001252b0("../../ld/ldlang.c");\n      }" ({ "{") (expression_statement "FUN_001252b0("../../ld/ldlang.c");" (call_expression "FUN_001252b0("../../ld/ldlang.c")" (identifier "FUN_001252b0") (argument_list "("../../ld/ldlang.c")" (( "(") (string_literal ""../../ld/ldlang.c"" (" """) (string_content "../../ld/ldlang.c") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "lVar16 = *plVar18;" (assignment_expression "lVar16 = *plVar18" (identifier "lVar16") (= "=") (pointer_expression "*plVar18" (* "*") (identifier "plVar18"))) (; ";")) (expression_statement "DAT_0017f2f8 = plVar18;" (assignment_expression "DAT_0017f2f8 = plVar18" (identifier "DAT_0017f2f8") (= "=") (identifier "plVar18")) (; ";")) (expression_statement "*plVar18 = 0;" (assignment_expression "*plVar18 = 0" (pointer_expression "*plVar18" (* "*") (identifier "plVar18")) (= "=") (number_literal "0")) (; ";")) (while_statement "while (lVar16 != 0) {\n        lVar15 = *(long *)(*(long *)(lVar16 + 0x20) + 0xd0);\n        lVar13 = *(long *)(lVar16 + 0x20);\n        if (lVar15 != 0) {\n          lVar13 = lVar15;\n        }\n        if (DAT_0017fa20 == (long *)0x0) {\nLAB_0011dad0:\n          plVar17 = DAT_0017f2f0;\n        }\n        else {\n          plVar26 = (long *)0x0;\n          plVar18 = DAT_0017fa20;\n          plVar17 = (long *)0x0;\n          do {\n            while (plVar18[4] != lVar13) {\n              if ((plVar18[4] != 0) && (plVar18[6] != 0)) {\n                plVar26 = plVar18;\n              }\n              plVar18 = (long *)plVar18[7];\n              if (plVar18 == (long *)0x0) goto LAB_0011d7f1;\n            }\n            lVar28 = plVar18[6];\n            if (lVar28 != 0) {\n              plVar17 = (long *)(lVar28 + 0x30);\n              lVar13 = *(long *)(lVar28 + 0x30);\n              goto LAB_0011d835;\n            }\n            plVar18 = (long *)plVar18[7];\n            plVar17 = plVar26;\n          } while (plVar18 != (long *)0x0);\nLAB_0011d7f1:\n          if (plVar17 == (long *)0x0) goto LAB_0011dad0;\n        }\n        plVar17 = plVar17 + 6;\n        for (lVar13 = *plVar17; lVar13 != 0; lVar13 = *(long *)(lVar13 + 0x30)) {\n          if (((*(byte *)(lVar13 + 0x49) & 0x40) == 0) &&\n             (*(long *)(*(long *)(lVar13 + 0x20) + 0xd0) == 0)) {\n            lVar13 = *plVar17;\n            break;\n          }\n          plVar17 = (long *)(lVar13 + 0x30);\n        }\nLAB_0011d835:\n        plVar18 = (long *)(lVar16 + 0x30);\n        if (lVar15 == 0) {\n          *plVar17 = lVar16;\n          lVar15 = *(long *)(lVar16 + 0x30);\n          *(long *)(lVar16 + 0x30) = lVar13;\n          lVar16 = lVar15;\n        }\n        else {\n          lVar28 = *(long *)(lVar16 + 0x30);\n          if (lVar28 != 0) {\n            lVar5 = *(long *)(*(long *)(lVar28 + 0x20) + 0xd0);\n            while (lVar15 == lVar5) {\n              plVar18 = (long *)(lVar28 + 0x30);\n              lVar28 = *(long *)(lVar28 + 0x30);\n              if (lVar28 == 0) break;\n              lVar5 = *(long *)(*(long *)(lVar28 + 0x20) + 0xd0);\n            }\n          }\n          *plVar17 = lVar16;\n          lVar16 = *plVar18;\n          *plVar18 = lVar13;\n          if (*(long *)(lVar15 + 0x100) != 0) {\n            *(long **)(*(long *)(lVar15 + 0x100) + 0x30) = plVar18 + -6;\n          }\n        }\n      }" (while "while") (parenthesized_expression "(lVar16 != 0)" (( "(") (binary_expression "lVar16 != 0" (identifier "lVar16") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        lVar15 = *(long *)(*(long *)(lVar16 + 0x20) + 0xd0);\n        lVar13 = *(long *)(lVar16 + 0x20);\n        if (lVar15 != 0) {\n          lVar13 = lVar15;\n        }\n        if (DAT_0017fa20 == (long *)0x0) {\nLAB_0011dad0:\n          plVar17 = DAT_0017f2f0;\n        }\n        else {\n          plVar26 = (long *)0x0;\n          plVar18 = DAT_0017fa20;\n          plVar17 = (long *)0x0;\n          do {\n            while (plVar18[4] != lVar13) {\n              if ((plVar18[4] != 0) && (plVar18[6] != 0)) {\n                plVar26 = plVar18;\n              }\n              plVar18 = (long *)plVar18[7];\n              if (plVar18 == (long *)0x0) goto LAB_0011d7f1;\n            }\n            lVar28 = plVar18[6];\n            if (lVar28 != 0) {\n              plVar17 = (long *)(lVar28 + 0x30);\n              lVar13 = *(long *)(lVar28 + 0x30);\n              goto LAB_0011d835;\n            }\n            plVar18 = (long *)plVar18[7];\n            plVar17 = plVar26;\n          } while (plVar18 != (long *)0x0);\nLAB_0011d7f1:\n          if (plVar17 == (long *)0x0) goto LAB_0011dad0;\n        }\n        plVar17 = plVar17 + 6;\n        for (lVar13 = *plVar17; lVar13 != 0; lVar13 = *(long *)(lVar13 + 0x30)) {\n          if (((*(byte *)(lVar13 + 0x49) & 0x40) == 0) &&\n             (*(long *)(*(long *)(lVar13 + 0x20) + 0xd0) == 0)) {\n            lVar13 = *plVar17;\n            break;\n          }\n          plVar17 = (long *)(lVar13 + 0x30);\n        }\nLAB_0011d835:\n        plVar18 = (long *)(lVar16 + 0x30);\n        if (lVar15 == 0) {\n          *plVar17 = lVar16;\n          lVar15 = *(long *)(lVar16 + 0x30);\n          *(long *)(lVar16 + 0x30) = lVar13;\n          lVar16 = lVar15;\n        }\n        else {\n          lVar28 = *(long *)(lVar16 + 0x30);\n          if (lVar28 != 0) {\n            lVar5 = *(long *)(*(long *)(lVar28 + 0x20) + 0xd0);\n            while (lVar15 == lVar5) {\n              plVar18 = (long *)(lVar28 + 0x30);\n              lVar28 = *(long *)(lVar28 + 0x30);\n              if (lVar28 == 0) break;\n              lVar5 = *(long *)(*(long *)(lVar28 + 0x20) + 0xd0);\n            }\n          }\n          *plVar17 = lVar16;\n          lVar16 = *plVar18;\n          *plVar18 = lVar13;\n          if (*(long *)(lVar15 + 0x100) != 0) {\n            *(long **)(*(long *)(lVar15 + 0x100) + 0x30) = plVar18 + -6;\n          }\n        }\n      }" ({ "{") (expression_statement "lVar15 = *(long *)(*(long *)(lVar16 + 0x20) + 0xd0);" (assignment_expression "lVar15 = *(long *)(*(long *)(lVar16 + 0x20) + 0xd0)" (identifier "lVar15") (= "=") (pointer_expression "*(long *)(*(long *)(lVar16 + 0x20) + 0xd0)" (* "*") (cast_expression "(long *)(*(long *)(lVar16 + 0x20) + 0xd0)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(long *)(lVar16 + 0x20) + 0xd0)" (( "(") (binary_expression "*(long *)(lVar16 + 0x20) + 0xd0" (pointer_expression "*(long *)(lVar16 + 0x20)" (* "*") (cast_expression "(long *)(lVar16 + 0x20)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar16 + 0x20)" (( "(") (binary_expression "lVar16 + 0x20" (identifier "lVar16") (+ "+") (number_literal "0x20")) () ")")))) (+ "+") (number_literal "0xd0")) () ")"))))) (; ";")) (expression_statement "lVar13 = *(long *)(lVar16 + 0x20);" (assignment_expression "lVar13 = *(long *)(lVar16 + 0x20)" (identifier "lVar13") (= "=") (pointer_expression "*(long *)(lVar16 + 0x20)" (* "*") (cast_expression "(long *)(lVar16 + 0x20)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar16 + 0x20)" (( "(") (binary_expression "lVar16 + 0x20" (identifier "lVar16") (+ "+") (number_literal "0x20")) () ")"))))) (; ";")) (if_statement "if (lVar15 != 0) {\n          lVar13 = lVar15;\n        }" (if "if") (parenthesized_expression "(lVar15 != 0)" (( "(") (binary_expression "lVar15 != 0" (identifier "lVar15") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          lVar13 = lVar15;\n        }" ({ "{") (expression_statement "lVar13 = lVar15;" (assignment_expression "lVar13 = lVar15" (identifier "lVar13") (= "=") (identifier "lVar15")) (; ";")) (} "}"))) (if_statement "if (DAT_0017fa20 == (long *)0x0) {\nLAB_0011dad0:\n          plVar17 = DAT_0017f2f0;\n        }\n        else {\n          plVar26 = (long *)0x0;\n          plVar18 = DAT_0017fa20;\n          plVar17 = (long *)0x0;\n          do {\n            while (plVar18[4] != lVar13) {\n              if ((plVar18[4] != 0) && (plVar18[6] != 0)) {\n                plVar26 = plVar18;\n              }\n              plVar18 = (long *)plVar18[7];\n              if (plVar18 == (long *)0x0) goto LAB_0011d7f1;\n            }\n            lVar28 = plVar18[6];\n            if (lVar28 != 0) {\n              plVar17 = (long *)(lVar28 + 0x30);\n              lVar13 = *(long *)(lVar28 + 0x30);\n              goto LAB_0011d835;\n            }\n            plVar18 = (long *)plVar18[7];\n            plVar17 = plVar26;\n          } while (plVar18 != (long *)0x0);\nLAB_0011d7f1:\n          if (plVar17 == (long *)0x0) goto LAB_0011dad0;\n        }" (if "if") (parenthesized_expression "(DAT_0017fa20 == (long *)0x0)" (( "(") (binary_expression "DAT_0017fa20 == (long *)0x0" (identifier "DAT_0017fa20") (== "==") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\nLAB_0011dad0:\n          plVar17 = DAT_0017f2f0;\n        }" ({ "{") (labeled_statement "LAB_0011dad0:\n          plVar17 = DAT_0017f2f0;" (statement_identifier "LAB_0011dad0") (: ":") (expression_statement "plVar17 = DAT_0017f2f0;" (assignment_expression "plVar17 = DAT_0017f2f0" (identifier "plVar17") (= "=") (identifier "DAT_0017f2f0")) (; ";"))) (} "}")) (else_clause "else {\n          plVar26 = (long *)0x0;\n          plVar18 = DAT_0017fa20;\n          plVar17 = (long *)0x0;\n          do {\n            while (plVar18[4] != lVar13) {\n              if ((plVar18[4] != 0) && (plVar18[6] != 0)) {\n                plVar26 = plVar18;\n              }\n              plVar18 = (long *)plVar18[7];\n              if (plVar18 == (long *)0x0) goto LAB_0011d7f1;\n            }\n            lVar28 = plVar18[6];\n            if (lVar28 != 0) {\n              plVar17 = (long *)(lVar28 + 0x30);\n              lVar13 = *(long *)(lVar28 + 0x30);\n              goto LAB_0011d835;\n            }\n            plVar18 = (long *)plVar18[7];\n            plVar17 = plVar26;\n          } while (plVar18 != (long *)0x0);\nLAB_0011d7f1:\n          if (plVar17 == (long *)0x0) goto LAB_0011dad0;\n        }" (else "else") (compound_statement "{\n          plVar26 = (long *)0x0;\n          plVar18 = DAT_0017fa20;\n          plVar17 = (long *)0x0;\n          do {\n            while (plVar18[4] != lVar13) {\n              if ((plVar18[4] != 0) && (plVar18[6] != 0)) {\n                plVar26 = plVar18;\n              }\n              plVar18 = (long *)plVar18[7];\n              if (plVar18 == (long *)0x0) goto LAB_0011d7f1;\n            }\n            lVar28 = plVar18[6];\n            if (lVar28 != 0) {\n              plVar17 = (long *)(lVar28 + 0x30);\n              lVar13 = *(long *)(lVar28 + 0x30);\n              goto LAB_0011d835;\n            }\n            plVar18 = (long *)plVar18[7];\n            plVar17 = plVar26;\n          } while (plVar18 != (long *)0x0);\nLAB_0011d7f1:\n          if (plVar17 == (long *)0x0) goto LAB_0011dad0;\n        }" ({ "{") (expression_statement "plVar26 = (long *)0x0;" (assignment_expression "plVar26 = (long *)0x0" (identifier "plVar26") (= "=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "plVar18 = DAT_0017fa20;" (assignment_expression "plVar18 = DAT_0017fa20" (identifier "plVar18") (= "=") (identifier "DAT_0017fa20")) (; ";")) (expression_statement "plVar17 = (long *)0x0;" (assignment_expression "plVar17 = (long *)0x0" (identifier "plVar17") (= "=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (do_statement "do {\n            while (plVar18[4] != lVar13) {\n              if ((plVar18[4] != 0) && (plVar18[6] != 0)) {\n                plVar26 = plVar18;\n              }\n              plVar18 = (long *)plVar18[7];\n              if (plVar18 == (long *)0x0) goto LAB_0011d7f1;\n            }\n            lVar28 = plVar18[6];\n            if (lVar28 != 0) {\n              plVar17 = (long *)(lVar28 + 0x30);\n              lVar13 = *(long *)(lVar28 + 0x30);\n              goto LAB_0011d835;\n            }\n            plVar18 = (long *)plVar18[7];\n            plVar17 = plVar26;\n          } while (plVar18 != (long *)0x0);" (do "do") (compound_statement "{\n            while (plVar18[4] != lVar13) {\n              if ((plVar18[4] != 0) && (plVar18[6] != 0)) {\n                plVar26 = plVar18;\n              }\n              plVar18 = (long *)plVar18[7];\n              if (plVar18 == (long *)0x0) goto LAB_0011d7f1;\n            }\n            lVar28 = plVar18[6];\n            if (lVar28 != 0) {\n              plVar17 = (long *)(lVar28 + 0x30);\n              lVar13 = *(long *)(lVar28 + 0x30);\n              goto LAB_0011d835;\n            }\n            plVar18 = (long *)plVar18[7];\n            plVar17 = plVar26;\n          }" ({ "{") (while_statement "while (plVar18[4] != lVar13) {\n              if ((plVar18[4] != 0) && (plVar18[6] != 0)) {\n                plVar26 = plVar18;\n              }\n              plVar18 = (long *)plVar18[7];\n              if (plVar18 == (long *)0x0) goto LAB_0011d7f1;\n            }" (while "while") (parenthesized_expression "(plVar18[4] != lVar13)" (( "(") (binary_expression "plVar18[4] != lVar13" (subscript_expression "plVar18[4]" (identifier "plVar18") ([ "[") (number_literal "4") (] "]")) (!= "!=") (identifier "lVar13")) () ")")) (compound_statement "{\n              if ((plVar18[4] != 0) && (plVar18[6] != 0)) {\n                plVar26 = plVar18;\n              }\n              plVar18 = (long *)plVar18[7];\n              if (plVar18 == (long *)0x0) goto LAB_0011d7f1;\n            }" ({ "{") (if_statement "if ((plVar18[4] != 0) && (plVar18[6] != 0)) {\n                plVar26 = plVar18;\n              }" (if "if") (parenthesized_expression "((plVar18[4] != 0) && (plVar18[6] != 0))" (( "(") (binary_expression "(plVar18[4] != 0) && (plVar18[6] != 0)" (parenthesized_expression "(plVar18[4] != 0)" (( "(") (binary_expression "plVar18[4] != 0" (subscript_expression "plVar18[4]" (identifier "plVar18") ([ "[") (number_literal "4") (] "]")) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(plVar18[6] != 0)" (( "(") (binary_expression "plVar18[6] != 0" (subscript_expression "plVar18[6]" (identifier "plVar18") ([ "[") (number_literal "6") (] "]")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n                plVar26 = plVar18;\n              }" ({ "{") (expression_statement "plVar26 = plVar18;" (assignment_expression "plVar26 = plVar18" (identifier "plVar26") (= "=") (identifier "plVar18")) (; ";")) (} "}"))) (expression_statement "plVar18 = (long *)plVar18[7];" (assignment_expression "plVar18 = (long *)plVar18[7]" (identifier "plVar18") (= "=") (cast_expression "(long *)plVar18[7]" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "plVar18[7]" (identifier "plVar18") ([ "[") (number_literal "7") (] "]")))) (; ";")) (if_statement "if (plVar18 == (long *)0x0) goto LAB_0011d7f1;" (if "if") (parenthesized_expression "(plVar18 == (long *)0x0)" (( "(") (binary_expression "plVar18 == (long *)0x0" (identifier "plVar18") (== "==") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0011d7f1;" (goto "goto") (statement_identifier "LAB_0011d7f1") (; ";"))) (} "}"))) (expression_statement "lVar28 = plVar18[6];" (assignment_expression "lVar28 = plVar18[6]" (identifier "lVar28") (= "=") (subscript_expression "plVar18[6]" (identifier "plVar18") ([ "[") (number_literal "6") (] "]"))) (; ";")) (if_statement "if (lVar28 != 0) {\n              plVar17 = (long *)(lVar28 + 0x30);\n              lVar13 = *(long *)(lVar28 + 0x30);\n              goto LAB_0011d835;\n            }" (if "if") (parenthesized_expression "(lVar28 != 0)" (( "(") (binary_expression "lVar28 != 0" (identifier "lVar28") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              plVar17 = (long *)(lVar28 + 0x30);\n              lVar13 = *(long *)(lVar28 + 0x30);\n              goto LAB_0011d835;\n            }" ({ "{") (expression_statement "plVar17 = (long *)(lVar28 + 0x30);" (assignment_expression "plVar17 = (long *)(lVar28 + 0x30)" (identifier "plVar17") (= "=") (cast_expression "(long *)(lVar28 + 0x30)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar28 + 0x30)" (( "(") (binary_expression "lVar28 + 0x30" (identifier "lVar28") (+ "+") (number_literal "0x30")) () ")")))) (; ";")) (expression_statement "lVar13 = *(long *)(lVar28 + 0x30);" (assignment_expression "lVar13 = *(long *)(lVar28 + 0x30)" (identifier "lVar13") (= "=") (pointer_expression "*(long *)(lVar28 + 0x30)" (* "*") (cast_expression "(long *)(lVar28 + 0x30)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar28 + 0x30)" (( "(") (binary_expression "lVar28 + 0x30" (identifier "lVar28") (+ "+") (number_literal "0x30")) () ")"))))) (; ";")) (goto_statement "goto LAB_0011d835;" (goto "goto") (statement_identifier "LAB_0011d835") (; ";")) (} "}"))) (expression_statement "plVar18 = (long *)plVar18[7];" (assignment_expression "plVar18 = (long *)plVar18[7]" (identifier "plVar18") (= "=") (cast_expression "(long *)plVar18[7]" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "plVar18[7]" (identifier "plVar18") ([ "[") (number_literal "7") (] "]")))) (; ";")) (expression_statement "plVar17 = plVar26;" (assignment_expression "plVar17 = plVar26" (identifier "plVar17") (= "=") (identifier "plVar26")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(plVar18 != (long *)0x0)" (( "(") (binary_expression "plVar18 != (long *)0x0" (identifier "plVar18") (!= "!=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (labeled_statement "LAB_0011d7f1:\n          if (plVar17 == (long *)0x0) goto LAB_0011dad0;" (statement_identifier "LAB_0011d7f1") (: ":") (if_statement "if (plVar17 == (long *)0x0) goto LAB_0011dad0;" (if "if") (parenthesized_expression "(plVar17 == (long *)0x0)" (( "(") (binary_expression "plVar17 == (long *)0x0" (identifier "plVar17") (== "==") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0011dad0;" (goto "goto") (statement_identifier "LAB_0011dad0") (; ";")))) (} "}")))) (expression_statement "plVar17 = plVar17 + 6;" (assignment_expression "plVar17 = plVar17 + 6" (identifier "plVar17") (= "=") (binary_expression "plVar17 + 6" (identifier "plVar17") (+ "+") (number_literal "6"))) (; ";")) (for_statement "for (lVar13 = *plVar17; lVar13 != 0; lVar13 = *(long *)(lVar13 + 0x30)) {\n          if (((*(byte *)(lVar13 + 0x49) & 0x40) == 0) &&\n             (*(long *)(*(long *)(lVar13 + 0x20) + 0xd0) == 0)) {\n            lVar13 = *plVar17;\n            break;\n          }\n          plVar17 = (long *)(lVar13 + 0x30);\n        }" (for "for") (( "(") (assignment_expression "lVar13 = *plVar17" (identifier "lVar13") (= "=") (pointer_expression "*plVar17" (* "*") (identifier "plVar17"))) (; ";") (binary_expression "lVar13 != 0" (identifier "lVar13") (!= "!=") (number_literal "0")) (; ";") (assignment_expression "lVar13 = *(long *)(lVar13 + 0x30)" (identifier "lVar13") (= "=") (pointer_expression "*(long *)(lVar13 + 0x30)" (* "*") (cast_expression "(long *)(lVar13 + 0x30)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar13 + 0x30)" (( "(") (binary_expression "lVar13 + 0x30" (identifier "lVar13") (+ "+") (number_literal "0x30")) () ")"))))) () ")") (compound_statement "{\n          if (((*(byte *)(lVar13 + 0x49) & 0x40) == 0) &&\n             (*(long *)(*(long *)(lVar13 + 0x20) + 0xd0) == 0)) {\n            lVar13 = *plVar17;\n            break;\n          }\n          plVar17 = (long *)(lVar13 + 0x30);\n        }" ({ "{") (if_statement "if (((*(byte *)(lVar13 + 0x49) & 0x40) == 0) &&\n             (*(long *)(*(long *)(lVar13 + 0x20) + 0xd0) == 0)) {\n            lVar13 = *plVar17;\n            break;\n          }" (if "if") (parenthesized_expression "(((*(byte *)(lVar13 + 0x49) & 0x40) == 0) &&\n             (*(long *)(*(long *)(lVar13 + 0x20) + 0xd0) == 0))" (( "(") (binary_expression "((*(byte *)(lVar13 + 0x49) & 0x40) == 0) &&\n             (*(long *)(*(long *)(lVar13 + 0x20) + 0xd0) == 0)" (parenthesized_expression "((*(byte *)(lVar13 + 0x49) & 0x40) == 0)" (( "(") (binary_expression "(*(byte *)(lVar13 + 0x49) & 0x40) == 0" (parenthesized_expression "(*(byte *)(lVar13 + 0x49) & 0x40)" (( "(") (binary_expression "*(byte *)(lVar13 + 0x49) & 0x40" (pointer_expression "*(byte *)(lVar13 + 0x49)" (* "*") (cast_expression "(byte *)(lVar13 + 0x49)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar13 + 0x49)" (( "(") (binary_expression "lVar13 + 0x49" (identifier "lVar13") (+ "+") (number_literal "0x49")) () ")")))) (& "&") (number_literal "0x40")) () ")")) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(*(long *)(*(long *)(lVar13 + 0x20) + 0xd0) == 0)" (( "(") (binary_expression "*(long *)(*(long *)(lVar13 + 0x20) + 0xd0) == 0" (pointer_expression "*(long *)(*(long *)(lVar13 + 0x20) + 0xd0)" (* "*") (cast_expression "(long *)(*(long *)(lVar13 + 0x20) + 0xd0)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(long *)(lVar13 + 0x20) + 0xd0)" (( "(") (binary_expression "*(long *)(lVar13 + 0x20) + 0xd0" (pointer_expression "*(long *)(lVar13 + 0x20)" (* "*") (cast_expression "(long *)(lVar13 + 0x20)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar13 + 0x20)" (( "(") (binary_expression "lVar13 + 0x20" (identifier "lVar13") (+ "+") (number_literal "0x20")) () ")")))) (+ "+") (number_literal "0xd0")) () ")")))) (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n            lVar13 = *plVar17;\n            break;\n          }" ({ "{") (expression_statement "lVar13 = *plVar17;" (assignment_expression "lVar13 = *plVar17" (identifier "lVar13") (= "=") (pointer_expression "*plVar17" (* "*") (identifier "plVar17"))) (; ";")) (break_statement "break;" (break "break") (; ";")) (} "}"))) (expression_statement "plVar17 = (long *)(lVar13 + 0x30);" (assignment_expression "plVar17 = (long *)(lVar13 + 0x30)" (identifier "plVar17") (= "=") (cast_expression "(long *)(lVar13 + 0x30)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar13 + 0x30)" (( "(") (binary_expression "lVar13 + 0x30" (identifier "lVar13") (+ "+") (number_literal "0x30")) () ")")))) (; ";")) (} "}"))) (labeled_statement "LAB_0011d835:\n        plVar18 = (long *)(lVar16 + 0x30);" (statement_identifier "LAB_0011d835") (: ":") (expression_statement "plVar18 = (long *)(lVar16 + 0x30);" (assignment_expression "plVar18 = (long *)(lVar16 + 0x30)" (identifier "plVar18") (= "=") (cast_expression "(long *)(lVar16 + 0x30)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar16 + 0x30)" (( "(") (binary_expression "lVar16 + 0x30" (identifier "lVar16") (+ "+") (number_literal "0x30")) () ")")))) (; ";"))) (if_statement "if (lVar15 == 0) {\n          *plVar17 = lVar16;\n          lVar15 = *(long *)(lVar16 + 0x30);\n          *(long *)(lVar16 + 0x30) = lVar13;\n          lVar16 = lVar15;\n        }\n        else {\n          lVar28 = *(long *)(lVar16 + 0x30);\n          if (lVar28 != 0) {\n            lVar5 = *(long *)(*(long *)(lVar28 + 0x20) + 0xd0);\n            while (lVar15 == lVar5) {\n              plVar18 = (long *)(lVar28 + 0x30);\n              lVar28 = *(long *)(lVar28 + 0x30);\n              if (lVar28 == 0) break;\n              lVar5 = *(long *)(*(long *)(lVar28 + 0x20) + 0xd0);\n            }\n          }\n          *plVar17 = lVar16;\n          lVar16 = *plVar18;\n          *plVar18 = lVar13;\n          if (*(long *)(lVar15 + 0x100) != 0) {\n            *(long **)(*(long *)(lVar15 + 0x100) + 0x30) = plVar18 + -6;\n          }\n        }" (if "if") (parenthesized_expression "(lVar15 == 0)" (( "(") (binary_expression "lVar15 == 0" (identifier "lVar15") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          *plVar17 = lVar16;\n          lVar15 = *(long *)(lVar16 + 0x30);\n          *(long *)(lVar16 + 0x30) = lVar13;\n          lVar16 = lVar15;\n        }" ({ "{") (expression_statement "*plVar17 = lVar16;" (assignment_expression "*plVar17 = lVar16" (pointer_expression "*plVar17" (* "*") (identifier "plVar17")) (= "=") (identifier "lVar16")) (; ";")) (expression_statement "lVar15 = *(long *)(lVar16 + 0x30);" (assignment_expression "lVar15 = *(long *)(lVar16 + 0x30)" (identifier "lVar15") (= "=") (pointer_expression "*(long *)(lVar16 + 0x30)" (* "*") (cast_expression "(long *)(lVar16 + 0x30)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar16 + 0x30)" (( "(") (binary_expression "lVar16 + 0x30" (identifier "lVar16") (+ "+") (number_literal "0x30")) () ")"))))) (; ";")) (expression_statement "*(long *)(lVar16 + 0x30) = lVar13;" (assignment_expression "*(long *)(lVar16 + 0x30) = lVar13" (pointer_expression "*(long *)(lVar16 + 0x30)" (* "*") (cast_expression "(long *)(lVar16 + 0x30)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar16 + 0x30)" (( "(") (binary_expression "lVar16 + 0x30" (identifier "lVar16") (+ "+") (number_literal "0x30")) () ")")))) (= "=") (identifier "lVar13")) (; ";")) (expression_statement "lVar16 = lVar15;" (assignment_expression "lVar16 = lVar15" (identifier "lVar16") (= "=") (identifier "lVar15")) (; ";")) (} "}")) (else_clause "else {\n          lVar28 = *(long *)(lVar16 + 0x30);\n          if (lVar28 != 0) {\n            lVar5 = *(long *)(*(long *)(lVar28 + 0x20) + 0xd0);\n            while (lVar15 == lVar5) {\n              plVar18 = (long *)(lVar28 + 0x30);\n              lVar28 = *(long *)(lVar28 + 0x30);\n              if (lVar28 == 0) break;\n              lVar5 = *(long *)(*(long *)(lVar28 + 0x20) + 0xd0);\n            }\n          }\n          *plVar17 = lVar16;\n          lVar16 = *plVar18;\n          *plVar18 = lVar13;\n          if (*(long *)(lVar15 + 0x100) != 0) {\n            *(long **)(*(long *)(lVar15 + 0x100) + 0x30) = plVar18 + -6;\n          }\n        }" (else "else") (compound_statement "{\n          lVar28 = *(long *)(lVar16 + 0x30);\n          if (lVar28 != 0) {\n            lVar5 = *(long *)(*(long *)(lVar28 + 0x20) + 0xd0);\n            while (lVar15 == lVar5) {\n              plVar18 = (long *)(lVar28 + 0x30);\n              lVar28 = *(long *)(lVar28 + 0x30);\n              if (lVar28 == 0) break;\n              lVar5 = *(long *)(*(long *)(lVar28 + 0x20) + 0xd0);\n            }\n          }\n          *plVar17 = lVar16;\n          lVar16 = *plVar18;\n          *plVar18 = lVar13;\n          if (*(long *)(lVar15 + 0x100) != 0) {\n            *(long **)(*(long *)(lVar15 + 0x100) + 0x30) = plVar18 + -6;\n          }\n        }" ({ "{") (expression_statement "lVar28 = *(long *)(lVar16 + 0x30);" (assignment_expression "lVar28 = *(long *)(lVar16 + 0x30)" (identifier "lVar28") (= "=") (pointer_expression "*(long *)(lVar16 + 0x30)" (* "*") (cast_expression "(long *)(lVar16 + 0x30)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar16 + 0x30)" (( "(") (binary_expression "lVar16 + 0x30" (identifier "lVar16") (+ "+") (number_literal "0x30")) () ")"))))) (; ";")) (if_statement "if (lVar28 != 0) {\n            lVar5 = *(long *)(*(long *)(lVar28 + 0x20) + 0xd0);\n            while (lVar15 == lVar5) {\n              plVar18 = (long *)(lVar28 + 0x30);\n              lVar28 = *(long *)(lVar28 + 0x30);\n              if (lVar28 == 0) break;\n              lVar5 = *(long *)(*(long *)(lVar28 + 0x20) + 0xd0);\n            }\n          }" (if "if") (parenthesized_expression "(lVar28 != 0)" (( "(") (binary_expression "lVar28 != 0" (identifier "lVar28") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            lVar5 = *(long *)(*(long *)(lVar28 + 0x20) + 0xd0);\n            while (lVar15 == lVar5) {\n              plVar18 = (long *)(lVar28 + 0x30);\n              lVar28 = *(long *)(lVar28 + 0x30);\n              if (lVar28 == 0) break;\n              lVar5 = *(long *)(*(long *)(lVar28 + 0x20) + 0xd0);\n            }\n          }" ({ "{") (expression_statement "lVar5 = *(long *)(*(long *)(lVar28 + 0x20) + 0xd0);" (assignment_expression "lVar5 = *(long *)(*(long *)(lVar28 + 0x20) + 0xd0)" (identifier "lVar5") (= "=") (pointer_expression "*(long *)(*(long *)(lVar28 + 0x20) + 0xd0)" (* "*") (cast_expression "(long *)(*(long *)(lVar28 + 0x20) + 0xd0)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(long *)(lVar28 + 0x20) + 0xd0)" (( "(") (binary_expression "*(long *)(lVar28 + 0x20) + 0xd0" (pointer_expression "*(long *)(lVar28 + 0x20)" (* "*") (cast_expression "(long *)(lVar28 + 0x20)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar28 + 0x20)" (( "(") (binary_expression "lVar28 + 0x20" (identifier "lVar28") (+ "+") (number_literal "0x20")) () ")")))) (+ "+") (number_literal "0xd0")) () ")"))))) (; ";")) (while_statement "while (lVar15 == lVar5) {\n              plVar18 = (long *)(lVar28 + 0x30);\n              lVar28 = *(long *)(lVar28 + 0x30);\n              if (lVar28 == 0) break;\n              lVar5 = *(long *)(*(long *)(lVar28 + 0x20) + 0xd0);\n            }" (while "while") (parenthesized_expression "(lVar15 == lVar5)" (( "(") (binary_expression "lVar15 == lVar5" (identifier "lVar15") (== "==") (identifier "lVar5")) () ")")) (compound_statement "{\n              plVar18 = (long *)(lVar28 + 0x30);\n              lVar28 = *(long *)(lVar28 + 0x30);\n              if (lVar28 == 0) break;\n              lVar5 = *(long *)(*(long *)(lVar28 + 0x20) + 0xd0);\n            }" ({ "{") (expression_statement "plVar18 = (long *)(lVar28 + 0x30);" (assignment_expression "plVar18 = (long *)(lVar28 + 0x30)" (identifier "plVar18") (= "=") (cast_expression "(long *)(lVar28 + 0x30)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar28 + 0x30)" (( "(") (binary_expression "lVar28 + 0x30" (identifier "lVar28") (+ "+") (number_literal "0x30")) () ")")))) (; ";")) (expression_statement "lVar28 = *(long *)(lVar28 + 0x30);" (assignment_expression "lVar28 = *(long *)(lVar28 + 0x30)" (identifier "lVar28") (= "=") (pointer_expression "*(long *)(lVar28 + 0x30)" (* "*") (cast_expression "(long *)(lVar28 + 0x30)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar28 + 0x30)" (( "(") (binary_expression "lVar28 + 0x30" (identifier "lVar28") (+ "+") (number_literal "0x30")) () ")"))))) (; ";")) (if_statement "if (lVar28 == 0) break;" (if "if") (parenthesized_expression "(lVar28 == 0)" (( "(") (binary_expression "lVar28 == 0" (identifier "lVar28") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "lVar5 = *(long *)(*(long *)(lVar28 + 0x20) + 0xd0);" (assignment_expression "lVar5 = *(long *)(*(long *)(lVar28 + 0x20) + 0xd0)" (identifier "lVar5") (= "=") (pointer_expression "*(long *)(*(long *)(lVar28 + 0x20) + 0xd0)" (* "*") (cast_expression "(long *)(*(long *)(lVar28 + 0x20) + 0xd0)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(long *)(lVar28 + 0x20) + 0xd0)" (( "(") (binary_expression "*(long *)(lVar28 + 0x20) + 0xd0" (pointer_expression "*(long *)(lVar28 + 0x20)" (* "*") (cast_expression "(long *)(lVar28 + 0x20)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar28 + 0x20)" (( "(") (binary_expression "lVar28 + 0x20" (identifier "lVar28") (+ "+") (number_literal "0x20")) () ")")))) (+ "+") (number_literal "0xd0")) () ")"))))) (; ";")) (} "}"))) (} "}"))) (expression_statement "*plVar17 = lVar16;" (assignment_expression "*plVar17 = lVar16" (pointer_expression "*plVar17" (* "*") (identifier "plVar17")) (= "=") (identifier "lVar16")) (; ";")) (expression_statement "lVar16 = *plVar18;" (assignment_expression "lVar16 = *plVar18" (identifier "lVar16") (= "=") (pointer_expression "*plVar18" (* "*") (identifier "plVar18"))) (; ";")) (expression_statement "*plVar18 = lVar13;" (assignment_expression "*plVar18 = lVar13" (pointer_expression "*plVar18" (* "*") (identifier "plVar18")) (= "=") (identifier "lVar13")) (; ";")) (if_statement "if (*(long *)(lVar15 + 0x100) != 0) {\n            *(long **)(*(long *)(lVar15 + 0x100) + 0x30) = plVar18 + -6;\n          }" (if "if") (parenthesized_expression "(*(long *)(lVar15 + 0x100) != 0)" (( "(") (binary_expression "*(long *)(lVar15 + 0x100) != 0" (pointer_expression "*(long *)(lVar15 + 0x100)" (* "*") (cast_expression "(long *)(lVar15 + 0x100)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar15 + 0x100)" (( "(") (binary_expression "lVar15 + 0x100" (identifier "lVar15") (+ "+") (number_literal "0x100")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            *(long **)(*(long *)(lVar15 + 0x100) + 0x30) = plVar18 + -6;\n          }" ({ "{") (expression_statement "*(long **)(*(long *)(lVar15 + 0x100) + 0x30) = plVar18 + -6;" (assignment_expression "*(long **)(*(long *)(lVar15 + 0x100) + 0x30) = plVar18 + -6" (pointer_expression "*(long **)(*(long *)(lVar15 + 0x100) + 0x30)" (* "*") (cast_expression "(long **)(*(long *)(lVar15 + 0x100) + 0x30)" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(long *)(lVar15 + 0x100) + 0x30)" (( "(") (binary_expression "*(long *)(lVar15 + 0x100) + 0x30" (pointer_expression "*(long *)(lVar15 + 0x100)" (* "*") (cast_expression "(long *)(lVar15 + 0x100)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar15 + 0x100)" (( "(") (binary_expression "lVar15 + 0x100" (identifier "lVar15") (+ "+") (number_literal "0x100")) () ")")))) (+ "+") (number_literal "0x30")) () ")")))) (= "=") (binary_expression "plVar18 + -6" (identifier "plVar18") (+ "+") (number_literal "-6"))) (; ";")) (} "}"))) (} "}")))) (} "}"))) (} "}"))) (} "}"))) (if_statement "if (DAT_0017fb38 != (undefined8 *)0x0) {\n    FUN_001252b0("../../ld/ldlang.c",0x1c67);\n  }" (if "if") (parenthesized_expression "(DAT_0017fb38 != (undefined8 *)0x0)" (( "(") (binary_expression "DAT_0017fb38 != (undefined8 *)0x0" (identifier "DAT_0017fb38") (!= "!=") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    FUN_001252b0("../../ld/ldlang.c",0x1c67);\n  }" ({ "{") (expression_statement "FUN_001252b0("../../ld/ldlang.c",0x1c67);" (call_expression "FUN_001252b0("../../ld/ldlang.c",0x1c67)" (identifier "FUN_001252b0") (argument_list "("../../ld/ldlang.c",0x1c67)" (( "(") (string_literal ""../../ld/ldlang.c"" (" """) (string_content "../../ld/ldlang.c") (" """)) (, ",") (number_literal "0x1c67") () ")"))) (; ";")) (} "}"))) (expression_statement "DAT_0017fb38 = &DAT_0017f2e0;" (assignment_expression "DAT_0017fb38 = &DAT_0017f2e0" (identifier "DAT_0017fb38") (= "=") (pointer_expression "&DAT_0017f2e0" (& "&") (identifier "DAT_0017f2e0"))) (; ";")) (if_statement "if (DAT_0017f2e8 == (undefined *)0x0) {\n    DAT_0017fb38 = DAT_0017f2e0;\n    if (PTR_s_start_0017e660 != (undefined *)0x0) {\n      FUN_00115880();\n    }\n  }" (if "if") (parenthesized_expression "(DAT_0017f2e8 == (undefined *)0x0)" (( "(") (binary_expression "DAT_0017f2e8 == (undefined *)0x0" (identifier "DAT_0017f2e8") (== "==") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    DAT_0017fb38 = DAT_0017f2e0;\n    if (PTR_s_start_0017e660 != (undefined *)0x0) {\n      FUN_00115880();\n    }\n  }" ({ "{") (expression_statement "DAT_0017fb38 = DAT_0017f2e0;" (assignment_expression "DAT_0017fb38 = DAT_0017f2e0" (identifier "DAT_0017fb38") (= "=") (identifier "DAT_0017f2e0")) (; ";")) (if_statement "if (PTR_s_start_0017e660 != (undefined *)0x0) {\n      FUN_00115880();\n    }" (if "if") (parenthesized_expression "(PTR_s_start_0017e660 != (undefined *)0x0)" (( "(") (binary_expression "PTR_s_start_0017e660 != (undefined *)0x0" (identifier "PTR_s_start_0017e660") (!= "!=") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      FUN_00115880();\n    }" ({ "{") (expression_statement "FUN_00115880();" (call_expression "FUN_00115880()" (identifier "FUN_00115880") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (} "}"))) (if_statement "if (DAT_0017fb48 != 0) {\n    FUN_00115880();\n  }" (if "if") (parenthesized_expression "(DAT_0017fb48 != 0)" (( "(") (binary_expression "DAT_0017fb48 != 0" (identifier "DAT_0017fb48") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    FUN_00115880();\n  }" ({ "{") (expression_statement "FUN_00115880();" (call_expression "FUN_00115880()" (identifier "FUN_00115880") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (if_statement "if (DAT_0017fb50 != 0) {\n    FUN_00115880();\n  }" (if "if") (parenthesized_expression "(DAT_0017fb50 != 0)" (( "(") (binary_expression "DAT_0017fb50 != 0" (identifier "DAT_0017fb50") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    FUN_00115880();\n  }" ({ "{") (expression_statement "FUN_00115880();" (call_expression "FUN_00115880()" (identifier "FUN_00115880") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "FUN_00123b90();" (call_expression "FUN_00123b90()" (identifier "FUN_00123b90") (argument_list "()" (( "(") () ")"))) (; ";")) (if_statement "if ((DAT_0017fc98 != 0) && (DAT_0017f3d0 != (undefined8 *)0x0)) {\n    uVar11 = dcgettext(0,"\nAs-needed library included to satisfy reference by file (symbol)\n\n",5)\n    ;\n    FUN_001252f0(uVar11);\n    for (puVar21 = DAT_0017f3d0; puVar21 != (undefined8 *)0x0; puVar21 = (undefined8 *)*puVar21) {\n      FUN_001252f0(&DAT_0013efee,puVar21[1]);\n      sVar12 = strlen((char *)puVar21[1]);\n      if (0x1c < sVar12) {\n        FUN_00124290();\n        sVar12 = 0;\n      }\n      do {\n        FUN_00124270();\n        sVar12 = sVar12 + 1;\n      } while (sVar12 != 0x1e);\n      if (puVar21[2] != 0) {\n        FUN_001252f0(&DAT_0013f279);\n      }\n      FUN_001252f0("(%pT)\n",puVar21[3]);\n    }\n  }" (if "if") (parenthesized_expression "((DAT_0017fc98 != 0) && (DAT_0017f3d0 != (undefined8 *)0x0))" (( "(") (binary_expression "(DAT_0017fc98 != 0) && (DAT_0017f3d0 != (undefined8 *)0x0)" (parenthesized_expression "(DAT_0017fc98 != 0)" (( "(") (binary_expression "DAT_0017fc98 != 0" (identifier "DAT_0017fc98") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(DAT_0017f3d0 != (undefined8 *)0x0)" (( "(") (binary_expression "DAT_0017f3d0 != (undefined8 *)0x0" (identifier "DAT_0017f3d0") (!= "!=") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")"))) () ")")) (compound_statement "{\n    uVar11 = dcgettext(0,"\nAs-needed library included to satisfy reference by file (symbol)\n\n",5)\n    ;\n    FUN_001252f0(uVar11);\n    for (puVar21 = DAT_0017f3d0; puVar21 != (undefined8 *)0x0; puVar21 = (undefined8 *)*puVar21) {\n      FUN_001252f0(&DAT_0013efee,puVar21[1]);\n      sVar12 = strlen((char *)puVar21[1]);\n      if (0x1c < sVar12) {\n        FUN_00124290();\n        sVar12 = 0;\n      }\n      do {\n        FUN_00124270();\n        sVar12 = sVar12 + 1;\n      } while (sVar12 != 0x1e);\n      if (puVar21[2] != 0) {\n        FUN_001252f0(&DAT_0013f279);\n      }\n      FUN_001252f0("(%pT)\n",puVar21[3]);\n    }\n  }" ({ "{") (expression_statement "uVar11 = dcgettext(0,"\nAs-needed library included to satisfy reference by file (symbol)\n\n",5)\n    ;" (assignment_expression "uVar11 = dcgettext(0,"\nAs-needed library included to satisfy reference by file (symbol)\n\n",5)" (identifier "uVar11") (= "=") (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_001252f0(uVar11);" (call_expression "FUN_001252f0(uVar11)" (identifier "FUN_001252f0") (argument_list "(uVar11)" (( "(") (identifier "uVar11") () ")"))) (; ";")) (for_statement "for (puVar21 = DAT_0017f3d0; puVar21 != (undefined8 *)0x0; puVar21 = (undefined8 *)*puVar21) {\n      FUN_001252f0(&DAT_0013efee,puVar21[1]);\n      sVar12 = strlen((char *)puVar21[1]);\n      if (0x1c < sVar12) {\n        FUN_00124290();\n        sVar12 = 0;\n      }\n      do {\n        FUN_00124270();\n        sVar12 = sVar12 + 1;\n      } while (sVar12 != 0x1e);\n      if (puVar21[2] != 0) {\n        FUN_001252f0(&DAT_0013f279);\n      }\n      FUN_001252f0("(%pT)\n",puVar21[3]);\n    }" (for "for") (( "(") (assignment_expression "puVar21 = DAT_0017f3d0" (identifier "puVar21") (= "=") (identifier "DAT_0017f3d0")) (; ";") (binary_expression "puVar21 != (undefined8 *)0x0" (identifier "puVar21") (!= "!=") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";") (assignment_expression "puVar21 = (undefined8 *)*puVar21" (identifier "puVar21") (= "=") (cast_expression "(undefined8 *)*puVar21" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar21" (* "*") (identifier "puVar21")))) () ")") (compound_statement "{\n      FUN_001252f0(&DAT_0013efee,puVar21[1]);\n      sVar12 = strlen((char *)puVar21[1]);\n      if (0x1c < sVar12) {\n        FUN_00124290();\n        sVar12 = 0;\n      }\n      do {\n        FUN_00124270();\n        sVar12 = sVar12 + 1;\n      } while (sVar12 != 0x1e);\n      if (puVar21[2] != 0) {\n        FUN_001252f0(&DAT_0013f279);\n      }\n      FUN_001252f0("(%pT)\n",puVar21[3]);\n    }" ({ "{") (expression_statement "FUN_001252f0(&DAT_0013efee,puVar21[1]);" (call_expression "FUN_001252f0(&DAT_0013efee,puVar21[1])" (identifier "FUN_001252f0") (argument_list "(&DAT_0013efee,puVar21[1])" (( "(") (pointer_expression "&DAT_0013efee" (& "&") (identifier "DAT_0013efee")) (, ",") (subscript_expression "puVar21[1]" (identifier "puVar21") ([ "[") (number_literal "1") (] "]")) () ")"))) (; ";")) (expression_statement "sVar12 = strlen((char *)puVar21[1]);" (assignment_expression "sVar12 = strlen((char *)puVar21[1])" (identifier "sVar12") (= "=") (call_expression "strlen((char *)puVar21[1])" (identifier "strlen") (argument_list "((char *)puVar21[1])" (( "(") (cast_expression "(char *)puVar21[1]" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar21[1]" (identifier "puVar21") ([ "[") (number_literal "1") (] "]"))) () ")")))) (; ";")) (if_statement "if (0x1c < sVar12) {\n        FUN_00124290();\n        sVar12 = 0;\n      }" (if "if") (parenthesized_expression "(0x1c < sVar12)" (( "(") (binary_expression "0x1c < sVar12" (number_literal "0x1c") (< "<") (identifier "sVar12")) () ")")) (compound_statement "{\n        FUN_00124290();\n        sVar12 = 0;\n      }" ({ "{") (expression_statement "FUN_00124290();" (call_expression "FUN_00124290()" (identifier "FUN_00124290") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "sVar12 = 0;" (assignment_expression "sVar12 = 0" (identifier "sVar12") (= "=") (number_literal "0")) (; ";")) (} "}"))) (do_statement "do {\n        FUN_00124270();\n        sVar12 = sVar12 + 1;\n      } while (sVar12 != 0x1e);" (do "do") (compound_statement "{\n        FUN_00124270();\n        sVar12 = sVar12 + 1;\n      }" ({ "{") (expression_statement "FUN_00124270();" (call_expression "FUN_00124270()" (identifier "FUN_00124270") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "sVar12 = sVar12 + 1;" (assignment_expression "sVar12 = sVar12 + 1" (identifier "sVar12") (= "=") (binary_expression "sVar12 + 1" (identifier "sVar12") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(sVar12 != 0x1e)" (( "(") (binary_expression "sVar12 != 0x1e" (identifier "sVar12") (!= "!=") (number_literal "0x1e")) () ")")) (; ";")) (if_statement "if (puVar21[2] != 0) {\n        FUN_001252f0(&DAT_0013f279);\n      }" (if "if") (parenthesized_expression "(puVar21[2] != 0)" (( "(") (binary_expression "puVar21[2] != 0" (subscript_expression "puVar21[2]" (identifier "puVar21") ([ "[") (number_literal "2") (] "]")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        FUN_001252f0(&DAT_0013f279);\n      }" ({ "{") (expression_statement "FUN_001252f0(&DAT_0013f279);" (call_expression "FUN_001252f0(&DAT_0013f279)" (identifier "FUN_001252f0") (argument_list "(&DAT_0013f279)" (( "(") (pointer_expression "&DAT_0013f279" (& "&") (identifier "DAT_0013f279")) () ")"))) (; ";")) (} "}"))) (expression_statement "FUN_001252f0("(%pT)\n",puVar21[3]);" (call_expression "FUN_001252f0("(%pT)\n",puVar21[3])" (identifier "FUN_001252f0") (argument_list "("(%pT)\n",puVar21[3])" (( "(") (string_literal ""(%pT)\n"" (" """) (string_content "(%pT)") (escape_sequence "\n") (" """)) (, ",") (subscript_expression "puVar21[3]" (identifier "puVar21") ([ "[") (number_literal "3") (] "]")) () ")"))) (; ";")) (} "}"))) (} "}"))) (expression_statement "bfd_section_already_linked_table_free();" (call_expression "bfd_section_already_linked_table_free()" (identifier "bfd_section_already_linked_table_free") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "plVar17 = DAT_0017f2f0;" (assignment_expression "plVar17 = DAT_0017f2f0" (identifier "plVar17") (= "=") (identifier "DAT_0017f2f0")) (; ";")) (labeled_statement "joined_r0x0011be7f:\n  if (plVar17 != (long *)0x0) {\n    do {\n      if ((*(byte *)((long)plVar17 + 0x49) & 0x20) == 0) {\n        lVar16 = plVar17[4];\n        lVar13 = bfd_arch_get_compatible(lVar16,DAT_0017fb10,DAT_0017fbdc);\n        lVar15 = DAT_0017fb10;\n        if (((DAT_0017fac0 & 3) == 2) || ((DAT_0017fac3 & 8) != 0)) {\n          if (lVar13 != 0) {\n            puVar21 = *(undefined8 **)(lVar16 + 8);\n            puVar27 = *(undefined8 **)(DAT_0017fb10 + 8);\n            if ((*(int *)(puVar21 + 1) != *(int *)(puVar27 + 1)) &&\n               ((*(byte *)(lVar16 + 0x44) & 0x20) != 0)) goto LAB_0011c12e;\n            goto LAB_0011bed4;\n          }\n          if ((*(byte *)(lVar16 + 0x44) & 0x20) != 0) {\n            puVar21 = *(undefined8 **)(lVar16 + 8);\n            puVar27 = *(undefined8 **)(DAT_0017fb10 + 8);\nLAB_0011c12e:\n            uVar11 = *puVar27;\n            uVar14 = *puVar21;\n            uVar24 = 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_001251f0(uVar24,uVar14,lVar16,uVar11,lVar15);\n            goto joined_r0x0011c167;\n          }\n        }\n        else {\njoined_r0x0011c167:\n          if (lVar13 != 0) {\nLAB_0011bed4:\n            if (*(int *)(lVar16 + 0xa0) == 0) goto LAB_0011bf30;\n            uVar11 = 0;\n            if (DAT_0017fbd0 == 0) {\n              uVar11 = bfd_set_error_handler(FUN_00112380);\n            }\n            iVar9 = (**(code **)(*(long *)(DAT_0017fb10 + 8) + 0x140))(lVar16,&DAT_0017fac0);\n            if (iVar9 == 0) {\n              if (DAT_0017fbd0 != 0) {\n                uVar14 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);\n                FUN_001251f0(uVar14,lVar16);\n                goto LAB_0011c5b0;\n              }\n            }\n            else {\nLAB_0011c5b0:\n              if (DAT_0017fbd0 != 0) goto code_r0x0011c5be;\n            }\n            bfd_set_error_handler(uVar11);\n            goto LAB_0011bf30;\n          }\n        }\n        if (DAT_0017fbd0 == 0) goto LAB_0011bf30;\n        uVar11 = bfd_printable_name(DAT_0017fb10);\n        uVar14 = bfd_printable_name(lVar16);\n        uVar24 = dcgettext(0,\n                           "%X%P: %s architecture of input file `%pB\' is incompatible with %s output\n"\n                           ,5);\n        FUN_001251f0(uVar24,uVar14,lVar16,uVar11);\n        plVar17 = (long *)plVar17[6];\n      }\n      else {\nLAB_0011bf30:\n        plVar17 = (long *)plVar17[6];\n      }\n      if (plVar17 == (long *)0x0) break;\n    } while( true );\n  }" (statement_identifier "joined_r0x0011be7f") (: ":") (if_statement "if (plVar17 != (long *)0x0) {\n    do {\n      if ((*(byte *)((long)plVar17 + 0x49) & 0x20) == 0) {\n        lVar16 = plVar17[4];\n        lVar13 = bfd_arch_get_compatible(lVar16,DAT_0017fb10,DAT_0017fbdc);\n        lVar15 = DAT_0017fb10;\n        if (((DAT_0017fac0 & 3) == 2) || ((DAT_0017fac3 & 8) != 0)) {\n          if (lVar13 != 0) {\n            puVar21 = *(undefined8 **)(lVar16 + 8);\n            puVar27 = *(undefined8 **)(DAT_0017fb10 + 8);\n            if ((*(int *)(puVar21 + 1) != *(int *)(puVar27 + 1)) &&\n               ((*(byte *)(lVar16 + 0x44) & 0x20) != 0)) goto LAB_0011c12e;\n            goto LAB_0011bed4;\n          }\n          if ((*(byte *)(lVar16 + 0x44) & 0x20) != 0) {\n            puVar21 = *(undefined8 **)(lVar16 + 8);\n            puVar27 = *(undefined8 **)(DAT_0017fb10 + 8);\nLAB_0011c12e:\n            uVar11 = *puVar27;\n            uVar14 = *puVar21;\n            uVar24 = 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_001251f0(uVar24,uVar14,lVar16,uVar11,lVar15);\n            goto joined_r0x0011c167;\n          }\n        }\n        else {\njoined_r0x0011c167:\n          if (lVar13 != 0) {\nLAB_0011bed4:\n            if (*(int *)(lVar16 + 0xa0) == 0) goto LAB_0011bf30;\n            uVar11 = 0;\n            if (DAT_0017fbd0 == 0) {\n              uVar11 = bfd_set_error_handler(FUN_00112380);\n            }\n            iVar9 = (**(code **)(*(long *)(DAT_0017fb10 + 8) + 0x140))(lVar16,&DAT_0017fac0);\n            if (iVar9 == 0) {\n              if (DAT_0017fbd0 != 0) {\n                uVar14 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);\n                FUN_001251f0(uVar14,lVar16);\n                goto LAB_0011c5b0;\n              }\n            }\n            else {\nLAB_0011c5b0:\n              if (DAT_0017fbd0 != 0) goto code_r0x0011c5be;\n            }\n            bfd_set_error_handler(uVar11);\n            goto LAB_0011bf30;\n          }\n        }\n        if (DAT_0017fbd0 == 0) goto LAB_0011bf30;\n        uVar11 = bfd_printable_name(DAT_0017fb10);\n        uVar14 = bfd_printable_name(lVar16);\n        uVar24 = dcgettext(0,\n                           "%X%P: %s architecture of input file `%pB\' is incompatible with %s output\n"\n                           ,5);\n        FUN_001251f0(uVar24,uVar14,lVar16,uVar11);\n        plVar17 = (long *)plVar17[6];\n      }\n      else {\nLAB_0011bf30:\n        plVar17 = (long *)plVar17[6];\n      }\n      if (plVar17 == (long *)0x0) break;\n    } while( true );\n  }" (if "if") (parenthesized_expression "(plVar17 != (long *)0x0)" (( "(") (binary_expression "plVar17 != (long *)0x0" (identifier "plVar17") (!= "!=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    do {\n      if ((*(byte *)((long)plVar17 + 0x49) & 0x20) == 0) {\n        lVar16 = plVar17[4];\n        lVar13 = bfd_arch_get_compatible(lVar16,DAT_0017fb10,DAT_0017fbdc);\n        lVar15 = DAT_0017fb10;\n        if (((DAT_0017fac0 & 3) == 2) || ((DAT_0017fac3 & 8) != 0)) {\n          if (lVar13 != 0) {\n            puVar21 = *(undefined8 **)(lVar16 + 8);\n            puVar27 = *(undefined8 **)(DAT_0017fb10 + 8);\n            if ((*(int *)(puVar21 + 1) != *(int *)(puVar27 + 1)) &&\n               ((*(byte *)(lVar16 + 0x44) & 0x20) != 0)) goto LAB_0011c12e;\n            goto LAB_0011bed4;\n          }\n          if ((*(byte *)(lVar16 + 0x44) & 0x20) != 0) {\n            puVar21 = *(undefined8 **)(lVar16 + 8);\n            puVar27 = *(undefined8 **)(DAT_0017fb10 + 8);\nLAB_0011c12e:\n            uVar11 = *puVar27;\n            uVar14 = *puVar21;\n            uVar24 = 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_001251f0(uVar24,uVar14,lVar16,uVar11,lVar15);\n            goto joined_r0x0011c167;\n          }\n        }\n        else {\njoined_r0x0011c167:\n          if (lVar13 != 0) {\nLAB_0011bed4:\n            if (*(int *)(lVar16 + 0xa0) == 0) goto LAB_0011bf30;\n            uVar11 = 0;\n            if (DAT_0017fbd0 == 0) {\n              uVar11 = bfd_set_error_handler(FUN_00112380);\n            }\n            iVar9 = (**(code **)(*(long *)(DAT_0017fb10 + 8) + 0x140))(lVar16,&DAT_0017fac0);\n            if (iVar9 == 0) {\n              if (DAT_0017fbd0 != 0) {\n                uVar14 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);\n                FUN_001251f0(uVar14,lVar16);\n                goto LAB_0011c5b0;\n              }\n            }\n            else {\nLAB_0011c5b0:\n              if (DAT_0017fbd0 != 0) goto code_r0x0011c5be;\n            }\n            bfd_set_error_handler(uVar11);\n            goto LAB_0011bf30;\n          }\n        }\n        if (DAT_0017fbd0 == 0) goto LAB_0011bf30;\n        uVar11 = bfd_printable_name(DAT_0017fb10);\n        uVar14 = bfd_printable_name(lVar16);\n        uVar24 = dcgettext(0,\n                           "%X%P: %s architecture of input file `%pB\' is incompatible with %s output\n"\n                           ,5);\n        FUN_001251f0(uVar24,uVar14,lVar16,uVar11);\n        plVar17 = (long *)plVar17[6];\n      }\n      else {\nLAB_0011bf30:\n        plVar17 = (long *)plVar17[6];\n      }\n      if (plVar17 == (long *)0x0) break;\n    } while( true );\n  }" ({ "{") (do_statement "do {\n      if ((*(byte *)((long)plVar17 + 0x49) & 0x20) == 0) {\n        lVar16 = plVar17[4];\n        lVar13 = bfd_arch_get_compatible(lVar16,DAT_0017fb10,DAT_0017fbdc);\n        lVar15 = DAT_0017fb10;\n        if (((DAT_0017fac0 & 3) == 2) || ((DAT_0017fac3 & 8) != 0)) {\n          if (lVar13 != 0) {\n            puVar21 = *(undefined8 **)(lVar16 + 8);\n            puVar27 = *(undefined8 **)(DAT_0017fb10 + 8);\n            if ((*(int *)(puVar21 + 1) != *(int *)(puVar27 + 1)) &&\n               ((*(byte *)(lVar16 + 0x44) & 0x20) != 0)) goto LAB_0011c12e;\n            goto LAB_0011bed4;\n          }\n          if ((*(byte *)(lVar16 + 0x44) & 0x20) != 0) {\n            puVar21 = *(undefined8 **)(lVar16 + 8);\n            puVar27 = *(undefined8 **)(DAT_0017fb10 + 8);\nLAB_0011c12e:\n            uVar11 = *puVar27;\n            uVar14 = *puVar21;\n            uVar24 = 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_001251f0(uVar24,uVar14,lVar16,uVar11,lVar15);\n            goto joined_r0x0011c167;\n          }\n        }\n        else {\njoined_r0x0011c167:\n          if (lVar13 != 0) {\nLAB_0011bed4:\n            if (*(int *)(lVar16 + 0xa0) == 0) goto LAB_0011bf30;\n            uVar11 = 0;\n            if (DAT_0017fbd0 == 0) {\n              uVar11 = bfd_set_error_handler(FUN_00112380);\n            }\n            iVar9 = (**(code **)(*(long *)(DAT_0017fb10 + 8) + 0x140))(lVar16,&DAT_0017fac0);\n            if (iVar9 == 0) {\n              if (DAT_0017fbd0 != 0) {\n                uVar14 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);\n                FUN_001251f0(uVar14,lVar16);\n                goto LAB_0011c5b0;\n              }\n            }\n            else {\nLAB_0011c5b0:\n              if (DAT_0017fbd0 != 0) goto code_r0x0011c5be;\n            }\n            bfd_set_error_handler(uVar11);\n            goto LAB_0011bf30;\n          }\n        }\n        if (DAT_0017fbd0 == 0) goto LAB_0011bf30;\n        uVar11 = bfd_printable_name(DAT_0017fb10);\n        uVar14 = bfd_printable_name(lVar16);\n        uVar24 = dcgettext(0,\n                           "%X%P: %s architecture of input file `%pB\' is incompatible with %s output\n"\n                           ,5);\n        FUN_001251f0(uVar24,uVar14,lVar16,uVar11);\n        plVar17 = (long *)plVar17[6];\n      }\n      else {\nLAB_0011bf30:\n        plVar17 = (long *)plVar17[6];\n      }\n      if (plVar17 == (long *)0x0) break;\n    } while( true );" (do "do") (compound_statement "{\n      if ((*(byte *)((long)plVar17 + 0x49) & 0x20) == 0) {\n        lVar16 = plVar17[4];\n        lVar13 = bfd_arch_get_compatible(lVar16,DAT_0017fb10,DAT_0017fbdc);\n        lVar15 = DAT_0017fb10;\n        if (((DAT_0017fac0 & 3) == 2) || ((DAT_0017fac3 & 8) != 0)) {\n          if (lVar13 != 0) {\n            puVar21 = *(undefined8 **)(lVar16 + 8);\n            puVar27 = *(undefined8 **)(DAT_0017fb10 + 8);\n            if ((*(int *)(puVar21 + 1) != *(int *)(puVar27 + 1)) &&\n               ((*(byte *)(lVar16 + 0x44) & 0x20) != 0)) goto LAB_0011c12e;\n            goto LAB_0011bed4;\n          }\n          if ((*(byte *)(lVar16 + 0x44) & 0x20) != 0) {\n            puVar21 = *(undefined8 **)(lVar16 + 8);\n            puVar27 = *(undefined8 **)(DAT_0017fb10 + 8);\nLAB_0011c12e:\n            uVar11 = *puVar27;\n            uVar14 = *puVar21;\n            uVar24 = 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_001251f0(uVar24,uVar14,lVar16,uVar11,lVar15);\n            goto joined_r0x0011c167;\n          }\n        }\n        else {\njoined_r0x0011c167:\n          if (lVar13 != 0) {\nLAB_0011bed4:\n            if (*(int *)(lVar16 + 0xa0) == 0) goto LAB_0011bf30;\n            uVar11 = 0;\n            if (DAT_0017fbd0 == 0) {\n              uVar11 = bfd_set_error_handler(FUN_00112380);\n            }\n            iVar9 = (**(code **)(*(long *)(DAT_0017fb10 + 8) + 0x140))(lVar16,&DAT_0017fac0);\n            if (iVar9 == 0) {\n              if (DAT_0017fbd0 != 0) {\n                uVar14 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);\n                FUN_001251f0(uVar14,lVar16);\n                goto LAB_0011c5b0;\n              }\n            }\n            else {\nLAB_0011c5b0:\n              if (DAT_0017fbd0 != 0) goto code_r0x0011c5be;\n            }\n            bfd_set_error_handler(uVar11);\n            goto LAB_0011bf30;\n          }\n        }\n        if (DAT_0017fbd0 == 0) goto LAB_0011bf30;\n        uVar11 = bfd_printable_name(DAT_0017fb10);\n        uVar14 = bfd_printable_name(lVar16);\n        uVar24 = dcgettext(0,\n                           "%X%P: %s architecture of input file `%pB\' is incompatible with %s output\n"\n                           ,5);\n        FUN_001251f0(uVar24,uVar14,lVar16,uVar11);\n        plVar17 = (long *)plVar17[6];\n      }\n      else {\nLAB_0011bf30:\n        plVar17 = (long *)plVar17[6];\n      }\n      if (plVar17 == (long *)0x0) break;\n    }" ({ "{") (if_statement "if ((*(byte *)((long)plVar17 + 0x49) & 0x20) == 0) {\n        lVar16 = plVar17[4];\n        lVar13 = bfd_arch_get_compatible(lVar16,DAT_0017fb10,DAT_0017fbdc);\n        lVar15 = DAT_0017fb10;\n        if (((DAT_0017fac0 & 3) == 2) || ((DAT_0017fac3 & 8) != 0)) {\n          if (lVar13 != 0) {\n            puVar21 = *(undefined8 **)(lVar16 + 8);\n            puVar27 = *(undefined8 **)(DAT_0017fb10 + 8);\n            if ((*(int *)(puVar21 + 1) != *(int *)(puVar27 + 1)) &&\n               ((*(byte *)(lVar16 + 0x44) & 0x20) != 0)) goto LAB_0011c12e;\n            goto LAB_0011bed4;\n          }\n          if ((*(byte *)(lVar16 + 0x44) & 0x20) != 0) {\n            puVar21 = *(undefined8 **)(lVar16 + 8);\n            puVar27 = *(undefined8 **)(DAT_0017fb10 + 8);\nLAB_0011c12e:\n            uVar11 = *puVar27;\n            uVar14 = *puVar21;\n            uVar24 = 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_001251f0(uVar24,uVar14,lVar16,uVar11,lVar15);\n            goto joined_r0x0011c167;\n          }\n        }\n        else {\njoined_r0x0011c167:\n          if (lVar13 != 0) {\nLAB_0011bed4:\n            if (*(int *)(lVar16 + 0xa0) == 0) goto LAB_0011bf30;\n            uVar11 = 0;\n            if (DAT_0017fbd0 == 0) {\n              uVar11 = bfd_set_error_handler(FUN_00112380);\n            }\n            iVar9 = (**(code **)(*(long *)(DAT_0017fb10 + 8) + 0x140))(lVar16,&DAT_0017fac0);\n            if (iVar9 == 0) {\n              if (DAT_0017fbd0 != 0) {\n                uVar14 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);\n                FUN_001251f0(uVar14,lVar16);\n                goto LAB_0011c5b0;\n              }\n            }\n            else {\nLAB_0011c5b0:\n              if (DAT_0017fbd0 != 0) goto code_r0x0011c5be;\n            }\n            bfd_set_error_handler(uVar11);\n            goto LAB_0011bf30;\n          }\n        }\n        if (DAT_0017fbd0 == 0) goto LAB_0011bf30;\n        uVar11 = bfd_printable_name(DAT_0017fb10);\n        uVar14 = bfd_printable_name(lVar16);\n        uVar24 = dcgettext(0,\n                           "%X%P: %s architecture of input file `%pB\' is incompatible with %s output\n"\n                           ,5);\n        FUN_001251f0(uVar24,uVar14,lVar16,uVar11);\n        plVar17 = (long *)plVar17[6];\n      }\n      else {\nLAB_0011bf30:\n        plVar17 = (long *)plVar17[6];\n      }" (if "if") (parenthesized_expression "((*(byte *)((long)plVar17 + 0x49) & 0x20) == 0)" (( "(") (binary_expression "(*(byte *)((long)plVar17 + 0x49) & 0x20) == 0" (parenthesized_expression "(*(byte *)((long)plVar17 + 0x49) & 0x20)" (( "(") (binary_expression "*(byte *)((long)plVar17 + 0x49) & 0x20" (pointer_expression "*(byte *)((long)plVar17 + 0x49)" (* "*") (cast_expression "(byte *)((long)plVar17 + 0x49)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)plVar17 + 0x49)" (( "(") (binary_expression "(long)plVar17 + 0x49" (cast_expression "(long)plVar17" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar17")) (+ "+") (number_literal "0x49")) () ")")))) (& "&") (number_literal "0x20")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        lVar16 = plVar17[4];\n        lVar13 = bfd_arch_get_compatible(lVar16,DAT_0017fb10,DAT_0017fbdc);\n        lVar15 = DAT_0017fb10;\n        if (((DAT_0017fac0 & 3) == 2) || ((DAT_0017fac3 & 8) != 0)) {\n          if (lVar13 != 0) {\n            puVar21 = *(undefined8 **)(lVar16 + 8);\n            puVar27 = *(undefined8 **)(DAT_0017fb10 + 8);\n            if ((*(int *)(puVar21 + 1) != *(int *)(puVar27 + 1)) &&\n               ((*(byte *)(lVar16 + 0x44) & 0x20) != 0)) goto LAB_0011c12e;\n            goto LAB_0011bed4;\n          }\n          if ((*(byte *)(lVar16 + 0x44) & 0x20) != 0) {\n            puVar21 = *(undefined8 **)(lVar16 + 8);\n            puVar27 = *(undefined8 **)(DAT_0017fb10 + 8);\nLAB_0011c12e:\n            uVar11 = *puVar27;\n            uVar14 = *puVar21;\n            uVar24 = 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_001251f0(uVar24,uVar14,lVar16,uVar11,lVar15);\n            goto joined_r0x0011c167;\n          }\n        }\n        else {\njoined_r0x0011c167:\n          if (lVar13 != 0) {\nLAB_0011bed4:\n            if (*(int *)(lVar16 + 0xa0) == 0) goto LAB_0011bf30;\n            uVar11 = 0;\n            if (DAT_0017fbd0 == 0) {\n              uVar11 = bfd_set_error_handler(FUN_00112380);\n            }\n            iVar9 = (**(code **)(*(long *)(DAT_0017fb10 + 8) + 0x140))(lVar16,&DAT_0017fac0);\n            if (iVar9 == 0) {\n              if (DAT_0017fbd0 != 0) {\n                uVar14 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);\n                FUN_001251f0(uVar14,lVar16);\n                goto LAB_0011c5b0;\n              }\n            }\n            else {\nLAB_0011c5b0:\n              if (DAT_0017fbd0 != 0) goto code_r0x0011c5be;\n            }\n            bfd_set_error_handler(uVar11);\n            goto LAB_0011bf30;\n          }\n        }\n        if (DAT_0017fbd0 == 0) goto LAB_0011bf30;\n        uVar11 = bfd_printable_name(DAT_0017fb10);\n        uVar14 = bfd_printable_name(lVar16);\n        uVar24 = dcgettext(0,\n                           "%X%P: %s architecture of input file `%pB\' is incompatible with %s output\n"\n                           ,5);\n        FUN_001251f0(uVar24,uVar14,lVar16,uVar11);\n        plVar17 = (long *)plVar17[6];\n      }" ({ "{") (expression_statement "lVar16 = plVar17[4];" (assignment_expression "lVar16 = plVar17[4]" (identifier "lVar16") (= "=") (subscript_expression "plVar17[4]" (identifier "plVar17") ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "lVar13 = bfd_arch_get_compatible(lVar16,DAT_0017fb10,DAT_0017fbdc);" (assignment_expression "lVar13 = bfd_arch_get_compatible(lVar16,DAT_0017fb10,DAT_0017fbdc)" (identifier "lVar13") (= "=") (call_expression "bfd_arch_get_compatible(lVar16,DAT_0017fb10,DAT_0017fbdc)" (identifier "bfd_arch_get_compatible") (argument_list "(lVar16,DAT_0017fb10,DAT_0017fbdc)" (( "(") (identifier "lVar16") (, ",") (identifier "DAT_0017fb10") (, ",") (identifier "DAT_0017fbdc") () ")")))) (; ";")) (expression_statement "lVar15 = DAT_0017fb10;" (assignment_expression "lVar15 = DAT_0017fb10" (identifier "lVar15") (= "=") (identifier "DAT_0017fb10")) (; ";")) (if_statement "if (((DAT_0017fac0 & 3) == 2) || ((DAT_0017fac3 & 8) != 0)) {\n          if (lVar13 != 0) {\n            puVar21 = *(undefined8 **)(lVar16 + 8);\n            puVar27 = *(undefined8 **)(DAT_0017fb10 + 8);\n            if ((*(int *)(puVar21 + 1) != *(int *)(puVar27 + 1)) &&\n               ((*(byte *)(lVar16 + 0x44) & 0x20) != 0)) goto LAB_0011c12e;\n            goto LAB_0011bed4;\n          }\n          if ((*(byte *)(lVar16 + 0x44) & 0x20) != 0) {\n            puVar21 = *(undefined8 **)(lVar16 + 8);\n            puVar27 = *(undefined8 **)(DAT_0017fb10 + 8);\nLAB_0011c12e:\n            uVar11 = *puVar27;\n            uVar14 = *puVar21;\n            uVar24 = 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_001251f0(uVar24,uVar14,lVar16,uVar11,lVar15);\n            goto joined_r0x0011c167;\n          }\n        }\n        else {\njoined_r0x0011c167:\n          if (lVar13 != 0) {\nLAB_0011bed4:\n            if (*(int *)(lVar16 + 0xa0) == 0) goto LAB_0011bf30;\n            uVar11 = 0;\n            if (DAT_0017fbd0 == 0) {\n              uVar11 = bfd_set_error_handler(FUN_00112380);\n            }\n            iVar9 = (**(code **)(*(long *)(DAT_0017fb10 + 8) + 0x140))(lVar16,&DAT_0017fac0);\n            if (iVar9 == 0) {\n              if (DAT_0017fbd0 != 0) {\n                uVar14 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);\n                FUN_001251f0(uVar14,lVar16);\n                goto LAB_0011c5b0;\n              }\n            }\n            else {\nLAB_0011c5b0:\n              if (DAT_0017fbd0 != 0) goto code_r0x0011c5be;\n            }\n            bfd_set_error_handler(uVar11);\n            goto LAB_0011bf30;\n          }\n        }" (if "if") (parenthesized_expression "(((DAT_0017fac0 & 3) == 2) || ((DAT_0017fac3 & 8) != 0))" (( "(") (binary_expression "((DAT_0017fac0 & 3) == 2) || ((DAT_0017fac3 & 8) != 0)" (parenthesized_expression "((DAT_0017fac0 & 3) == 2)" (( "(") (binary_expression "(DAT_0017fac0 & 3) == 2" (parenthesized_expression "(DAT_0017fac0 & 3)" (( "(") (binary_expression "DAT_0017fac0 & 3" (identifier "DAT_0017fac0") (& "&") (number_literal "3")) () ")")) (== "==") (number_literal "2")) () ")")) (|| "||") (parenthesized_expression "((DAT_0017fac3 & 8) != 0)" (( "(") (binary_expression "(DAT_0017fac3 & 8) != 0" (parenthesized_expression "(DAT_0017fac3 & 8)" (( "(") (binary_expression "DAT_0017fac3 & 8" (identifier "DAT_0017fac3") (& "&") (number_literal "8")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n          if (lVar13 != 0) {\n            puVar21 = *(undefined8 **)(lVar16 + 8);\n            puVar27 = *(undefined8 **)(DAT_0017fb10 + 8);\n            if ((*(int *)(puVar21 + 1) != *(int *)(puVar27 + 1)) &&\n               ((*(byte *)(lVar16 + 0x44) & 0x20) != 0)) goto LAB_0011c12e;\n            goto LAB_0011bed4;\n          }\n          if ((*(byte *)(lVar16 + 0x44) & 0x20) != 0) {\n            puVar21 = *(undefined8 **)(lVar16 + 8);\n            puVar27 = *(undefined8 **)(DAT_0017fb10 + 8);\nLAB_0011c12e:\n            uVar11 = *puVar27;\n            uVar14 = *puVar21;\n            uVar24 = 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_001251f0(uVar24,uVar14,lVar16,uVar11,lVar15);\n            goto joined_r0x0011c167;\n          }\n        }" ({ "{") (if_statement "if (lVar13 != 0) {\n            puVar21 = *(undefined8 **)(lVar16 + 8);\n            puVar27 = *(undefined8 **)(DAT_0017fb10 + 8);\n            if ((*(int *)(puVar21 + 1) != *(int *)(puVar27 + 1)) &&\n               ((*(byte *)(lVar16 + 0x44) & 0x20) != 0)) goto LAB_0011c12e;\n            goto LAB_0011bed4;\n          }" (if "if") (parenthesized_expression "(lVar13 != 0)" (( "(") (binary_expression "lVar13 != 0" (identifier "lVar13") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            puVar21 = *(undefined8 **)(lVar16 + 8);\n            puVar27 = *(undefined8 **)(DAT_0017fb10 + 8);\n            if ((*(int *)(puVar21 + 1) != *(int *)(puVar27 + 1)) &&\n               ((*(byte *)(lVar16 + 0x44) & 0x20) != 0)) goto LAB_0011c12e;\n            goto LAB_0011bed4;\n          }" ({ "{") (expression_statement "puVar21 = *(undefined8 **)(lVar16 + 8);" (assignment_expression "puVar21 = *(undefined8 **)(lVar16 + 8)" (identifier "puVar21") (= "=") (pointer_expression "*(undefined8 **)(lVar16 + 8)" (* "*") (cast_expression "(undefined8 **)(lVar16 + 8)" (( "(") (type_descriptor "undefined8 **" (type_identifier "undefined8") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar16 + 8)" (( "(") (binary_expression "lVar16 + 8" (identifier "lVar16") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "puVar27 = *(undefined8 **)(DAT_0017fb10 + 8);" (assignment_expression "puVar27 = *(undefined8 **)(DAT_0017fb10 + 8)" (identifier "puVar27") (= "=") (pointer_expression "*(undefined8 **)(DAT_0017fb10 + 8)" (* "*") (cast_expression "(undefined8 **)(DAT_0017fb10 + 8)" (( "(") (type_descriptor "undefined8 **" (type_identifier "undefined8") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(DAT_0017fb10 + 8)" (( "(") (binary_expression "DAT_0017fb10 + 8" (identifier "DAT_0017fb10") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if ((*(int *)(puVar21 + 1) != *(int *)(puVar27 + 1)) &&\n               ((*(byte *)(lVar16 + 0x44) & 0x20) != 0)) goto LAB_0011c12e;" (if "if") (parenthesized_expression "((*(int *)(puVar21 + 1) != *(int *)(puVar27 + 1)) &&\n               ((*(byte *)(lVar16 + 0x44) & 0x20) != 0))" (( "(") (binary_expression "(*(int *)(puVar21 + 1) != *(int *)(puVar27 + 1)) &&\n               ((*(byte *)(lVar16 + 0x44) & 0x20) != 0)" (parenthesized_expression "(*(int *)(puVar21 + 1) != *(int *)(puVar27 + 1))" (( "(") (binary_expression "*(int *)(puVar21 + 1) != *(int *)(puVar27 + 1)" (pointer_expression "*(int *)(puVar21 + 1)" (* "*") (cast_expression "(int *)(puVar21 + 1)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + 1)" (( "(") (binary_expression "puVar21 + 1" (identifier "puVar21") (+ "+") (number_literal "1")) () ")")))) (!= "!=") (pointer_expression "*(int *)(puVar27 + 1)" (* "*") (cast_expression "(int *)(puVar27 + 1)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar27 + 1)" (( "(") (binary_expression "puVar27 + 1" (identifier "puVar27") (+ "+") (number_literal "1")) () ")"))))) () ")")) (&& "&&") (parenthesized_expression "((*(byte *)(lVar16 + 0x44) & 0x20) != 0)" (( "(") (binary_expression "(*(byte *)(lVar16 + 0x44) & 0x20) != 0" (parenthesized_expression "(*(byte *)(lVar16 + 0x44) & 0x20)" (( "(") (binary_expression "*(byte *)(lVar16 + 0x44) & 0x20" (pointer_expression "*(byte *)(lVar16 + 0x44)" (* "*") (cast_expression "(byte *)(lVar16 + 0x44)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar16 + 0x44)" (( "(") (binary_expression "lVar16 + 0x44" (identifier "lVar16") (+ "+") (number_literal "0x44")) () ")")))) (& "&") (number_literal "0x20")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (goto_statement "goto LAB_0011c12e;" (goto "goto") (statement_identifier "LAB_0011c12e") (; ";"))) (goto_statement "goto LAB_0011bed4;" (goto "goto") (statement_identifier "LAB_0011bed4") (; ";")) (} "}"))) (if_statement "if ((*(byte *)(lVar16 + 0x44) & 0x20) != 0) {\n            puVar21 = *(undefined8 **)(lVar16 + 8);\n            puVar27 = *(undefined8 **)(DAT_0017fb10 + 8);\nLAB_0011c12e:\n            uVar11 = *puVar27;\n            uVar14 = *puVar21;\n            uVar24 = 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_001251f0(uVar24,uVar14,lVar16,uVar11,lVar15);\n            goto joined_r0x0011c167;\n          }" (if "if") (parenthesized_expression "((*(byte *)(lVar16 + 0x44) & 0x20) != 0)" (( "(") (binary_expression "(*(byte *)(lVar16 + 0x44) & 0x20) != 0" (parenthesized_expression "(*(byte *)(lVar16 + 0x44) & 0x20)" (( "(") (binary_expression "*(byte *)(lVar16 + 0x44) & 0x20" (pointer_expression "*(byte *)(lVar16 + 0x44)" (* "*") (cast_expression "(byte *)(lVar16 + 0x44)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar16 + 0x44)" (( "(") (binary_expression "lVar16 + 0x44" (identifier "lVar16") (+ "+") (number_literal "0x44")) () ")")))) (& "&") (number_literal "0x20")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            puVar21 = *(undefined8 **)(lVar16 + 8);\n            puVar27 = *(undefined8 **)(DAT_0017fb10 + 8);\nLAB_0011c12e:\n            uVar11 = *puVar27;\n            uVar14 = *puVar21;\n            uVar24 = 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_001251f0(uVar24,uVar14,lVar16,uVar11,lVar15);\n            goto joined_r0x0011c167;\n          }" ({ "{") (expression_statement "puVar21 = *(undefined8 **)(lVar16 + 8);" (assignment_expression "puVar21 = *(undefined8 **)(lVar16 + 8)" (identifier "puVar21") (= "=") (pointer_expression "*(undefined8 **)(lVar16 + 8)" (* "*") (cast_expression "(undefined8 **)(lVar16 + 8)" (( "(") (type_descriptor "undefined8 **" (type_identifier "undefined8") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar16 + 8)" (( "(") (binary_expression "lVar16 + 8" (identifier "lVar16") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "puVar27 = *(undefined8 **)(DAT_0017fb10 + 8);" (assignment_expression "puVar27 = *(undefined8 **)(DAT_0017fb10 + 8)" (identifier "puVar27") (= "=") (pointer_expression "*(undefined8 **)(DAT_0017fb10 + 8)" (* "*") (cast_expression "(undefined8 **)(DAT_0017fb10 + 8)" (( "(") (type_descriptor "undefined8 **" (type_identifier "undefined8") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(DAT_0017fb10 + 8)" (( "(") (binary_expression "DAT_0017fb10 + 8" (identifier "DAT_0017fb10") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (labeled_statement "LAB_0011c12e:\n            uVar11 = *puVar27;" (statement_identifier "LAB_0011c12e") (: ":") (expression_statement "uVar11 = *puVar27;" (assignment_expression "uVar11 = *puVar27" (identifier "uVar11") (= "=") (pointer_expression "*puVar27" (* "*") (identifier "puVar27"))) (; ";"))) (expression_statement "uVar14 = *puVar21;" (assignment_expression "uVar14 = *puVar21" (identifier "uVar14") (= "=") (pointer_expression "*puVar21" (* "*") (identifier "puVar21"))) (; ";")) (expression_statement "uVar24 = 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 "uVar24 = dcgettext(0,\n                               "%F%P: relocatable linking with relocations from format %s (%pB) to format %s (%pB) is not supported\n"\n                               ,5)" (identifier "uVar24") (= "=") (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_001251f0(uVar24,uVar14,lVar16,uVar11,lVar15);" (call_expression "FUN_001251f0(uVar24,uVar14,lVar16,uVar11,lVar15)" (identifier "FUN_001251f0") (argument_list "(uVar24,uVar14,lVar16,uVar11,lVar15)" (( "(") (identifier "uVar24") (, ",") (identifier "uVar14") (, ",") (identifier "lVar16") (, ",") (identifier "uVar11") (, ",") (identifier "lVar15") () ")"))) (; ";")) (goto_statement "goto joined_r0x0011c167;" (goto "goto") (statement_identifier "joined_r0x0011c167") (; ";")) (} "}"))) (} "}")) (else_clause "else {\njoined_r0x0011c167:\n          if (lVar13 != 0) {\nLAB_0011bed4:\n            if (*(int *)(lVar16 + 0xa0) == 0) goto LAB_0011bf30;\n            uVar11 = 0;\n            if (DAT_0017fbd0 == 0) {\n              uVar11 = bfd_set_error_handler(FUN_00112380);\n            }\n            iVar9 = (**(code **)(*(long *)(DAT_0017fb10 + 8) + 0x140))(lVar16,&DAT_0017fac0);\n            if (iVar9 == 0) {\n              if (DAT_0017fbd0 != 0) {\n                uVar14 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);\n                FUN_001251f0(uVar14,lVar16);\n                goto LAB_0011c5b0;\n              }\n            }\n            else {\nLAB_0011c5b0:\n              if (DAT_0017fbd0 != 0) goto code_r0x0011c5be;\n            }\n            bfd_set_error_handler(uVar11);\n            goto LAB_0011bf30;\n          }\n        }" (else "else") (compound_statement "{\njoined_r0x0011c167:\n          if (lVar13 != 0) {\nLAB_0011bed4:\n            if (*(int *)(lVar16 + 0xa0) == 0) goto LAB_0011bf30;\n            uVar11 = 0;\n            if (DAT_0017fbd0 == 0) {\n              uVar11 = bfd_set_error_handler(FUN_00112380);\n            }\n            iVar9 = (**(code **)(*(long *)(DAT_0017fb10 + 8) + 0x140))(lVar16,&DAT_0017fac0);\n            if (iVar9 == 0) {\n              if (DAT_0017fbd0 != 0) {\n                uVar14 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);\n                FUN_001251f0(uVar14,lVar16);\n                goto LAB_0011c5b0;\n              }\n            }\n            else {\nLAB_0011c5b0:\n              if (DAT_0017fbd0 != 0) goto code_r0x0011c5be;\n            }\n            bfd_set_error_handler(uVar11);\n            goto LAB_0011bf30;\n          }\n        }" ({ "{") (labeled_statement "joined_r0x0011c167:\n          if (lVar13 != 0) {\nLAB_0011bed4:\n            if (*(int *)(lVar16 + 0xa0) == 0) goto LAB_0011bf30;\n            uVar11 = 0;\n            if (DAT_0017fbd0 == 0) {\n              uVar11 = bfd_set_error_handler(FUN_00112380);\n            }\n            iVar9 = (**(code **)(*(long *)(DAT_0017fb10 + 8) + 0x140))(lVar16,&DAT_0017fac0);\n            if (iVar9 == 0) {\n              if (DAT_0017fbd0 != 0) {\n                uVar14 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);\n                FUN_001251f0(uVar14,lVar16);\n                goto LAB_0011c5b0;\n              }\n            }\n            else {\nLAB_0011c5b0:\n              if (DAT_0017fbd0 != 0) goto code_r0x0011c5be;\n            }\n            bfd_set_error_handler(uVar11);\n            goto LAB_0011bf30;\n          }" (statement_identifier "joined_r0x0011c167") (: ":") (if_statement "if (lVar13 != 0) {\nLAB_0011bed4:\n            if (*(int *)(lVar16 + 0xa0) == 0) goto LAB_0011bf30;\n            uVar11 = 0;\n            if (DAT_0017fbd0 == 0) {\n              uVar11 = bfd_set_error_handler(FUN_00112380);\n            }\n            iVar9 = (**(code **)(*(long *)(DAT_0017fb10 + 8) + 0x140))(lVar16,&DAT_0017fac0);\n            if (iVar9 == 0) {\n              if (DAT_0017fbd0 != 0) {\n                uVar14 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);\n                FUN_001251f0(uVar14,lVar16);\n                goto LAB_0011c5b0;\n              }\n            }\n            else {\nLAB_0011c5b0:\n              if (DAT_0017fbd0 != 0) goto code_r0x0011c5be;\n            }\n            bfd_set_error_handler(uVar11);\n            goto LAB_0011bf30;\n          }" (if "if") (parenthesized_expression "(lVar13 != 0)" (( "(") (binary_expression "lVar13 != 0" (identifier "lVar13") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\nLAB_0011bed4:\n            if (*(int *)(lVar16 + 0xa0) == 0) goto LAB_0011bf30;\n            uVar11 = 0;\n            if (DAT_0017fbd0 == 0) {\n              uVar11 = bfd_set_error_handler(FUN_00112380);\n            }\n            iVar9 = (**(code **)(*(long *)(DAT_0017fb10 + 8) + 0x140))(lVar16,&DAT_0017fac0);\n            if (iVar9 == 0) {\n              if (DAT_0017fbd0 != 0) {\n                uVar14 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);\n                FUN_001251f0(uVar14,lVar16);\n                goto LAB_0011c5b0;\n              }\n            }\n            else {\nLAB_0011c5b0:\n              if (DAT_0017fbd0 != 0) goto code_r0x0011c5be;\n            }\n            bfd_set_error_handler(uVar11);\n            goto LAB_0011bf30;\n          }" ({ "{") (labeled_statement "LAB_0011bed4:\n            if (*(int *)(lVar16 + 0xa0) == 0) goto LAB_0011bf30;" (statement_identifier "LAB_0011bed4") (: ":") (if_statement "if (*(int *)(lVar16 + 0xa0) == 0) goto LAB_0011bf30;" (if "if") (parenthesized_expression "(*(int *)(lVar16 + 0xa0) == 0)" (( "(") (binary_expression "*(int *)(lVar16 + 0xa0) == 0" (pointer_expression "*(int *)(lVar16 + 0xa0)" (* "*") (cast_expression "(int *)(lVar16 + 0xa0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar16 + 0xa0)" (( "(") (binary_expression "lVar16 + 0xa0" (identifier "lVar16") (+ "+") (number_literal "0xa0")) () ")")))) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0011bf30;" (goto "goto") (statement_identifier "LAB_0011bf30") (; ";")))) (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" (identifier "uVar11") (= "=") (number_literal "0")) (; ";")) (if_statement "if (DAT_0017fbd0 == 0) {\n              uVar11 = bfd_set_error_handler(FUN_00112380);\n            }" (if "if") (parenthesized_expression "(DAT_0017fbd0 == 0)" (( "(") (binary_expression "DAT_0017fbd0 == 0" (identifier "DAT_0017fbd0") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              uVar11 = bfd_set_error_handler(FUN_00112380);\n            }" ({ "{") (expression_statement "uVar11 = bfd_set_error_handler(FUN_00112380);" (assignment_expression "uVar11 = bfd_set_error_handler(FUN_00112380)" (identifier "uVar11") (= "=") (call_expression "bfd_set_error_handler(FUN_00112380)" (identifier "bfd_set_error_handler") (argument_list "(FUN_00112380)" (( "(") (identifier "FUN_00112380") () ")")))) (; ";")) (} "}"))) (expression_statement "iVar9 = (**(code **)(*(long *)(DAT_0017fb10 + 8) + 0x140))(lVar16,&DAT_0017fac0);" (assignment_expression "iVar9 = (**(code **)(*(long *)(DAT_0017fb10 + 8) + 0x140))(lVar16,&DAT_0017fac0)" (identifier "iVar9") (= "=") (call_expression "(**(code **)(*(long *)(DAT_0017fb10 + 8) + 0x140))(lVar16,&DAT_0017fac0)" (parenthesized_expression "(**(code **)(*(long *)(DAT_0017fb10 + 8) + 0x140))" (( "(") (pointer_expression "**(code **)(*(long *)(DAT_0017fb10 + 8) + 0x140)" (* "*") (pointer_expression "*(code **)(*(long *)(DAT_0017fb10 + 8) + 0x140)" (* "*") (cast_expression "(code **)(*(long *)(DAT_0017fb10 + 8) + 0x140)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(long *)(DAT_0017fb10 + 8) + 0x140)" (( "(") (binary_expression "*(long *)(DAT_0017fb10 + 8) + 0x140" (pointer_expression "*(long *)(DAT_0017fb10 + 8)" (* "*") (cast_expression "(long *)(DAT_0017fb10 + 8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_0017fb10 + 8)" (( "(") (binary_expression "DAT_0017fb10 + 8" (identifier "DAT_0017fb10") (+ "+") (number_literal "8")) () ")")))) (+ "+") (number_literal "0x140")) () ")"))))) () ")")) (argument_list "(lVar16,&DAT_0017fac0)" (( "(") (identifier "lVar16") (, ",") (pointer_expression "&DAT_0017fac0" (& "&") (identifier "DAT_0017fac0")) () ")")))) (; ";")) (if_statement "if (iVar9 == 0) {\n              if (DAT_0017fbd0 != 0) {\n                uVar14 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);\n                FUN_001251f0(uVar14,lVar16);\n                goto LAB_0011c5b0;\n              }\n            }\n            else {\nLAB_0011c5b0:\n              if (DAT_0017fbd0 != 0) goto code_r0x0011c5be;\n            }" (if "if") (parenthesized_expression "(iVar9 == 0)" (( "(") (binary_expression "iVar9 == 0" (identifier "iVar9") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              if (DAT_0017fbd0 != 0) {\n                uVar14 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);\n                FUN_001251f0(uVar14,lVar16);\n                goto LAB_0011c5b0;\n              }\n            }" ({ "{") (if_statement "if (DAT_0017fbd0 != 0) {\n                uVar14 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);\n                FUN_001251f0(uVar14,lVar16);\n                goto LAB_0011c5b0;\n              }" (if "if") (parenthesized_expression "(DAT_0017fbd0 != 0)" (( "(") (binary_expression "DAT_0017fbd0 != 0" (identifier "DAT_0017fbd0") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                uVar14 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);\n                FUN_001251f0(uVar14,lVar16);\n                goto LAB_0011c5b0;\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_001251f0(uVar14,lVar16);" (call_expression "FUN_001251f0(uVar14,lVar16)" (identifier "FUN_001251f0") (argument_list "(uVar14,lVar16)" (( "(") (identifier "uVar14") (, ",") (identifier "lVar16") () ")"))) (; ";")) (goto_statement "goto LAB_0011c5b0;" (goto "goto") (statement_identifier "LAB_0011c5b0") (; ";")) (} "}"))) (} "}")) (else_clause "else {\nLAB_0011c5b0:\n              if (DAT_0017fbd0 != 0) goto code_r0x0011c5be;\n            }" (else "else") (compound_statement "{\nLAB_0011c5b0:\n              if (DAT_0017fbd0 != 0) goto code_r0x0011c5be;\n            }" ({ "{") (labeled_statement "LAB_0011c5b0:\n              if (DAT_0017fbd0 != 0) goto code_r0x0011c5be;" (statement_identifier "LAB_0011c5b0") (: ":") (if_statement "if (DAT_0017fbd0 != 0) goto code_r0x0011c5be;" (if "if") (parenthesized_expression "(DAT_0017fbd0 != 0)" (( "(") (binary_expression "DAT_0017fbd0 != 0" (identifier "DAT_0017fbd0") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto code_r0x0011c5be;" (goto "goto") (statement_identifier "code_r0x0011c5be") (; ";")))) (} "}")))) (expression_statement "bfd_set_error_handler(uVar11);" (call_expression "bfd_set_error_handler(uVar11)" (identifier "bfd_set_error_handler") (argument_list "(uVar11)" (( "(") (identifier "uVar11") () ")"))) (; ";")) (goto_statement "goto LAB_0011bf30;" (goto "goto") (statement_identifier "LAB_0011bf30") (; ";")) (} "}")))) (} "}")))) (if_statement "if (DAT_0017fbd0 == 0) goto LAB_0011bf30;" (if "if") (parenthesized_expression "(DAT_0017fbd0 == 0)" (( "(") (binary_expression "DAT_0017fbd0 == 0" (identifier "DAT_0017fbd0") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0011bf30;" (goto "goto") (statement_identifier "LAB_0011bf30") (; ";"))) (expression_statement "uVar11 = bfd_printable_name(DAT_0017fb10);" (assignment_expression "uVar11 = bfd_printable_name(DAT_0017fb10)" (identifier "uVar11") (= "=") (call_expression "bfd_printable_name(DAT_0017fb10)" (identifier "bfd_printable_name") (argument_list "(DAT_0017fb10)" (( "(") (identifier "DAT_0017fb10") () ")")))) (; ";")) (expression_statement "uVar14 = bfd_printable_name(lVar16);" (assignment_expression "uVar14 = bfd_printable_name(lVar16)" (identifier "uVar14") (= "=") (call_expression "bfd_printable_name(lVar16)" (identifier "bfd_printable_name") (argument_list "(lVar16)" (( "(") (identifier "lVar16") () ")")))) (; ";")) (expression_statement "uVar24 = dcgettext(0,\n                           "%X%P: %s architecture of input file `%pB\' is incompatible with %s output\n"\n                           ,5);" (assignment_expression "uVar24 = dcgettext(0,\n                           "%X%P: %s architecture of input file `%pB\' is incompatible with %s output\n"\n                           ,5)" (identifier "uVar24") (= "=") (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_001251f0(uVar24,uVar14,lVar16,uVar11);" (call_expression "FUN_001251f0(uVar24,uVar14,lVar16,uVar11)" (identifier "FUN_001251f0") (argument_list "(uVar24,uVar14,lVar16,uVar11)" (( "(") (identifier "uVar24") (, ",") (identifier "uVar14") (, ",") (identifier "lVar16") (, ",") (identifier "uVar11") () ")"))) (; ";")) (expression_statement "plVar17 = (long *)plVar17[6];" (assignment_expression "plVar17 = (long *)plVar17[6]" (identifier "plVar17") (= "=") (cast_expression "(long *)plVar17[6]" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "plVar17[6]" (identifier "plVar17") ([ "[") (number_literal "6") (] "]")))) (; ";")) (} "}")) (else_clause "else {\nLAB_0011bf30:\n        plVar17 = (long *)plVar17[6];\n      }" (else "else") (compound_statement "{\nLAB_0011bf30:\n        plVar17 = (long *)plVar17[6];\n      }" ({ "{") (labeled_statement "LAB_0011bf30:\n        plVar17 = (long *)plVar17[6];" (statement_identifier "LAB_0011bf30") (: ":") (expression_statement "plVar17 = (long *)plVar17[6];" (assignment_expression "plVar17 = (long *)plVar17[6]" (identifier "plVar17") (= "=") (cast_expression "(long *)plVar17[6]" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "plVar17[6]" (identifier "plVar17") ([ "[") (number_literal "6") (] "]")))) (; ";"))) (} "}")))) (if_statement "if (plVar17 == (long *)0x0) break;" (if "if") (parenthesized_expression "(plVar17 == (long *)0x0)" (( "(") (binary_expression "plVar17 == (long *)0x0" (identifier "plVar17") (== "==") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (} "}")))) (if_statement "if (DAT_0017fc30 != 0) {\n    uVar11 = 0;\n    for (plVar17 = DAT_0017f2f0; plVar17 != (long *)0x0; plVar17 = (long *)plVar17[6]) {\n      lVar16 = bfd_get_section_by_name(plVar17[4],".exports");\n      if (lVar16 != 0) {\n        lVar15 = *(long *)(lVar16 + 0x38);\n        pcVar31 = (char *)xmalloc(lVar15);\n        iVar9 = bfd_get_section_contents(plVar17[4],lVar16,pcVar31,0,lVar15);\n        if (iVar9 == 0) {\n          uVar14 = dcgettext(0,"%X%P: unable to read .exports section contents\n",5);\n          FUN_001251f0(uVar14,lVar16);\n        }\n        pcVar19 = pcVar31 + lVar15;\n        for (; pcVar31 < pcVar19; pcVar31 = pcVar31 + sVar12 + 1) {\n          uVar11 = FUN_0011b640(uVar11,pcVar31,0);\n          sVar12 = strlen(pcVar31);\n        }\n        *(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) | 0x208000;\n      }\n    }\n    uVar14 = FUN_0011b640(0,&DAT_0013f157,0,0);\n    lVar15 = xcalloc(1,0x70);\n    lVar16 = DAT_0017fc30;\n    *(undefined8 *)(lVar15 + 0x18) = uVar11;\n    *(undefined8 *)(lVar15 + 0x38) = uVar14;\n    *(code **)(lVar15 + 0x68) = FUN_00112f60;\n    *(undefined4 *)(lVar15 + 0x60) = 0xffffffff;\n    FUN_0011b860(lVar16,lVar15,0);\n  }" (if "if") (parenthesized_expression "(DAT_0017fc30 != 0)" (( "(") (binary_expression "DAT_0017fc30 != 0" (identifier "DAT_0017fc30") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    uVar11 = 0;\n    for (plVar17 = DAT_0017f2f0; plVar17 != (long *)0x0; plVar17 = (long *)plVar17[6]) {\n      lVar16 = bfd_get_section_by_name(plVar17[4],".exports");\n      if (lVar16 != 0) {\n        lVar15 = *(long *)(lVar16 + 0x38);\n        pcVar31 = (char *)xmalloc(lVar15);\n        iVar9 = bfd_get_section_contents(plVar17[4],lVar16,pcVar31,0,lVar15);\n        if (iVar9 == 0) {\n          uVar14 = dcgettext(0,"%X%P: unable to read .exports section contents\n",5);\n          FUN_001251f0(uVar14,lVar16);\n        }\n        pcVar19 = pcVar31 + lVar15;\n        for (; pcVar31 < pcVar19; pcVar31 = pcVar31 + sVar12 + 1) {\n          uVar11 = FUN_0011b640(uVar11,pcVar31,0);\n          sVar12 = strlen(pcVar31);\n        }\n        *(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) | 0x208000;\n      }\n    }\n    uVar14 = FUN_0011b640(0,&DAT_0013f157,0,0);\n    lVar15 = xcalloc(1,0x70);\n    lVar16 = DAT_0017fc30;\n    *(undefined8 *)(lVar15 + 0x18) = uVar11;\n    *(undefined8 *)(lVar15 + 0x38) = uVar14;\n    *(code **)(lVar15 + 0x68) = FUN_00112f60;\n    *(undefined4 *)(lVar15 + 0x60) = 0xffffffff;\n    FUN_0011b860(lVar16,lVar15,0);\n  }" ({ "{") (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" (identifier "uVar11") (= "=") (number_literal "0")) (; ";")) (for_statement "for (plVar17 = DAT_0017f2f0; plVar17 != (long *)0x0; plVar17 = (long *)plVar17[6]) {\n      lVar16 = bfd_get_section_by_name(plVar17[4],".exports");\n      if (lVar16 != 0) {\n        lVar15 = *(long *)(lVar16 + 0x38);\n        pcVar31 = (char *)xmalloc(lVar15);\n        iVar9 = bfd_get_section_contents(plVar17[4],lVar16,pcVar31,0,lVar15);\n        if (iVar9 == 0) {\n          uVar14 = dcgettext(0,"%X%P: unable to read .exports section contents\n",5);\n          FUN_001251f0(uVar14,lVar16);\n        }\n        pcVar19 = pcVar31 + lVar15;\n        for (; pcVar31 < pcVar19; pcVar31 = pcVar31 + sVar12 + 1) {\n          uVar11 = FUN_0011b640(uVar11,pcVar31,0);\n          sVar12 = strlen(pcVar31);\n        }\n        *(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) | 0x208000;\n      }\n    }" (for "for") (( "(") (assignment_expression "plVar17 = DAT_0017f2f0" (identifier "plVar17") (= "=") (identifier "DAT_0017f2f0")) (; ";") (binary_expression "plVar17 != (long *)0x0" (identifier "plVar17") (!= "!=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";") (assignment_expression "plVar17 = (long *)plVar17[6]" (identifier "plVar17") (= "=") (cast_expression "(long *)plVar17[6]" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "plVar17[6]" (identifier "plVar17") ([ "[") (number_literal "6") (] "]")))) () ")") (compound_statement "{\n      lVar16 = bfd_get_section_by_name(plVar17[4],".exports");\n      if (lVar16 != 0) {\n        lVar15 = *(long *)(lVar16 + 0x38);\n        pcVar31 = (char *)xmalloc(lVar15);\n        iVar9 = bfd_get_section_contents(plVar17[4],lVar16,pcVar31,0,lVar15);\n        if (iVar9 == 0) {\n          uVar14 = dcgettext(0,"%X%P: unable to read .exports section contents\n",5);\n          FUN_001251f0(uVar14,lVar16);\n        }\n        pcVar19 = pcVar31 + lVar15;\n        for (; pcVar31 < pcVar19; pcVar31 = pcVar31 + sVar12 + 1) {\n          uVar11 = FUN_0011b640(uVar11,pcVar31,0);\n          sVar12 = strlen(pcVar31);\n        }\n        *(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) | 0x208000;\n      }\n    }" ({ "{") (expression_statement "lVar16 = bfd_get_section_by_name(plVar17[4],".exports");" (assignment_expression "lVar16 = bfd_get_section_by_name(plVar17[4],".exports")" (identifier "lVar16") (= "=") (call_expression "bfd_get_section_by_name(plVar17[4],".exports")" (identifier "bfd_get_section_by_name") (argument_list "(plVar17[4],".exports")" (( "(") (subscript_expression "plVar17[4]" (identifier "plVar17") ([ "[") (number_literal "4") (] "]")) (, ",") (string_literal "".exports"" (" """) (string_content ".exports") (" """)) () ")")))) (; ";")) (if_statement "if (lVar16 != 0) {\n        lVar15 = *(long *)(lVar16 + 0x38);\n        pcVar31 = (char *)xmalloc(lVar15);\n        iVar9 = bfd_get_section_contents(plVar17[4],lVar16,pcVar31,0,lVar15);\n        if (iVar9 == 0) {\n          uVar14 = dcgettext(0,"%X%P: unable to read .exports section contents\n",5);\n          FUN_001251f0(uVar14,lVar16);\n        }\n        pcVar19 = pcVar31 + lVar15;\n        for (; pcVar31 < pcVar19; pcVar31 = pcVar31 + sVar12 + 1) {\n          uVar11 = FUN_0011b640(uVar11,pcVar31,0);\n          sVar12 = strlen(pcVar31);\n        }\n        *(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) | 0x208000;\n      }" (if "if") (parenthesized_expression "(lVar16 != 0)" (( "(") (binary_expression "lVar16 != 0" (identifier "lVar16") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        lVar15 = *(long *)(lVar16 + 0x38);\n        pcVar31 = (char *)xmalloc(lVar15);\n        iVar9 = bfd_get_section_contents(plVar17[4],lVar16,pcVar31,0,lVar15);\n        if (iVar9 == 0) {\n          uVar14 = dcgettext(0,"%X%P: unable to read .exports section contents\n",5);\n          FUN_001251f0(uVar14,lVar16);\n        }\n        pcVar19 = pcVar31 + lVar15;\n        for (; pcVar31 < pcVar19; pcVar31 = pcVar31 + sVar12 + 1) {\n          uVar11 = FUN_0011b640(uVar11,pcVar31,0);\n          sVar12 = strlen(pcVar31);\n        }\n        *(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) | 0x208000;\n      }" ({ "{") (expression_statement "lVar15 = *(long *)(lVar16 + 0x38);" (assignment_expression "lVar15 = *(long *)(lVar16 + 0x38)" (identifier "lVar15") (= "=") (pointer_expression "*(long *)(lVar16 + 0x38)" (* "*") (cast_expression "(long *)(lVar16 + 0x38)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar16 + 0x38)" (( "(") (binary_expression "lVar16 + 0x38" (identifier "lVar16") (+ "+") (number_literal "0x38")) () ")"))))) (; ";")) (expression_statement "pcVar31 = (char *)xmalloc(lVar15);" (assignment_expression "pcVar31 = (char *)xmalloc(lVar15)" (identifier "pcVar31") (= "=") (cast_expression "(char *)xmalloc(lVar15)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "xmalloc(lVar15)" (identifier "xmalloc") (argument_list "(lVar15)" (( "(") (identifier "lVar15") () ")"))))) (; ";")) (expression_statement "iVar9 = bfd_get_section_contents(plVar17[4],lVar16,pcVar31,0,lVar15);" (assignment_expression "iVar9 = bfd_get_section_contents(plVar17[4],lVar16,pcVar31,0,lVar15)" (identifier "iVar9") (= "=") (call_expression "bfd_get_section_contents(plVar17[4],lVar16,pcVar31,0,lVar15)" (identifier "bfd_get_section_contents") (argument_list "(plVar17[4],lVar16,pcVar31,0,lVar15)" (( "(") (subscript_expression "plVar17[4]" (identifier "plVar17") ([ "[") (number_literal "4") (] "]")) (, ",") (identifier "lVar16") (, ",") (identifier "pcVar31") (, ",") (number_literal "0") (, ",") (identifier "lVar15") () ")")))) (; ";")) (if_statement "if (iVar9 == 0) {\n          uVar14 = dcgettext(0,"%X%P: unable to read .exports section contents\n",5);\n          FUN_001251f0(uVar14,lVar16);\n        }" (if "if") (parenthesized_expression "(iVar9 == 0)" (( "(") (binary_expression "iVar9 == 0" (identifier "iVar9") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          uVar14 = dcgettext(0,"%X%P: unable to read .exports section contents\n",5);\n          FUN_001251f0(uVar14,lVar16);\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_001251f0(uVar14,lVar16);" (call_expression "FUN_001251f0(uVar14,lVar16)" (identifier "FUN_001251f0") (argument_list "(uVar14,lVar16)" (( "(") (identifier "uVar14") (, ",") (identifier "lVar16") () ")"))) (; ";")) (} "}"))) (expression_statement "pcVar19 = pcVar31 + lVar15;" (assignment_expression "pcVar19 = pcVar31 + lVar15" (identifier "pcVar19") (= "=") (binary_expression "pcVar31 + lVar15" (identifier "pcVar31") (+ "+") (identifier "lVar15"))) (; ";")) (for_statement "for (; pcVar31 < pcVar19; pcVar31 = pcVar31 + sVar12 + 1) {\n          uVar11 = FUN_0011b640(uVar11,pcVar31,0);\n          sVar12 = strlen(pcVar31);\n        }" (for "for") (( "(") (; ";") (binary_expression "pcVar31 < pcVar19" (identifier "pcVar31") (< "<") (identifier "pcVar19")) (; ";") (assignment_expression "pcVar31 = pcVar31 + sVar12 + 1" (identifier "pcVar31") (= "=") (binary_expression "pcVar31 + sVar12 + 1" (binary_expression "pcVar31 + sVar12" (identifier "pcVar31") (+ "+") (identifier "sVar12")) (+ "+") (number_literal "1"))) () ")") (compound_statement "{\n          uVar11 = FUN_0011b640(uVar11,pcVar31,0);\n          sVar12 = strlen(pcVar31);\n        }" ({ "{") (expression_statement "uVar11 = FUN_0011b640(uVar11,pcVar31,0);" (assignment_expression "uVar11 = FUN_0011b640(uVar11,pcVar31,0)" (identifier "uVar11") (= "=") (call_expression "FUN_0011b640(uVar11,pcVar31,0)" (identifier "FUN_0011b640") (argument_list "(uVar11,pcVar31,0)" (( "(") (identifier "uVar11") (, ",") (identifier "pcVar31") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "sVar12 = strlen(pcVar31);" (assignment_expression "sVar12 = strlen(pcVar31)" (identifier "sVar12") (= "=") (call_expression "strlen(pcVar31)" (identifier "strlen") (argument_list "(pcVar31)" (( "(") (identifier "pcVar31") () ")")))) (; ";")) (} "}"))) (expression_statement "*(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) | 0x208000;" (assignment_expression "*(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) | 0x208000" (pointer_expression "*(uint *)(lVar16 + 0x20)" (* "*") (cast_expression "(uint *)(lVar16 + 0x20)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar16 + 0x20)" (( "(") (binary_expression "lVar16 + 0x20" (identifier "lVar16") (+ "+") (number_literal "0x20")) () ")")))) (= "=") (binary_expression "*(uint *)(lVar16 + 0x20) | 0x208000" (pointer_expression "*(uint *)(lVar16 + 0x20)" (* "*") (cast_expression "(uint *)(lVar16 + 0x20)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar16 + 0x20)" (( "(") (binary_expression "lVar16 + 0x20" (identifier "lVar16") (+ "+") (number_literal "0x20")) () ")")))) (| "|") (number_literal "0x208000"))) (; ";")) (} "}"))) (} "}"))) (expression_statement "uVar14 = FUN_0011b640(0,&DAT_0013f157,0,0);" (assignment_expression "uVar14 = FUN_0011b640(0,&DAT_0013f157,0,0)" (identifier "uVar14") (= "=") (call_expression "FUN_0011b640(0,&DAT_0013f157,0,0)" (identifier "FUN_0011b640") (argument_list "(0,&DAT_0013f157,0,0)" (( "(") (number_literal "0") (, ",") (pointer_expression "&DAT_0013f157" (& "&") (identifier "DAT_0013f157")) (, ",") (number_literal "0") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "lVar15 = xcalloc(1,0x70);" (assignment_expression "lVar15 = xcalloc(1,0x70)" (identifier "lVar15") (= "=") (call_expression "xcalloc(1,0x70)" (identifier "xcalloc") (argument_list "(1,0x70)" (( "(") (number_literal "1") (, ",") (number_literal "0x70") () ")")))) (; ";")) (expression_statement "lVar16 = DAT_0017fc30;" (assignment_expression "lVar16 = DAT_0017fc30" (identifier "lVar16") (= "=") (identifier "DAT_0017fc30")) (; ";")) (expression_statement "*(undefined8 *)(lVar15 + 0x18) = uVar11;" (assignment_expression "*(undefined8 *)(lVar15 + 0x18) = uVar11" (pointer_expression "*(undefined8 *)(lVar15 + 0x18)" (* "*") (cast_expression "(undefined8 *)(lVar15 + 0x18)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar15 + 0x18)" (( "(") (binary_expression "lVar15 + 0x18" (identifier "lVar15") (+ "+") (number_literal "0x18")) () ")")))) (= "=") (identifier "uVar11")) (; ";")) (expression_statement "*(undefined8 *)(lVar15 + 0x38) = uVar14;" (assignment_expression "*(undefined8 *)(lVar15 + 0x38) = uVar14" (pointer_expression "*(undefined8 *)(lVar15 + 0x38)" (* "*") (cast_expression "(undefined8 *)(lVar15 + 0x38)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar15 + 0x38)" (( "(") (binary_expression "lVar15 + 0x38" (identifier "lVar15") (+ "+") (number_literal "0x38")) () ")")))) (= "=") (identifier "uVar14")) (; ";")) (expression_statement "*(code **)(lVar15 + 0x68) = FUN_00112f60;" (assignment_expression "*(code **)(lVar15 + 0x68) = FUN_00112f60" (pointer_expression "*(code **)(lVar15 + 0x68)" (* "*") (cast_expression "(code **)(lVar15 + 0x68)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar15 + 0x68)" (( "(") (binary_expression "lVar15 + 0x68" (identifier "lVar15") (+ "+") (number_literal "0x68")) () ")")))) (= "=") (identifier "FUN_00112f60")) (; ";")) (expression_statement "*(undefined4 *)(lVar15 + 0x60) = 0xffffffff;" (assignment_expression "*(undefined4 *)(lVar15 + 0x60) = 0xffffffff" (pointer_expression "*(undefined4 *)(lVar15 + 0x60)" (* "*") (cast_expression "(undefined4 *)(lVar15 + 0x60)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar15 + 0x60)" (( "(") (binary_expression "lVar15 + 0x60" (identifier "lVar15") (+ "+") (number_literal "0x60")) () ")")))) (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "FUN_0011b860(lVar16,lVar15,0);" (call_expression "FUN_0011b860(lVar16,lVar15,0)" (identifier "FUN_0011b860") (argument_list "(lVar16,lVar15,0)" (( "(") (identifier "lVar16") (, ",") (identifier "lVar15") (, ",") (number_literal "0") () ")"))) (; ";")) (} "}"))) (expression_statement "FUN_0011eaa0();" (call_expression "FUN_0011eaa0()" (identifier "FUN_0011eaa0") (argument_list "()" (( "(") () ")"))) (; ";")) (if_statement "if ((DAT_0017fc4c != 0) &&\n     (cVar8 = *(char *)(*(long *)(DAT_0017fb10 + 8) + 0x1c), DAT_0017fb20 != 0)) {\n    lVar16 = DAT_0017fb20;\n    do {\n      for (puVar21 = *(undefined8 **)(lVar16 + 0x90); puVar21 != (undefined8 *)0x0;\n          puVar21 = (undefined8 *)puVar21[2]) {\n        while( true ) {\n          pbVar4 = (byte *)*puVar21;\n          bVar35 = *pbVar4;\n          if (bVar35 == 0) break;\n          bVar1 = _sch_istable[(ulong)bVar35 * 2];\n          pbVar20 = pbVar4;\n          while (((bVar1 & 0x8c) != 0 || (bVar35 == 0x5f))) {\n            pbVar20 = pbVar20 + 1;\n            bVar35 = *pbVar20;\n            if (bVar35 == 0) goto LAB_0011d178;\n            bVar1 = _sch_istable[(ulong)bVar35 * 2];\n          }\n          puVar21 = (undefined8 *)puVar21[2];\n          if (puVar21 == (undefined8 *)0x0) goto LAB_0011d163;\n        }\nLAB_0011d178:\n        sVar12 = strlen((char *)pbVar4);\n        pcVar31 = (char *)xmalloc(sVar12 + 10);\n        *pcVar31 = cVar8;\n        sprintf(pcVar31 + (cVar8 != '\0'),"__start_%s",pbVar4);\n        FUN_00112ee0(pcVar31,puVar21);\n        pcVar31[1] = cVar8;\n        builtin_strncpy(pcVar31 + (2 - (ulong)(cVar8 == '\0')),"__stop",6);\n        FUN_00112ee0(pcVar31 + 1,puVar21);\n        free(pcVar31);\n      }\nLAB_0011d163:\n      lVar16 = *(long *)(lVar16 + 0xf0);\n    } while (lVar16 != 0);\n  }" (if "if") (parenthesized_expression "((DAT_0017fc4c != 0) &&\n     (cVar8 = *(char *)(*(long *)(DAT_0017fb10 + 8) + 0x1c), DAT_0017fb20 != 0))" (( "(") (binary_expression "(DAT_0017fc4c != 0) &&\n     (cVar8 = *(char *)(*(long *)(DAT_0017fb10 + 8) + 0x1c), DAT_0017fb20 != 0)" (parenthesized_expression "(DAT_0017fc4c != 0)" (( "(") (binary_expression "DAT_0017fc4c != 0" (identifier "DAT_0017fc4c") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(cVar8 = *(char *)(*(long *)(DAT_0017fb10 + 8) + 0x1c), DAT_0017fb20 != 0)" (( "(") (comma_expression "cVar8 = *(char *)(*(long *)(DAT_0017fb10 + 8) + 0x1c), DAT_0017fb20 != 0" (assignment_expression "cVar8 = *(char *)(*(long *)(DAT_0017fb10 + 8) + 0x1c)" (identifier "cVar8") (= "=") (pointer_expression "*(char *)(*(long *)(DAT_0017fb10 + 8) + 0x1c)" (* "*") (cast_expression "(char *)(*(long *)(DAT_0017fb10 + 8) + 0x1c)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(long *)(DAT_0017fb10 + 8) + 0x1c)" (( "(") (binary_expression "*(long *)(DAT_0017fb10 + 8) + 0x1c" (pointer_expression "*(long *)(DAT_0017fb10 + 8)" (* "*") (cast_expression "(long *)(DAT_0017fb10 + 8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_0017fb10 + 8)" (( "(") (binary_expression "DAT_0017fb10 + 8" (identifier "DAT_0017fb10") (+ "+") (number_literal "8")) () ")")))) (+ "+") (number_literal "0x1c")) () ")"))))) (, ",") (binary_expression "DAT_0017fb20 != 0" (identifier "DAT_0017fb20") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n    lVar16 = DAT_0017fb20;\n    do {\n      for (puVar21 = *(undefined8 **)(lVar16 + 0x90); puVar21 != (undefined8 *)0x0;\n          puVar21 = (undefined8 *)puVar21[2]) {\n        while( true ) {\n          pbVar4 = (byte *)*puVar21;\n          bVar35 = *pbVar4;\n          if (bVar35 == 0) break;\n          bVar1 = _sch_istable[(ulong)bVar35 * 2];\n          pbVar20 = pbVar4;\n          while (((bVar1 & 0x8c) != 0 || (bVar35 == 0x5f))) {\n            pbVar20 = pbVar20 + 1;\n            bVar35 = *pbVar20;\n            if (bVar35 == 0) goto LAB_0011d178;\n            bVar1 = _sch_istable[(ulong)bVar35 * 2];\n          }\n          puVar21 = (undefined8 *)puVar21[2];\n          if (puVar21 == (undefined8 *)0x0) goto LAB_0011d163;\n        }\nLAB_0011d178:\n        sVar12 = strlen((char *)pbVar4);\n        pcVar31 = (char *)xmalloc(sVar12 + 10);\n        *pcVar31 = cVar8;\n        sprintf(pcVar31 + (cVar8 != '\0'),"__start_%s",pbVar4);\n        FUN_00112ee0(pcVar31,puVar21);\n        pcVar31[1] = cVar8;\n        builtin_strncpy(pcVar31 + (2 - (ulong)(cVar8 == '\0')),"__stop",6);\n        FUN_00112ee0(pcVar31 + 1,puVar21);\n        free(pcVar31);\n      }\nLAB_0011d163:\n      lVar16 = *(long *)(lVar16 + 0xf0);\n    } while (lVar16 != 0);\n  }" ({ "{") (expression_statement "lVar16 = DAT_0017fb20;" (assignment_expression "lVar16 = DAT_0017fb20" (identifier "lVar16") (= "=") (identifier "DAT_0017fb20")) (; ";")) (do_statement "do {\n      for (puVar21 = *(undefined8 **)(lVar16 + 0x90); puVar21 != (undefined8 *)0x0;\n          puVar21 = (undefined8 *)puVar21[2]) {\n        while( true ) {\n          pbVar4 = (byte *)*puVar21;\n          bVar35 = *pbVar4;\n          if (bVar35 == 0) break;\n          bVar1 = _sch_istable[(ulong)bVar35 * 2];\n          pbVar20 = pbVar4;\n          while (((bVar1 & 0x8c) != 0 || (bVar35 == 0x5f))) {\n            pbVar20 = pbVar20 + 1;\n            bVar35 = *pbVar20;\n            if (bVar35 == 0) goto LAB_0011d178;\n            bVar1 = _sch_istable[(ulong)bVar35 * 2];\n          }\n          puVar21 = (undefined8 *)puVar21[2];\n          if (puVar21 == (undefined8 *)0x0) goto LAB_0011d163;\n        }\nLAB_0011d178:\n        sVar12 = strlen((char *)pbVar4);\n        pcVar31 = (char *)xmalloc(sVar12 + 10);\n        *pcVar31 = cVar8;\n        sprintf(pcVar31 + (cVar8 != '\0'),"__start_%s",pbVar4);\n        FUN_00112ee0(pcVar31,puVar21);\n        pcVar31[1] = cVar8;\n        builtin_strncpy(pcVar31 + (2 - (ulong)(cVar8 == '\0')),"__stop",6);\n        FUN_00112ee0(pcVar31 + 1,puVar21);\n        free(pcVar31);\n      }\nLAB_0011d163:\n      lVar16 = *(long *)(lVar16 + 0xf0);\n    } while (lVar16 != 0);" (do "do") (compound_statement "{\n      for (puVar21 = *(undefined8 **)(lVar16 + 0x90); puVar21 != (undefined8 *)0x0;\n          puVar21 = (undefined8 *)puVar21[2]) {\n        while( true ) {\n          pbVar4 = (byte *)*puVar21;\n          bVar35 = *pbVar4;\n          if (bVar35 == 0) break;\n          bVar1 = _sch_istable[(ulong)bVar35 * 2];\n          pbVar20 = pbVar4;\n          while (((bVar1 & 0x8c) != 0 || (bVar35 == 0x5f))) {\n            pbVar20 = pbVar20 + 1;\n            bVar35 = *pbVar20;\n            if (bVar35 == 0) goto LAB_0011d178;\n            bVar1 = _sch_istable[(ulong)bVar35 * 2];\n          }\n          puVar21 = (undefined8 *)puVar21[2];\n          if (puVar21 == (undefined8 *)0x0) goto LAB_0011d163;\n        }\nLAB_0011d178:\n        sVar12 = strlen((char *)pbVar4);\n        pcVar31 = (char *)xmalloc(sVar12 + 10);\n        *pcVar31 = cVar8;\n        sprintf(pcVar31 + (cVar8 != '\0'),"__start_%s",pbVar4);\n        FUN_00112ee0(pcVar31,puVar21);\n        pcVar31[1] = cVar8;\n        builtin_strncpy(pcVar31 + (2 - (ulong)(cVar8 == '\0')),"__stop",6);\n        FUN_00112ee0(pcVar31 + 1,puVar21);\n        free(pcVar31);\n      }\nLAB_0011d163:\n      lVar16 = *(long *)(lVar16 + 0xf0);\n    }" ({ "{") (for_statement "for (puVar21 = *(undefined8 **)(lVar16 + 0x90); puVar21 != (undefined8 *)0x0;\n          puVar21 = (undefined8 *)puVar21[2]) {\n        while( true ) {\n          pbVar4 = (byte *)*puVar21;\n          bVar35 = *pbVar4;\n          if (bVar35 == 0) break;\n          bVar1 = _sch_istable[(ulong)bVar35 * 2];\n          pbVar20 = pbVar4;\n          while (((bVar1 & 0x8c) != 0 || (bVar35 == 0x5f))) {\n            pbVar20 = pbVar20 + 1;\n            bVar35 = *pbVar20;\n            if (bVar35 == 0) goto LAB_0011d178;\n            bVar1 = _sch_istable[(ulong)bVar35 * 2];\n          }\n          puVar21 = (undefined8 *)puVar21[2];\n          if (puVar21 == (undefined8 *)0x0) goto LAB_0011d163;\n        }\nLAB_0011d178:\n        sVar12 = strlen((char *)pbVar4);\n        pcVar31 = (char *)xmalloc(sVar12 + 10);\n        *pcVar31 = cVar8;\n        sprintf(pcVar31 + (cVar8 != '\0'),"__start_%s",pbVar4);\n        FUN_00112ee0(pcVar31,puVar21);\n        pcVar31[1] = cVar8;\n        builtin_strncpy(pcVar31 + (2 - (ulong)(cVar8 == '\0')),"__stop",6);\n        FUN_00112ee0(pcVar31 + 1,puVar21);\n        free(pcVar31);\n      }" (for "for") (( "(") (assignment_expression "puVar21 = *(undefined8 **)(lVar16 + 0x90)" (identifier "puVar21") (= "=") (pointer_expression "*(undefined8 **)(lVar16 + 0x90)" (* "*") (cast_expression "(undefined8 **)(lVar16 + 0x90)" (( "(") (type_descriptor "undefined8 **" (type_identifier "undefined8") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar16 + 0x90)" (( "(") (binary_expression "lVar16 + 0x90" (identifier "lVar16") (+ "+") (number_literal "0x90")) () ")"))))) (; ";") (binary_expression "puVar21 != (undefined8 *)0x0" (identifier "puVar21") (!= "!=") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";") (assignment_expression "puVar21 = (undefined8 *)puVar21[2]" (identifier "puVar21") (= "=") (cast_expression "(undefined8 *)puVar21[2]" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar21[2]" (identifier "puVar21") ([ "[") (number_literal "2") (] "]")))) () ")") (compound_statement "{\n        while( true ) {\n          pbVar4 = (byte *)*puVar21;\n          bVar35 = *pbVar4;\n          if (bVar35 == 0) break;\n          bVar1 = _sch_istable[(ulong)bVar35 * 2];\n          pbVar20 = pbVar4;\n          while (((bVar1 & 0x8c) != 0 || (bVar35 == 0x5f))) {\n            pbVar20 = pbVar20 + 1;\n            bVar35 = *pbVar20;\n            if (bVar35 == 0) goto LAB_0011d178;\n            bVar1 = _sch_istable[(ulong)bVar35 * 2];\n          }\n          puVar21 = (undefined8 *)puVar21[2];\n          if (puVar21 == (undefined8 *)0x0) goto LAB_0011d163;\n        }\nLAB_0011d178:\n        sVar12 = strlen((char *)pbVar4);\n        pcVar31 = (char *)xmalloc(sVar12 + 10);\n        *pcVar31 = cVar8;\n        sprintf(pcVar31 + (cVar8 != '\0'),"__start_%s",pbVar4);\n        FUN_00112ee0(pcVar31,puVar21);\n        pcVar31[1] = cVar8;\n        builtin_strncpy(pcVar31 + (2 - (ulong)(cVar8 == '\0')),"__stop",6);\n        FUN_00112ee0(pcVar31 + 1,puVar21);\n        free(pcVar31);\n      }" ({ "{") (while_statement "while( true ) {\n          pbVar4 = (byte *)*puVar21;\n          bVar35 = *pbVar4;\n          if (bVar35 == 0) break;\n          bVar1 = _sch_istable[(ulong)bVar35 * 2];\n          pbVar20 = pbVar4;\n          while (((bVar1 & 0x8c) != 0 || (bVar35 == 0x5f))) {\n            pbVar20 = pbVar20 + 1;\n            bVar35 = *pbVar20;\n            if (bVar35 == 0) goto LAB_0011d178;\n            bVar1 = _sch_istable[(ulong)bVar35 * 2];\n          }\n          puVar21 = (undefined8 *)puVar21[2];\n          if (puVar21 == (undefined8 *)0x0) goto LAB_0011d163;\n        }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n          pbVar4 = (byte *)*puVar21;\n          bVar35 = *pbVar4;\n          if (bVar35 == 0) break;\n          bVar1 = _sch_istable[(ulong)bVar35 * 2];\n          pbVar20 = pbVar4;\n          while (((bVar1 & 0x8c) != 0 || (bVar35 == 0x5f))) {\n            pbVar20 = pbVar20 + 1;\n            bVar35 = *pbVar20;\n            if (bVar35 == 0) goto LAB_0011d178;\n            bVar1 = _sch_istable[(ulong)bVar35 * 2];\n          }\n          puVar21 = (undefined8 *)puVar21[2];\n          if (puVar21 == (undefined8 *)0x0) goto LAB_0011d163;\n        }" ({ "{") (expression_statement "pbVar4 = (byte *)*puVar21;" (assignment_expression "pbVar4 = (byte *)*puVar21" (identifier "pbVar4") (= "=") (cast_expression "(byte *)*puVar21" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar21" (* "*") (identifier "puVar21")))) (; ";")) (expression_statement "bVar35 = *pbVar4;" (assignment_expression "bVar35 = *pbVar4" (identifier "bVar35") (= "=") (pointer_expression "*pbVar4" (* "*") (identifier "pbVar4"))) (; ";")) (if_statement "if (bVar35 == 0) break;" (if "if") (parenthesized_expression "(bVar35 == 0)" (( "(") (binary_expression "bVar35 == 0" (identifier "bVar35") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "bVar1 = _sch_istable[(ulong)bVar35 * 2];" (assignment_expression "bVar1 = _sch_istable[(ulong)bVar35 * 2]" (identifier "bVar1") (= "=") (subscript_expression "_sch_istable[(ulong)bVar35 * 2]" (identifier "_sch_istable") ([ "[") (binary_expression "(ulong)bVar35 * 2" (cast_expression "(ulong)bVar35" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar35")) (* "*") (number_literal "2")) (] "]"))) (; ";")) (expression_statement "pbVar20 = pbVar4;" (assignment_expression "pbVar20 = pbVar4" (identifier "pbVar20") (= "=") (identifier "pbVar4")) (; ";")) (while_statement "while (((bVar1 & 0x8c) != 0 || (bVar35 == 0x5f))) {\n            pbVar20 = pbVar20 + 1;\n            bVar35 = *pbVar20;\n            if (bVar35 == 0) goto LAB_0011d178;\n            bVar1 = _sch_istable[(ulong)bVar35 * 2];\n          }" (while "while") (parenthesized_expression "(((bVar1 & 0x8c) != 0 || (bVar35 == 0x5f)))" (( "(") (parenthesized_expression "((bVar1 & 0x8c) != 0 || (bVar35 == 0x5f))" (( "(") (binary_expression "(bVar1 & 0x8c) != 0 || (bVar35 == 0x5f)" (binary_expression "(bVar1 & 0x8c) != 0" (parenthesized_expression "(bVar1 & 0x8c)" (( "(") (binary_expression "bVar1 & 0x8c" (identifier "bVar1") (& "&") (number_literal "0x8c")) () ")")) (!= "!=") (number_literal "0")) (|| "||") (parenthesized_expression "(bVar35 == 0x5f)" (( "(") (binary_expression "bVar35 == 0x5f" (identifier "bVar35") (== "==") (number_literal "0x5f")) () ")"))) () ")")) () ")")) (compound_statement "{\n            pbVar20 = pbVar20 + 1;\n            bVar35 = *pbVar20;\n            if (bVar35 == 0) goto LAB_0011d178;\n            bVar1 = _sch_istable[(ulong)bVar35 * 2];\n          }" ({ "{") (expression_statement "pbVar20 = pbVar20 + 1;" (assignment_expression "pbVar20 = pbVar20 + 1" (identifier "pbVar20") (= "=") (binary_expression "pbVar20 + 1" (identifier "pbVar20") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "bVar35 = *pbVar20;" (assignment_expression "bVar35 = *pbVar20" (identifier "bVar35") (= "=") (pointer_expression "*pbVar20" (* "*") (identifier "pbVar20"))) (; ";")) (if_statement "if (bVar35 == 0) goto LAB_0011d178;" (if "if") (parenthesized_expression "(bVar35 == 0)" (( "(") (binary_expression "bVar35 == 0" (identifier "bVar35") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0011d178;" (goto "goto") (statement_identifier "LAB_0011d178") (; ";"))) (expression_statement "bVar1 = _sch_istable[(ulong)bVar35 * 2];" (assignment_expression "bVar1 = _sch_istable[(ulong)bVar35 * 2]" (identifier "bVar1") (= "=") (subscript_expression "_sch_istable[(ulong)bVar35 * 2]" (identifier "_sch_istable") ([ "[") (binary_expression "(ulong)bVar35 * 2" (cast_expression "(ulong)bVar35" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar35")) (* "*") (number_literal "2")) (] "]"))) (; ";")) (} "}"))) (expression_statement "puVar21 = (undefined8 *)puVar21[2];" (assignment_expression "puVar21 = (undefined8 *)puVar21[2]" (identifier "puVar21") (= "=") (cast_expression "(undefined8 *)puVar21[2]" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar21[2]" (identifier "puVar21") ([ "[") (number_literal "2") (] "]")))) (; ";")) (if_statement "if (puVar21 == (undefined8 *)0x0) goto LAB_0011d163;" (if "if") (parenthesized_expression "(puVar21 == (undefined8 *)0x0)" (( "(") (binary_expression "puVar21 == (undefined8 *)0x0" (identifier "puVar21") (== "==") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0011d163;" (goto "goto") (statement_identifier "LAB_0011d163") (; ";"))) (} "}"))) (labeled_statement "LAB_0011d178:\n        sVar12 = strlen((char *)pbVar4);" (statement_identifier "LAB_0011d178") (: ":") (expression_statement "sVar12 = strlen((char *)pbVar4);" (assignment_expression "sVar12 = strlen((char *)pbVar4)" (identifier "sVar12") (= "=") (call_expression "strlen((char *)pbVar4)" (identifier "strlen") (argument_list "((char *)pbVar4)" (( "(") (cast_expression "(char *)pbVar4" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pbVar4")) () ")")))) (; ";"))) (expression_statement "pcVar31 = (char *)xmalloc(sVar12 + 10);" (assignment_expression "pcVar31 = (char *)xmalloc(sVar12 + 10)" (identifier "pcVar31") (= "=") (cast_expression "(char *)xmalloc(sVar12 + 10)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "xmalloc(sVar12 + 10)" (identifier "xmalloc") (argument_list "(sVar12 + 10)" (( "(") (binary_expression "sVar12 + 10" (identifier "sVar12") (+ "+") (number_literal "10")) () ")"))))) (; ";")) (expression_statement "*pcVar31 = cVar8;" (assignment_expression "*pcVar31 = cVar8" (pointer_expression "*pcVar31" (* "*") (identifier "pcVar31")) (= "=") (identifier "cVar8")) (; ";")) (expression_statement "sprintf(pcVar31 + (cVar8 != '\0'),"__start_%s",pbVar4);" (call_expression "sprintf(pcVar31 + (cVar8 != '\0'),"__start_%s",pbVar4)" (identifier "sprintf") (argument_list "(pcVar31 + (cVar8 != '\0'),"__start_%s",pbVar4)" (( "(") (binary_expression "pcVar31 + (cVar8 != '\0')" (identifier "pcVar31") (+ "+") (parenthesized_expression "(cVar8 != '\0')" (( "(") (binary_expression "cVar8 != '\0'" (identifier "cVar8") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) (, ",") (string_literal ""__start_%s"" (" """) (string_content "__start_%s") (" """)) (, ",") (identifier "pbVar4") () ")"))) (; ";")) (expression_statement "FUN_00112ee0(pcVar31,puVar21);" (call_expression "FUN_00112ee0(pcVar31,puVar21)" (identifier "FUN_00112ee0") (argument_list "(pcVar31,puVar21)" (( "(") (identifier "pcVar31") (, ",") (identifier "puVar21") () ")"))) (; ";")) (expression_statement "pcVar31[1] = cVar8;" (assignment_expression "pcVar31[1] = cVar8" (subscript_expression "pcVar31[1]" (identifier "pcVar31") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "cVar8")) (; ";")) (expression_statement "builtin_strncpy(pcVar31 + (2 - (ulong)(cVar8 == '\0')),"__stop",6);" (call_expression "builtin_strncpy(pcVar31 + (2 - (ulong)(cVar8 == '\0')),"__stop",6)" (identifier "builtin_strncpy") (argument_list "(pcVar31 + (2 - (ulong)(cVar8 == '\0')),"__stop",6)" (( "(") (binary_expression "pcVar31 + (2 - (ulong)(cVar8 == '\0'))" (identifier "pcVar31") (+ "+") (parenthesized_expression "(2 - (ulong)(cVar8 == '\0'))" (( "(") (binary_expression "2 - (ulong)(cVar8 == '\0')" (number_literal "2") (- "-") (call_expression "(ulong)(cVar8 == '\0')" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(cVar8 == '\0')" (( "(") (binary_expression "cVar8 == '\0'" (identifier "cVar8") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")))) () ")"))) (, ",") (string_literal ""__stop"" (" """) (string_content "__stop") (" """)) (, ",") (number_literal "6") () ")"))) (; ";")) (expression_statement "FUN_00112ee0(pcVar31 + 1,puVar21);" (call_expression "FUN_00112ee0(pcVar31 + 1,puVar21)" (identifier "FUN_00112ee0") (argument_list "(pcVar31 + 1,puVar21)" (( "(") (binary_expression "pcVar31 + 1" (identifier "pcVar31") (+ "+") (number_literal "1")) (, ",") (identifier "puVar21") () ")"))) (; ";")) (expression_statement "free(pcVar31);" (call_expression "free(pcVar31)" (identifier "free") (argument_list "(pcVar31)" (( "(") (identifier "pcVar31") () ")"))) (; ";")) (} "}"))) (labeled_statement "LAB_0011d163:\n      lVar16 = *(long *)(lVar16 + 0xf0);" (statement_identifier "LAB_0011d163") (: ":") (expression_statement "lVar16 = *(long *)(lVar16 + 0xf0);" (assignment_expression "lVar16 = *(long *)(lVar16 + 0xf0)" (identifier "lVar16") (= "=") (pointer_expression "*(long *)(lVar16 + 0xf0)" (* "*") (cast_expression "(long *)(lVar16 + 0xf0)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar16 + 0xf0)" (( "(") (binary_expression "lVar16 + 0xf0" (identifier "lVar16") (+ "+") (number_literal "0xf0")) () ")"))))) (; ";"))) (} "}")) (while "while") (parenthesized_expression "(lVar16 != 0)" (( "(") (binary_expression "lVar16 != 0" (identifier "lVar16") (!= "!=") (number_literal "0")) () ")")) (; ";")) (} "}"))) (expression_statement "FUN_001188a0(1);" (call_expression "FUN_001188a0(1)" (identifier "FUN_001188a0") (argument_list "(1)" (( "(") (number_literal "1") () ")"))) (; ";")) (expression_statement "puVar21 = DAT_0017f398;" (assignment_expression "puVar21 = DAT_0017f398" (identifier "puVar21") (= "=") (identifier "DAT_0017f398")) (; ";")) (labeled_statement "joined_r0x0011bfdf:\n  if (puVar21 != (undefined8 *)0x0) {\n    do {\n      if (puVar21[3] != 0) {\n        FUN_00123150();\n        uVar11 = DAT_0017fd20;\n        if (DAT_0017fd38 == 0) {\n          uVar11 = *puVar21;\n          uVar14 = dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);\n          FUN_001251f0(uVar14,uVar11);\n        }\n        else {\n          puVar21[4] = DAT_0017fd20;\n          puVar21[7] = uVar11;\n        }\n      }\n      if (puVar21[6] != 0) {\n        FUN_00123150();\n        if (DAT_0017fd38 == 0) goto LAB_0011c1d0;\n        puVar21[5] = DAT_0017fd20;\n      }\n      puVar21 = (undefined8 *)puVar21[2];\n      if (puVar21 == (undefined8 *)0x0) break;\n    } while( true );\n  }" (statement_identifier "joined_r0x0011bfdf") (: ":") (if_statement "if (puVar21 != (undefined8 *)0x0) {\n    do {\n      if (puVar21[3] != 0) {\n        FUN_00123150();\n        uVar11 = DAT_0017fd20;\n        if (DAT_0017fd38 == 0) {\n          uVar11 = *puVar21;\n          uVar14 = dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);\n          FUN_001251f0(uVar14,uVar11);\n        }\n        else {\n          puVar21[4] = DAT_0017fd20;\n          puVar21[7] = uVar11;\n        }\n      }\n      if (puVar21[6] != 0) {\n        FUN_00123150();\n        if (DAT_0017fd38 == 0) goto LAB_0011c1d0;\n        puVar21[5] = DAT_0017fd20;\n      }\n      puVar21 = (undefined8 *)puVar21[2];\n      if (puVar21 == (undefined8 *)0x0) break;\n    } while( true );\n  }" (if "if") (parenthesized_expression "(puVar21 != (undefined8 *)0x0)" (( "(") (binary_expression "puVar21 != (undefined8 *)0x0" (identifier "puVar21") (!= "!=") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    do {\n      if (puVar21[3] != 0) {\n        FUN_00123150();\n        uVar11 = DAT_0017fd20;\n        if (DAT_0017fd38 == 0) {\n          uVar11 = *puVar21;\n          uVar14 = dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);\n          FUN_001251f0(uVar14,uVar11);\n        }\n        else {\n          puVar21[4] = DAT_0017fd20;\n          puVar21[7] = uVar11;\n        }\n      }\n      if (puVar21[6] != 0) {\n        FUN_00123150();\n        if (DAT_0017fd38 == 0) goto LAB_0011c1d0;\n        puVar21[5] = DAT_0017fd20;\n      }\n      puVar21 = (undefined8 *)puVar21[2];\n      if (puVar21 == (undefined8 *)0x0) break;\n    } while( true );\n  }" ({ "{") (do_statement "do {\n      if (puVar21[3] != 0) {\n        FUN_00123150();\n        uVar11 = DAT_0017fd20;\n        if (DAT_0017fd38 == 0) {\n          uVar11 = *puVar21;\n          uVar14 = dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);\n          FUN_001251f0(uVar14,uVar11);\n        }\n        else {\n          puVar21[4] = DAT_0017fd20;\n          puVar21[7] = uVar11;\n        }\n      }\n      if (puVar21[6] != 0) {\n        FUN_00123150();\n        if (DAT_0017fd38 == 0) goto LAB_0011c1d0;\n        puVar21[5] = DAT_0017fd20;\n      }\n      puVar21 = (undefined8 *)puVar21[2];\n      if (puVar21 == (undefined8 *)0x0) break;\n    } while( true );" (do "do") (compound_statement "{\n      if (puVar21[3] != 0) {\n        FUN_00123150();\n        uVar11 = DAT_0017fd20;\n        if (DAT_0017fd38 == 0) {\n          uVar11 = *puVar21;\n          uVar14 = dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);\n          FUN_001251f0(uVar14,uVar11);\n        }\n        else {\n          puVar21[4] = DAT_0017fd20;\n          puVar21[7] = uVar11;\n        }\n      }\n      if (puVar21[6] != 0) {\n        FUN_00123150();\n        if (DAT_0017fd38 == 0) goto LAB_0011c1d0;\n        puVar21[5] = DAT_0017fd20;\n      }\n      puVar21 = (undefined8 *)puVar21[2];\n      if (puVar21 == (undefined8 *)0x0) break;\n    }" ({ "{") (if_statement "if (puVar21[3] != 0) {\n        FUN_00123150();\n        uVar11 = DAT_0017fd20;\n        if (DAT_0017fd38 == 0) {\n          uVar11 = *puVar21;\n          uVar14 = dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);\n          FUN_001251f0(uVar14,uVar11);\n        }\n        else {\n          puVar21[4] = DAT_0017fd20;\n          puVar21[7] = uVar11;\n        }\n      }" (if "if") (parenthesized_expression "(puVar21[3] != 0)" (( "(") (binary_expression "puVar21[3] != 0" (subscript_expression "puVar21[3]" (identifier "puVar21") ([ "[") (number_literal "3") (] "]")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        FUN_00123150();\n        uVar11 = DAT_0017fd20;\n        if (DAT_0017fd38 == 0) {\n          uVar11 = *puVar21;\n          uVar14 = dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);\n          FUN_001251f0(uVar14,uVar11);\n        }\n        else {\n          puVar21[4] = DAT_0017fd20;\n          puVar21[7] = uVar11;\n        }\n      }" ({ "{") (expression_statement "FUN_00123150();" (call_expression "FUN_00123150()" (identifier "FUN_00123150") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "uVar11 = DAT_0017fd20;" (assignment_expression "uVar11 = DAT_0017fd20" (identifier "uVar11") (= "=") (identifier "DAT_0017fd20")) (; ";")) (if_statement "if (DAT_0017fd38 == 0) {\n          uVar11 = *puVar21;\n          uVar14 = dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);\n          FUN_001251f0(uVar14,uVar11);\n        }\n        else {\n          puVar21[4] = DAT_0017fd20;\n          puVar21[7] = uVar11;\n        }" (if "if") (parenthesized_expression "(DAT_0017fd38 == 0)" (( "(") (binary_expression "DAT_0017fd38 == 0" (identifier "DAT_0017fd38") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          uVar11 = *puVar21;\n          uVar14 = dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);\n          FUN_001251f0(uVar14,uVar11);\n        }" ({ "{") (expression_statement "uVar11 = *puVar21;" (assignment_expression "uVar11 = *puVar21" (identifier "uVar11") (= "=") (pointer_expression "*puVar21" (* "*") (identifier "puVar21"))) (; ";")) (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_001251f0(uVar14,uVar11);" (call_expression "FUN_001251f0(uVar14,uVar11)" (identifier "FUN_001251f0") (argument_list "(uVar14,uVar11)" (( "(") (identifier "uVar14") (, ",") (identifier "uVar11") () ")"))) (; ";")) (} "}")) (else_clause "else {\n          puVar21[4] = DAT_0017fd20;\n          puVar21[7] = uVar11;\n        }" (else "else") (compound_statement "{\n          puVar21[4] = DAT_0017fd20;\n          puVar21[7] = uVar11;\n        }" ({ "{") (expression_statement "puVar21[4] = DAT_0017fd20;" (assignment_expression "puVar21[4] = DAT_0017fd20" (subscript_expression "puVar21[4]" (identifier "puVar21") ([ "[") (number_literal "4") (] "]")) (= "=") (identifier "DAT_0017fd20")) (; ";")) (expression_statement "puVar21[7] = uVar11;" (assignment_expression "puVar21[7] = uVar11" (subscript_expression "puVar21[7]" (identifier "puVar21") ([ "[") (number_literal "7") (] "]")) (= "=") (identifier "uVar11")) (; ";")) (} "}")))) (} "}"))) (if_statement "if (puVar21[6] != 0) {\n        FUN_00123150();\n        if (DAT_0017fd38 == 0) goto LAB_0011c1d0;\n        puVar21[5] = DAT_0017fd20;\n      }" (if "if") (parenthesized_expression "(puVar21[6] != 0)" (( "(") (binary_expression "puVar21[6] != 0" (subscript_expression "puVar21[6]" (identifier "puVar21") ([ "[") (number_literal "6") (] "]")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        FUN_00123150();\n        if (DAT_0017fd38 == 0) goto LAB_0011c1d0;\n        puVar21[5] = DAT_0017fd20;\n      }" ({ "{") (expression_statement "FUN_00123150();" (call_expression "FUN_00123150()" (identifier "FUN_00123150") (argument_list "()" (( "(") () ")"))) (; ";")) (if_statement "if (DAT_0017fd38 == 0) goto LAB_0011c1d0;" (if "if") (parenthesized_expression "(DAT_0017fd38 == 0)" (( "(") (binary_expression "DAT_0017fd38 == 0" (identifier "DAT_0017fd38") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0011c1d0;" (goto "goto") (statement_identifier "LAB_0011c1d0") (; ";"))) (expression_statement "puVar21[5] = DAT_0017fd20;" (assignment_expression "puVar21[5] = DAT_0017fd20" (subscript_expression "puVar21[5]" (identifier "puVar21") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "DAT_0017fd20")) (; ";")) (} "}"))) (expression_statement "puVar21 = (undefined8 *)puVar21[2];" (assignment_expression "puVar21 = (undefined8 *)puVar21[2]" (identifier "puVar21") (= "=") (cast_expression "(undefined8 *)puVar21[2]" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar21[2]" (identifier "puVar21") ([ "[") (number_literal "2") (] "]")))) (; ";")) (if_statement "if (puVar21 == (undefined8 *)0x0) break;" (if "if") (parenthesized_expression "(puVar21 == (undefined8 *)0x0)" (( "(") (binary_expression "puVar21 == (undefined8 *)0x0" (identifier "puVar21") (== "==") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (} "}")))) (expression_statement "DAT_0017fd00 = 0;" (assignment_expression "DAT_0017fd00 = 0" (identifier "DAT_0017fd00") (= "=") (number_literal "0")) (; ";")) (if_statement "if (((DAT_0017fac7 & 0x20) == 0) && (((DAT_0017fac0 & 3) != 2 || (DAT_0017fbc0 != 0)))) {\n    if (DAT_0017fc6c == 0) {\n      bfd_link_hash_traverse(DAT_0017fae8,FUN_001145f0,0);\n    }\n    else {\n      if (DAT_0017fc6c == 2) {\n        local_40 = 4;\n        do {\n          bfd_link_hash_traverse(DAT_0017fae8,FUN_001145f0,&local_40);\n          local_40 = local_40 - 1;\n        } while (local_40 != 0);\n        local_40 = 0;\n      }\n      else {\n        local_40 = 0;\n        do {\n          bfd_link_hash_traverse(DAT_0017fae8,FUN_001145f0,&local_40);\n          local_40 = local_40 + 1;\n        } while (local_40 < 5);\n        local_40 = 0xffffffff;\n      }\n      bfd_link_hash_traverse(DAT_0017fae8,FUN_001145f0,&local_40);\n    }\n  }" (if "if") (parenthesized_expression "(((DAT_0017fac7 & 0x20) == 0) && (((DAT_0017fac0 & 3) != 2 || (DAT_0017fbc0 != 0))))" (( "(") (binary_expression "((DAT_0017fac7 & 0x20) == 0) && (((DAT_0017fac0 & 3) != 2 || (DAT_0017fbc0 != 0)))" (parenthesized_expression "((DAT_0017fac7 & 0x20) == 0)" (( "(") (binary_expression "(DAT_0017fac7 & 0x20) == 0" (parenthesized_expression "(DAT_0017fac7 & 0x20)" (( "(") (binary_expression "DAT_0017fac7 & 0x20" (identifier "DAT_0017fac7") (& "&") (number_literal "0x20")) () ")")) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(((DAT_0017fac0 & 3) != 2 || (DAT_0017fbc0 != 0)))" (( "(") (parenthesized_expression "((DAT_0017fac0 & 3) != 2 || (DAT_0017fbc0 != 0))" (( "(") (binary_expression "(DAT_0017fac0 & 3) != 2 || (DAT_0017fbc0 != 0)" (binary_expression "(DAT_0017fac0 & 3) != 2" (parenthesized_expression "(DAT_0017fac0 & 3)" (( "(") (binary_expression "DAT_0017fac0 & 3" (identifier "DAT_0017fac0") (& "&") (number_literal "3")) () ")")) (!= "!=") (number_literal "2")) (|| "||") (parenthesized_expression "(DAT_0017fbc0 != 0)" (( "(") (binary_expression "DAT_0017fbc0 != 0" (identifier "DAT_0017fbc0") (!= "!=") (number_literal "0")) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n    if (DAT_0017fc6c == 0) {\n      bfd_link_hash_traverse(DAT_0017fae8,FUN_001145f0,0);\n    }\n    else {\n      if (DAT_0017fc6c == 2) {\n        local_40 = 4;\n        do {\n          bfd_link_hash_traverse(DAT_0017fae8,FUN_001145f0,&local_40);\n          local_40 = local_40 - 1;\n        } while (local_40 != 0);\n        local_40 = 0;\n      }\n      else {\n        local_40 = 0;\n        do {\n          bfd_link_hash_traverse(DAT_0017fae8,FUN_001145f0,&local_40);\n          local_40 = local_40 + 1;\n        } while (local_40 < 5);\n        local_40 = 0xffffffff;\n      }\n      bfd_link_hash_traverse(DAT_0017fae8,FUN_001145f0,&local_40);\n    }\n  }" ({ "{") (if_statement "if (DAT_0017fc6c == 0) {\n      bfd_link_hash_traverse(DAT_0017fae8,FUN_001145f0,0);\n    }\n    else {\n      if (DAT_0017fc6c == 2) {\n        local_40 = 4;\n        do {\n          bfd_link_hash_traverse(DAT_0017fae8,FUN_001145f0,&local_40);\n          local_40 = local_40 - 1;\n        } while (local_40 != 0);\n        local_40 = 0;\n      }\n      else {\n        local_40 = 0;\n        do {\n          bfd_link_hash_traverse(DAT_0017fae8,FUN_001145f0,&local_40);\n          local_40 = local_40 + 1;\n        } while (local_40 < 5);\n        local_40 = 0xffffffff;\n      }\n      bfd_link_hash_traverse(DAT_0017fae8,FUN_001145f0,&local_40);\n    }" (if "if") (parenthesized_expression "(DAT_0017fc6c == 0)" (( "(") (binary_expression "DAT_0017fc6c == 0" (identifier "DAT_0017fc6c") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      bfd_link_hash_traverse(DAT_0017fae8,FUN_001145f0,0);\n    }" ({ "{") (expression_statement "bfd_link_hash_traverse(DAT_0017fae8,FUN_001145f0,0);" (call_expression "bfd_link_hash_traverse(DAT_0017fae8,FUN_001145f0,0)" (identifier "bfd_link_hash_traverse") (argument_list "(DAT_0017fae8,FUN_001145f0,0)" (( "(") (identifier "DAT_0017fae8") (, ",") (identifier "FUN_001145f0") (, ",") (number_literal "0") () ")"))) (; ";")) (} "}")) (else_clause "else {\n      if (DAT_0017fc6c == 2) {\n        local_40 = 4;\n        do {\n          bfd_link_hash_traverse(DAT_0017fae8,FUN_001145f0,&local_40);\n          local_40 = local_40 - 1;\n        } while (local_40 != 0);\n        local_40 = 0;\n      }\n      else {\n        local_40 = 0;\n        do {\n          bfd_link_hash_traverse(DAT_0017fae8,FUN_001145f0,&local_40);\n          local_40 = local_40 + 1;\n        } while (local_40 < 5);\n        local_40 = 0xffffffff;\n      }\n      bfd_link_hash_traverse(DAT_0017fae8,FUN_001145f0,&local_40);\n    }" (else "else") (compound_statement "{\n      if (DAT_0017fc6c == 2) {\n        local_40 = 4;\n        do {\n          bfd_link_hash_traverse(DAT_0017fae8,FUN_001145f0,&local_40);\n          local_40 = local_40 - 1;\n        } while (local_40 != 0);\n        local_40 = 0;\n      }\n      else {\n        local_40 = 0;\n        do {\n          bfd_link_hash_traverse(DAT_0017fae8,FUN_001145f0,&local_40);\n          local_40 = local_40 + 1;\n        } while (local_40 < 5);\n        local_40 = 0xffffffff;\n      }\n      bfd_link_hash_traverse(DAT_0017fae8,FUN_001145f0,&local_40);\n    }" ({ "{") (if_statement "if (DAT_0017fc6c == 2) {\n        local_40 = 4;\n        do {\n          bfd_link_hash_traverse(DAT_0017fae8,FUN_001145f0,&local_40);\n          local_40 = local_40 - 1;\n        } while (local_40 != 0);\n        local_40 = 0;\n      }\n      else {\n        local_40 = 0;\n        do {\n          bfd_link_hash_traverse(DAT_0017fae8,FUN_001145f0,&local_40);\n          local_40 = local_40 + 1;\n        } while (local_40 < 5);\n        local_40 = 0xffffffff;\n      }" (if "if") (parenthesized_expression "(DAT_0017fc6c == 2)" (( "(") (binary_expression "DAT_0017fc6c == 2" (identifier "DAT_0017fc6c") (== "==") (number_literal "2")) () ")")) (compound_statement "{\n        local_40 = 4;\n        do {\n          bfd_link_hash_traverse(DAT_0017fae8,FUN_001145f0,&local_40);\n          local_40 = local_40 - 1;\n        } while (local_40 != 0);\n        local_40 = 0;\n      }" ({ "{") (expression_statement "local_40 = 4;" (assignment_expression "local_40 = 4" (identifier "local_40") (= "=") (number_literal "4")) (; ";")) (do_statement "do {\n          bfd_link_hash_traverse(DAT_0017fae8,FUN_001145f0,&local_40);\n          local_40 = local_40 - 1;\n        } while (local_40 != 0);" (do "do") (compound_statement "{\n          bfd_link_hash_traverse(DAT_0017fae8,FUN_001145f0,&local_40);\n          local_40 = local_40 - 1;\n        }" ({ "{") (expression_statement "bfd_link_hash_traverse(DAT_0017fae8,FUN_001145f0,&local_40);" (call_expression "bfd_link_hash_traverse(DAT_0017fae8,FUN_001145f0,&local_40)" (identifier "bfd_link_hash_traverse") (argument_list "(DAT_0017fae8,FUN_001145f0,&local_40)" (( "(") (identifier "DAT_0017fae8") (, ",") (identifier "FUN_001145f0") (, ",") (pointer_expression "&local_40" (& "&") (identifier "local_40")) () ")"))) (; ";")) (expression_statement "local_40 = local_40 - 1;" (assignment_expression "local_40 = local_40 - 1" (identifier "local_40") (= "=") (binary_expression "local_40 - 1" (identifier "local_40") (- "-") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(local_40 != 0)" (( "(") (binary_expression "local_40 != 0" (identifier "local_40") (!= "!=") (number_literal "0")) () ")")) (; ";")) (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" (identifier "local_40") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n        local_40 = 0;\n        do {\n          bfd_link_hash_traverse(DAT_0017fae8,FUN_001145f0,&local_40);\n          local_40 = local_40 + 1;\n        } while (local_40 < 5);\n        local_40 = 0xffffffff;\n      }" (else "else") (compound_statement "{\n        local_40 = 0;\n        do {\n          bfd_link_hash_traverse(DAT_0017fae8,FUN_001145f0,&local_40);\n          local_40 = local_40 + 1;\n        } while (local_40 < 5);\n        local_40 = 0xffffffff;\n      }" ({ "{") (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" (identifier "local_40") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n          bfd_link_hash_traverse(DAT_0017fae8,FUN_001145f0,&local_40);\n          local_40 = local_40 + 1;\n        } while (local_40 < 5);" (do "do") (compound_statement "{\n          bfd_link_hash_traverse(DAT_0017fae8,FUN_001145f0,&local_40);\n          local_40 = local_40 + 1;\n        }" ({ "{") (expression_statement "bfd_link_hash_traverse(DAT_0017fae8,FUN_001145f0,&local_40);" (call_expression "bfd_link_hash_traverse(DAT_0017fae8,FUN_001145f0,&local_40)" (identifier "bfd_link_hash_traverse") (argument_list "(DAT_0017fae8,FUN_001145f0,&local_40)" (( "(") (identifier "DAT_0017fae8") (, ",") (identifier "FUN_001145f0") (, ",") (pointer_expression "&local_40" (& "&") (identifier "local_40")) () ")"))) (; ";")) (expression_statement "local_40 = local_40 + 1;" (assignment_expression "local_40 = local_40 + 1" (identifier "local_40") (= "=") (binary_expression "local_40 + 1" (identifier "local_40") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(local_40 < 5)" (( "(") (binary_expression "local_40 < 5" (identifier "local_40") (< "<") (number_literal "5")) () ")")) (; ";")) (expression_statement "local_40 = 0xffffffff;" (assignment_expression "local_40 = 0xffffffff" (identifier "local_40") (= "=") (number_literal "0xffffffff")) (; ";")) (} "}")))) (expression_statement "bfd_link_hash_traverse(DAT_0017fae8,FUN_001145f0,&local_40);" (call_expression "bfd_link_hash_traverse(DAT_0017fae8,FUN_001145f0,&local_40)" (identifier "bfd_link_hash_traverse") (argument_list "(DAT_0017fae8,FUN_001145f0,&local_40)" (( "(") (identifier "DAT_0017fae8") (, ",") (identifier "FUN_001145f0") (, ",") (pointer_expression "&local_40" (& "&") (identifier "local_40")) () ")"))) (; ";")) (} "}")))) (} "}"))) (expression_statement "FUN_00119400(DAT_0017f430);" (call_expression "FUN_00119400(DAT_0017f430)" (identifier "FUN_00119400") (argument_list "(DAT_0017f430)" (( "(") (identifier "DAT_0017f430") () ")"))) (; ";")) (expression_statement "bVar35 = DAT_0017fac0;" (assignment_expression "bVar35 = DAT_0017fac0" (identifier "bVar35") (= "=") (identifier "DAT_0017fac0")) (; ";")) (expression_statement "plVar17 = DAT_0017f2f0;" (assignment_expression "plVar17 = DAT_0017f2f0" (identifier "plVar17") (= "=") (identifier "DAT_0017f2f0")) (; ";")) (if_statement "if ((DAT_0017fac0 & 3) == 2) {\n    for (; plVar17 != (long *)0x0; plVar17 = (long *)plVar17[6]) {\n      if ((*(byte *)((long)plVar17 + 0x49) & 0x20) == 0) {\n        for (lVar16 = *(long *)(plVar17[4] + 0x90); lVar16 != 0; lVar16 = *(long *)(lVar16 + 0x10))\n        {\n          if ((*(uint *)(lVar16 + 0x20) & 0x2000) == 0) {\n            *(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) & 0xffff7fff;\n          }\n        }\n      }\n    }\n  }" (if "if") (parenthesized_expression "((DAT_0017fac0 & 3) == 2)" (( "(") (binary_expression "(DAT_0017fac0 & 3) == 2" (parenthesized_expression "(DAT_0017fac0 & 3)" (( "(") (binary_expression "DAT_0017fac0 & 3" (identifier "DAT_0017fac0") (& "&") (number_literal "3")) () ")")) (== "==") (number_literal "2")) () ")")) (compound_statement "{\n    for (; plVar17 != (long *)0x0; plVar17 = (long *)plVar17[6]) {\n      if ((*(byte *)((long)plVar17 + 0x49) & 0x20) == 0) {\n        for (lVar16 = *(long *)(plVar17[4] + 0x90); lVar16 != 0; lVar16 = *(long *)(lVar16 + 0x10))\n        {\n          if ((*(uint *)(lVar16 + 0x20) & 0x2000) == 0) {\n            *(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) & 0xffff7fff;\n          }\n        }\n      }\n    }\n  }" ({ "{") (for_statement "for (; plVar17 != (long *)0x0; plVar17 = (long *)plVar17[6]) {\n      if ((*(byte *)((long)plVar17 + 0x49) & 0x20) == 0) {\n        for (lVar16 = *(long *)(plVar17[4] + 0x90); lVar16 != 0; lVar16 = *(long *)(lVar16 + 0x10))\n        {\n          if ((*(uint *)(lVar16 + 0x20) & 0x2000) == 0) {\n            *(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) & 0xffff7fff;\n          }\n        }\n      }\n    }" (for "for") (( "(") (; ";") (binary_expression "plVar17 != (long *)0x0" (identifier "plVar17") (!= "!=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";") (assignment_expression "plVar17 = (long *)plVar17[6]" (identifier "plVar17") (= "=") (cast_expression "(long *)plVar17[6]" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "plVar17[6]" (identifier "plVar17") ([ "[") (number_literal "6") (] "]")))) () ")") (compound_statement "{\n      if ((*(byte *)((long)plVar17 + 0x49) & 0x20) == 0) {\n        for (lVar16 = *(long *)(plVar17[4] + 0x90); lVar16 != 0; lVar16 = *(long *)(lVar16 + 0x10))\n        {\n          if ((*(uint *)(lVar16 + 0x20) & 0x2000) == 0) {\n            *(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) & 0xffff7fff;\n          }\n        }\n      }\n    }" ({ "{") (if_statement "if ((*(byte *)((long)plVar17 + 0x49) & 0x20) == 0) {\n        for (lVar16 = *(long *)(plVar17[4] + 0x90); lVar16 != 0; lVar16 = *(long *)(lVar16 + 0x10))\n        {\n          if ((*(uint *)(lVar16 + 0x20) & 0x2000) == 0) {\n            *(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) & 0xffff7fff;\n          }\n        }\n      }" (if "if") (parenthesized_expression "((*(byte *)((long)plVar17 + 0x49) & 0x20) == 0)" (( "(") (binary_expression "(*(byte *)((long)plVar17 + 0x49) & 0x20) == 0" (parenthesized_expression "(*(byte *)((long)plVar17 + 0x49) & 0x20)" (( "(") (binary_expression "*(byte *)((long)plVar17 + 0x49) & 0x20" (pointer_expression "*(byte *)((long)plVar17 + 0x49)" (* "*") (cast_expression "(byte *)((long)plVar17 + 0x49)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)plVar17 + 0x49)" (( "(") (binary_expression "(long)plVar17 + 0x49" (cast_expression "(long)plVar17" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar17")) (+ "+") (number_literal "0x49")) () ")")))) (& "&") (number_literal "0x20")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        for (lVar16 = *(long *)(plVar17[4] + 0x90); lVar16 != 0; lVar16 = *(long *)(lVar16 + 0x10))\n        {\n          if ((*(uint *)(lVar16 + 0x20) & 0x2000) == 0) {\n            *(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) & 0xffff7fff;\n          }\n        }\n      }" ({ "{") (for_statement "for (lVar16 = *(long *)(plVar17[4] + 0x90); lVar16 != 0; lVar16 = *(long *)(lVar16 + 0x10))\n        {\n          if ((*(uint *)(lVar16 + 0x20) & 0x2000) == 0) {\n            *(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) & 0xffff7fff;\n          }\n        }" (for "for") (( "(") (assignment_expression "lVar16 = *(long *)(plVar17[4] + 0x90)" (identifier "lVar16") (= "=") (pointer_expression "*(long *)(plVar17[4] + 0x90)" (* "*") (cast_expression "(long *)(plVar17[4] + 0x90)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(plVar17[4] + 0x90)" (( "(") (binary_expression "plVar17[4] + 0x90" (subscript_expression "plVar17[4]" (identifier "plVar17") ([ "[") (number_literal "4") (] "]")) (+ "+") (number_literal "0x90")) () ")"))))) (; ";") (binary_expression "lVar16 != 0" (identifier "lVar16") (!= "!=") (number_literal "0")) (; ";") (assignment_expression "lVar16 = *(long *)(lVar16 + 0x10)" (identifier "lVar16") (= "=") (pointer_expression "*(long *)(lVar16 + 0x10)" (* "*") (cast_expression "(long *)(lVar16 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar16 + 0x10)" (( "(") (binary_expression "lVar16 + 0x10" (identifier "lVar16") (+ "+") (number_literal "0x10")) () ")"))))) () ")") (compound_statement "{\n          if ((*(uint *)(lVar16 + 0x20) & 0x2000) == 0) {\n            *(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) & 0xffff7fff;\n          }\n        }" ({ "{") (if_statement "if ((*(uint *)(lVar16 + 0x20) & 0x2000) == 0) {\n            *(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) & 0xffff7fff;\n          }" (if "if") (parenthesized_expression "((*(uint *)(lVar16 + 0x20) & 0x2000) == 0)" (( "(") (binary_expression "(*(uint *)(lVar16 + 0x20) & 0x2000) == 0" (parenthesized_expression "(*(uint *)(lVar16 + 0x20) & 0x2000)" (( "(") (binary_expression "*(uint *)(lVar16 + 0x20) & 0x2000" (pointer_expression "*(uint *)(lVar16 + 0x20)" (* "*") (cast_expression "(uint *)(lVar16 + 0x20)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar16 + 0x20)" (( "(") (binary_expression "lVar16 + 0x20" (identifier "lVar16") (+ "+") (number_literal "0x20")) () ")")))) (& "&") (number_literal "0x2000")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            *(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) & 0xffff7fff;\n          }" ({ "{") (expression_statement "*(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) & 0xffff7fff;" (assignment_expression "*(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) & 0xffff7fff" (pointer_expression "*(uint *)(lVar16 + 0x20)" (* "*") (cast_expression "(uint *)(lVar16 + 0x20)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar16 + 0x20)" (( "(") (binary_expression "lVar16 + 0x20" (identifier "lVar16") (+ "+") (number_literal "0x20")) () ")")))) (= "=") (binary_expression "*(uint *)(lVar16 + 0x20) & 0xffff7fff" (pointer_expression "*(uint *)(lVar16 + 0x20)" (* "*") (cast_expression "(uint *)(lVar16 + 0x20)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar16 + 0x20)" (( "(") (binary_expression "lVar16 + 0x20" (identifier "lVar16") (+ "+") (number_literal "0x20")) () ")")))) (& "&") (number_literal "0xffff7fff"))) (; ";")) (} "}"))) (} "}"))) (} "}"))) (} "}"))) (} "}"))) (if_statement "if ((bVar35 & 0x40) != 0) {\n    (**(code **)(*(long *)(DAT_0017fb10 + 8) + 0x2f0))(DAT_0017fb10,&DAT_0017fac0);\n  }" (if "if") (parenthesized_expression "((bVar35 & 0x40) != 0)" (( "(") (binary_expression "(bVar35 & 0x40) != 0" (parenthesized_expression "(bVar35 & 0x40)" (( "(") (binary_expression "bVar35 & 0x40" (identifier "bVar35") (& "&") (number_literal "0x40")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    (**(code **)(*(long *)(DAT_0017fb10 + 8) + 0x2f0))(DAT_0017fb10,&DAT_0017fac0);\n  }" ({ "{") (expression_statement "(**(code **)(*(long *)(DAT_0017fb10 + 8) + 0x2f0))(DAT_0017fb10,&DAT_0017fac0);" (call_expression "(**(code **)(*(long *)(DAT_0017fb10 + 8) + 0x2f0))(DAT_0017fb10,&DAT_0017fac0)" (parenthesized_expression "(**(code **)(*(long *)(DAT_0017fb10 + 8) + 0x2f0))" (( "(") (pointer_expression "**(code **)(*(long *)(DAT_0017fb10 + 8) + 0x2f0)" (* "*") (pointer_expression "*(code **)(*(long *)(DAT_0017fb10 + 8) + 0x2f0)" (* "*") (cast_expression "(code **)(*(long *)(DAT_0017fb10 + 8) + 0x2f0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(long *)(DAT_0017fb10 + 8) + 0x2f0)" (( "(") (binary_expression "*(long *)(DAT_0017fb10 + 8) + 0x2f0" (pointer_expression "*(long *)(DAT_0017fb10 + 8)" (* "*") (cast_expression "(long *)(DAT_0017fb10 + 8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_0017fb10 + 8)" (( "(") (binary_expression "DAT_0017fb10 + 8" (identifier "DAT_0017fb10") (+ "+") (number_literal "8")) () ")")))) (+ "+") (number_literal "0x2f0")) () ")"))))) () ")")) (argument_list "(DAT_0017fb10,&DAT_0017fac0)" (( "(") (identifier "DAT_0017fb10") (, ",") (pointer_expression "&DAT_0017fac0" (& "&") (identifier "DAT_0017fac0")) () ")"))) (; ";")) (} "}"))) (expression_statement "lVar16 = DAT_0017fb20;" (assignment_expression "lVar16 = DAT_0017fb20" (identifier "lVar16") (= "=") (identifier "DAT_0017fb20")) (; ";")) (if_statement "if ((DAT_0017fac6 & 0x20) != 0) {\n    for (; lVar16 != 0; lVar16 = *(long *)(lVar16 + 0xf0)) {\n      iVar9 = bfd_link_check_relocs(lVar16,&DAT_0017fac0);\n      if (iVar9 == 0) {\n        DAT_0017fc44 = 0;\n      }\n    }\n  }" (if "if") (parenthesized_expression "((DAT_0017fac6 & 0x20) != 0)" (( "(") (binary_expression "(DAT_0017fac6 & 0x20) != 0" (parenthesized_expression "(DAT_0017fac6 & 0x20)" (( "(") (binary_expression "DAT_0017fac6 & 0x20" (identifier "DAT_0017fac6") (& "&") (number_literal "0x20")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    for (; lVar16 != 0; lVar16 = *(long *)(lVar16 + 0xf0)) {\n      iVar9 = bfd_link_check_relocs(lVar16,&DAT_0017fac0);\n      if (iVar9 == 0) {\n        DAT_0017fc44 = 0;\n      }\n    }\n  }" ({ "{") (for_statement "for (; lVar16 != 0; lVar16 = *(long *)(lVar16 + 0xf0)) {\n      iVar9 = bfd_link_check_relocs(lVar16,&DAT_0017fac0);\n      if (iVar9 == 0) {\n        DAT_0017fc44 = 0;\n      }\n    }" (for "for") (( "(") (; ";") (binary_expression "lVar16 != 0" (identifier "lVar16") (!= "!=") (number_literal "0")) (; ";") (assignment_expression "lVar16 = *(long *)(lVar16 + 0xf0)" (identifier "lVar16") (= "=") (pointer_expression "*(long *)(lVar16 + 0xf0)" (* "*") (cast_expression "(long *)(lVar16 + 0xf0)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar16 + 0xf0)" (( "(") (binary_expression "lVar16 + 0xf0" (identifier "lVar16") (+ "+") (number_literal "0xf0")) () ")"))))) () ")") (compound_statement "{\n      iVar9 = bfd_link_check_relocs(lVar16,&DAT_0017fac0);\n      if (iVar9 == 0) {\n        DAT_0017fc44 = 0;\n      }\n    }" ({ "{") (expression_statement "iVar9 = bfd_link_check_relocs(lVar16,&DAT_0017fac0);" (assignment_expression "iVar9 = bfd_link_check_relocs(lVar16,&DAT_0017fac0)" (identifier "iVar9") (= "=") (call_expression "bfd_link_check_relocs(lVar16,&DAT_0017fac0)" (identifier "bfd_link_check_relocs") (argument_list "(lVar16,&DAT_0017fac0)" (( "(") (identifier "lVar16") (, ",") (pointer_expression "&DAT_0017fac0" (& "&") (identifier "DAT_0017fac0")) () ")")))) (; ";")) (if_statement "if (iVar9 == 0) {\n        DAT_0017fc44 = 0;\n      }" (if "if") (parenthesized_expression "(iVar9 == 0)" (( "(") (binary_expression "iVar9 == 0" (identifier "iVar9") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        DAT_0017fc44 = 0;\n      }" ({ "{") (expression_statement "DAT_0017fc44 = 0;" (assignment_expression "DAT_0017fc44 = 0" (identifier "DAT_0017fc44") (= "=") (number_literal "0")) (; ";")) (} "}"))) (} "}"))) (} "}"))) (expression_statement "FUN_00123ba0();" (call_expression "FUN_00123ba0()" (identifier "FUN_00123ba0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_001124e0(DAT_0017f430);" (call_expression "FUN_001124e0(DAT_0017f430)" (identifier "FUN_001124e0") (argument_list "(DAT_0017f430)" (( "(") (identifier "DAT_0017f430") () ")"))) (; ";")) (expression_statement "_DAT_0017f2c0 = _DAT_0017f2c0 + 1;" (assignment_expression "_DAT_0017f2c0 = _DAT_0017f2c0 + 1" (identifier "_DAT_0017f2c0") (= "=") (binary_expression "_DAT_0017f2c0 + 1" (identifier "_DAT_0017f2c0") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "FUN_00119520(DAT_0017f430,0,0);" (call_expression "FUN_00119520(DAT_0017f430,0,0)" (identifier "FUN_00119520") (argument_list "(DAT_0017f430,0,0)" (( "(") (identifier "DAT_0017f430") (, ",") (number_literal "0") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "plVar18 = (long *)0x0;" (assignment_expression "plVar18 = (long *)0x0" (identifier "plVar18") (= "=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "plVar26 = (long *)0x0;" (assignment_expression "plVar26 = (long *)0x0" (identifier "plVar26") (= "=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "plVar17 = DAT_0017fa60;" (assignment_expression "plVar17 = DAT_0017fa60" (identifier "plVar17") (= "=") (identifier "DAT_0017fa60")) (; ";")) (while_statement "while (plVar36 = plVar17, plVar3 = (long *)*plVar36, plVar3 != (long *)0x0) {\n    plVar17 = plVar3;\n    if ((int)plVar3[1] == 0) {\n      if ((plVar26 != (long *)0x0) && (plVar3 != (long *)plVar26[4])) {\n        FUN_001252b0("../../ld/ldlang.c",0xea0);\n        plVar17 = (long *)*plVar36;\n      }\n      *(int *)((long)plVar3 + 0x84) = -2 - *(int *)((long)plVar3 + 0x84);\n      plVar26 = plVar3;\n      if (plVar18 == (long *)0x0) {\n        plVar18 = plVar3;\n      }\n    }\n    else if ((int)plVar3[1] == 0xe) {\n      lVar16 = FUN_00116e20(plVar3[2],0,0);\n      if (lVar16 == 0) {\nLAB_0011c415:\n        lVar16 = plVar3[2];\n        uVar11 = dcgettext(0,"%F%P: %s not found for insert\n",5);\n        FUN_001251f0(uVar11,lVar16);\n        plVar17 = DAT_0017f2f0;\n        goto joined_r0x0011c458;\n      }\n      if ((int)plVar3[3] != 0) {\n        do {\n          lVar16 = *(long *)(lVar16 + 0x28);\n          if (lVar16 == 0) goto LAB_0011c415;\n        } while (*(int *)(lVar16 + 0x84) < 0);\n      }\n      if (plVar26 != (long *)0x0) {\n        lVar15 = plVar18[5];\n        lVar13 = plVar26[4];\n        *(long *)(lVar15 + 0x20) = lVar13;\n        if (lVar13 == 0) {\n          DAT_0017fa68 = (long *)(lVar15 + 0x20);\n        }\n        else {\n          *(long *)(lVar13 + 0x28) = lVar15;\n        }\n        plVar26[4] = *(long *)(lVar16 + 0x20);\n        if (*(long *)(lVar16 + 0x20) == 0) {\n          DAT_0017fa68 = plVar26 + 4;\n        }\n        else {\n          *(long **)(*(long *)(lVar16 + 0x20) + 0x28) = plVar26;\n        }\n        plVar18[5] = lVar16;\n        lVar13 = 0;\n        lVar15 = 0;\n        *(long **)(lVar16 + 0x20) = plVar18;\n        do {\n          *(int *)((long)plVar18 + 0x84) = -2 - *(int *)((long)plVar18 + 0x84);\n          lVar28 = plVar18[7];\n          if (((lVar28 != 0) && (*(long *)(lVar28 + 0xf0) != 0)) && (lVar13 = lVar28, lVar15 == 0))\n          {\n            lVar15 = lVar28;\n          }\n        } while ((plVar26 != plVar18) && (plVar18 = (long *)plVar18[4], plVar18 != (long *)0x0));\n        plVar18 = (long *)0x0;\n        if (lVar13 != 0) {\n          lVar28 = *(long *)(lVar16 + 0x38);\n          if (lVar28 == 0) {\n            plVar18 = *(long **)(lVar16 + 0x28);\n            if (plVar18 != (long *)0x0) {\n              do {\n                if (((-1 < *(int *)((long)plVar18 + 0x84)) && (lVar28 = plVar18[7], lVar28 != 0)) &&\n                   (*(long *)(lVar28 + 0xf0) != 0)) goto LAB_0011cd61;\n                plVar18 = (long *)plVar18[5];\n              } while (plVar18 != (long *)0x0);\n              plVar18 = (long *)0x0;\n            }\n          }\n          else {\nLAB_0011cd61:\n            plVar18 = (long *)0x0;\n            if (lVar28 != lVar13) {\n              lVar5 = *(long *)(lVar15 + 0x18);\n              lVar33 = *(long *)(lVar13 + 0x10);\n              if (lVar5 == 0) {\n                *(long *)(DAT_0017fb10 + 0x90) = lVar33;\n              }\n              else {\n                *(long *)(lVar5 + 0x10) = lVar33;\n                lVar33 = *(long *)(lVar13 + 0x10);\n              }\n              if (lVar33 == 0) {\n                *(long *)(DAT_0017fb10 + 0x98) = lVar5;\n              }\n              else {\n                *(long *)(lVar33 + 0x18) = lVar5;\n              }\n              lVar5 = *(long *)(lVar28 + 0x10);\n              *(long *)(lVar13 + 0x10) = lVar5;\n              if (lVar5 == 0) {\n                *(long *)(DAT_0017fb10 + 0x98) = lVar13;\n              }\n              else {\n                *(long *)(lVar5 + 0x18) = lVar13;\n              }\n              *(long *)(lVar15 + 0x18) = lVar28;\n              plVar18 = (long *)0x0;\n              *(long *)(lVar28 + 0x10) = lVar15;\n            }\n          }\n        }\n      }\n      plVar17 = (long *)FUN_00112240(lVar16);\n      lVar16 = *DAT_0017fa60;\n      *DAT_0017fa60 = *(long *)*plVar36;\n      lVar15 = *plVar17;\n      *plVar36 = lVar15;\n      if (lVar15 == 0) {\n        DAT_0017f438 = plVar36;\n      }\n      *plVar17 = lVar16;\n      plVar26 = (long *)0x0;\n      plVar17 = DAT_0017fa60;\n    }\n  }" (while "while") (parenthesized_expression "(plVar36 = plVar17, plVar3 = (long *)*plVar36, plVar3 != (long *)0x0)" (( "(") (comma_expression "plVar36 = plVar17, plVar3 = (long *)*plVar36, plVar3 != (long *)0x0" (assignment_expression "plVar36 = plVar17" (identifier "plVar36") (= "=") (identifier "plVar17")) (, ",") (comma_expression "plVar3 = (long *)*plVar36, plVar3 != (long *)0x0" (assignment_expression "plVar3 = (long *)*plVar36" (identifier "plVar3") (= "=") (cast_expression "(long *)*plVar36" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*plVar36" (* "*") (identifier "plVar36")))) (, ",") (binary_expression "plVar3 != (long *)0x0" (identifier "plVar3") (!= "!=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))))) () ")")) (compound_statement "{\n    plVar17 = plVar3;\n    if ((int)plVar3[1] == 0) {\n      if ((plVar26 != (long *)0x0) && (plVar3 != (long *)plVar26[4])) {\n        FUN_001252b0("../../ld/ldlang.c",0xea0);\n        plVar17 = (long *)*plVar36;\n      }\n      *(int *)((long)plVar3 + 0x84) = -2 - *(int *)((long)plVar3 + 0x84);\n      plVar26 = plVar3;\n      if (plVar18 == (long *)0x0) {\n        plVar18 = plVar3;\n      }\n    }\n    else if ((int)plVar3[1] == 0xe) {\n      lVar16 = FUN_00116e20(plVar3[2],0,0);\n      if (lVar16 == 0) {\nLAB_0011c415:\n        lVar16 = plVar3[2];\n        uVar11 = dcgettext(0,"%F%P: %s not found for insert\n",5);\n        FUN_001251f0(uVar11,lVar16);\n        plVar17 = DAT_0017f2f0;\n        goto joined_r0x0011c458;\n      }\n      if ((int)plVar3[3] != 0) {\n        do {\n          lVar16 = *(long *)(lVar16 + 0x28);\n          if (lVar16 == 0) goto LAB_0011c415;\n        } while (*(int *)(lVar16 + 0x84) < 0);\n      }\n      if (plVar26 != (long *)0x0) {\n        lVar15 = plVar18[5];\n        lVar13 = plVar26[4];\n        *(long *)(lVar15 + 0x20) = lVar13;\n        if (lVar13 == 0) {\n          DAT_0017fa68 = (long *)(lVar15 + 0x20);\n        }\n        else {\n          *(long *)(lVar13 + 0x28) = lVar15;\n        }\n        plVar26[4] = *(long *)(lVar16 + 0x20);\n        if (*(long *)(lVar16 + 0x20) == 0) {\n          DAT_0017fa68 = plVar26 + 4;\n        }\n        else {\n          *(long **)(*(long *)(lVar16 + 0x20) + 0x28) = plVar26;\n        }\n        plVar18[5] = lVar16;\n        lVar13 = 0;\n        lVar15 = 0;\n        *(long **)(lVar16 + 0x20) = plVar18;\n        do {\n          *(int *)((long)plVar18 + 0x84) = -2 - *(int *)((long)plVar18 + 0x84);\n          lVar28 = plVar18[7];\n          if (((lVar28 != 0) && (*(long *)(lVar28 + 0xf0) != 0)) && (lVar13 = lVar28, lVar15 == 0))\n          {\n            lVar15 = lVar28;\n          }\n        } while ((plVar26 != plVar18) && (plVar18 = (long *)plVar18[4], plVar18 != (long *)0x0));\n        plVar18 = (long *)0x0;\n        if (lVar13 != 0) {\n          lVar28 = *(long *)(lVar16 + 0x38);\n          if (lVar28 == 0) {\n            plVar18 = *(long **)(lVar16 + 0x28);\n            if (plVar18 != (long *)0x0) {\n              do {\n                if (((-1 < *(int *)((long)plVar18 + 0x84)) && (lVar28 = plVar18[7], lVar28 != 0)) &&\n                   (*(long *)(lVar28 + 0xf0) != 0)) goto LAB_0011cd61;\n                plVar18 = (long *)plVar18[5];\n              } while (plVar18 != (long *)0x0);\n              plVar18 = (long *)0x0;\n            }\n          }\n          else {\nLAB_0011cd61:\n            plVar18 = (long *)0x0;\n            if (lVar28 != lVar13) {\n              lVar5 = *(long *)(lVar15 + 0x18);\n              lVar33 = *(long *)(lVar13 + 0x10);\n              if (lVar5 == 0) {\n                *(long *)(DAT_0017fb10 + 0x90) = lVar33;\n              }\n              else {\n                *(long *)(lVar5 + 0x10) = lVar33;\n                lVar33 = *(long *)(lVar13 + 0x10);\n              }\n              if (lVar33 == 0) {\n                *(long *)(DAT_0017fb10 + 0x98) = lVar5;\n              }\n              else {\n                *(long *)(lVar33 + 0x18) = lVar5;\n              }\n              lVar5 = *(long *)(lVar28 + 0x10);\n              *(long *)(lVar13 + 0x10) = lVar5;\n              if (lVar5 == 0) {\n                *(long *)(DAT_0017fb10 + 0x98) = lVar13;\n              }\n              else {\n                *(long *)(lVar5 + 0x18) = lVar13;\n              }\n              *(long *)(lVar15 + 0x18) = lVar28;\n              plVar18 = (long *)0x0;\n              *(long *)(lVar28 + 0x10) = lVar15;\n            }\n          }\n        }\n      }\n      plVar17 = (long *)FUN_00112240(lVar16);\n      lVar16 = *DAT_0017fa60;\n      *DAT_0017fa60 = *(long *)*plVar36;\n      lVar15 = *plVar17;\n      *plVar36 = lVar15;\n      if (lVar15 == 0) {\n        DAT_0017f438 = plVar36;\n      }\n      *plVar17 = lVar16;\n      plVar26 = (long *)0x0;\n      plVar17 = DAT_0017fa60;\n    }\n  }" ({ "{") (expression_statement "plVar17 = plVar3;" (assignment_expression "plVar17 = plVar3" (identifier "plVar17") (= "=") (identifier "plVar3")) (; ";")) (if_statement "if ((int)plVar3[1] == 0) {\n      if ((plVar26 != (long *)0x0) && (plVar3 != (long *)plVar26[4])) {\n        FUN_001252b0("../../ld/ldlang.c",0xea0);\n        plVar17 = (long *)*plVar36;\n      }\n      *(int *)((long)plVar3 + 0x84) = -2 - *(int *)((long)plVar3 + 0x84);\n      plVar26 = plVar3;\n      if (plVar18 == (long *)0x0) {\n        plVar18 = plVar3;\n      }\n    }\n    else if ((int)plVar3[1] == 0xe) {\n      lVar16 = FUN_00116e20(plVar3[2],0,0);\n      if (lVar16 == 0) {\nLAB_0011c415:\n        lVar16 = plVar3[2];\n        uVar11 = dcgettext(0,"%F%P: %s not found for insert\n",5);\n        FUN_001251f0(uVar11,lVar16);\n        plVar17 = DAT_0017f2f0;\n        goto joined_r0x0011c458;\n      }\n      if ((int)plVar3[3] != 0) {\n        do {\n          lVar16 = *(long *)(lVar16 + 0x28);\n          if (lVar16 == 0) goto LAB_0011c415;\n        } while (*(int *)(lVar16 + 0x84) < 0);\n      }\n      if (plVar26 != (long *)0x0) {\n        lVar15 = plVar18[5];\n        lVar13 = plVar26[4];\n        *(long *)(lVar15 + 0x20) = lVar13;\n        if (lVar13 == 0) {\n          DAT_0017fa68 = (long *)(lVar15 + 0x20);\n        }\n        else {\n          *(long *)(lVar13 + 0x28) = lVar15;\n        }\n        plVar26[4] = *(long *)(lVar16 + 0x20);\n        if (*(long *)(lVar16 + 0x20) == 0) {\n          DAT_0017fa68 = plVar26 + 4;\n        }\n        else {\n          *(long **)(*(long *)(lVar16 + 0x20) + 0x28) = plVar26;\n        }\n        plVar18[5] = lVar16;\n        lVar13 = 0;\n        lVar15 = 0;\n        *(long **)(lVar16 + 0x20) = plVar18;\n        do {\n          *(int *)((long)plVar18 + 0x84) = -2 - *(int *)((long)plVar18 + 0x84);\n          lVar28 = plVar18[7];\n          if (((lVar28 != 0) && (*(long *)(lVar28 + 0xf0) != 0)) && (lVar13 = lVar28, lVar15 == 0))\n          {\n            lVar15 = lVar28;\n          }\n        } while ((plVar26 != plVar18) && (plVar18 = (long *)plVar18[4], plVar18 != (long *)0x0));\n        plVar18 = (long *)0x0;\n        if (lVar13 != 0) {\n          lVar28 = *(long *)(lVar16 + 0x38);\n          if (lVar28 == 0) {\n            plVar18 = *(long **)(lVar16 + 0x28);\n            if (plVar18 != (long *)0x0) {\n              do {\n                if (((-1 < *(int *)((long)plVar18 + 0x84)) && (lVar28 = plVar18[7], lVar28 != 0)) &&\n                   (*(long *)(lVar28 + 0xf0) != 0)) goto LAB_0011cd61;\n                plVar18 = (long *)plVar18[5];\n              } while (plVar18 != (long *)0x0);\n              plVar18 = (long *)0x0;\n            }\n          }\n          else {\nLAB_0011cd61:\n            plVar18 = (long *)0x0;\n            if (lVar28 != lVar13) {\n              lVar5 = *(long *)(lVar15 + 0x18);\n              lVar33 = *(long *)(lVar13 + 0x10);\n              if (lVar5 == 0) {\n                *(long *)(DAT_0017fb10 + 0x90) = lVar33;\n              }\n              else {\n                *(long *)(lVar5 + 0x10) = lVar33;\n                lVar33 = *(long *)(lVar13 + 0x10);\n              }\n              if (lVar33 == 0) {\n                *(long *)(DAT_0017fb10 + 0x98) = lVar5;\n              }\n              else {\n                *(long *)(lVar33 + 0x18) = lVar5;\n              }\n              lVar5 = *(long *)(lVar28 + 0x10);\n              *(long *)(lVar13 + 0x10) = lVar5;\n              if (lVar5 == 0) {\n                *(long *)(DAT_0017fb10 + 0x98) = lVar13;\n              }\n              else {\n                *(long *)(lVar5 + 0x18) = lVar13;\n              }\n              *(long *)(lVar15 + 0x18) = lVar28;\n              plVar18 = (long *)0x0;\n              *(long *)(lVar28 + 0x10) = lVar15;\n            }\n          }\n        }\n      }\n      plVar17 = (long *)FUN_00112240(lVar16);\n      lVar16 = *DAT_0017fa60;\n      *DAT_0017fa60 = *(long *)*plVar36;\n      lVar15 = *plVar17;\n      *plVar36 = lVar15;\n      if (lVar15 == 0) {\n        DAT_0017f438 = plVar36;\n      }\n      *plVar17 = lVar16;\n      plVar26 = (long *)0x0;\n      plVar17 = DAT_0017fa60;\n    }" (if "if") (parenthesized_expression "((int)plVar3[1] == 0)" (( "(") (binary_expression "(int)plVar3[1] == 0" (cast_expression "(int)plVar3[1]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "plVar3[1]" (identifier "plVar3") ([ "[") (number_literal "1") (] "]"))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      if ((plVar26 != (long *)0x0) && (plVar3 != (long *)plVar26[4])) {\n        FUN_001252b0("../../ld/ldlang.c",0xea0);\n        plVar17 = (long *)*plVar36;\n      }\n      *(int *)((long)plVar3 + 0x84) = -2 - *(int *)((long)plVar3 + 0x84);\n      plVar26 = plVar3;\n      if (plVar18 == (long *)0x0) {\n        plVar18 = plVar3;\n      }\n    }" ({ "{") (if_statement "if ((plVar26 != (long *)0x0) && (plVar3 != (long *)plVar26[4])) {\n        FUN_001252b0("../../ld/ldlang.c",0xea0);\n        plVar17 = (long *)*plVar36;\n      }" (if "if") (parenthesized_expression "((plVar26 != (long *)0x0) && (plVar3 != (long *)plVar26[4]))" (( "(") (binary_expression "(plVar26 != (long *)0x0) && (plVar3 != (long *)plVar26[4])" (parenthesized_expression "(plVar26 != (long *)0x0)" (( "(") (binary_expression "plVar26 != (long *)0x0" (identifier "plVar26") (!= "!=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(plVar3 != (long *)plVar26[4])" (( "(") (binary_expression "plVar3 != (long *)plVar26[4]" (identifier "plVar3") (!= "!=") (cast_expression "(long *)plVar26[4]" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "plVar26[4]" (identifier "plVar26") ([ "[") (number_literal "4") (] "]")))) () ")"))) () ")")) (compound_statement "{\n        FUN_001252b0("../../ld/ldlang.c",0xea0);\n        plVar17 = (long *)*plVar36;\n      }" ({ "{") (expression_statement "FUN_001252b0("../../ld/ldlang.c",0xea0);" (call_expression "FUN_001252b0("../../ld/ldlang.c",0xea0)" (identifier "FUN_001252b0") (argument_list "("../../ld/ldlang.c",0xea0)" (( "(") (string_literal ""../../ld/ldlang.c"" (" """) (string_content "../../ld/ldlang.c") (" """)) (, ",") (number_literal "0xea0") () ")"))) (; ";")) (expression_statement "plVar17 = (long *)*plVar36;" (assignment_expression "plVar17 = (long *)*plVar36" (identifier "plVar17") (= "=") (cast_expression "(long *)*plVar36" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*plVar36" (* "*") (identifier "plVar36")))) (; ";")) (} "}"))) (expression_statement "*(int *)((long)plVar3 + 0x84) = -2 - *(int *)((long)plVar3 + 0x84);" (assignment_expression "*(int *)((long)plVar3 + 0x84) = -2 - *(int *)((long)plVar3 + 0x84)" (pointer_expression "*(int *)((long)plVar3 + 0x84)" (* "*") (cast_expression "(int *)((long)plVar3 + 0x84)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)plVar3 + 0x84)" (( "(") (binary_expression "(long)plVar3 + 0x84" (cast_expression "(long)plVar3" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar3")) (+ "+") (number_literal "0x84")) () ")")))) (= "=") (binary_expression "-2 - *(int *)((long)plVar3 + 0x84)" (number_literal "-2") (- "-") (pointer_expression "*(int *)((long)plVar3 + 0x84)" (* "*") (cast_expression "(int *)((long)plVar3 + 0x84)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)plVar3 + 0x84)" (( "(") (binary_expression "(long)plVar3 + 0x84" (cast_expression "(long)plVar3" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar3")) (+ "+") (number_literal "0x84")) () ")")))))) (; ";")) (expression_statement "plVar26 = plVar3;" (assignment_expression "plVar26 = plVar3" (identifier "plVar26") (= "=") (identifier "plVar3")) (; ";")) (if_statement "if (plVar18 == (long *)0x0) {\n        plVar18 = plVar3;\n      }" (if "if") (parenthesized_expression "(plVar18 == (long *)0x0)" (( "(") (binary_expression "plVar18 == (long *)0x0" (identifier "plVar18") (== "==") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        plVar18 = plVar3;\n      }" ({ "{") (expression_statement "plVar18 = plVar3;" (assignment_expression "plVar18 = plVar3" (identifier "plVar18") (= "=") (identifier "plVar3")) (; ";")) (} "}"))) (} "}")) (else_clause "else if ((int)plVar3[1] == 0xe) {\n      lVar16 = FUN_00116e20(plVar3[2],0,0);\n      if (lVar16 == 0) {\nLAB_0011c415:\n        lVar16 = plVar3[2];\n        uVar11 = dcgettext(0,"%F%P: %s not found for insert\n",5);\n        FUN_001251f0(uVar11,lVar16);\n        plVar17 = DAT_0017f2f0;\n        goto joined_r0x0011c458;\n      }\n      if ((int)plVar3[3] != 0) {\n        do {\n          lVar16 = *(long *)(lVar16 + 0x28);\n          if (lVar16 == 0) goto LAB_0011c415;\n        } while (*(int *)(lVar16 + 0x84) < 0);\n      }\n      if (plVar26 != (long *)0x0) {\n        lVar15 = plVar18[5];\n        lVar13 = plVar26[4];\n        *(long *)(lVar15 + 0x20) = lVar13;\n        if (lVar13 == 0) {\n          DAT_0017fa68 = (long *)(lVar15 + 0x20);\n        }\n        else {\n          *(long *)(lVar13 + 0x28) = lVar15;\n        }\n        plVar26[4] = *(long *)(lVar16 + 0x20);\n        if (*(long *)(lVar16 + 0x20) == 0) {\n          DAT_0017fa68 = plVar26 + 4;\n        }\n        else {\n          *(long **)(*(long *)(lVar16 + 0x20) + 0x28) = plVar26;\n        }\n        plVar18[5] = lVar16;\n        lVar13 = 0;\n        lVar15 = 0;\n        *(long **)(lVar16 + 0x20) = plVar18;\n        do {\n          *(int *)((long)plVar18 + 0x84) = -2 - *(int *)((long)plVar18 + 0x84);\n          lVar28 = plVar18[7];\n          if (((lVar28 != 0) && (*(long *)(lVar28 + 0xf0) != 0)) && (lVar13 = lVar28, lVar15 == 0))\n          {\n            lVar15 = lVar28;\n          }\n        } while ((plVar26 != plVar18) && (plVar18 = (long *)plVar18[4], plVar18 != (long *)0x0));\n        plVar18 = (long *)0x0;\n        if (lVar13 != 0) {\n          lVar28 = *(long *)(lVar16 + 0x38);\n          if (lVar28 == 0) {\n            plVar18 = *(long **)(lVar16 + 0x28);\n            if (plVar18 != (long *)0x0) {\n              do {\n                if (((-1 < *(int *)((long)plVar18 + 0x84)) && (lVar28 = plVar18[7], lVar28 != 0)) &&\n                   (*(long *)(lVar28 + 0xf0) != 0)) goto LAB_0011cd61;\n                plVar18 = (long *)plVar18[5];\n              } while (plVar18 != (long *)0x0);\n              plVar18 = (long *)0x0;\n            }\n          }\n          else {\nLAB_0011cd61:\n            plVar18 = (long *)0x0;\n            if (lVar28 != lVar13) {\n              lVar5 = *(long *)(lVar15 + 0x18);\n              lVar33 = *(long *)(lVar13 + 0x10);\n              if (lVar5 == 0) {\n                *(long *)(DAT_0017fb10 + 0x90) = lVar33;\n              }\n              else {\n                *(long *)(lVar5 + 0x10) = lVar33;\n                lVar33 = *(long *)(lVar13 + 0x10);\n              }\n              if (lVar33 == 0) {\n                *(long *)(DAT_0017fb10 + 0x98) = lVar5;\n              }\n              else {\n                *(long *)(lVar33 + 0x18) = lVar5;\n              }\n              lVar5 = *(long *)(lVar28 + 0x10);\n              *(long *)(lVar13 + 0x10) = lVar5;\n              if (lVar5 == 0) {\n                *(long *)(DAT_0017fb10 + 0x98) = lVar13;\n              }\n              else {\n                *(long *)(lVar5 + 0x18) = lVar13;\n              }\n              *(long *)(lVar15 + 0x18) = lVar28;\n              plVar18 = (long *)0x0;\n              *(long *)(lVar28 + 0x10) = lVar15;\n            }\n          }\n        }\n      }\n      plVar17 = (long *)FUN_00112240(lVar16);\n      lVar16 = *DAT_0017fa60;\n      *DAT_0017fa60 = *(long *)*plVar36;\n      lVar15 = *plVar17;\n      *plVar36 = lVar15;\n      if (lVar15 == 0) {\n        DAT_0017f438 = plVar36;\n      }\n      *plVar17 = lVar16;\n      plVar26 = (long *)0x0;\n      plVar17 = DAT_0017fa60;\n    }" (else "else") (if_statement "if ((int)plVar3[1] == 0xe) {\n      lVar16 = FUN_00116e20(plVar3[2],0,0);\n      if (lVar16 == 0) {\nLAB_0011c415:\n        lVar16 = plVar3[2];\n        uVar11 = dcgettext(0,"%F%P: %s not found for insert\n",5);\n        FUN_001251f0(uVar11,lVar16);\n        plVar17 = DAT_0017f2f0;\n        goto joined_r0x0011c458;\n      }\n      if ((int)plVar3[3] != 0) {\n        do {\n          lVar16 = *(long *)(lVar16 + 0x28);\n          if (lVar16 == 0) goto LAB_0011c415;\n        } while (*(int *)(lVar16 + 0x84) < 0);\n      }\n      if (plVar26 != (long *)0x0) {\n        lVar15 = plVar18[5];\n        lVar13 = plVar26[4];\n        *(long *)(lVar15 + 0x20) = lVar13;\n        if (lVar13 == 0) {\n          DAT_0017fa68 = (long *)(lVar15 + 0x20);\n        }\n        else {\n          *(long *)(lVar13 + 0x28) = lVar15;\n        }\n        plVar26[4] = *(long *)(lVar16 + 0x20);\n        if (*(long *)(lVar16 + 0x20) == 0) {\n          DAT_0017fa68 = plVar26 + 4;\n        }\n        else {\n          *(long **)(*(long *)(lVar16 + 0x20) + 0x28) = plVar26;\n        }\n        plVar18[5] = lVar16;\n        lVar13 = 0;\n        lVar15 = 0;\n        *(long **)(lVar16 + 0x20) = plVar18;\n        do {\n          *(int *)((long)plVar18 + 0x84) = -2 - *(int *)((long)plVar18 + 0x84);\n          lVar28 = plVar18[7];\n          if (((lVar28 != 0) && (*(long *)(lVar28 + 0xf0) != 0)) && (lVar13 = lVar28, lVar15 == 0))\n          {\n            lVar15 = lVar28;\n          }\n        } while ((plVar26 != plVar18) && (plVar18 = (long *)plVar18[4], plVar18 != (long *)0x0));\n        plVar18 = (long *)0x0;\n        if (lVar13 != 0) {\n          lVar28 = *(long *)(lVar16 + 0x38);\n          if (lVar28 == 0) {\n            plVar18 = *(long **)(lVar16 + 0x28);\n            if (plVar18 != (long *)0x0) {\n              do {\n                if (((-1 < *(int *)((long)plVar18 + 0x84)) && (lVar28 = plVar18[7], lVar28 != 0)) &&\n                   (*(long *)(lVar28 + 0xf0) != 0)) goto LAB_0011cd61;\n                plVar18 = (long *)plVar18[5];\n              } while (plVar18 != (long *)0x0);\n              plVar18 = (long *)0x0;\n            }\n          }\n          else {\nLAB_0011cd61:\n            plVar18 = (long *)0x0;\n            if (lVar28 != lVar13) {\n              lVar5 = *(long *)(lVar15 + 0x18);\n              lVar33 = *(long *)(lVar13 + 0x10);\n              if (lVar5 == 0) {\n                *(long *)(DAT_0017fb10 + 0x90) = lVar33;\n              }\n              else {\n                *(long *)(lVar5 + 0x10) = lVar33;\n                lVar33 = *(long *)(lVar13 + 0x10);\n              }\n              if (lVar33 == 0) {\n                *(long *)(DAT_0017fb10 + 0x98) = lVar5;\n              }\n              else {\n                *(long *)(lVar33 + 0x18) = lVar5;\n              }\n              lVar5 = *(long *)(lVar28 + 0x10);\n              *(long *)(lVar13 + 0x10) = lVar5;\n              if (lVar5 == 0) {\n                *(long *)(DAT_0017fb10 + 0x98) = lVar13;\n              }\n              else {\n                *(long *)(lVar5 + 0x18) = lVar13;\n              }\n              *(long *)(lVar15 + 0x18) = lVar28;\n              plVar18 = (long *)0x0;\n              *(long *)(lVar28 + 0x10) = lVar15;\n            }\n          }\n        }\n      }\n      plVar17 = (long *)FUN_00112240(lVar16);\n      lVar16 = *DAT_0017fa60;\n      *DAT_0017fa60 = *(long *)*plVar36;\n      lVar15 = *plVar17;\n      *plVar36 = lVar15;\n      if (lVar15 == 0) {\n        DAT_0017f438 = plVar36;\n      }\n      *plVar17 = lVar16;\n      plVar26 = (long *)0x0;\n      plVar17 = DAT_0017fa60;\n    }" (if "if") (parenthesized_expression "((int)plVar3[1] == 0xe)" (( "(") (binary_expression "(int)plVar3[1] == 0xe" (cast_expression "(int)plVar3[1]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "plVar3[1]" (identifier "plVar3") ([ "[") (number_literal "1") (] "]"))) (== "==") (number_literal "0xe")) () ")")) (compound_statement "{\n      lVar16 = FUN_00116e20(plVar3[2],0,0);\n      if (lVar16 == 0) {\nLAB_0011c415:\n        lVar16 = plVar3[2];\n        uVar11 = dcgettext(0,"%F%P: %s not found for insert\n",5);\n        FUN_001251f0(uVar11,lVar16);\n        plVar17 = DAT_0017f2f0;\n        goto joined_r0x0011c458;\n      }\n      if ((int)plVar3[3] != 0) {\n        do {\n          lVar16 = *(long *)(lVar16 + 0x28);\n          if (lVar16 == 0) goto LAB_0011c415;\n        } while (*(int *)(lVar16 + 0x84) < 0);\n      }\n      if (plVar26 != (long *)0x0) {\n        lVar15 = plVar18[5];\n        lVar13 = plVar26[4];\n        *(long *)(lVar15 + 0x20) = lVar13;\n        if (lVar13 == 0) {\n          DAT_0017fa68 = (long *)(lVar15 + 0x20);\n        }\n        else {\n          *(long *)(lVar13 + 0x28) = lVar15;\n        }\n        plVar26[4] = *(long *)(lVar16 + 0x20);\n        if (*(long *)(lVar16 + 0x20) == 0) {\n          DAT_0017fa68 = plVar26 + 4;\n        }\n        else {\n          *(long **)(*(long *)(lVar16 + 0x20) + 0x28) = plVar26;\n        }\n        plVar18[5] = lVar16;\n        lVar13 = 0;\n        lVar15 = 0;\n        *(long **)(lVar16 + 0x20) = plVar18;\n        do {\n          *(int *)((long)plVar18 + 0x84) = -2 - *(int *)((long)plVar18 + 0x84);\n          lVar28 = plVar18[7];\n          if (((lVar28 != 0) && (*(long *)(lVar28 + 0xf0) != 0)) && (lVar13 = lVar28, lVar15 == 0))\n          {\n            lVar15 = lVar28;\n          }\n        } while ((plVar26 != plVar18) && (plVar18 = (long *)plVar18[4], plVar18 != (long *)0x0));\n        plVar18 = (long *)0x0;\n        if (lVar13 != 0) {\n          lVar28 = *(long *)(lVar16 + 0x38);\n          if (lVar28 == 0) {\n            plVar18 = *(long **)(lVar16 + 0x28);\n            if (plVar18 != (long *)0x0) {\n              do {\n                if (((-1 < *(int *)((long)plVar18 + 0x84)) && (lVar28 = plVar18[7], lVar28 != 0)) &&\n                   (*(long *)(lVar28 + 0xf0) != 0)) goto LAB_0011cd61;\n                plVar18 = (long *)plVar18[5];\n              } while (plVar18 != (long *)0x0);\n              plVar18 = (long *)0x0;\n            }\n          }\n          else {\nLAB_0011cd61:\n            plVar18 = (long *)0x0;\n            if (lVar28 != lVar13) {\n              lVar5 = *(long *)(lVar15 + 0x18);\n              lVar33 = *(long *)(lVar13 + 0x10);\n              if (lVar5 == 0) {\n                *(long *)(DAT_0017fb10 + 0x90) = lVar33;\n              }\n              else {\n                *(long *)(lVar5 + 0x10) = lVar33;\n                lVar33 = *(long *)(lVar13 + 0x10);\n              }\n              if (lVar33 == 0) {\n                *(long *)(DAT_0017fb10 + 0x98) = lVar5;\n              }\n              else {\n                *(long *)(lVar33 + 0x18) = lVar5;\n              }\n              lVar5 = *(long *)(lVar28 + 0x10);\n              *(long *)(lVar13 + 0x10) = lVar5;\n              if (lVar5 == 0) {\n                *(long *)(DAT_0017fb10 + 0x98) = lVar13;\n              }\n              else {\n                *(long *)(lVar5 + 0x18) = lVar13;\n              }\n              *(long *)(lVar15 + 0x18) = lVar28;\n              plVar18 = (long *)0x0;\n              *(long *)(lVar28 + 0x10) = lVar15;\n            }\n          }\n        }\n      }\n      plVar17 = (long *)FUN_00112240(lVar16);\n      lVar16 = *DAT_0017fa60;\n      *DAT_0017fa60 = *(long *)*plVar36;\n      lVar15 = *plVar17;\n      *plVar36 = lVar15;\n      if (lVar15 == 0) {\n        DAT_0017f438 = plVar36;\n      }\n      *plVar17 = lVar16;\n      plVar26 = (long *)0x0;\n      plVar17 = DAT_0017fa60;\n    }" ({ "{") (expression_statement "lVar16 = FUN_00116e20(plVar3[2],0,0);" (assignment_expression "lVar16 = FUN_00116e20(plVar3[2],0,0)" (identifier "lVar16") (= "=") (call_expression "FUN_00116e20(plVar3[2],0,0)" (identifier "FUN_00116e20") (argument_list "(plVar3[2],0,0)" (( "(") (subscript_expression "plVar3[2]" (identifier "plVar3") ([ "[") (number_literal "2") (] "]")) (, ",") (number_literal "0") (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (lVar16 == 0) {\nLAB_0011c415:\n        lVar16 = plVar3[2];\n        uVar11 = dcgettext(0,"%F%P: %s not found for insert\n",5);\n        FUN_001251f0(uVar11,lVar16);\n        plVar17 = DAT_0017f2f0;\n        goto joined_r0x0011c458;\n      }" (if "if") (parenthesized_expression "(lVar16 == 0)" (( "(") (binary_expression "lVar16 == 0" (identifier "lVar16") (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_0011c415:\n        lVar16 = plVar3[2];\n        uVar11 = dcgettext(0,"%F%P: %s not found for insert\n",5);\n        FUN_001251f0(uVar11,lVar16);\n        plVar17 = DAT_0017f2f0;\n        goto joined_r0x0011c458;\n      }" ({ "{") (labeled_statement "LAB_0011c415:\n        lVar16 = plVar3[2];" (statement_identifier "LAB_0011c415") (: ":") (expression_statement "lVar16 = plVar3[2];" (assignment_expression "lVar16 = plVar3[2]" (identifier "lVar16") (= "=") (subscript_expression "plVar3[2]" (identifier "plVar3") ([ "[") (number_literal "2") (] "]"))) (; ";"))) (expression_statement "uVar11 = dcgettext(0,"%F%P: %s not found for insert\n",5);" (assignment_expression "uVar11 = dcgettext(0,"%F%P: %s not found for insert\n",5)" (identifier "uVar11") (= "=") (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_001251f0(uVar11,lVar16);" (call_expression "FUN_001251f0(uVar11,lVar16)" (identifier "FUN_001251f0") (argument_list "(uVar11,lVar16)" (( "(") (identifier "uVar11") (, ",") (identifier "lVar16") () ")"))) (; ";")) (expression_statement "plVar17 = DAT_0017f2f0;" (assignment_expression "plVar17 = DAT_0017f2f0" (identifier "plVar17") (= "=") (identifier "DAT_0017f2f0")) (; ";")) (goto_statement "goto joined_r0x0011c458;" (goto "goto") (statement_identifier "joined_r0x0011c458") (; ";")) (} "}"))) (if_statement "if ((int)plVar3[3] != 0) {\n        do {\n          lVar16 = *(long *)(lVar16 + 0x28);\n          if (lVar16 == 0) goto LAB_0011c415;\n        } while (*(int *)(lVar16 + 0x84) < 0);\n      }" (if "if") (parenthesized_expression "((int)plVar3[3] != 0)" (( "(") (binary_expression "(int)plVar3[3] != 0" (cast_expression "(int)plVar3[3]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "plVar3[3]" (identifier "plVar3") ([ "[") (number_literal "3") (] "]"))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        do {\n          lVar16 = *(long *)(lVar16 + 0x28);\n          if (lVar16 == 0) goto LAB_0011c415;\n        } while (*(int *)(lVar16 + 0x84) < 0);\n      }" ({ "{") (do_statement "do {\n          lVar16 = *(long *)(lVar16 + 0x28);\n          if (lVar16 == 0) goto LAB_0011c415;\n        } while (*(int *)(lVar16 + 0x84) < 0);" (do "do") (compound_statement "{\n          lVar16 = *(long *)(lVar16 + 0x28);\n          if (lVar16 == 0) goto LAB_0011c415;\n        }" ({ "{") (expression_statement "lVar16 = *(long *)(lVar16 + 0x28);" (assignment_expression "lVar16 = *(long *)(lVar16 + 0x28)" (identifier "lVar16") (= "=") (pointer_expression "*(long *)(lVar16 + 0x28)" (* "*") (cast_expression "(long *)(lVar16 + 0x28)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar16 + 0x28)" (( "(") (binary_expression "lVar16 + 0x28" (identifier "lVar16") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (if_statement "if (lVar16 == 0) goto LAB_0011c415;" (if "if") (parenthesized_expression "(lVar16 == 0)" (( "(") (binary_expression "lVar16 == 0" (identifier "lVar16") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0011c415;" (goto "goto") (statement_identifier "LAB_0011c415") (; ";"))) (} "}")) (while "while") (parenthesized_expression "(*(int *)(lVar16 + 0x84) < 0)" (( "(") (binary_expression "*(int *)(lVar16 + 0x84) < 0" (pointer_expression "*(int *)(lVar16 + 0x84)" (* "*") (cast_expression "(int *)(lVar16 + 0x84)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar16 + 0x84)" (( "(") (binary_expression "lVar16 + 0x84" (identifier "lVar16") (+ "+") (number_literal "0x84")) () ")")))) (< "<") (number_literal "0")) () ")")) (; ";")) (} "}"))) (if_statement "if (plVar26 != (long *)0x0) {\n        lVar15 = plVar18[5];\n        lVar13 = plVar26[4];\n        *(long *)(lVar15 + 0x20) = lVar13;\n        if (lVar13 == 0) {\n          DAT_0017fa68 = (long *)(lVar15 + 0x20);\n        }\n        else {\n          *(long *)(lVar13 + 0x28) = lVar15;\n        }\n        plVar26[4] = *(long *)(lVar16 + 0x20);\n        if (*(long *)(lVar16 + 0x20) == 0) {\n          DAT_0017fa68 = plVar26 + 4;\n        }\n        else {\n          *(long **)(*(long *)(lVar16 + 0x20) + 0x28) = plVar26;\n        }\n        plVar18[5] = lVar16;\n        lVar13 = 0;\n        lVar15 = 0;\n        *(long **)(lVar16 + 0x20) = plVar18;\n        do {\n          *(int *)((long)plVar18 + 0x84) = -2 - *(int *)((long)plVar18 + 0x84);\n          lVar28 = plVar18[7];\n          if (((lVar28 != 0) && (*(long *)(lVar28 + 0xf0) != 0)) && (lVar13 = lVar28, lVar15 == 0))\n          {\n            lVar15 = lVar28;\n          }\n        } while ((plVar26 != plVar18) && (plVar18 = (long *)plVar18[4], plVar18 != (long *)0x0));\n        plVar18 = (long *)0x0;\n        if (lVar13 != 0) {\n          lVar28 = *(long *)(lVar16 + 0x38);\n          if (lVar28 == 0) {\n            plVar18 = *(long **)(lVar16 + 0x28);\n            if (plVar18 != (long *)0x0) {\n              do {\n                if (((-1 < *(int *)((long)plVar18 + 0x84)) && (lVar28 = plVar18[7], lVar28 != 0)) &&\n                   (*(long *)(lVar28 + 0xf0) != 0)) goto LAB_0011cd61;\n                plVar18 = (long *)plVar18[5];\n              } while (plVar18 != (long *)0x0);\n              plVar18 = (long *)0x0;\n            }\n          }\n          else {\nLAB_0011cd61:\n            plVar18 = (long *)0x0;\n            if (lVar28 != lVar13) {\n              lVar5 = *(long *)(lVar15 + 0x18);\n              lVar33 = *(long *)(lVar13 + 0x10);\n              if (lVar5 == 0) {\n                *(long *)(DAT_0017fb10 + 0x90) = lVar33;\n              }\n              else {\n                *(long *)(lVar5 + 0x10) = lVar33;\n                lVar33 = *(long *)(lVar13 + 0x10);\n              }\n              if (lVar33 == 0) {\n                *(long *)(DAT_0017fb10 + 0x98) = lVar5;\n              }\n              else {\n                *(long *)(lVar33 + 0x18) = lVar5;\n              }\n              lVar5 = *(long *)(lVar28 + 0x10);\n              *(long *)(lVar13 + 0x10) = lVar5;\n              if (lVar5 == 0) {\n                *(long *)(DAT_0017fb10 + 0x98) = lVar13;\n              }\n              else {\n                *(long *)(lVar5 + 0x18) = lVar13;\n              }\n              *(long *)(lVar15 + 0x18) = lVar28;\n              plVar18 = (long *)0x0;\n              *(long *)(lVar28 + 0x10) = lVar15;\n            }\n          }\n        }\n      }" (if "if") (parenthesized_expression "(plVar26 != (long *)0x0)" (( "(") (binary_expression "plVar26 != (long *)0x0" (identifier "plVar26") (!= "!=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        lVar15 = plVar18[5];\n        lVar13 = plVar26[4];\n        *(long *)(lVar15 + 0x20) = lVar13;\n        if (lVar13 == 0) {\n          DAT_0017fa68 = (long *)(lVar15 + 0x20);\n        }\n        else {\n          *(long *)(lVar13 + 0x28) = lVar15;\n        }\n        plVar26[4] = *(long *)(lVar16 + 0x20);\n        if (*(long *)(lVar16 + 0x20) == 0) {\n          DAT_0017fa68 = plVar26 + 4;\n        }\n        else {\n          *(long **)(*(long *)(lVar16 + 0x20) + 0x28) = plVar26;\n        }\n        plVar18[5] = lVar16;\n        lVar13 = 0;\n        lVar15 = 0;\n        *(long **)(lVar16 + 0x20) = plVar18;\n        do {\n          *(int *)((long)plVar18 + 0x84) = -2 - *(int *)((long)plVar18 + 0x84);\n          lVar28 = plVar18[7];\n          if (((lVar28 != 0) && (*(long *)(lVar28 + 0xf0) != 0)) && (lVar13 = lVar28, lVar15 == 0))\n          {\n            lVar15 = lVar28;\n          }\n        } while ((plVar26 != plVar18) && (plVar18 = (long *)plVar18[4], plVar18 != (long *)0x0));\n        plVar18 = (long *)0x0;\n        if (lVar13 != 0) {\n          lVar28 = *(long *)(lVar16 + 0x38);\n          if (lVar28 == 0) {\n            plVar18 = *(long **)(lVar16 + 0x28);\n            if (plVar18 != (long *)0x0) {\n              do {\n                if (((-1 < *(int *)((long)plVar18 + 0x84)) && (lVar28 = plVar18[7], lVar28 != 0)) &&\n                   (*(long *)(lVar28 + 0xf0) != 0)) goto LAB_0011cd61;\n                plVar18 = (long *)plVar18[5];\n              } while (plVar18 != (long *)0x0);\n              plVar18 = (long *)0x0;\n            }\n          }\n          else {\nLAB_0011cd61:\n            plVar18 = (long *)0x0;\n            if (lVar28 != lVar13) {\n              lVar5 = *(long *)(lVar15 + 0x18);\n              lVar33 = *(long *)(lVar13 + 0x10);\n              if (lVar5 == 0) {\n                *(long *)(DAT_0017fb10 + 0x90) = lVar33;\n              }\n              else {\n                *(long *)(lVar5 + 0x10) = lVar33;\n                lVar33 = *(long *)(lVar13 + 0x10);\n              }\n              if (lVar33 == 0) {\n                *(long *)(DAT_0017fb10 + 0x98) = lVar5;\n              }\n              else {\n                *(long *)(lVar33 + 0x18) = lVar5;\n              }\n              lVar5 = *(long *)(lVar28 + 0x10);\n              *(long *)(lVar13 + 0x10) = lVar5;\n              if (lVar5 == 0) {\n                *(long *)(DAT_0017fb10 + 0x98) = lVar13;\n              }\n              else {\n                *(long *)(lVar5 + 0x18) = lVar13;\n              }\n              *(long *)(lVar15 + 0x18) = lVar28;\n              plVar18 = (long *)0x0;\n              *(long *)(lVar28 + 0x10) = lVar15;\n            }\n          }\n        }\n      }" ({ "{") (expression_statement "lVar15 = plVar18[5];" (assignment_expression "lVar15 = plVar18[5]" (identifier "lVar15") (= "=") (subscript_expression "plVar18[5]" (identifier "plVar18") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "lVar13 = plVar26[4];" (assignment_expression "lVar13 = plVar26[4]" (identifier "lVar13") (= "=") (subscript_expression "plVar26[4]" (identifier "plVar26") ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "*(long *)(lVar15 + 0x20) = lVar13;" (assignment_expression "*(long *)(lVar15 + 0x20) = lVar13" (pointer_expression "*(long *)(lVar15 + 0x20)" (* "*") (cast_expression "(long *)(lVar15 + 0x20)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar15 + 0x20)" (( "(") (binary_expression "lVar15 + 0x20" (identifier "lVar15") (+ "+") (number_literal "0x20")) () ")")))) (= "=") (identifier "lVar13")) (; ";")) (if_statement "if (lVar13 == 0) {\n          DAT_0017fa68 = (long *)(lVar15 + 0x20);\n        }\n        else {\n          *(long *)(lVar13 + 0x28) = lVar15;\n        }" (if "if") (parenthesized_expression "(lVar13 == 0)" (( "(") (binary_expression "lVar13 == 0" (identifier "lVar13") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          DAT_0017fa68 = (long *)(lVar15 + 0x20);\n        }" ({ "{") (expression_statement "DAT_0017fa68 = (long *)(lVar15 + 0x20);" (assignment_expression "DAT_0017fa68 = (long *)(lVar15 + 0x20)" (identifier "DAT_0017fa68") (= "=") (cast_expression "(long *)(lVar15 + 0x20)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar15 + 0x20)" (( "(") (binary_expression "lVar15 + 0x20" (identifier "lVar15") (+ "+") (number_literal "0x20")) () ")")))) (; ";")) (} "}")) (else_clause "else {\n          *(long *)(lVar13 + 0x28) = lVar15;\n        }" (else "else") (compound_statement "{\n          *(long *)(lVar13 + 0x28) = lVar15;\n        }" ({ "{") (expression_statement "*(long *)(lVar13 + 0x28) = lVar15;" (assignment_expression "*(long *)(lVar13 + 0x28) = lVar15" (pointer_expression "*(long *)(lVar13 + 0x28)" (* "*") (cast_expression "(long *)(lVar13 + 0x28)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar13 + 0x28)" (( "(") (binary_expression "lVar13 + 0x28" (identifier "lVar13") (+ "+") (number_literal "0x28")) () ")")))) (= "=") (identifier "lVar15")) (; ";")) (} "}")))) (expression_statement "plVar26[4] = *(long *)(lVar16 + 0x20);" (assignment_expression "plVar26[4] = *(long *)(lVar16 + 0x20)" (subscript_expression "plVar26[4]" (identifier "plVar26") ([ "[") (number_literal "4") (] "]")) (= "=") (pointer_expression "*(long *)(lVar16 + 0x20)" (* "*") (cast_expression "(long *)(lVar16 + 0x20)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar16 + 0x20)" (( "(") (binary_expression "lVar16 + 0x20" (identifier "lVar16") (+ "+") (number_literal "0x20")) () ")"))))) (; ";")) (if_statement "if (*(long *)(lVar16 + 0x20) == 0) {\n          DAT_0017fa68 = plVar26 + 4;\n        }\n        else {\n          *(long **)(*(long *)(lVar16 + 0x20) + 0x28) = plVar26;\n        }" (if "if") (parenthesized_expression "(*(long *)(lVar16 + 0x20) == 0)" (( "(") (binary_expression "*(long *)(lVar16 + 0x20) == 0" (pointer_expression "*(long *)(lVar16 + 0x20)" (* "*") (cast_expression "(long *)(lVar16 + 0x20)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar16 + 0x20)" (( "(") (binary_expression "lVar16 + 0x20" (identifier "lVar16") (+ "+") (number_literal "0x20")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          DAT_0017fa68 = plVar26 + 4;\n        }" ({ "{") (expression_statement "DAT_0017fa68 = plVar26 + 4;" (assignment_expression "DAT_0017fa68 = plVar26 + 4" (identifier "DAT_0017fa68") (= "=") (binary_expression "plVar26 + 4" (identifier "plVar26") (+ "+") (number_literal "4"))) (; ";")) (} "}")) (else_clause "else {\n          *(long **)(*(long *)(lVar16 + 0x20) + 0x28) = plVar26;\n        }" (else "else") (compound_statement "{\n          *(long **)(*(long *)(lVar16 + 0x20) + 0x28) = plVar26;\n        }" ({ "{") (expression_statement "*(long **)(*(long *)(lVar16 + 0x20) + 0x28) = plVar26;" (assignment_expression "*(long **)(*(long *)(lVar16 + 0x20) + 0x28) = plVar26" (pointer_expression "*(long **)(*(long *)(lVar16 + 0x20) + 0x28)" (* "*") (cast_expression "(long **)(*(long *)(lVar16 + 0x20) + 0x28)" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(long *)(lVar16 + 0x20) + 0x28)" (( "(") (binary_expression "*(long *)(lVar16 + 0x20) + 0x28" (pointer_expression "*(long *)(lVar16 + 0x20)" (* "*") (cast_expression "(long *)(lVar16 + 0x20)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar16 + 0x20)" (( "(") (binary_expression "lVar16 + 0x20" (identifier "lVar16") (+ "+") (number_literal "0x20")) () ")")))) (+ "+") (number_literal "0x28")) () ")")))) (= "=") (identifier "plVar26")) (; ";")) (} "}")))) (expression_statement "plVar18[5] = lVar16;" (assignment_expression "plVar18[5] = lVar16" (subscript_expression "plVar18[5]" (identifier "plVar18") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "lVar16")) (; ";")) (expression_statement "lVar13 = 0;" (assignment_expression "lVar13 = 0" (identifier "lVar13") (= "=") (number_literal "0")) (; ";")) (expression_statement "lVar15 = 0;" (assignment_expression "lVar15 = 0" (identifier "lVar15") (= "=") (number_literal "0")) (; ";")) (expression_statement "*(long **)(lVar16 + 0x20) = plVar18;" (assignment_expression "*(long **)(lVar16 + 0x20) = plVar18" (pointer_expression "*(long **)(lVar16 + 0x20)" (* "*") (cast_expression "(long **)(lVar16 + 0x20)" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar16 + 0x20)" (( "(") (binary_expression "lVar16 + 0x20" (identifier "lVar16") (+ "+") (number_literal "0x20")) () ")")))) (= "=") (identifier "plVar18")) (; ";")) (do_statement "do {\n          *(int *)((long)plVar18 + 0x84) = -2 - *(int *)((long)plVar18 + 0x84);\n          lVar28 = plVar18[7];\n          if (((lVar28 != 0) && (*(long *)(lVar28 + 0xf0) != 0)) && (lVar13 = lVar28, lVar15 == 0))\n          {\n            lVar15 = lVar28;\n          }\n        } while ((plVar26 != plVar18) && (plVar18 = (long *)plVar18[4], plVar18 != (long *)0x0));" (do "do") (compound_statement "{\n          *(int *)((long)plVar18 + 0x84) = -2 - *(int *)((long)plVar18 + 0x84);\n          lVar28 = plVar18[7];\n          if (((lVar28 != 0) && (*(long *)(lVar28 + 0xf0) != 0)) && (lVar13 = lVar28, lVar15 == 0))\n          {\n            lVar15 = lVar28;\n          }\n        }" ({ "{") (expression_statement "*(int *)((long)plVar18 + 0x84) = -2 - *(int *)((long)plVar18 + 0x84);" (assignment_expression "*(int *)((long)plVar18 + 0x84) = -2 - *(int *)((long)plVar18 + 0x84)" (pointer_expression "*(int *)((long)plVar18 + 0x84)" (* "*") (cast_expression "(int *)((long)plVar18 + 0x84)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)plVar18 + 0x84)" (( "(") (binary_expression "(long)plVar18 + 0x84" (cast_expression "(long)plVar18" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar18")) (+ "+") (number_literal "0x84")) () ")")))) (= "=") (binary_expression "-2 - *(int *)((long)plVar18 + 0x84)" (number_literal "-2") (- "-") (pointer_expression "*(int *)((long)plVar18 + 0x84)" (* "*") (cast_expression "(int *)((long)plVar18 + 0x84)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)plVar18 + 0x84)" (( "(") (binary_expression "(long)plVar18 + 0x84" (cast_expression "(long)plVar18" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar18")) (+ "+") (number_literal "0x84")) () ")")))))) (; ";")) (expression_statement "lVar28 = plVar18[7];" (assignment_expression "lVar28 = plVar18[7]" (identifier "lVar28") (= "=") (subscript_expression "plVar18[7]" (identifier "plVar18") ([ "[") (number_literal "7") (] "]"))) (; ";")) (if_statement "if (((lVar28 != 0) && (*(long *)(lVar28 + 0xf0) != 0)) && (lVar13 = lVar28, lVar15 == 0))\n          {\n            lVar15 = lVar28;\n          }" (if "if") (parenthesized_expression "(((lVar28 != 0) && (*(long *)(lVar28 + 0xf0) != 0)) && (lVar13 = lVar28, lVar15 == 0))" (( "(") (binary_expression "((lVar28 != 0) && (*(long *)(lVar28 + 0xf0) != 0)) && (lVar13 = lVar28, lVar15 == 0)" (parenthesized_expression "((lVar28 != 0) && (*(long *)(lVar28 + 0xf0) != 0))" (( "(") (binary_expression "(lVar28 != 0) && (*(long *)(lVar28 + 0xf0) != 0)" (parenthesized_expression "(lVar28 != 0)" (( "(") (binary_expression "lVar28 != 0" (identifier "lVar28") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(*(long *)(lVar28 + 0xf0) != 0)" (( "(") (binary_expression "*(long *)(lVar28 + 0xf0) != 0" (pointer_expression "*(long *)(lVar28 + 0xf0)" (* "*") (cast_expression "(long *)(lVar28 + 0xf0)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar28 + 0xf0)" (( "(") (binary_expression "lVar28 + 0xf0" (identifier "lVar28") (+ "+") (number_literal "0xf0")) () ")")))) (!= "!=") (number_literal "0")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(lVar13 = lVar28, lVar15 == 0)" (( "(") (comma_expression "lVar13 = lVar28, lVar15 == 0" (assignment_expression "lVar13 = lVar28" (identifier "lVar13") (= "=") (identifier "lVar28")) (, ",") (binary_expression "lVar15 == 0" (identifier "lVar15") (== "==") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n            lVar15 = lVar28;\n          }" ({ "{") (expression_statement "lVar15 = lVar28;" (assignment_expression "lVar15 = lVar28" (identifier "lVar15") (= "=") (identifier "lVar28")) (; ";")) (} "}"))) (} "}")) (while "while") (parenthesized_expression "((plVar26 != plVar18) && (plVar18 = (long *)plVar18[4], plVar18 != (long *)0x0))" (( "(") (binary_expression "(plVar26 != plVar18) && (plVar18 = (long *)plVar18[4], plVar18 != (long *)0x0)" (parenthesized_expression "(plVar26 != plVar18)" (( "(") (binary_expression "plVar26 != plVar18" (identifier "plVar26") (!= "!=") (identifier "plVar18")) () ")")) (&& "&&") (parenthesized_expression "(plVar18 = (long *)plVar18[4], plVar18 != (long *)0x0)" (( "(") (comma_expression "plVar18 = (long *)plVar18[4], plVar18 != (long *)0x0" (assignment_expression "plVar18 = (long *)plVar18[4]" (identifier "plVar18") (= "=") (cast_expression "(long *)plVar18[4]" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "plVar18[4]" (identifier "plVar18") ([ "[") (number_literal "4") (] "]")))) (, ",") (binary_expression "plVar18 != (long *)0x0" (identifier "plVar18") (!= "!=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")"))) () ")")) (; ";")) (expression_statement "plVar18 = (long *)0x0;" (assignment_expression "plVar18 = (long *)0x0" (identifier "plVar18") (= "=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (if_statement "if (lVar13 != 0) {\n          lVar28 = *(long *)(lVar16 + 0x38);\n          if (lVar28 == 0) {\n            plVar18 = *(long **)(lVar16 + 0x28);\n            if (plVar18 != (long *)0x0) {\n              do {\n                if (((-1 < *(int *)((long)plVar18 + 0x84)) && (lVar28 = plVar18[7], lVar28 != 0)) &&\n                   (*(long *)(lVar28 + 0xf0) != 0)) goto LAB_0011cd61;\n                plVar18 = (long *)plVar18[5];\n              } while (plVar18 != (long *)0x0);\n              plVar18 = (long *)0x0;\n            }\n          }\n          else {\nLAB_0011cd61:\n            plVar18 = (long *)0x0;\n            if (lVar28 != lVar13) {\n              lVar5 = *(long *)(lVar15 + 0x18);\n              lVar33 = *(long *)(lVar13 + 0x10);\n              if (lVar5 == 0) {\n                *(long *)(DAT_0017fb10 + 0x90) = lVar33;\n              }\n              else {\n                *(long *)(lVar5 + 0x10) = lVar33;\n                lVar33 = *(long *)(lVar13 + 0x10);\n              }\n              if (lVar33 == 0) {\n                *(long *)(DAT_0017fb10 + 0x98) = lVar5;\n              }\n              else {\n                *(long *)(lVar33 + 0x18) = lVar5;\n              }\n              lVar5 = *(long *)(lVar28 + 0x10);\n              *(long *)(lVar13 + 0x10) = lVar5;\n              if (lVar5 == 0) {\n                *(long *)(DAT_0017fb10 + 0x98) = lVar13;\n              }\n              else {\n                *(long *)(lVar5 + 0x18) = lVar13;\n              }\n              *(long *)(lVar15 + 0x18) = lVar28;\n              plVar18 = (long *)0x0;\n              *(long *)(lVar28 + 0x10) = lVar15;\n            }\n          }\n        }" (if "if") (parenthesized_expression "(lVar13 != 0)" (( "(") (binary_expression "lVar13 != 0" (identifier "lVar13") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          lVar28 = *(long *)(lVar16 + 0x38);\n          if (lVar28 == 0) {\n            plVar18 = *(long **)(lVar16 + 0x28);\n            if (plVar18 != (long *)0x0) {\n              do {\n                if (((-1 < *(int *)((long)plVar18 + 0x84)) && (lVar28 = plVar18[7], lVar28 != 0)) &&\n                   (*(long *)(lVar28 + 0xf0) != 0)) goto LAB_0011cd61;\n                plVar18 = (long *)plVar18[5];\n              } while (plVar18 != (long *)0x0);\n              plVar18 = (long *)0x0;\n            }\n          }\n          else {\nLAB_0011cd61:\n            plVar18 = (long *)0x0;\n            if (lVar28 != lVar13) {\n              lVar5 = *(long *)(lVar15 + 0x18);\n              lVar33 = *(long *)(lVar13 + 0x10);\n              if (lVar5 == 0) {\n                *(long *)(DAT_0017fb10 + 0x90) = lVar33;\n              }\n              else {\n                *(long *)(lVar5 + 0x10) = lVar33;\n                lVar33 = *(long *)(lVar13 + 0x10);\n              }\n              if (lVar33 == 0) {\n                *(long *)(DAT_0017fb10 + 0x98) = lVar5;\n              }\n              else {\n                *(long *)(lVar33 + 0x18) = lVar5;\n              }\n              lVar5 = *(long *)(lVar28 + 0x10);\n              *(long *)(lVar13 + 0x10) = lVar5;\n              if (lVar5 == 0) {\n                *(long *)(DAT_0017fb10 + 0x98) = lVar13;\n              }\n              else {\n                *(long *)(lVar5 + 0x18) = lVar13;\n              }\n              *(long *)(lVar15 + 0x18) = lVar28;\n              plVar18 = (long *)0x0;\n              *(long *)(lVar28 + 0x10) = lVar15;\n            }\n          }\n        }" ({ "{") (expression_statement "lVar28 = *(long *)(lVar16 + 0x38);" (assignment_expression "lVar28 = *(long *)(lVar16 + 0x38)" (identifier "lVar28") (= "=") (pointer_expression "*(long *)(lVar16 + 0x38)" (* "*") (cast_expression "(long *)(lVar16 + 0x38)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar16 + 0x38)" (( "(") (binary_expression "lVar16 + 0x38" (identifier "lVar16") (+ "+") (number_literal "0x38")) () ")"))))) (; ";")) (if_statement "if (lVar28 == 0) {\n            plVar18 = *(long **)(lVar16 + 0x28);\n            if (plVar18 != (long *)0x0) {\n              do {\n                if (((-1 < *(int *)((long)plVar18 + 0x84)) && (lVar28 = plVar18[7], lVar28 != 0)) &&\n                   (*(long *)(lVar28 + 0xf0) != 0)) goto LAB_0011cd61;\n                plVar18 = (long *)plVar18[5];\n              } while (plVar18 != (long *)0x0);\n              plVar18 = (long *)0x0;\n            }\n          }\n          else {\nLAB_0011cd61:\n            plVar18 = (long *)0x0;\n            if (lVar28 != lVar13) {\n              lVar5 = *(long *)(lVar15 + 0x18);\n              lVar33 = *(long *)(lVar13 + 0x10);\n              if (lVar5 == 0) {\n                *(long *)(DAT_0017fb10 + 0x90) = lVar33;\n              }\n              else {\n                *(long *)(lVar5 + 0x10) = lVar33;\n                lVar33 = *(long *)(lVar13 + 0x10);\n              }\n              if (lVar33 == 0) {\n                *(long *)(DAT_0017fb10 + 0x98) = lVar5;\n              }\n              else {\n                *(long *)(lVar33 + 0x18) = lVar5;\n              }\n              lVar5 = *(long *)(lVar28 + 0x10);\n              *(long *)(lVar13 + 0x10) = lVar5;\n              if (lVar5 == 0) {\n                *(long *)(DAT_0017fb10 + 0x98) = lVar13;\n              }\n              else {\n                *(long *)(lVar5 + 0x18) = lVar13;\n              }\n              *(long *)(lVar15 + 0x18) = lVar28;\n              plVar18 = (long *)0x0;\n              *(long *)(lVar28 + 0x10) = lVar15;\n            }\n          }" (if "if") (parenthesized_expression "(lVar28 == 0)" (( "(") (binary_expression "lVar28 == 0" (identifier "lVar28") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            plVar18 = *(long **)(lVar16 + 0x28);\n            if (plVar18 != (long *)0x0) {\n              do {\n                if (((-1 < *(int *)((long)plVar18 + 0x84)) && (lVar28 = plVar18[7], lVar28 != 0)) &&\n                   (*(long *)(lVar28 + 0xf0) != 0)) goto LAB_0011cd61;\n                plVar18 = (long *)plVar18[5];\n              } while (plVar18 != (long *)0x0);\n              plVar18 = (long *)0x0;\n            }\n          }" ({ "{") (expression_statement "plVar18 = *(long **)(lVar16 + 0x28);" (assignment_expression "plVar18 = *(long **)(lVar16 + 0x28)" (identifier "plVar18") (= "=") (pointer_expression "*(long **)(lVar16 + 0x28)" (* "*") (cast_expression "(long **)(lVar16 + 0x28)" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar16 + 0x28)" (( "(") (binary_expression "lVar16 + 0x28" (identifier "lVar16") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (if_statement "if (plVar18 != (long *)0x0) {\n              do {\n                if (((-1 < *(int *)((long)plVar18 + 0x84)) && (lVar28 = plVar18[7], lVar28 != 0)) &&\n                   (*(long *)(lVar28 + 0xf0) != 0)) goto LAB_0011cd61;\n                plVar18 = (long *)plVar18[5];\n              } while (plVar18 != (long *)0x0);\n              plVar18 = (long *)0x0;\n            }" (if "if") (parenthesized_expression "(plVar18 != (long *)0x0)" (( "(") (binary_expression "plVar18 != (long *)0x0" (identifier "plVar18") (!= "!=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n              do {\n                if (((-1 < *(int *)((long)plVar18 + 0x84)) && (lVar28 = plVar18[7], lVar28 != 0)) &&\n                   (*(long *)(lVar28 + 0xf0) != 0)) goto LAB_0011cd61;\n                plVar18 = (long *)plVar18[5];\n              } while (plVar18 != (long *)0x0);\n              plVar18 = (long *)0x0;\n            }" ({ "{") (do_statement "do {\n                if (((-1 < *(int *)((long)plVar18 + 0x84)) && (lVar28 = plVar18[7], lVar28 != 0)) &&\n                   (*(long *)(lVar28 + 0xf0) != 0)) goto LAB_0011cd61;\n                plVar18 = (long *)plVar18[5];\n              } while (plVar18 != (long *)0x0);" (do "do") (compound_statement "{\n                if (((-1 < *(int *)((long)plVar18 + 0x84)) && (lVar28 = plVar18[7], lVar28 != 0)) &&\n                   (*(long *)(lVar28 + 0xf0) != 0)) goto LAB_0011cd61;\n                plVar18 = (long *)plVar18[5];\n              }" ({ "{") (if_statement "if (((-1 < *(int *)((long)plVar18 + 0x84)) && (lVar28 = plVar18[7], lVar28 != 0)) &&\n                   (*(long *)(lVar28 + 0xf0) != 0)) goto LAB_0011cd61;" (if "if") (parenthesized_expression "(((-1 < *(int *)((long)plVar18 + 0x84)) && (lVar28 = plVar18[7], lVar28 != 0)) &&\n                   (*(long *)(lVar28 + 0xf0) != 0))" (( "(") (binary_expression "((-1 < *(int *)((long)plVar18 + 0x84)) && (lVar28 = plVar18[7], lVar28 != 0)) &&\n                   (*(long *)(lVar28 + 0xf0) != 0)" (parenthesized_expression "((-1 < *(int *)((long)plVar18 + 0x84)) && (lVar28 = plVar18[7], lVar28 != 0))" (( "(") (binary_expression "(-1 < *(int *)((long)plVar18 + 0x84)) && (lVar28 = plVar18[7], lVar28 != 0)" (parenthesized_expression "(-1 < *(int *)((long)plVar18 + 0x84))" (( "(") (binary_expression "-1 < *(int *)((long)plVar18 + 0x84)" (number_literal "-1") (< "<") (pointer_expression "*(int *)((long)plVar18 + 0x84)" (* "*") (cast_expression "(int *)((long)plVar18 + 0x84)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)plVar18 + 0x84)" (( "(") (binary_expression "(long)plVar18 + 0x84" (cast_expression "(long)plVar18" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar18")) (+ "+") (number_literal "0x84")) () ")"))))) () ")")) (&& "&&") (parenthesized_expression "(lVar28 = plVar18[7], lVar28 != 0)" (( "(") (comma_expression "lVar28 = plVar18[7], lVar28 != 0" (assignment_expression "lVar28 = plVar18[7]" (identifier "lVar28") (= "=") (subscript_expression "plVar18[7]" (identifier "plVar18") ([ "[") (number_literal "7") (] "]"))) (, ",") (binary_expression "lVar28 != 0" (identifier "lVar28") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(*(long *)(lVar28 + 0xf0) != 0)" (( "(") (binary_expression "*(long *)(lVar28 + 0xf0) != 0" (pointer_expression "*(long *)(lVar28 + 0xf0)" (* "*") (cast_expression "(long *)(lVar28 + 0xf0)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar28 + 0xf0)" (( "(") (binary_expression "lVar28 + 0xf0" (identifier "lVar28") (+ "+") (number_literal "0xf0")) () ")")))) (!= "!=") (number_literal "0")) () ")"))) () ")")) (goto_statement "goto LAB_0011cd61;" (goto "goto") (statement_identifier "LAB_0011cd61") (; ";"))) (expression_statement "plVar18 = (long *)plVar18[5];" (assignment_expression "plVar18 = (long *)plVar18[5]" (identifier "plVar18") (= "=") (cast_expression "(long *)plVar18[5]" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "plVar18[5]" (identifier "plVar18") ([ "[") (number_literal "5") (] "]")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(plVar18 != (long *)0x0)" (( "(") (binary_expression "plVar18 != (long *)0x0" (identifier "plVar18") (!= "!=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (expression_statement "plVar18 = (long *)0x0;" (assignment_expression "plVar18 = (long *)0x0" (identifier "plVar18") (= "=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\nLAB_0011cd61:\n            plVar18 = (long *)0x0;\n            if (lVar28 != lVar13) {\n              lVar5 = *(long *)(lVar15 + 0x18);\n              lVar33 = *(long *)(lVar13 + 0x10);\n              if (lVar5 == 0) {\n                *(long *)(DAT_0017fb10 + 0x90) = lVar33;\n              }\n              else {\n                *(long *)(lVar5 + 0x10) = lVar33;\n                lVar33 = *(long *)(lVar13 + 0x10);\n              }\n              if (lVar33 == 0) {\n                *(long *)(DAT_0017fb10 + 0x98) = lVar5;\n              }\n              else {\n                *(long *)(lVar33 + 0x18) = lVar5;\n              }\n              lVar5 = *(long *)(lVar28 + 0x10);\n              *(long *)(lVar13 + 0x10) = lVar5;\n              if (lVar5 == 0) {\n                *(long *)(DAT_0017fb10 + 0x98) = lVar13;\n              }\n              else {\n                *(long *)(lVar5 + 0x18) = lVar13;\n              }\n              *(long *)(lVar15 + 0x18) = lVar28;\n              plVar18 = (long *)0x0;\n              *(long *)(lVar28 + 0x10) = lVar15;\n            }\n          }" (else "else") (compound_statement "{\nLAB_0011cd61:\n            plVar18 = (long *)0x0;\n            if (lVar28 != lVar13) {\n              lVar5 = *(long *)(lVar15 + 0x18);\n              lVar33 = *(long *)(lVar13 + 0x10);\n              if (lVar5 == 0) {\n                *(long *)(DAT_0017fb10 + 0x90) = lVar33;\n              }\n              else {\n                *(long *)(lVar5 + 0x10) = lVar33;\n                lVar33 = *(long *)(lVar13 + 0x10);\n              }\n              if (lVar33 == 0) {\n                *(long *)(DAT_0017fb10 + 0x98) = lVar5;\n              }\n              else {\n                *(long *)(lVar33 + 0x18) = lVar5;\n              }\n              lVar5 = *(long *)(lVar28 + 0x10);\n              *(long *)(lVar13 + 0x10) = lVar5;\n              if (lVar5 == 0) {\n                *(long *)(DAT_0017fb10 + 0x98) = lVar13;\n              }\n              else {\n                *(long *)(lVar5 + 0x18) = lVar13;\n              }\n              *(long *)(lVar15 + 0x18) = lVar28;\n              plVar18 = (long *)0x0;\n              *(long *)(lVar28 + 0x10) = lVar15;\n            }\n          }" ({ "{") (labeled_statement "LAB_0011cd61:\n            plVar18 = (long *)0x0;" (statement_identifier "LAB_0011cd61") (: ":") (expression_statement "plVar18 = (long *)0x0;" (assignment_expression "plVar18 = (long *)0x0" (identifier "plVar18") (= "=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";"))) (if_statement "if (lVar28 != lVar13) {\n              lVar5 = *(long *)(lVar15 + 0x18);\n              lVar33 = *(long *)(lVar13 + 0x10);\n              if (lVar5 == 0) {\n                *(long *)(DAT_0017fb10 + 0x90) = lVar33;\n              }\n              else {\n                *(long *)(lVar5 + 0x10) = lVar33;\n                lVar33 = *(long *)(lVar13 + 0x10);\n              }\n              if (lVar33 == 0) {\n                *(long *)(DAT_0017fb10 + 0x98) = lVar5;\n              }\n              else {\n                *(long *)(lVar33 + 0x18) = lVar5;\n              }\n              lVar5 = *(long *)(lVar28 + 0x10);\n              *(long *)(lVar13 + 0x10) = lVar5;\n              if (lVar5 == 0) {\n                *(long *)(DAT_0017fb10 + 0x98) = lVar13;\n              }\n              else {\n                *(long *)(lVar5 + 0x18) = lVar13;\n              }\n              *(long *)(lVar15 + 0x18) = lVar28;\n              plVar18 = (long *)0x0;\n              *(long *)(lVar28 + 0x10) = lVar15;\n            }" (if "if") (parenthesized_expression "(lVar28 != lVar13)" (( "(") (binary_expression "lVar28 != lVar13" (identifier "lVar28") (!= "!=") (identifier "lVar13")) () ")")) (compound_statement "{\n              lVar5 = *(long *)(lVar15 + 0x18);\n              lVar33 = *(long *)(lVar13 + 0x10);\n              if (lVar5 == 0) {\n                *(long *)(DAT_0017fb10 + 0x90) = lVar33;\n              }\n              else {\n                *(long *)(lVar5 + 0x10) = lVar33;\n                lVar33 = *(long *)(lVar13 + 0x10);\n              }\n              if (lVar33 == 0) {\n                *(long *)(DAT_0017fb10 + 0x98) = lVar5;\n              }\n              else {\n                *(long *)(lVar33 + 0x18) = lVar5;\n              }\n              lVar5 = *(long *)(lVar28 + 0x10);\n              *(long *)(lVar13 + 0x10) = lVar5;\n              if (lVar5 == 0) {\n                *(long *)(DAT_0017fb10 + 0x98) = lVar13;\n              }\n              else {\n                *(long *)(lVar5 + 0x18) = lVar13;\n              }\n              *(long *)(lVar15 + 0x18) = lVar28;\n              plVar18 = (long *)0x0;\n              *(long *)(lVar28 + 0x10) = lVar15;\n            }" ({ "{") (expression_statement "lVar5 = *(long *)(lVar15 + 0x18);" (assignment_expression "lVar5 = *(long *)(lVar15 + 0x18)" (identifier "lVar5") (= "=") (pointer_expression "*(long *)(lVar15 + 0x18)" (* "*") (cast_expression "(long *)(lVar15 + 0x18)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar15 + 0x18)" (( "(") (binary_expression "lVar15 + 0x18" (identifier "lVar15") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (expression_statement "lVar33 = *(long *)(lVar13 + 0x10);" (assignment_expression "lVar33 = *(long *)(lVar13 + 0x10)" (identifier "lVar33") (= "=") (pointer_expression "*(long *)(lVar13 + 0x10)" (* "*") (cast_expression "(long *)(lVar13 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar13 + 0x10)" (( "(") (binary_expression "lVar13 + 0x10" (identifier "lVar13") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (if_statement "if (lVar5 == 0) {\n                *(long *)(DAT_0017fb10 + 0x90) = lVar33;\n              }\n              else {\n                *(long *)(lVar5 + 0x10) = lVar33;\n                lVar33 = *(long *)(lVar13 + 0x10);\n              }" (if "if") (parenthesized_expression "(lVar5 == 0)" (( "(") (binary_expression "lVar5 == 0" (identifier "lVar5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                *(long *)(DAT_0017fb10 + 0x90) = lVar33;\n              }" ({ "{") (expression_statement "*(long *)(DAT_0017fb10 + 0x90) = lVar33;" (assignment_expression "*(long *)(DAT_0017fb10 + 0x90) = lVar33" (pointer_expression "*(long *)(DAT_0017fb10 + 0x90)" (* "*") (cast_expression "(long *)(DAT_0017fb10 + 0x90)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_0017fb10 + 0x90)" (( "(") (binary_expression "DAT_0017fb10 + 0x90" (identifier "DAT_0017fb10") (+ "+") (number_literal "0x90")) () ")")))) (= "=") (identifier "lVar33")) (; ";")) (} "}")) (else_clause "else {\n                *(long *)(lVar5 + 0x10) = lVar33;\n                lVar33 = *(long *)(lVar13 + 0x10);\n              }" (else "else") (compound_statement "{\n                *(long *)(lVar5 + 0x10) = lVar33;\n                lVar33 = *(long *)(lVar13 + 0x10);\n              }" ({ "{") (expression_statement "*(long *)(lVar5 + 0x10) = lVar33;" (assignment_expression "*(long *)(lVar5 + 0x10) = lVar33" (pointer_expression "*(long *)(lVar5 + 0x10)" (* "*") (cast_expression "(long *)(lVar5 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar5 + 0x10)" (( "(") (binary_expression "lVar5 + 0x10" (identifier "lVar5") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (identifier "lVar33")) (; ";")) (expression_statement "lVar33 = *(long *)(lVar13 + 0x10);" (assignment_expression "lVar33 = *(long *)(lVar13 + 0x10)" (identifier "lVar33") (= "=") (pointer_expression "*(long *)(lVar13 + 0x10)" (* "*") (cast_expression "(long *)(lVar13 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar13 + 0x10)" (( "(") (binary_expression "lVar13 + 0x10" (identifier "lVar13") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (} "}")))) (if_statement "if (lVar33 == 0) {\n                *(long *)(DAT_0017fb10 + 0x98) = lVar5;\n              }\n              else {\n                *(long *)(lVar33 + 0x18) = lVar5;\n              }" (if "if") (parenthesized_expression "(lVar33 == 0)" (( "(") (binary_expression "lVar33 == 0" (identifier "lVar33") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                *(long *)(DAT_0017fb10 + 0x98) = lVar5;\n              }" ({ "{") (expression_statement "*(long *)(DAT_0017fb10 + 0x98) = lVar5;" (assignment_expression "*(long *)(DAT_0017fb10 + 0x98) = lVar5" (pointer_expression "*(long *)(DAT_0017fb10 + 0x98)" (* "*") (cast_expression "(long *)(DAT_0017fb10 + 0x98)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_0017fb10 + 0x98)" (( "(") (binary_expression "DAT_0017fb10 + 0x98" (identifier "DAT_0017fb10") (+ "+") (number_literal "0x98")) () ")")))) (= "=") (identifier "lVar5")) (; ";")) (} "}")) (else_clause "else {\n                *(long *)(lVar33 + 0x18) = lVar5;\n              }" (else "else") (compound_statement "{\n                *(long *)(lVar33 + 0x18) = lVar5;\n              }" ({ "{") (expression_statement "*(long *)(lVar33 + 0x18) = lVar5;" (assignment_expression "*(long *)(lVar33 + 0x18) = lVar5" (pointer_expression "*(long *)(lVar33 + 0x18)" (* "*") (cast_expression "(long *)(lVar33 + 0x18)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar33 + 0x18)" (( "(") (binary_expression "lVar33 + 0x18" (identifier "lVar33") (+ "+") (number_literal "0x18")) () ")")))) (= "=") (identifier "lVar5")) (; ";")) (} "}")))) (expression_statement "lVar5 = *(long *)(lVar28 + 0x10);" (assignment_expression "lVar5 = *(long *)(lVar28 + 0x10)" (identifier "lVar5") (= "=") (pointer_expression "*(long *)(lVar28 + 0x10)" (* "*") (cast_expression "(long *)(lVar28 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar28 + 0x10)" (( "(") (binary_expression "lVar28 + 0x10" (identifier "lVar28") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "*(long *)(lVar13 + 0x10) = lVar5;" (assignment_expression "*(long *)(lVar13 + 0x10) = lVar5" (pointer_expression "*(long *)(lVar13 + 0x10)" (* "*") (cast_expression "(long *)(lVar13 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar13 + 0x10)" (( "(") (binary_expression "lVar13 + 0x10" (identifier "lVar13") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (identifier "lVar5")) (; ";")) (if_statement "if (lVar5 == 0) {\n                *(long *)(DAT_0017fb10 + 0x98) = lVar13;\n              }\n              else {\n                *(long *)(lVar5 + 0x18) = lVar13;\n              }" (if "if") (parenthesized_expression "(lVar5 == 0)" (( "(") (binary_expression "lVar5 == 0" (identifier "lVar5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                *(long *)(DAT_0017fb10 + 0x98) = lVar13;\n              }" ({ "{") (expression_statement "*(long *)(DAT_0017fb10 + 0x98) = lVar13;" (assignment_expression "*(long *)(DAT_0017fb10 + 0x98) = lVar13" (pointer_expression "*(long *)(DAT_0017fb10 + 0x98)" (* "*") (cast_expression "(long *)(DAT_0017fb10 + 0x98)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_0017fb10 + 0x98)" (( "(") (binary_expression "DAT_0017fb10 + 0x98" (identifier "DAT_0017fb10") (+ "+") (number_literal "0x98")) () ")")))) (= "=") (identifier "lVar13")) (; ";")) (} "}")) (else_clause "else {\n                *(long *)(lVar5 + 0x18) = lVar13;\n              }" (else "else") (compound_statement "{\n                *(long *)(lVar5 + 0x18) = lVar13;\n              }" ({ "{") (expression_statement "*(long *)(lVar5 + 0x18) = lVar13;" (assignment_expression "*(long *)(lVar5 + 0x18) = lVar13" (pointer_expression "*(long *)(lVar5 + 0x18)" (* "*") (cast_expression "(long *)(lVar5 + 0x18)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar5 + 0x18)" (( "(") (binary_expression "lVar5 + 0x18" (identifier "lVar5") (+ "+") (number_literal "0x18")) () ")")))) (= "=") (identifier "lVar13")) (; ";")) (} "}")))) (expression_statement "*(long *)(lVar15 + 0x18) = lVar28;" (assignment_expression "*(long *)(lVar15 + 0x18) = lVar28" (pointer_expression "*(long *)(lVar15 + 0x18)" (* "*") (cast_expression "(long *)(lVar15 + 0x18)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar15 + 0x18)" (( "(") (binary_expression "lVar15 + 0x18" (identifier "lVar15") (+ "+") (number_literal "0x18")) () ")")))) (= "=") (identifier "lVar28")) (; ";")) (expression_statement "plVar18 = (long *)0x0;" (assignment_expression "plVar18 = (long *)0x0" (identifier "plVar18") (= "=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "*(long *)(lVar28 + 0x10) = lVar15;" (assignment_expression "*(long *)(lVar28 + 0x10) = lVar15" (pointer_expression "*(long *)(lVar28 + 0x10)" (* "*") (cast_expression "(long *)(lVar28 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar28 + 0x10)" (( "(") (binary_expression "lVar28 + 0x10" (identifier "lVar28") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (identifier "lVar15")) (; ";")) (} "}"))) (} "}")))) (} "}"))) (} "}"))) (expression_statement "plVar17 = (long *)FUN_00112240(lVar16);" (assignment_expression "plVar17 = (long *)FUN_00112240(lVar16)" (identifier "plVar17") (= "=") (cast_expression "(long *)FUN_00112240(lVar16)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00112240(lVar16)" (identifier "FUN_00112240") (argument_list "(lVar16)" (( "(") (identifier "lVar16") () ")"))))) (; ";")) (expression_statement "lVar16 = *DAT_0017fa60;" (assignment_expression "lVar16 = *DAT_0017fa60" (identifier "lVar16") (= "=") (pointer_expression "*DAT_0017fa60" (* "*") (identifier "DAT_0017fa60"))) (; ";")) (expression_statement "*DAT_0017fa60 = *(long *)*plVar36;" (assignment_expression "*DAT_0017fa60 = *(long *)*plVar36" (pointer_expression "*DAT_0017fa60" (* "*") (identifier "DAT_0017fa60")) (= "=") (pointer_expression "*(long *)*plVar36" (* "*") (cast_expression "(long *)*plVar36" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*plVar36" (* "*") (identifier "plVar36"))))) (; ";")) (expression_statement "lVar15 = *plVar17;" (assignment_expression "lVar15 = *plVar17" (identifier "lVar15") (= "=") (pointer_expression "*plVar17" (* "*") (identifier "plVar17"))) (; ";")) (expression_statement "*plVar36 = lVar15;" (assignment_expression "*plVar36 = lVar15" (pointer_expression "*plVar36" (* "*") (identifier "plVar36")) (= "=") (identifier "lVar15")) (; ";")) (if_statement "if (lVar15 == 0) {\n        DAT_0017f438 = plVar36;\n      }" (if "if") (parenthesized_expression "(lVar15 == 0)" (( "(") (binary_expression "lVar15 == 0" (identifier "lVar15") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        DAT_0017f438 = plVar36;\n      }" ({ "{") (expression_statement "DAT_0017f438 = plVar36;" (assignment_expression "DAT_0017f438 = plVar36" (identifier "DAT_0017f438") (= "=") (identifier "plVar36")) (; ";")) (} "}"))) (expression_statement "*plVar17 = lVar16;" (assignment_expression "*plVar17 = lVar16" (pointer_expression "*plVar17" (* "*") (identifier "plVar17")) (= "=") (identifier "lVar16")) (; ";")) (expression_statement "plVar26 = (long *)0x0;" (assignment_expression "plVar26 = (long *)0x0" (identifier "plVar26") (= "=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "plVar17 = DAT_0017fa60;" (assignment_expression "plVar17 = DAT_0017fa60" (identifier "plVar17") (= "=") (identifier "DAT_0017fa60")) (; ";")) (} "}"))))) (} "}"))) (for_statement "for (; (plVar17 = DAT_0017f2f0, plVar18 != (long *)0x0 &&\n         (*(int *)((long)plVar18 + 0x84) = -2 - *(int *)((long)plVar18 + 0x84),\n         plVar17 = DAT_0017f2f0, plVar26 != plVar18)); plVar18 = (long *)plVar18[4]) {\n  }" (for "for") (( "(") (; ";") (parenthesized_expression "(plVar17 = DAT_0017f2f0, plVar18 != (long *)0x0 &&\n         (*(int *)((long)plVar18 + 0x84) = -2 - *(int *)((long)plVar18 + 0x84),\n         plVar17 = DAT_0017f2f0, plVar26 != plVar18))" (( "(") (comma_expression "plVar17 = DAT_0017f2f0, plVar18 != (long *)0x0 &&\n         (*(int *)((long)plVar18 + 0x84) = -2 - *(int *)((long)plVar18 + 0x84),\n         plVar17 = DAT_0017f2f0, plVar26 != plVar18)" (assignment_expression "plVar17 = DAT_0017f2f0" (identifier "plVar17") (= "=") (identifier "DAT_0017f2f0")) (, ",") (binary_expression "plVar18 != (long *)0x0 &&\n         (*(int *)((long)plVar18 + 0x84) = -2 - *(int *)((long)plVar18 + 0x84),\n         plVar17 = DAT_0017f2f0, plVar26 != plVar18)" (binary_expression "plVar18 != (long *)0x0" (identifier "plVar18") (!= "!=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (&& "&&") (parenthesized_expression "(*(int *)((long)plVar18 + 0x84) = -2 - *(int *)((long)plVar18 + 0x84),\n         plVar17 = DAT_0017f2f0, plVar26 != plVar18)" (( "(") (comma_expression "*(int *)((long)plVar18 + 0x84) = -2 - *(int *)((long)plVar18 + 0x84),\n         plVar17 = DAT_0017f2f0, plVar26 != plVar18" (assignment_expression "*(int *)((long)plVar18 + 0x84) = -2 - *(int *)((long)plVar18 + 0x84)" (pointer_expression "*(int *)((long)plVar18 + 0x84)" (* "*") (cast_expression "(int *)((long)plVar18 + 0x84)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)plVar18 + 0x84)" (( "(") (binary_expression "(long)plVar18 + 0x84" (cast_expression "(long)plVar18" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar18")) (+ "+") (number_literal "0x84")) () ")")))) (= "=") (binary_expression "-2 - *(int *)((long)plVar18 + 0x84)" (number_literal "-2") (- "-") (pointer_expression "*(int *)((long)plVar18 + 0x84)" (* "*") (cast_expression "(int *)((long)plVar18 + 0x84)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)plVar18 + 0x84)" (( "(") (binary_expression "(long)plVar18 + 0x84" (cast_expression "(long)plVar18" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar18")) (+ "+") (number_literal "0x84")) () ")")))))) (, ",") (comma_expression "plVar17 = DAT_0017f2f0, plVar26 != plVar18" (assignment_expression "plVar17 = DAT_0017f2f0" (identifier "plVar17") (= "=") (identifier "DAT_0017f2f0")) (, ",") (binary_expression "plVar26 != plVar18" (identifier "plVar26") (!= "!=") (identifier "plVar18")))) () ")")))) () ")")) (; ";") (assignment_expression "plVar18 = (long *)plVar18[4]" (identifier "plVar18") (= "=") (cast_expression "(long *)plVar18[4]" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "plVar18[4]" (identifier "plVar18") ([ "[") (number_literal "4") (] "]")))) () ")") (compound_statement "{\n  }" ({ "{") (} "}"))) (labeled_statement "joined_r0x0011c458:\n  for (; plVar17 != (long *)0x0; plVar17 = (long *)plVar17[6]) {\n    puVar21 = *(undefined8 **)(plVar17[4] + 0x90);\njoined_r0x0011c46e:\n    if (puVar21 != (undefined8 *)0x0) {\n      do {\n        if (puVar21[0xd] == 0) {\n          if ((*(byte *)(plVar17 + 9) & 0x10) != 0) goto code_r0x0011c493;\n          iVar9 = FUN_00113350(*(undefined4 *)(puVar21 + 4));\n          bVar38 = false;\n          bVar39 = iVar9 == 0;\n          if (bVar39) {\n            pbVar4 = (byte *)*puVar21;\n            lVar16 = 7;\n            pbVar20 = pbVar4;\n            pbVar32 = (byte *)"COMMON";\n            do {\n              if (lVar16 == 0) break;\n              lVar16 = lVar16 + -1;\n              bVar38 = *pbVar20 < *pbVar32;\n              bVar39 = *pbVar20 == *pbVar32;\n              pbVar20 = pbVar20 + (ulong)bVar40 * -2 + 1;\n              pbVar32 = pbVar32 + (ulong)bVar40 * -2 + 1;\n            } while (bVar39);\n            if ((!bVar38 && !bVar39) == bVar38) {\n              if (((DAT_0017fac0 & 3) != 2) || (DAT_0017fbc0 != 0)) {\n                lVar16 = DAT_0017f458;\n                if (DAT_0017f458 == 0) {\n                  lVar16 = FUN_00116e20(".bss",0,1);\n                  DAT_0017f458 = lVar16;\n                }\nLAB_0011c659:\n                FUN_00117b90(lVar16 + 0x10,puVar21,0);\n              }\n            }\n            else {\n              if (DAT_0017fc5c == 1) {\n                lVar16 = FUN_00116e20("/DISCARD/",0,1);\n                if ((*(long *)(lVar16 + 0x58) == 0) &&\n                   (((DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0)))) {\n                  uVar11 = FUN_00123030(0);\n                  *(undefined8 *)(lVar16 + 0x58) = uVar11;\n                }\n                goto LAB_0011c659;\n              }\n              if (DAT_0017fc5c == 3) {\n                uVar11 = puVar21[0x1e];\n                uVar14 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_001251f0(uVar14,puVar21,uVar11);\n              }\n              if ((DAT_0017fc78 == 0) && (iVar9 = FUN_001150a0(puVar21,0), iVar9 == 0)) {\n                uVar10 = 0;\n              }\n              else {\n                uVar10 = 0x17e;\n              }\n              lVar16 = FUN_00123c60(puVar21,pbVar4,uVar10);\n              if (lVar16 == 0) {\n                lVar16 = FUN_00116e20(pbVar4,uVar10,1);\n                if ((*(long *)(lVar16 + 0x58) == 0) &&\n                   (((DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0)))) {\n                  uVar11 = FUN_00123030(0);\n                  *(undefined8 *)(lVar16 + 0x58) = uVar11;\n                }\n                FUN_00117b90(lVar16 + 0x10,puVar21,0);\n              }\n              if (DAT_0017fc5c == 2) {\n                uVar11 = puVar21[0x1e];\n                uVar14 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_001251f0(uVar14,puVar21,uVar11);\n              }\n            }\n          }\n          else {\n            puVar21[0xd] = 0x17ed50;\n          }\n        }\n        puVar21 = (undefined8 *)puVar21[2];\n        if (puVar21 == (undefined8 *)0x0) break;\n      } while( true );\n    }\n  }" (statement_identifier "joined_r0x0011c458") (: ":") (for_statement "for (; plVar17 != (long *)0x0; plVar17 = (long *)plVar17[6]) {\n    puVar21 = *(undefined8 **)(plVar17[4] + 0x90);\njoined_r0x0011c46e:\n    if (puVar21 != (undefined8 *)0x0) {\n      do {\n        if (puVar21[0xd] == 0) {\n          if ((*(byte *)(plVar17 + 9) & 0x10) != 0) goto code_r0x0011c493;\n          iVar9 = FUN_00113350(*(undefined4 *)(puVar21 + 4));\n          bVar38 = false;\n          bVar39 = iVar9 == 0;\n          if (bVar39) {\n            pbVar4 = (byte *)*puVar21;\n            lVar16 = 7;\n            pbVar20 = pbVar4;\n            pbVar32 = (byte *)"COMMON";\n            do {\n              if (lVar16 == 0) break;\n              lVar16 = lVar16 + -1;\n              bVar38 = *pbVar20 < *pbVar32;\n              bVar39 = *pbVar20 == *pbVar32;\n              pbVar20 = pbVar20 + (ulong)bVar40 * -2 + 1;\n              pbVar32 = pbVar32 + (ulong)bVar40 * -2 + 1;\n            } while (bVar39);\n            if ((!bVar38 && !bVar39) == bVar38) {\n              if (((DAT_0017fac0 & 3) != 2) || (DAT_0017fbc0 != 0)) {\n                lVar16 = DAT_0017f458;\n                if (DAT_0017f458 == 0) {\n                  lVar16 = FUN_00116e20(".bss",0,1);\n                  DAT_0017f458 = lVar16;\n                }\nLAB_0011c659:\n                FUN_00117b90(lVar16 + 0x10,puVar21,0);\n              }\n            }\n            else {\n              if (DAT_0017fc5c == 1) {\n                lVar16 = FUN_00116e20("/DISCARD/",0,1);\n                if ((*(long *)(lVar16 + 0x58) == 0) &&\n                   (((DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0)))) {\n                  uVar11 = FUN_00123030(0);\n                  *(undefined8 *)(lVar16 + 0x58) = uVar11;\n                }\n                goto LAB_0011c659;\n              }\n              if (DAT_0017fc5c == 3) {\n                uVar11 = puVar21[0x1e];\n                uVar14 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_001251f0(uVar14,puVar21,uVar11);\n              }\n              if ((DAT_0017fc78 == 0) && (iVar9 = FUN_001150a0(puVar21,0), iVar9 == 0)) {\n                uVar10 = 0;\n              }\n              else {\n                uVar10 = 0x17e;\n              }\n              lVar16 = FUN_00123c60(puVar21,pbVar4,uVar10);\n              if (lVar16 == 0) {\n                lVar16 = FUN_00116e20(pbVar4,uVar10,1);\n                if ((*(long *)(lVar16 + 0x58) == 0) &&\n                   (((DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0)))) {\n                  uVar11 = FUN_00123030(0);\n                  *(undefined8 *)(lVar16 + 0x58) = uVar11;\n                }\n                FUN_00117b90(lVar16 + 0x10,puVar21,0);\n              }\n              if (DAT_0017fc5c == 2) {\n                uVar11 = puVar21[0x1e];\n                uVar14 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_001251f0(uVar14,puVar21,uVar11);\n              }\n            }\n          }\n          else {\n            puVar21[0xd] = 0x17ed50;\n          }\n        }\n        puVar21 = (undefined8 *)puVar21[2];\n        if (puVar21 == (undefined8 *)0x0) break;\n      } while( true );\n    }\n  }" (for "for") (( "(") (; ";") (binary_expression "plVar17 != (long *)0x0" (identifier "plVar17") (!= "!=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";") (assignment_expression "plVar17 = (long *)plVar17[6]" (identifier "plVar17") (= "=") (cast_expression "(long *)plVar17[6]" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "plVar17[6]" (identifier "plVar17") ([ "[") (number_literal "6") (] "]")))) () ")") (compound_statement "{\n    puVar21 = *(undefined8 **)(plVar17[4] + 0x90);\njoined_r0x0011c46e:\n    if (puVar21 != (undefined8 *)0x0) {\n      do {\n        if (puVar21[0xd] == 0) {\n          if ((*(byte *)(plVar17 + 9) & 0x10) != 0) goto code_r0x0011c493;\n          iVar9 = FUN_00113350(*(undefined4 *)(puVar21 + 4));\n          bVar38 = false;\n          bVar39 = iVar9 == 0;\n          if (bVar39) {\n            pbVar4 = (byte *)*puVar21;\n            lVar16 = 7;\n            pbVar20 = pbVar4;\n            pbVar32 = (byte *)"COMMON";\n            do {\n              if (lVar16 == 0) break;\n              lVar16 = lVar16 + -1;\n              bVar38 = *pbVar20 < *pbVar32;\n              bVar39 = *pbVar20 == *pbVar32;\n              pbVar20 = pbVar20 + (ulong)bVar40 * -2 + 1;\n              pbVar32 = pbVar32 + (ulong)bVar40 * -2 + 1;\n            } while (bVar39);\n            if ((!bVar38 && !bVar39) == bVar38) {\n              if (((DAT_0017fac0 & 3) != 2) || (DAT_0017fbc0 != 0)) {\n                lVar16 = DAT_0017f458;\n                if (DAT_0017f458 == 0) {\n                  lVar16 = FUN_00116e20(".bss",0,1);\n                  DAT_0017f458 = lVar16;\n                }\nLAB_0011c659:\n                FUN_00117b90(lVar16 + 0x10,puVar21,0);\n              }\n            }\n            else {\n              if (DAT_0017fc5c == 1) {\n                lVar16 = FUN_00116e20("/DISCARD/",0,1);\n                if ((*(long *)(lVar16 + 0x58) == 0) &&\n                   (((DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0)))) {\n                  uVar11 = FUN_00123030(0);\n                  *(undefined8 *)(lVar16 + 0x58) = uVar11;\n                }\n                goto LAB_0011c659;\n              }\n              if (DAT_0017fc5c == 3) {\n                uVar11 = puVar21[0x1e];\n                uVar14 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_001251f0(uVar14,puVar21,uVar11);\n              }\n              if ((DAT_0017fc78 == 0) && (iVar9 = FUN_001150a0(puVar21,0), iVar9 == 0)) {\n                uVar10 = 0;\n              }\n              else {\n                uVar10 = 0x17e;\n              }\n              lVar16 = FUN_00123c60(puVar21,pbVar4,uVar10);\n              if (lVar16 == 0) {\n                lVar16 = FUN_00116e20(pbVar4,uVar10,1);\n                if ((*(long *)(lVar16 + 0x58) == 0) &&\n                   (((DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0)))) {\n                  uVar11 = FUN_00123030(0);\n                  *(undefined8 *)(lVar16 + 0x58) = uVar11;\n                }\n                FUN_00117b90(lVar16 + 0x10,puVar21,0);\n              }\n              if (DAT_0017fc5c == 2) {\n                uVar11 = puVar21[0x1e];\n                uVar14 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_001251f0(uVar14,puVar21,uVar11);\n              }\n            }\n          }\n          else {\n            puVar21[0xd] = 0x17ed50;\n          }\n        }\n        puVar21 = (undefined8 *)puVar21[2];\n        if (puVar21 == (undefined8 *)0x0) break;\n      } while( true );\n    }\n  }" ({ "{") (expression_statement "puVar21 = *(undefined8 **)(plVar17[4] + 0x90);" (assignment_expression "puVar21 = *(undefined8 **)(plVar17[4] + 0x90)" (identifier "puVar21") (= "=") (pointer_expression "*(undefined8 **)(plVar17[4] + 0x90)" (* "*") (cast_expression "(undefined8 **)(plVar17[4] + 0x90)" (( "(") (type_descriptor "undefined8 **" (type_identifier "undefined8") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(plVar17[4] + 0x90)" (( "(") (binary_expression "plVar17[4] + 0x90" (subscript_expression "plVar17[4]" (identifier "plVar17") ([ "[") (number_literal "4") (] "]")) (+ "+") (number_literal "0x90")) () ")"))))) (; ";")) (labeled_statement "joined_r0x0011c46e:\n    if (puVar21 != (undefined8 *)0x0) {\n      do {\n        if (puVar21[0xd] == 0) {\n          if ((*(byte *)(plVar17 + 9) & 0x10) != 0) goto code_r0x0011c493;\n          iVar9 = FUN_00113350(*(undefined4 *)(puVar21 + 4));\n          bVar38 = false;\n          bVar39 = iVar9 == 0;\n          if (bVar39) {\n            pbVar4 = (byte *)*puVar21;\n            lVar16 = 7;\n            pbVar20 = pbVar4;\n            pbVar32 = (byte *)"COMMON";\n            do {\n              if (lVar16 == 0) break;\n              lVar16 = lVar16 + -1;\n              bVar38 = *pbVar20 < *pbVar32;\n              bVar39 = *pbVar20 == *pbVar32;\n              pbVar20 = pbVar20 + (ulong)bVar40 * -2 + 1;\n              pbVar32 = pbVar32 + (ulong)bVar40 * -2 + 1;\n            } while (bVar39);\n            if ((!bVar38 && !bVar39) == bVar38) {\n              if (((DAT_0017fac0 & 3) != 2) || (DAT_0017fbc0 != 0)) {\n                lVar16 = DAT_0017f458;\n                if (DAT_0017f458 == 0) {\n                  lVar16 = FUN_00116e20(".bss",0,1);\n                  DAT_0017f458 = lVar16;\n                }\nLAB_0011c659:\n                FUN_00117b90(lVar16 + 0x10,puVar21,0);\n              }\n            }\n            else {\n              if (DAT_0017fc5c == 1) {\n                lVar16 = FUN_00116e20("/DISCARD/",0,1);\n                if ((*(long *)(lVar16 + 0x58) == 0) &&\n                   (((DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0)))) {\n                  uVar11 = FUN_00123030(0);\n                  *(undefined8 *)(lVar16 + 0x58) = uVar11;\n                }\n                goto LAB_0011c659;\n              }\n              if (DAT_0017fc5c == 3) {\n                uVar11 = puVar21[0x1e];\n                uVar14 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_001251f0(uVar14,puVar21,uVar11);\n              }\n              if ((DAT_0017fc78 == 0) && (iVar9 = FUN_001150a0(puVar21,0), iVar9 == 0)) {\n                uVar10 = 0;\n              }\n              else {\n                uVar10 = 0x17e;\n              }\n              lVar16 = FUN_00123c60(puVar21,pbVar4,uVar10);\n              if (lVar16 == 0) {\n                lVar16 = FUN_00116e20(pbVar4,uVar10,1);\n                if ((*(long *)(lVar16 + 0x58) == 0) &&\n                   (((DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0)))) {\n                  uVar11 = FUN_00123030(0);\n                  *(undefined8 *)(lVar16 + 0x58) = uVar11;\n                }\n                FUN_00117b90(lVar16 + 0x10,puVar21,0);\n              }\n              if (DAT_0017fc5c == 2) {\n                uVar11 = puVar21[0x1e];\n                uVar14 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_001251f0(uVar14,puVar21,uVar11);\n              }\n            }\n          }\n          else {\n            puVar21[0xd] = 0x17ed50;\n          }\n        }\n        puVar21 = (undefined8 *)puVar21[2];\n        if (puVar21 == (undefined8 *)0x0) break;\n      } while( true );\n    }" (statement_identifier "joined_r0x0011c46e") (: ":") (if_statement "if (puVar21 != (undefined8 *)0x0) {\n      do {\n        if (puVar21[0xd] == 0) {\n          if ((*(byte *)(plVar17 + 9) & 0x10) != 0) goto code_r0x0011c493;\n          iVar9 = FUN_00113350(*(undefined4 *)(puVar21 + 4));\n          bVar38 = false;\n          bVar39 = iVar9 == 0;\n          if (bVar39) {\n            pbVar4 = (byte *)*puVar21;\n            lVar16 = 7;\n            pbVar20 = pbVar4;\n            pbVar32 = (byte *)"COMMON";\n            do {\n              if (lVar16 == 0) break;\n              lVar16 = lVar16 + -1;\n              bVar38 = *pbVar20 < *pbVar32;\n              bVar39 = *pbVar20 == *pbVar32;\n              pbVar20 = pbVar20 + (ulong)bVar40 * -2 + 1;\n              pbVar32 = pbVar32 + (ulong)bVar40 * -2 + 1;\n            } while (bVar39);\n            if ((!bVar38 && !bVar39) == bVar38) {\n              if (((DAT_0017fac0 & 3) != 2) || (DAT_0017fbc0 != 0)) {\n                lVar16 = DAT_0017f458;\n                if (DAT_0017f458 == 0) {\n                  lVar16 = FUN_00116e20(".bss",0,1);\n                  DAT_0017f458 = lVar16;\n                }\nLAB_0011c659:\n                FUN_00117b90(lVar16 + 0x10,puVar21,0);\n              }\n            }\n            else {\n              if (DAT_0017fc5c == 1) {\n                lVar16 = FUN_00116e20("/DISCARD/",0,1);\n                if ((*(long *)(lVar16 + 0x58) == 0) &&\n                   (((DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0)))) {\n                  uVar11 = FUN_00123030(0);\n                  *(undefined8 *)(lVar16 + 0x58) = uVar11;\n                }\n                goto LAB_0011c659;\n              }\n              if (DAT_0017fc5c == 3) {\n                uVar11 = puVar21[0x1e];\n                uVar14 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_001251f0(uVar14,puVar21,uVar11);\n              }\n              if ((DAT_0017fc78 == 0) && (iVar9 = FUN_001150a0(puVar21,0), iVar9 == 0)) {\n                uVar10 = 0;\n              }\n              else {\n                uVar10 = 0x17e;\n              }\n              lVar16 = FUN_00123c60(puVar21,pbVar4,uVar10);\n              if (lVar16 == 0) {\n                lVar16 = FUN_00116e20(pbVar4,uVar10,1);\n                if ((*(long *)(lVar16 + 0x58) == 0) &&\n                   (((DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0)))) {\n                  uVar11 = FUN_00123030(0);\n                  *(undefined8 *)(lVar16 + 0x58) = uVar11;\n                }\n                FUN_00117b90(lVar16 + 0x10,puVar21,0);\n              }\n              if (DAT_0017fc5c == 2) {\n                uVar11 = puVar21[0x1e];\n                uVar14 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_001251f0(uVar14,puVar21,uVar11);\n              }\n            }\n          }\n          else {\n            puVar21[0xd] = 0x17ed50;\n          }\n        }\n        puVar21 = (undefined8 *)puVar21[2];\n        if (puVar21 == (undefined8 *)0x0) break;\n      } while( true );\n    }" (if "if") (parenthesized_expression "(puVar21 != (undefined8 *)0x0)" (( "(") (binary_expression "puVar21 != (undefined8 *)0x0" (identifier "puVar21") (!= "!=") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      do {\n        if (puVar21[0xd] == 0) {\n          if ((*(byte *)(plVar17 + 9) & 0x10) != 0) goto code_r0x0011c493;\n          iVar9 = FUN_00113350(*(undefined4 *)(puVar21 + 4));\n          bVar38 = false;\n          bVar39 = iVar9 == 0;\n          if (bVar39) {\n            pbVar4 = (byte *)*puVar21;\n            lVar16 = 7;\n            pbVar20 = pbVar4;\n            pbVar32 = (byte *)"COMMON";\n            do {\n              if (lVar16 == 0) break;\n              lVar16 = lVar16 + -1;\n              bVar38 = *pbVar20 < *pbVar32;\n              bVar39 = *pbVar20 == *pbVar32;\n              pbVar20 = pbVar20 + (ulong)bVar40 * -2 + 1;\n              pbVar32 = pbVar32 + (ulong)bVar40 * -2 + 1;\n            } while (bVar39);\n            if ((!bVar38 && !bVar39) == bVar38) {\n              if (((DAT_0017fac0 & 3) != 2) || (DAT_0017fbc0 != 0)) {\n                lVar16 = DAT_0017f458;\n                if (DAT_0017f458 == 0) {\n                  lVar16 = FUN_00116e20(".bss",0,1);\n                  DAT_0017f458 = lVar16;\n                }\nLAB_0011c659:\n                FUN_00117b90(lVar16 + 0x10,puVar21,0);\n              }\n            }\n            else {\n              if (DAT_0017fc5c == 1) {\n                lVar16 = FUN_00116e20("/DISCARD/",0,1);\n                if ((*(long *)(lVar16 + 0x58) == 0) &&\n                   (((DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0)))) {\n                  uVar11 = FUN_00123030(0);\n                  *(undefined8 *)(lVar16 + 0x58) = uVar11;\n                }\n                goto LAB_0011c659;\n              }\n              if (DAT_0017fc5c == 3) {\n                uVar11 = puVar21[0x1e];\n                uVar14 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_001251f0(uVar14,puVar21,uVar11);\n              }\n              if ((DAT_0017fc78 == 0) && (iVar9 = FUN_001150a0(puVar21,0), iVar9 == 0)) {\n                uVar10 = 0;\n              }\n              else {\n                uVar10 = 0x17e;\n              }\n              lVar16 = FUN_00123c60(puVar21,pbVar4,uVar10);\n              if (lVar16 == 0) {\n                lVar16 = FUN_00116e20(pbVar4,uVar10,1);\n                if ((*(long *)(lVar16 + 0x58) == 0) &&\n                   (((DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0)))) {\n                  uVar11 = FUN_00123030(0);\n                  *(undefined8 *)(lVar16 + 0x58) = uVar11;\n                }\n                FUN_00117b90(lVar16 + 0x10,puVar21,0);\n              }\n              if (DAT_0017fc5c == 2) {\n                uVar11 = puVar21[0x1e];\n                uVar14 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_001251f0(uVar14,puVar21,uVar11);\n              }\n            }\n          }\n          else {\n            puVar21[0xd] = 0x17ed50;\n          }\n        }\n        puVar21 = (undefined8 *)puVar21[2];\n        if (puVar21 == (undefined8 *)0x0) break;\n      } while( true );\n    }" ({ "{") (do_statement "do {\n        if (puVar21[0xd] == 0) {\n          if ((*(byte *)(plVar17 + 9) & 0x10) != 0) goto code_r0x0011c493;\n          iVar9 = FUN_00113350(*(undefined4 *)(puVar21 + 4));\n          bVar38 = false;\n          bVar39 = iVar9 == 0;\n          if (bVar39) {\n            pbVar4 = (byte *)*puVar21;\n            lVar16 = 7;\n            pbVar20 = pbVar4;\n            pbVar32 = (byte *)"COMMON";\n            do {\n              if (lVar16 == 0) break;\n              lVar16 = lVar16 + -1;\n              bVar38 = *pbVar20 < *pbVar32;\n              bVar39 = *pbVar20 == *pbVar32;\n              pbVar20 = pbVar20 + (ulong)bVar40 * -2 + 1;\n              pbVar32 = pbVar32 + (ulong)bVar40 * -2 + 1;\n            } while (bVar39);\n            if ((!bVar38 && !bVar39) == bVar38) {\n              if (((DAT_0017fac0 & 3) != 2) || (DAT_0017fbc0 != 0)) {\n                lVar16 = DAT_0017f458;\n                if (DAT_0017f458 == 0) {\n                  lVar16 = FUN_00116e20(".bss",0,1);\n                  DAT_0017f458 = lVar16;\n                }\nLAB_0011c659:\n                FUN_00117b90(lVar16 + 0x10,puVar21,0);\n              }\n            }\n            else {\n              if (DAT_0017fc5c == 1) {\n                lVar16 = FUN_00116e20("/DISCARD/",0,1);\n                if ((*(long *)(lVar16 + 0x58) == 0) &&\n                   (((DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0)))) {\n                  uVar11 = FUN_00123030(0);\n                  *(undefined8 *)(lVar16 + 0x58) = uVar11;\n                }\n                goto LAB_0011c659;\n              }\n              if (DAT_0017fc5c == 3) {\n                uVar11 = puVar21[0x1e];\n                uVar14 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_001251f0(uVar14,puVar21,uVar11);\n              }\n              if ((DAT_0017fc78 == 0) && (iVar9 = FUN_001150a0(puVar21,0), iVar9 == 0)) {\n                uVar10 = 0;\n              }\n              else {\n                uVar10 = 0x17e;\n              }\n              lVar16 = FUN_00123c60(puVar21,pbVar4,uVar10);\n              if (lVar16 == 0) {\n                lVar16 = FUN_00116e20(pbVar4,uVar10,1);\n                if ((*(long *)(lVar16 + 0x58) == 0) &&\n                   (((DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0)))) {\n                  uVar11 = FUN_00123030(0);\n                  *(undefined8 *)(lVar16 + 0x58) = uVar11;\n                }\n                FUN_00117b90(lVar16 + 0x10,puVar21,0);\n              }\n              if (DAT_0017fc5c == 2) {\n                uVar11 = puVar21[0x1e];\n                uVar14 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_001251f0(uVar14,puVar21,uVar11);\n              }\n            }\n          }\n          else {\n            puVar21[0xd] = 0x17ed50;\n          }\n        }\n        puVar21 = (undefined8 *)puVar21[2];\n        if (puVar21 == (undefined8 *)0x0) break;\n      } while( true );" (do "do") (compound_statement "{\n        if (puVar21[0xd] == 0) {\n          if ((*(byte *)(plVar17 + 9) & 0x10) != 0) goto code_r0x0011c493;\n          iVar9 = FUN_00113350(*(undefined4 *)(puVar21 + 4));\n          bVar38 = false;\n          bVar39 = iVar9 == 0;\n          if (bVar39) {\n            pbVar4 = (byte *)*puVar21;\n            lVar16 = 7;\n            pbVar20 = pbVar4;\n            pbVar32 = (byte *)"COMMON";\n            do {\n              if (lVar16 == 0) break;\n              lVar16 = lVar16 + -1;\n              bVar38 = *pbVar20 < *pbVar32;\n              bVar39 = *pbVar20 == *pbVar32;\n              pbVar20 = pbVar20 + (ulong)bVar40 * -2 + 1;\n              pbVar32 = pbVar32 + (ulong)bVar40 * -2 + 1;\n            } while (bVar39);\n            if ((!bVar38 && !bVar39) == bVar38) {\n              if (((DAT_0017fac0 & 3) != 2) || (DAT_0017fbc0 != 0)) {\n                lVar16 = DAT_0017f458;\n                if (DAT_0017f458 == 0) {\n                  lVar16 = FUN_00116e20(".bss",0,1);\n                  DAT_0017f458 = lVar16;\n                }\nLAB_0011c659:\n                FUN_00117b90(lVar16 + 0x10,puVar21,0);\n              }\n            }\n            else {\n              if (DAT_0017fc5c == 1) {\n                lVar16 = FUN_00116e20("/DISCARD/",0,1);\n                if ((*(long *)(lVar16 + 0x58) == 0) &&\n                   (((DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0)))) {\n                  uVar11 = FUN_00123030(0);\n                  *(undefined8 *)(lVar16 + 0x58) = uVar11;\n                }\n                goto LAB_0011c659;\n              }\n              if (DAT_0017fc5c == 3) {\n                uVar11 = puVar21[0x1e];\n                uVar14 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_001251f0(uVar14,puVar21,uVar11);\n              }\n              if ((DAT_0017fc78 == 0) && (iVar9 = FUN_001150a0(puVar21,0), iVar9 == 0)) {\n                uVar10 = 0;\n              }\n              else {\n                uVar10 = 0x17e;\n              }\n              lVar16 = FUN_00123c60(puVar21,pbVar4,uVar10);\n              if (lVar16 == 0) {\n                lVar16 = FUN_00116e20(pbVar4,uVar10,1);\n                if ((*(long *)(lVar16 + 0x58) == 0) &&\n                   (((DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0)))) {\n                  uVar11 = FUN_00123030(0);\n                  *(undefined8 *)(lVar16 + 0x58) = uVar11;\n                }\n                FUN_00117b90(lVar16 + 0x10,puVar21,0);\n              }\n              if (DAT_0017fc5c == 2) {\n                uVar11 = puVar21[0x1e];\n                uVar14 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_001251f0(uVar14,puVar21,uVar11);\n              }\n            }\n          }\n          else {\n            puVar21[0xd] = 0x17ed50;\n          }\n        }\n        puVar21 = (undefined8 *)puVar21[2];\n        if (puVar21 == (undefined8 *)0x0) break;\n      }" ({ "{") (if_statement "if (puVar21[0xd] == 0) {\n          if ((*(byte *)(plVar17 + 9) & 0x10) != 0) goto code_r0x0011c493;\n          iVar9 = FUN_00113350(*(undefined4 *)(puVar21 + 4));\n          bVar38 = false;\n          bVar39 = iVar9 == 0;\n          if (bVar39) {\n            pbVar4 = (byte *)*puVar21;\n            lVar16 = 7;\n            pbVar20 = pbVar4;\n            pbVar32 = (byte *)"COMMON";\n            do {\n              if (lVar16 == 0) break;\n              lVar16 = lVar16 + -1;\n              bVar38 = *pbVar20 < *pbVar32;\n              bVar39 = *pbVar20 == *pbVar32;\n              pbVar20 = pbVar20 + (ulong)bVar40 * -2 + 1;\n              pbVar32 = pbVar32 + (ulong)bVar40 * -2 + 1;\n            } while (bVar39);\n            if ((!bVar38 && !bVar39) == bVar38) {\n              if (((DAT_0017fac0 & 3) != 2) || (DAT_0017fbc0 != 0)) {\n                lVar16 = DAT_0017f458;\n                if (DAT_0017f458 == 0) {\n                  lVar16 = FUN_00116e20(".bss",0,1);\n                  DAT_0017f458 = lVar16;\n                }\nLAB_0011c659:\n                FUN_00117b90(lVar16 + 0x10,puVar21,0);\n              }\n            }\n            else {\n              if (DAT_0017fc5c == 1) {\n                lVar16 = FUN_00116e20("/DISCARD/",0,1);\n                if ((*(long *)(lVar16 + 0x58) == 0) &&\n                   (((DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0)))) {\n                  uVar11 = FUN_00123030(0);\n                  *(undefined8 *)(lVar16 + 0x58) = uVar11;\n                }\n                goto LAB_0011c659;\n              }\n              if (DAT_0017fc5c == 3) {\n                uVar11 = puVar21[0x1e];\n                uVar14 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_001251f0(uVar14,puVar21,uVar11);\n              }\n              if ((DAT_0017fc78 == 0) && (iVar9 = FUN_001150a0(puVar21,0), iVar9 == 0)) {\n                uVar10 = 0;\n              }\n              else {\n                uVar10 = 0x17e;\n              }\n              lVar16 = FUN_00123c60(puVar21,pbVar4,uVar10);\n              if (lVar16 == 0) {\n                lVar16 = FUN_00116e20(pbVar4,uVar10,1);\n                if ((*(long *)(lVar16 + 0x58) == 0) &&\n                   (((DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0)))) {\n                  uVar11 = FUN_00123030(0);\n                  *(undefined8 *)(lVar16 + 0x58) = uVar11;\n                }\n                FUN_00117b90(lVar16 + 0x10,puVar21,0);\n              }\n              if (DAT_0017fc5c == 2) {\n                uVar11 = puVar21[0x1e];\n                uVar14 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_001251f0(uVar14,puVar21,uVar11);\n              }\n            }\n          }\n          else {\n            puVar21[0xd] = 0x17ed50;\n          }\n        }" (if "if") (parenthesized_expression "(puVar21[0xd] == 0)" (( "(") (binary_expression "puVar21[0xd] == 0" (subscript_expression "puVar21[0xd]" (identifier "puVar21") ([ "[") (number_literal "0xd") (] "]")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          if ((*(byte *)(plVar17 + 9) & 0x10) != 0) goto code_r0x0011c493;\n          iVar9 = FUN_00113350(*(undefined4 *)(puVar21 + 4));\n          bVar38 = false;\n          bVar39 = iVar9 == 0;\n          if (bVar39) {\n            pbVar4 = (byte *)*puVar21;\n            lVar16 = 7;\n            pbVar20 = pbVar4;\n            pbVar32 = (byte *)"COMMON";\n            do {\n              if (lVar16 == 0) break;\n              lVar16 = lVar16 + -1;\n              bVar38 = *pbVar20 < *pbVar32;\n              bVar39 = *pbVar20 == *pbVar32;\n              pbVar20 = pbVar20 + (ulong)bVar40 * -2 + 1;\n              pbVar32 = pbVar32 + (ulong)bVar40 * -2 + 1;\n            } while (bVar39);\n            if ((!bVar38 && !bVar39) == bVar38) {\n              if (((DAT_0017fac0 & 3) != 2) || (DAT_0017fbc0 != 0)) {\n                lVar16 = DAT_0017f458;\n                if (DAT_0017f458 == 0) {\n                  lVar16 = FUN_00116e20(".bss",0,1);\n                  DAT_0017f458 = lVar16;\n                }\nLAB_0011c659:\n                FUN_00117b90(lVar16 + 0x10,puVar21,0);\n              }\n            }\n            else {\n              if (DAT_0017fc5c == 1) {\n                lVar16 = FUN_00116e20("/DISCARD/",0,1);\n                if ((*(long *)(lVar16 + 0x58) == 0) &&\n                   (((DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0)))) {\n                  uVar11 = FUN_00123030(0);\n                  *(undefined8 *)(lVar16 + 0x58) = uVar11;\n                }\n                goto LAB_0011c659;\n              }\n              if (DAT_0017fc5c == 3) {\n                uVar11 = puVar21[0x1e];\n                uVar14 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_001251f0(uVar14,puVar21,uVar11);\n              }\n              if ((DAT_0017fc78 == 0) && (iVar9 = FUN_001150a0(puVar21,0), iVar9 == 0)) {\n                uVar10 = 0;\n              }\n              else {\n                uVar10 = 0x17e;\n              }\n              lVar16 = FUN_00123c60(puVar21,pbVar4,uVar10);\n              if (lVar16 == 0) {\n                lVar16 = FUN_00116e20(pbVar4,uVar10,1);\n                if ((*(long *)(lVar16 + 0x58) == 0) &&\n                   (((DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0)))) {\n                  uVar11 = FUN_00123030(0);\n                  *(undefined8 *)(lVar16 + 0x58) = uVar11;\n                }\n                FUN_00117b90(lVar16 + 0x10,puVar21,0);\n              }\n              if (DAT_0017fc5c == 2) {\n                uVar11 = puVar21[0x1e];\n                uVar14 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_001251f0(uVar14,puVar21,uVar11);\n              }\n            }\n          }\n          else {\n            puVar21[0xd] = 0x17ed50;\n          }\n        }" ({ "{") (if_statement "if ((*(byte *)(plVar17 + 9) & 0x10) != 0) goto code_r0x0011c493;" (if "if") (parenthesized_expression "((*(byte *)(plVar17 + 9) & 0x10) != 0)" (( "(") (binary_expression "(*(byte *)(plVar17 + 9) & 0x10) != 0" (parenthesized_expression "(*(byte *)(plVar17 + 9) & 0x10)" (( "(") (binary_expression "*(byte *)(plVar17 + 9) & 0x10" (pointer_expression "*(byte *)(plVar17 + 9)" (* "*") (cast_expression "(byte *)(plVar17 + 9)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(plVar17 + 9)" (( "(") (binary_expression "plVar17 + 9" (identifier "plVar17") (+ "+") (number_literal "9")) () ")")))) (& "&") (number_literal "0x10")) () ")")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto code_r0x0011c493;" (goto "goto") (statement_identifier "code_r0x0011c493") (; ";"))) (expression_statement "iVar9 = FUN_00113350(*(undefined4 *)(puVar21 + 4));" (assignment_expression "iVar9 = FUN_00113350(*(undefined4 *)(puVar21 + 4))" (identifier "iVar9") (= "=") (call_expression "FUN_00113350(*(undefined4 *)(puVar21 + 4))" (identifier "FUN_00113350") (argument_list "(*(undefined4 *)(puVar21 + 4))" (( "(") (pointer_expression "*(undefined4 *)(puVar21 + 4)" (* "*") (cast_expression "(undefined4 *)(puVar21 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + 4)" (( "(") (binary_expression "puVar21 + 4" (identifier "puVar21") (+ "+") (number_literal "4")) () ")")))) () ")")))) (; ";")) (expression_statement "bVar38 = false;" (assignment_expression "bVar38 = false" (identifier "bVar38") (= "=") (false "false")) (; ";")) (expression_statement "bVar39 = iVar9 == 0;" (assignment_expression "bVar39 = iVar9 == 0" (identifier "bVar39") (= "=") (binary_expression "iVar9 == 0" (identifier "iVar9") (== "==") (number_literal "0"))) (; ";")) (if_statement "if (bVar39) {\n            pbVar4 = (byte *)*puVar21;\n            lVar16 = 7;\n            pbVar20 = pbVar4;\n            pbVar32 = (byte *)"COMMON";\n            do {\n              if (lVar16 == 0) break;\n              lVar16 = lVar16 + -1;\n              bVar38 = *pbVar20 < *pbVar32;\n              bVar39 = *pbVar20 == *pbVar32;\n              pbVar20 = pbVar20 + (ulong)bVar40 * -2 + 1;\n              pbVar32 = pbVar32 + (ulong)bVar40 * -2 + 1;\n            } while (bVar39);\n            if ((!bVar38 && !bVar39) == bVar38) {\n              if (((DAT_0017fac0 & 3) != 2) || (DAT_0017fbc0 != 0)) {\n                lVar16 = DAT_0017f458;\n                if (DAT_0017f458 == 0) {\n                  lVar16 = FUN_00116e20(".bss",0,1);\n                  DAT_0017f458 = lVar16;\n                }\nLAB_0011c659:\n                FUN_00117b90(lVar16 + 0x10,puVar21,0);\n              }\n            }\n            else {\n              if (DAT_0017fc5c == 1) {\n                lVar16 = FUN_00116e20("/DISCARD/",0,1);\n                if ((*(long *)(lVar16 + 0x58) == 0) &&\n                   (((DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0)))) {\n                  uVar11 = FUN_00123030(0);\n                  *(undefined8 *)(lVar16 + 0x58) = uVar11;\n                }\n                goto LAB_0011c659;\n              }\n              if (DAT_0017fc5c == 3) {\n                uVar11 = puVar21[0x1e];\n                uVar14 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_001251f0(uVar14,puVar21,uVar11);\n              }\n              if ((DAT_0017fc78 == 0) && (iVar9 = FUN_001150a0(puVar21,0), iVar9 == 0)) {\n                uVar10 = 0;\n              }\n              else {\n                uVar10 = 0x17e;\n              }\n              lVar16 = FUN_00123c60(puVar21,pbVar4,uVar10);\n              if (lVar16 == 0) {\n                lVar16 = FUN_00116e20(pbVar4,uVar10,1);\n                if ((*(long *)(lVar16 + 0x58) == 0) &&\n                   (((DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0)))) {\n                  uVar11 = FUN_00123030(0);\n                  *(undefined8 *)(lVar16 + 0x58) = uVar11;\n                }\n                FUN_00117b90(lVar16 + 0x10,puVar21,0);\n              }\n              if (DAT_0017fc5c == 2) {\n                uVar11 = puVar21[0x1e];\n                uVar14 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_001251f0(uVar14,puVar21,uVar11);\n              }\n            }\n          }\n          else {\n            puVar21[0xd] = 0x17ed50;\n          }" (if "if") (parenthesized_expression "(bVar39)" (( "(") (identifier "bVar39") () ")")) (compound_statement "{\n            pbVar4 = (byte *)*puVar21;\n            lVar16 = 7;\n            pbVar20 = pbVar4;\n            pbVar32 = (byte *)"COMMON";\n            do {\n              if (lVar16 == 0) break;\n              lVar16 = lVar16 + -1;\n              bVar38 = *pbVar20 < *pbVar32;\n              bVar39 = *pbVar20 == *pbVar32;\n              pbVar20 = pbVar20 + (ulong)bVar40 * -2 + 1;\n              pbVar32 = pbVar32 + (ulong)bVar40 * -2 + 1;\n            } while (bVar39);\n            if ((!bVar38 && !bVar39) == bVar38) {\n              if (((DAT_0017fac0 & 3) != 2) || (DAT_0017fbc0 != 0)) {\n                lVar16 = DAT_0017f458;\n                if (DAT_0017f458 == 0) {\n                  lVar16 = FUN_00116e20(".bss",0,1);\n                  DAT_0017f458 = lVar16;\n                }\nLAB_0011c659:\n                FUN_00117b90(lVar16 + 0x10,puVar21,0);\n              }\n            }\n            else {\n              if (DAT_0017fc5c == 1) {\n                lVar16 = FUN_00116e20("/DISCARD/",0,1);\n                if ((*(long *)(lVar16 + 0x58) == 0) &&\n                   (((DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0)))) {\n                  uVar11 = FUN_00123030(0);\n                  *(undefined8 *)(lVar16 + 0x58) = uVar11;\n                }\n                goto LAB_0011c659;\n              }\n              if (DAT_0017fc5c == 3) {\n                uVar11 = puVar21[0x1e];\n                uVar14 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_001251f0(uVar14,puVar21,uVar11);\n              }\n              if ((DAT_0017fc78 == 0) && (iVar9 = FUN_001150a0(puVar21,0), iVar9 == 0)) {\n                uVar10 = 0;\n              }\n              else {\n                uVar10 = 0x17e;\n              }\n              lVar16 = FUN_00123c60(puVar21,pbVar4,uVar10);\n              if (lVar16 == 0) {\n                lVar16 = FUN_00116e20(pbVar4,uVar10,1);\n                if ((*(long *)(lVar16 + 0x58) == 0) &&\n                   (((DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0)))) {\n                  uVar11 = FUN_00123030(0);\n                  *(undefined8 *)(lVar16 + 0x58) = uVar11;\n                }\n                FUN_00117b90(lVar16 + 0x10,puVar21,0);\n              }\n              if (DAT_0017fc5c == 2) {\n                uVar11 = puVar21[0x1e];\n                uVar14 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_001251f0(uVar14,puVar21,uVar11);\n              }\n            }\n          }" ({ "{") (expression_statement "pbVar4 = (byte *)*puVar21;" (assignment_expression "pbVar4 = (byte *)*puVar21" (identifier "pbVar4") (= "=") (cast_expression "(byte *)*puVar21" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar21" (* "*") (identifier "puVar21")))) (; ";")) (expression_statement "lVar16 = 7;" (assignment_expression "lVar16 = 7" (identifier "lVar16") (= "=") (number_literal "7")) (; ";")) (expression_statement "pbVar20 = pbVar4;" (assignment_expression "pbVar20 = pbVar4" (identifier "pbVar20") (= "=") (identifier "pbVar4")) (; ";")) (expression_statement "pbVar32 = (byte *)"COMMON";" (assignment_expression "pbVar32 = (byte *)"COMMON"" (identifier "pbVar32") (= "=") (cast_expression "(byte *)"COMMON"" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal ""COMMON"" (" """) (string_content "COMMON") (" """)))) (; ";")) (do_statement "do {\n              if (lVar16 == 0) break;\n              lVar16 = lVar16 + -1;\n              bVar38 = *pbVar20 < *pbVar32;\n              bVar39 = *pbVar20 == *pbVar32;\n              pbVar20 = pbVar20 + (ulong)bVar40 * -2 + 1;\n              pbVar32 = pbVar32 + (ulong)bVar40 * -2 + 1;\n            } while (bVar39);" (do "do") (compound_statement "{\n              if (lVar16 == 0) break;\n              lVar16 = lVar16 + -1;\n              bVar38 = *pbVar20 < *pbVar32;\n              bVar39 = *pbVar20 == *pbVar32;\n              pbVar20 = pbVar20 + (ulong)bVar40 * -2 + 1;\n              pbVar32 = pbVar32 + (ulong)bVar40 * -2 + 1;\n            }" ({ "{") (if_statement "if (lVar16 == 0) break;" (if "if") (parenthesized_expression "(lVar16 == 0)" (( "(") (binary_expression "lVar16 == 0" (identifier "lVar16") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "lVar16 = lVar16 + -1;" (assignment_expression "lVar16 = lVar16 + -1" (identifier "lVar16") (= "=") (binary_expression "lVar16 + -1" (identifier "lVar16") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar38 = *pbVar20 < *pbVar32;" (assignment_expression "bVar38 = *pbVar20 < *pbVar32" (identifier "bVar38") (= "=") (binary_expression "*pbVar20 < *pbVar32" (pointer_expression "*pbVar20" (* "*") (identifier "pbVar20")) (< "<") (pointer_expression "*pbVar32" (* "*") (identifier "pbVar32")))) (; ";")) (expression_statement "bVar39 = *pbVar20 == *pbVar32;" (assignment_expression "bVar39 = *pbVar20 == *pbVar32" (identifier "bVar39") (= "=") (binary_expression "*pbVar20 == *pbVar32" (pointer_expression "*pbVar20" (* "*") (identifier "pbVar20")) (== "==") (pointer_expression "*pbVar32" (* "*") (identifier "pbVar32")))) (; ";")) (expression_statement "pbVar20 = pbVar20 + (ulong)bVar40 * -2 + 1;" (assignment_expression "pbVar20 = pbVar20 + (ulong)bVar40 * -2 + 1" (identifier "pbVar20") (= "=") (binary_expression "pbVar20 + (ulong)bVar40 * -2 + 1" (binary_expression "pbVar20 + (ulong)bVar40 * -2" (identifier "pbVar20") (+ "+") (binary_expression "(ulong)bVar40 * -2" (cast_expression "(ulong)bVar40" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar40")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar32 = pbVar32 + (ulong)bVar40 * -2 + 1;" (assignment_expression "pbVar32 = pbVar32 + (ulong)bVar40 * -2 + 1" (identifier "pbVar32") (= "=") (binary_expression "pbVar32 + (ulong)bVar40 * -2 + 1" (binary_expression "pbVar32 + (ulong)bVar40 * -2" (identifier "pbVar32") (+ "+") (binary_expression "(ulong)bVar40 * -2" (cast_expression "(ulong)bVar40" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar40")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar39)" (( "(") (identifier "bVar39") () ")")) (; ";")) (if_statement "if ((!bVar38 && !bVar39) == bVar38) {\n              if (((DAT_0017fac0 & 3) != 2) || (DAT_0017fbc0 != 0)) {\n                lVar16 = DAT_0017f458;\n                if (DAT_0017f458 == 0) {\n                  lVar16 = FUN_00116e20(".bss",0,1);\n                  DAT_0017f458 = lVar16;\n                }\nLAB_0011c659:\n                FUN_00117b90(lVar16 + 0x10,puVar21,0);\n              }\n            }\n            else {\n              if (DAT_0017fc5c == 1) {\n                lVar16 = FUN_00116e20("/DISCARD/",0,1);\n                if ((*(long *)(lVar16 + 0x58) == 0) &&\n                   (((DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0)))) {\n                  uVar11 = FUN_00123030(0);\n                  *(undefined8 *)(lVar16 + 0x58) = uVar11;\n                }\n                goto LAB_0011c659;\n              }\n              if (DAT_0017fc5c == 3) {\n                uVar11 = puVar21[0x1e];\n                uVar14 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_001251f0(uVar14,puVar21,uVar11);\n              }\n              if ((DAT_0017fc78 == 0) && (iVar9 = FUN_001150a0(puVar21,0), iVar9 == 0)) {\n                uVar10 = 0;\n              }\n              else {\n                uVar10 = 0x17e;\n              }\n              lVar16 = FUN_00123c60(puVar21,pbVar4,uVar10);\n              if (lVar16 == 0) {\n                lVar16 = FUN_00116e20(pbVar4,uVar10,1);\n                if ((*(long *)(lVar16 + 0x58) == 0) &&\n                   (((DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0)))) {\n                  uVar11 = FUN_00123030(0);\n                  *(undefined8 *)(lVar16 + 0x58) = uVar11;\n                }\n                FUN_00117b90(lVar16 + 0x10,puVar21,0);\n              }\n              if (DAT_0017fc5c == 2) {\n                uVar11 = puVar21[0x1e];\n                uVar14 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_001251f0(uVar14,puVar21,uVar11);\n              }\n            }" (if "if") (parenthesized_expression "((!bVar38 && !bVar39) == bVar38)" (( "(") (binary_expression "(!bVar38 && !bVar39) == bVar38" (parenthesized_expression "(!bVar38 && !bVar39)" (( "(") (binary_expression "!bVar38 && !bVar39" (unary_expression "!bVar38" (! "!") (identifier "bVar38")) (&& "&&") (unary_expression "!bVar39" (! "!") (identifier "bVar39"))) () ")")) (== "==") (identifier "bVar38")) () ")")) (compound_statement "{\n              if (((DAT_0017fac0 & 3) != 2) || (DAT_0017fbc0 != 0)) {\n                lVar16 = DAT_0017f458;\n                if (DAT_0017f458 == 0) {\n                  lVar16 = FUN_00116e20(".bss",0,1);\n                  DAT_0017f458 = lVar16;\n                }\nLAB_0011c659:\n                FUN_00117b90(lVar16 + 0x10,puVar21,0);\n              }\n            }" ({ "{") (if_statement "if (((DAT_0017fac0 & 3) != 2) || (DAT_0017fbc0 != 0)) {\n                lVar16 = DAT_0017f458;\n                if (DAT_0017f458 == 0) {\n                  lVar16 = FUN_00116e20(".bss",0,1);\n                  DAT_0017f458 = lVar16;\n                }\nLAB_0011c659:\n                FUN_00117b90(lVar16 + 0x10,puVar21,0);\n              }" (if "if") (parenthesized_expression "(((DAT_0017fac0 & 3) != 2) || (DAT_0017fbc0 != 0))" (( "(") (binary_expression "((DAT_0017fac0 & 3) != 2) || (DAT_0017fbc0 != 0)" (parenthesized_expression "((DAT_0017fac0 & 3) != 2)" (( "(") (binary_expression "(DAT_0017fac0 & 3) != 2" (parenthesized_expression "(DAT_0017fac0 & 3)" (( "(") (binary_expression "DAT_0017fac0 & 3" (identifier "DAT_0017fac0") (& "&") (number_literal "3")) () ")")) (!= "!=") (number_literal "2")) () ")")) (|| "||") (parenthesized_expression "(DAT_0017fbc0 != 0)" (( "(") (binary_expression "DAT_0017fbc0 != 0" (identifier "DAT_0017fbc0") (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n                lVar16 = DAT_0017f458;\n                if (DAT_0017f458 == 0) {\n                  lVar16 = FUN_00116e20(".bss",0,1);\n                  DAT_0017f458 = lVar16;\n                }\nLAB_0011c659:\n                FUN_00117b90(lVar16 + 0x10,puVar21,0);\n              }" ({ "{") (expression_statement "lVar16 = DAT_0017f458;" (assignment_expression "lVar16 = DAT_0017f458" (identifier "lVar16") (= "=") (identifier "DAT_0017f458")) (; ";")) (if_statement "if (DAT_0017f458 == 0) {\n                  lVar16 = FUN_00116e20(".bss",0,1);\n                  DAT_0017f458 = lVar16;\n                }" (if "if") (parenthesized_expression "(DAT_0017f458 == 0)" (( "(") (binary_expression "DAT_0017f458 == 0" (identifier "DAT_0017f458") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                  lVar16 = FUN_00116e20(".bss",0,1);\n                  DAT_0017f458 = lVar16;\n                }" ({ "{") (expression_statement "lVar16 = FUN_00116e20(".bss",0,1);" (assignment_expression "lVar16 = FUN_00116e20(".bss",0,1)" (identifier "lVar16") (= "=") (call_expression "FUN_00116e20(".bss",0,1)" (identifier "FUN_00116e20") (argument_list "(".bss",0,1)" (( "(") (string_literal "".bss"" (" """) (string_content ".bss") (" """)) (, ",") (number_literal "0") (, ",") (number_literal "1") () ")")))) (; ";")) (expression_statement "DAT_0017f458 = lVar16;" (assignment_expression "DAT_0017f458 = lVar16" (identifier "DAT_0017f458") (= "=") (identifier "lVar16")) (; ";")) (} "}"))) (labeled_statement "LAB_0011c659:\n                FUN_00117b90(lVar16 + 0x10,puVar21,0);" (statement_identifier "LAB_0011c659") (: ":") (expression_statement "FUN_00117b90(lVar16 + 0x10,puVar21,0);" (call_expression "FUN_00117b90(lVar16 + 0x10,puVar21,0)" (identifier "FUN_00117b90") (argument_list "(lVar16 + 0x10,puVar21,0)" (( "(") (binary_expression "lVar16 + 0x10" (identifier "lVar16") (+ "+") (number_literal "0x10")) (, ",") (identifier "puVar21") (, ",") (number_literal "0") () ")"))) (; ";"))) (} "}"))) (} "}")) (else_clause "else {\n              if (DAT_0017fc5c == 1) {\n                lVar16 = FUN_00116e20("/DISCARD/",0,1);\n                if ((*(long *)(lVar16 + 0x58) == 0) &&\n                   (((DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0)))) {\n                  uVar11 = FUN_00123030(0);\n                  *(undefined8 *)(lVar16 + 0x58) = uVar11;\n                }\n                goto LAB_0011c659;\n              }\n              if (DAT_0017fc5c == 3) {\n                uVar11 = puVar21[0x1e];\n                uVar14 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_001251f0(uVar14,puVar21,uVar11);\n              }\n              if ((DAT_0017fc78 == 0) && (iVar9 = FUN_001150a0(puVar21,0), iVar9 == 0)) {\n                uVar10 = 0;\n              }\n              else {\n                uVar10 = 0x17e;\n              }\n              lVar16 = FUN_00123c60(puVar21,pbVar4,uVar10);\n              if (lVar16 == 0) {\n                lVar16 = FUN_00116e20(pbVar4,uVar10,1);\n                if ((*(long *)(lVar16 + 0x58) == 0) &&\n                   (((DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0)))) {\n                  uVar11 = FUN_00123030(0);\n                  *(undefined8 *)(lVar16 + 0x58) = uVar11;\n                }\n                FUN_00117b90(lVar16 + 0x10,puVar21,0);\n              }\n              if (DAT_0017fc5c == 2) {\n                uVar11 = puVar21[0x1e];\n                uVar14 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_001251f0(uVar14,puVar21,uVar11);\n              }\n            }" (else "else") (compound_statement "{\n              if (DAT_0017fc5c == 1) {\n                lVar16 = FUN_00116e20("/DISCARD/",0,1);\n                if ((*(long *)(lVar16 + 0x58) == 0) &&\n                   (((DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0)))) {\n                  uVar11 = FUN_00123030(0);\n                  *(undefined8 *)(lVar16 + 0x58) = uVar11;\n                }\n                goto LAB_0011c659;\n              }\n              if (DAT_0017fc5c == 3) {\n                uVar11 = puVar21[0x1e];\n                uVar14 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_001251f0(uVar14,puVar21,uVar11);\n              }\n              if ((DAT_0017fc78 == 0) && (iVar9 = FUN_001150a0(puVar21,0), iVar9 == 0)) {\n                uVar10 = 0;\n              }\n              else {\n                uVar10 = 0x17e;\n              }\n              lVar16 = FUN_00123c60(puVar21,pbVar4,uVar10);\n              if (lVar16 == 0) {\n                lVar16 = FUN_00116e20(pbVar4,uVar10,1);\n                if ((*(long *)(lVar16 + 0x58) == 0) &&\n                   (((DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0)))) {\n                  uVar11 = FUN_00123030(0);\n                  *(undefined8 *)(lVar16 + 0x58) = uVar11;\n                }\n                FUN_00117b90(lVar16 + 0x10,puVar21,0);\n              }\n              if (DAT_0017fc5c == 2) {\n                uVar11 = puVar21[0x1e];\n                uVar14 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_001251f0(uVar14,puVar21,uVar11);\n              }\n            }" ({ "{") (if_statement "if (DAT_0017fc5c == 1) {\n                lVar16 = FUN_00116e20("/DISCARD/",0,1);\n                if ((*(long *)(lVar16 + 0x58) == 0) &&\n                   (((DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0)))) {\n                  uVar11 = FUN_00123030(0);\n                  *(undefined8 *)(lVar16 + 0x58) = uVar11;\n                }\n                goto LAB_0011c659;\n              }" (if "if") (parenthesized_expression "(DAT_0017fc5c == 1)" (( "(") (binary_expression "DAT_0017fc5c == 1" (identifier "DAT_0017fc5c") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n                lVar16 = FUN_00116e20("/DISCARD/",0,1);\n                if ((*(long *)(lVar16 + 0x58) == 0) &&\n                   (((DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0)))) {\n                  uVar11 = FUN_00123030(0);\n                  *(undefined8 *)(lVar16 + 0x58) = uVar11;\n                }\n                goto LAB_0011c659;\n              }" ({ "{") (expression_statement "lVar16 = FUN_00116e20("/DISCARD/",0,1);" (assignment_expression "lVar16 = FUN_00116e20("/DISCARD/",0,1)" (identifier "lVar16") (= "=") (call_expression "FUN_00116e20("/DISCARD/",0,1)" (identifier "FUN_00116e20") (argument_list "("/DISCARD/",0,1)" (( "(") (string_literal ""/DISCARD/"" (" """) (string_content "/DISCARD/") (" """)) (, ",") (number_literal "0") (, ",") (number_literal "1") () ")")))) (; ";")) (if_statement "if ((*(long *)(lVar16 + 0x58) == 0) &&\n                   (((DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0)))) {\n                  uVar11 = FUN_00123030(0);\n                  *(undefined8 *)(lVar16 + 0x58) = uVar11;\n                }" (if "if") (parenthesized_expression "((*(long *)(lVar16 + 0x58) == 0) &&\n                   (((DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0))))" (( "(") (binary_expression "(*(long *)(lVar16 + 0x58) == 0) &&\n                   (((DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0)))" (parenthesized_expression "(*(long *)(lVar16 + 0x58) == 0)" (( "(") (binary_expression "*(long *)(lVar16 + 0x58) == 0" (pointer_expression "*(long *)(lVar16 + 0x58)" (* "*") (cast_expression "(long *)(lVar16 + 0x58)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar16 + 0x58)" (( "(") (binary_expression "lVar16 + 0x58" (identifier "lVar16") (+ "+") (number_literal "0x58")) () ")")))) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(((DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0)))" (( "(") (parenthesized_expression "((DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0))" (( "(") (binary_expression "(DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0)" (binary_expression "(DAT_0017fac0 & 3) == 2" (parenthesized_expression "(DAT_0017fac0 & 3)" (( "(") (binary_expression "DAT_0017fac0 & 3" (identifier "DAT_0017fac0") (& "&") (number_literal "3")) () ")")) (== "==") (number_literal "2")) (|| "||") (parenthesized_expression "((*(byte *)(puVar21 + 4) & 3) == 0)" (( "(") (binary_expression "(*(byte *)(puVar21 + 4) & 3) == 0" (parenthesized_expression "(*(byte *)(puVar21 + 4) & 3)" (( "(") (binary_expression "*(byte *)(puVar21 + 4) & 3" (pointer_expression "*(byte *)(puVar21 + 4)" (* "*") (cast_expression "(byte *)(puVar21 + 4)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + 4)" (( "(") (binary_expression "puVar21 + 4" (identifier "puVar21") (+ "+") (number_literal "4")) () ")")))) (& "&") (number_literal "3")) () ")")) (== "==") (number_literal "0")) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n                  uVar11 = FUN_00123030(0);\n                  *(undefined8 *)(lVar16 + 0x58) = uVar11;\n                }" ({ "{") (expression_statement "uVar11 = FUN_00123030(0);" (assignment_expression "uVar11 = FUN_00123030(0)" (identifier "uVar11") (= "=") (call_expression "FUN_00123030(0)" (identifier "FUN_00123030") (argument_list "(0)" (( "(") (number_literal "0") () ")")))) (; ";")) (expression_statement "*(undefined8 *)(lVar16 + 0x58) = uVar11;" (assignment_expression "*(undefined8 *)(lVar16 + 0x58) = uVar11" (pointer_expression "*(undefined8 *)(lVar16 + 0x58)" (* "*") (cast_expression "(undefined8 *)(lVar16 + 0x58)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar16 + 0x58)" (( "(") (binary_expression "lVar16 + 0x58" (identifier "lVar16") (+ "+") (number_literal "0x58")) () ")")))) (= "=") (identifier "uVar11")) (; ";")) (} "}"))) (goto_statement "goto LAB_0011c659;" (goto "goto") (statement_identifier "LAB_0011c659") (; ";")) (} "}"))) (if_statement "if (DAT_0017fc5c == 3) {\n                uVar11 = puVar21[0x1e];\n                uVar14 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_001251f0(uVar14,puVar21,uVar11);\n              }" (if "if") (parenthesized_expression "(DAT_0017fc5c == 3)" (( "(") (binary_expression "DAT_0017fc5c == 3" (identifier "DAT_0017fc5c") (== "==") (number_literal "3")) () ")")) (compound_statement "{\n                uVar11 = puVar21[0x1e];\n                uVar14 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_001251f0(uVar14,puVar21,uVar11);\n              }" ({ "{") (expression_statement "uVar11 = puVar21[0x1e];" (assignment_expression "uVar11 = puVar21[0x1e]" (identifier "uVar11") (= "=") (subscript_expression "puVar21[0x1e]" (identifier "puVar21") ([ "[") (number_literal "0x1e") (] "]"))) (; ";")) (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_001251f0(uVar14,puVar21,uVar11);" (call_expression "FUN_001251f0(uVar14,puVar21,uVar11)" (identifier "FUN_001251f0") (argument_list "(uVar14,puVar21,uVar11)" (( "(") (identifier "uVar14") (, ",") (identifier "puVar21") (, ",") (identifier "uVar11") () ")"))) (; ";")) (} "}"))) (if_statement "if ((DAT_0017fc78 == 0) && (iVar9 = FUN_001150a0(puVar21,0), iVar9 == 0)) {\n                uVar10 = 0;\n              }\n              else {\n                uVar10 = 0x17e;\n              }" (if "if") (parenthesized_expression "((DAT_0017fc78 == 0) && (iVar9 = FUN_001150a0(puVar21,0), iVar9 == 0))" (( "(") (binary_expression "(DAT_0017fc78 == 0) && (iVar9 = FUN_001150a0(puVar21,0), iVar9 == 0)" (parenthesized_expression "(DAT_0017fc78 == 0)" (( "(") (binary_expression "DAT_0017fc78 == 0" (identifier "DAT_0017fc78") (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(iVar9 = FUN_001150a0(puVar21,0), iVar9 == 0)" (( "(") (comma_expression "iVar9 = FUN_001150a0(puVar21,0), iVar9 == 0" (assignment_expression "iVar9 = FUN_001150a0(puVar21,0)" (identifier "iVar9") (= "=") (call_expression "FUN_001150a0(puVar21,0)" (identifier "FUN_001150a0") (argument_list "(puVar21,0)" (( "(") (identifier "puVar21") (, ",") (number_literal "0") () ")")))) (, ",") (binary_expression "iVar9 == 0" (identifier "iVar9") (== "==") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n                uVar10 = 0;\n              }" ({ "{") (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" (identifier "uVar10") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n                uVar10 = 0x17e;\n              }" (else "else") (compound_statement "{\n                uVar10 = 0x17e;\n              }" ({ "{") (expression_statement "uVar10 = 0x17e;" (assignment_expression "uVar10 = 0x17e" (identifier "uVar10") (= "=") (number_literal "0x17e")) (; ";")) (} "}")))) (expression_statement "lVar16 = FUN_00123c60(puVar21,pbVar4,uVar10);" (assignment_expression "lVar16 = FUN_00123c60(puVar21,pbVar4,uVar10)" (identifier "lVar16") (= "=") (call_expression "FUN_00123c60(puVar21,pbVar4,uVar10)" (identifier "FUN_00123c60") (argument_list "(puVar21,pbVar4,uVar10)" (( "(") (identifier "puVar21") (, ",") (identifier "pbVar4") (, ",") (identifier "uVar10") () ")")))) (; ";")) (if_statement "if (lVar16 == 0) {\n                lVar16 = FUN_00116e20(pbVar4,uVar10,1);\n                if ((*(long *)(lVar16 + 0x58) == 0) &&\n                   (((DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0)))) {\n                  uVar11 = FUN_00123030(0);\n                  *(undefined8 *)(lVar16 + 0x58) = uVar11;\n                }\n                FUN_00117b90(lVar16 + 0x10,puVar21,0);\n              }" (if "if") (parenthesized_expression "(lVar16 == 0)" (( "(") (binary_expression "lVar16 == 0" (identifier "lVar16") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                lVar16 = FUN_00116e20(pbVar4,uVar10,1);\n                if ((*(long *)(lVar16 + 0x58) == 0) &&\n                   (((DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0)))) {\n                  uVar11 = FUN_00123030(0);\n                  *(undefined8 *)(lVar16 + 0x58) = uVar11;\n                }\n                FUN_00117b90(lVar16 + 0x10,puVar21,0);\n              }" ({ "{") (expression_statement "lVar16 = FUN_00116e20(pbVar4,uVar10,1);" (assignment_expression "lVar16 = FUN_00116e20(pbVar4,uVar10,1)" (identifier "lVar16") (= "=") (call_expression "FUN_00116e20(pbVar4,uVar10,1)" (identifier "FUN_00116e20") (argument_list "(pbVar4,uVar10,1)" (( "(") (identifier "pbVar4") (, ",") (identifier "uVar10") (, ",") (number_literal "1") () ")")))) (; ";")) (if_statement "if ((*(long *)(lVar16 + 0x58) == 0) &&\n                   (((DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0)))) {\n                  uVar11 = FUN_00123030(0);\n                  *(undefined8 *)(lVar16 + 0x58) = uVar11;\n                }" (if "if") (parenthesized_expression "((*(long *)(lVar16 + 0x58) == 0) &&\n                   (((DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0))))" (( "(") (binary_expression "(*(long *)(lVar16 + 0x58) == 0) &&\n                   (((DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0)))" (parenthesized_expression "(*(long *)(lVar16 + 0x58) == 0)" (( "(") (binary_expression "*(long *)(lVar16 + 0x58) == 0" (pointer_expression "*(long *)(lVar16 + 0x58)" (* "*") (cast_expression "(long *)(lVar16 + 0x58)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar16 + 0x58)" (( "(") (binary_expression "lVar16 + 0x58" (identifier "lVar16") (+ "+") (number_literal "0x58")) () ")")))) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(((DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0)))" (( "(") (parenthesized_expression "((DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0))" (( "(") (binary_expression "(DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0)" (binary_expression "(DAT_0017fac0 & 3) == 2" (parenthesized_expression "(DAT_0017fac0 & 3)" (( "(") (binary_expression "DAT_0017fac0 & 3" (identifier "DAT_0017fac0") (& "&") (number_literal "3")) () ")")) (== "==") (number_literal "2")) (|| "||") (parenthesized_expression "((*(byte *)(puVar21 + 4) & 3) == 0)" (( "(") (binary_expression "(*(byte *)(puVar21 + 4) & 3) == 0" (parenthesized_expression "(*(byte *)(puVar21 + 4) & 3)" (( "(") (binary_expression "*(byte *)(puVar21 + 4) & 3" (pointer_expression "*(byte *)(puVar21 + 4)" (* "*") (cast_expression "(byte *)(puVar21 + 4)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + 4)" (( "(") (binary_expression "puVar21 + 4" (identifier "puVar21") (+ "+") (number_literal "4")) () ")")))) (& "&") (number_literal "3")) () ")")) (== "==") (number_literal "0")) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n                  uVar11 = FUN_00123030(0);\n                  *(undefined8 *)(lVar16 + 0x58) = uVar11;\n                }" ({ "{") (expression_statement "uVar11 = FUN_00123030(0);" (assignment_expression "uVar11 = FUN_00123030(0)" (identifier "uVar11") (= "=") (call_expression "FUN_00123030(0)" (identifier "FUN_00123030") (argument_list "(0)" (( "(") (number_literal "0") () ")")))) (; ";")) (expression_statement "*(undefined8 *)(lVar16 + 0x58) = uVar11;" (assignment_expression "*(undefined8 *)(lVar16 + 0x58) = uVar11" (pointer_expression "*(undefined8 *)(lVar16 + 0x58)" (* "*") (cast_expression "(undefined8 *)(lVar16 + 0x58)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar16 + 0x58)" (( "(") (binary_expression "lVar16 + 0x58" (identifier "lVar16") (+ "+") (number_literal "0x58")) () ")")))) (= "=") (identifier "uVar11")) (; ";")) (} "}"))) (expression_statement "FUN_00117b90(lVar16 + 0x10,puVar21,0);" (call_expression "FUN_00117b90(lVar16 + 0x10,puVar21,0)" (identifier "FUN_00117b90") (argument_list "(lVar16 + 0x10,puVar21,0)" (( "(") (binary_expression "lVar16 + 0x10" (identifier "lVar16") (+ "+") (number_literal "0x10")) (, ",") (identifier "puVar21") (, ",") (number_literal "0") () ")"))) (; ";")) (} "}"))) (if_statement "if (DAT_0017fc5c == 2) {\n                uVar11 = puVar21[0x1e];\n                uVar14 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_001251f0(uVar14,puVar21,uVar11);\n              }" (if "if") (parenthesized_expression "(DAT_0017fc5c == 2)" (( "(") (binary_expression "DAT_0017fc5c == 2" (identifier "DAT_0017fc5c") (== "==") (number_literal "2")) () ")")) (compound_statement "{\n                uVar11 = puVar21[0x1e];\n                uVar14 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_001251f0(uVar14,puVar21,uVar11);\n              }" ({ "{") (expression_statement "uVar11 = puVar21[0x1e];" (assignment_expression "uVar11 = puVar21[0x1e]" (identifier "uVar11") (= "=") (subscript_expression "puVar21[0x1e]" (identifier "puVar21") ([ "[") (number_literal "0x1e") (] "]"))) (; ";")) (expression_statement "uVar14 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);" (assignment_expression "uVar14 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5)" (identifier "uVar14") (= "=") (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_001251f0(uVar14,puVar21,uVar11);" (call_expression "FUN_001251f0(uVar14,puVar21,uVar11)" (identifier "FUN_001251f0") (argument_list "(uVar14,puVar21,uVar11)" (( "(") (identifier "uVar14") (, ",") (identifier "puVar21") (, ",") (identifier "uVar11") () ")"))) (; ";")) (} "}"))) (} "}")))) (} "}")) (else_clause "else {\n            puVar21[0xd] = 0x17ed50;\n          }" (else "else") (compound_statement "{\n            puVar21[0xd] = 0x17ed50;\n          }" ({ "{") (expression_statement "puVar21[0xd] = 0x17ed50;" (assignment_expression "puVar21[0xd] = 0x17ed50" (subscript_expression "puVar21[0xd]" (identifier "puVar21") ([ "[") (number_literal "0xd") (] "]")) (= "=") (number_literal "0x17ed50")) (; ";")) (} "}")))) (} "}"))) (expression_statement "puVar21 = (undefined8 *)puVar21[2];" (assignment_expression "puVar21 = (undefined8 *)puVar21[2]" (identifier "puVar21") (= "=") (cast_expression "(undefined8 *)puVar21[2]" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar21[2]" (identifier "puVar21") ([ "[") (number_literal "2") (] "]")))) (; ";")) (if_statement "if (puVar21 == (undefined8 *)0x0) break;" (if "if") (parenthesized_expression "(puVar21 == (undefined8 *)0x0)" (( "(") (binary_expression "puVar21 == (undefined8 *)0x0" (identifier "puVar21") (== "==") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (} "}")))) (} "}")))) (expression_statement "bVar35 = DAT_0017fac0 & 3;" (assignment_expression "bVar35 = DAT_0017fac0 & 3" (identifier "bVar35") (= "=") (binary_expression "DAT_0017fac0 & 3" (identifier "DAT_0017fac0") (& "&") (number_literal "3"))) (; ";")) (expression_statement "plVar17 = DAT_0017f358;" (assignment_expression "plVar17 = DAT_0017f358" (identifier "plVar17") (= "=") (identifier "DAT_0017f358")) (; ";")) (expression_statement "plVar18 = DAT_0017fa60;" (assignment_expression "plVar18 = DAT_0017fa60" (identifier "plVar18") (= "=") (identifier "DAT_0017fa60")) (; ";")) (expression_statement "lVar16 = DAT_0017fb10;" (assignment_expression "lVar16 = DAT_0017fb10" (identifier "lVar16") (= "=") (identifier "DAT_0017fb10")) (; ";")) (if_statement "if (bVar35 != 2) {\n    (**(code **)(*(long *)(DAT_0017fb10 + 8) + 0x300))(DAT_0017fb10,&DAT_0017fac0);\n    lVar16 = bfd_get_section_by_name(DAT_0017fb10,".text");\n    if (lVar16 == 0) {\n      bVar35 = DAT_0017fac0 & 3;\n      plVar17 = DAT_0017f358;\n      plVar18 = DAT_0017fa60;\n      lVar16 = DAT_0017fb10;\n    }\n    else {\n      bVar35 = DAT_0017fac0 & 3;\n      if (DAT_0017fc70 == 0) {\n        *(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) & 0xfffffff7;\n        plVar17 = DAT_0017f358;\n        plVar18 = DAT_0017fa60;\n        lVar16 = DAT_0017fb10;\n      }\n      else {\n        *(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) | 8;\n        plVar17 = DAT_0017f358;\n        plVar18 = DAT_0017fa60;\n        lVar16 = DAT_0017fb10;\n      }\n    }\n  }" (if "if") (parenthesized_expression "(bVar35 != 2)" (( "(") (binary_expression "bVar35 != 2" (identifier "bVar35") (!= "!=") (number_literal "2")) () ")")) (compound_statement "{\n    (**(code **)(*(long *)(DAT_0017fb10 + 8) + 0x300))(DAT_0017fb10,&DAT_0017fac0);\n    lVar16 = bfd_get_section_by_name(DAT_0017fb10,".text");\n    if (lVar16 == 0) {\n      bVar35 = DAT_0017fac0 & 3;\n      plVar17 = DAT_0017f358;\n      plVar18 = DAT_0017fa60;\n      lVar16 = DAT_0017fb10;\n    }\n    else {\n      bVar35 = DAT_0017fac0 & 3;\n      if (DAT_0017fc70 == 0) {\n        *(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) & 0xfffffff7;\n        plVar17 = DAT_0017f358;\n        plVar18 = DAT_0017fa60;\n        lVar16 = DAT_0017fb10;\n      }\n      else {\n        *(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) | 8;\n        plVar17 = DAT_0017f358;\n        plVar18 = DAT_0017fa60;\n        lVar16 = DAT_0017fb10;\n      }\n    }\n  }" ({ "{") (expression_statement "(**(code **)(*(long *)(DAT_0017fb10 + 8) + 0x300))(DAT_0017fb10,&DAT_0017fac0);" (call_expression "(**(code **)(*(long *)(DAT_0017fb10 + 8) + 0x300))(DAT_0017fb10,&DAT_0017fac0)" (parenthesized_expression "(**(code **)(*(long *)(DAT_0017fb10 + 8) + 0x300))" (( "(") (pointer_expression "**(code **)(*(long *)(DAT_0017fb10 + 8) + 0x300)" (* "*") (pointer_expression "*(code **)(*(long *)(DAT_0017fb10 + 8) + 0x300)" (* "*") (cast_expression "(code **)(*(long *)(DAT_0017fb10 + 8) + 0x300)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(long *)(DAT_0017fb10 + 8) + 0x300)" (( "(") (binary_expression "*(long *)(DAT_0017fb10 + 8) + 0x300" (pointer_expression "*(long *)(DAT_0017fb10 + 8)" (* "*") (cast_expression "(long *)(DAT_0017fb10 + 8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_0017fb10 + 8)" (( "(") (binary_expression "DAT_0017fb10 + 8" (identifier "DAT_0017fb10") (+ "+") (number_literal "8")) () ")")))) (+ "+") (number_literal "0x300")) () ")"))))) () ")")) (argument_list "(DAT_0017fb10,&DAT_0017fac0)" (( "(") (identifier "DAT_0017fb10") (, ",") (pointer_expression "&DAT_0017fac0" (& "&") (identifier "DAT_0017fac0")) () ")"))) (; ";")) (expression_statement "lVar16 = bfd_get_section_by_name(DAT_0017fb10,".text");" (assignment_expression "lVar16 = bfd_get_section_by_name(DAT_0017fb10,".text")" (identifier "lVar16") (= "=") (call_expression "bfd_get_section_by_name(DAT_0017fb10,".text")" (identifier "bfd_get_section_by_name") (argument_list "(DAT_0017fb10,".text")" (( "(") (identifier "DAT_0017fb10") (, ",") (string_literal "".text"" (" """) (string_content ".text") (" """)) () ")")))) (; ";")) (if_statement "if (lVar16 == 0) {\n      bVar35 = DAT_0017fac0 & 3;\n      plVar17 = DAT_0017f358;\n      plVar18 = DAT_0017fa60;\n      lVar16 = DAT_0017fb10;\n    }\n    else {\n      bVar35 = DAT_0017fac0 & 3;\n      if (DAT_0017fc70 == 0) {\n        *(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) & 0xfffffff7;\n        plVar17 = DAT_0017f358;\n        plVar18 = DAT_0017fa60;\n        lVar16 = DAT_0017fb10;\n      }\n      else {\n        *(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) | 8;\n        plVar17 = DAT_0017f358;\n        plVar18 = DAT_0017fa60;\n        lVar16 = DAT_0017fb10;\n      }\n    }" (if "if") (parenthesized_expression "(lVar16 == 0)" (( "(") (binary_expression "lVar16 == 0" (identifier "lVar16") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      bVar35 = DAT_0017fac0 & 3;\n      plVar17 = DAT_0017f358;\n      plVar18 = DAT_0017fa60;\n      lVar16 = DAT_0017fb10;\n    }" ({ "{") (expression_statement "bVar35 = DAT_0017fac0 & 3;" (assignment_expression "bVar35 = DAT_0017fac0 & 3" (identifier "bVar35") (= "=") (binary_expression "DAT_0017fac0 & 3" (identifier "DAT_0017fac0") (& "&") (number_literal "3"))) (; ";")) (expression_statement "plVar17 = DAT_0017f358;" (assignment_expression "plVar17 = DAT_0017f358" (identifier "plVar17") (= "=") (identifier "DAT_0017f358")) (; ";")) (expression_statement "plVar18 = DAT_0017fa60;" (assignment_expression "plVar18 = DAT_0017fa60" (identifier "plVar18") (= "=") (identifier "DAT_0017fa60")) (; ";")) (expression_statement "lVar16 = DAT_0017fb10;" (assignment_expression "lVar16 = DAT_0017fb10" (identifier "lVar16") (= "=") (identifier "DAT_0017fb10")) (; ";")) (} "}")) (else_clause "else {\n      bVar35 = DAT_0017fac0 & 3;\n      if (DAT_0017fc70 == 0) {\n        *(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) & 0xfffffff7;\n        plVar17 = DAT_0017f358;\n        plVar18 = DAT_0017fa60;\n        lVar16 = DAT_0017fb10;\n      }\n      else {\n        *(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) | 8;\n        plVar17 = DAT_0017f358;\n        plVar18 = DAT_0017fa60;\n        lVar16 = DAT_0017fb10;\n      }\n    }" (else "else") (compound_statement "{\n      bVar35 = DAT_0017fac0 & 3;\n      if (DAT_0017fc70 == 0) {\n        *(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) & 0xfffffff7;\n        plVar17 = DAT_0017f358;\n        plVar18 = DAT_0017fa60;\n        lVar16 = DAT_0017fb10;\n      }\n      else {\n        *(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) | 8;\n        plVar17 = DAT_0017f358;\n        plVar18 = DAT_0017fa60;\n        lVar16 = DAT_0017fb10;\n      }\n    }" ({ "{") (expression_statement "bVar35 = DAT_0017fac0 & 3;" (assignment_expression "bVar35 = DAT_0017fac0 & 3" (identifier "bVar35") (= "=") (binary_expression "DAT_0017fac0 & 3" (identifier "DAT_0017fac0") (& "&") (number_literal "3"))) (; ";")) (if_statement "if (DAT_0017fc70 == 0) {\n        *(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) & 0xfffffff7;\n        plVar17 = DAT_0017f358;\n        plVar18 = DAT_0017fa60;\n        lVar16 = DAT_0017fb10;\n      }\n      else {\n        *(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) | 8;\n        plVar17 = DAT_0017f358;\n        plVar18 = DAT_0017fa60;\n        lVar16 = DAT_0017fb10;\n      }" (if "if") (parenthesized_expression "(DAT_0017fc70 == 0)" (( "(") (binary_expression "DAT_0017fc70 == 0" (identifier "DAT_0017fc70") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        *(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) & 0xfffffff7;\n        plVar17 = DAT_0017f358;\n        plVar18 = DAT_0017fa60;\n        lVar16 = DAT_0017fb10;\n      }" ({ "{") (expression_statement "*(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) & 0xfffffff7;" (assignment_expression "*(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) & 0xfffffff7" (pointer_expression "*(uint *)(lVar16 + 0x20)" (* "*") (cast_expression "(uint *)(lVar16 + 0x20)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar16 + 0x20)" (( "(") (binary_expression "lVar16 + 0x20" (identifier "lVar16") (+ "+") (number_literal "0x20")) () ")")))) (= "=") (binary_expression "*(uint *)(lVar16 + 0x20) & 0xfffffff7" (pointer_expression "*(uint *)(lVar16 + 0x20)" (* "*") (cast_expression "(uint *)(lVar16 + 0x20)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar16 + 0x20)" (( "(") (binary_expression "lVar16 + 0x20" (identifier "lVar16") (+ "+") (number_literal "0x20")) () ")")))) (& "&") (number_literal "0xfffffff7"))) (; ";")) (expression_statement "plVar17 = DAT_0017f358;" (assignment_expression "plVar17 = DAT_0017f358" (identifier "plVar17") (= "=") (identifier "DAT_0017f358")) (; ";")) (expression_statement "plVar18 = DAT_0017fa60;" (assignment_expression "plVar18 = DAT_0017fa60" (identifier "plVar18") (= "=") (identifier "DAT_0017fa60")) (; ";")) (expression_statement "lVar16 = DAT_0017fb10;" (assignment_expression "lVar16 = DAT_0017fb10" (identifier "lVar16") (= "=") (identifier "DAT_0017fb10")) (; ";")) (} "}")) (else_clause "else {\n        *(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) | 8;\n        plVar17 = DAT_0017f358;\n        plVar18 = DAT_0017fa60;\n        lVar16 = DAT_0017fb10;\n      }" (else "else") (compound_statement "{\n        *(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) | 8;\n        plVar17 = DAT_0017f358;\n        plVar18 = DAT_0017fa60;\n        lVar16 = DAT_0017fb10;\n      }" ({ "{") (expression_statement "*(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) | 8;" (assignment_expression "*(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) | 8" (pointer_expression "*(uint *)(lVar16 + 0x20)" (* "*") (cast_expression "(uint *)(lVar16 + 0x20)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar16 + 0x20)" (( "(") (binary_expression "lVar16 + 0x20" (identifier "lVar16") (+ "+") (number_literal "0x20")) () ")")))) (= "=") (binary_expression "*(uint *)(lVar16 + 0x20) | 8" (pointer_expression "*(uint *)(lVar16 + 0x20)" (* "*") (cast_expression "(uint *)(lVar16 + 0x20)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar16 + 0x20)" (( "(") (binary_expression "lVar16 + 0x20" (identifier "lVar16") (+ "+") (number_literal "0x20")) () ")")))) (| "|") (number_literal "8"))) (; ";")) (expression_statement "plVar17 = DAT_0017f358;" (assignment_expression "plVar17 = DAT_0017f358" (identifier "plVar17") (= "=") (identifier "DAT_0017f358")) (; ";")) (expression_statement "plVar18 = DAT_0017fa60;" (assignment_expression "plVar18 = DAT_0017fa60" (identifier "plVar18") (= "=") (identifier "DAT_0017fa60")) (; ";")) (expression_statement "lVar16 = DAT_0017fb10;" (assignment_expression "lVar16 = DAT_0017fb10" (identifier "lVar16") (= "=") (identifier "DAT_0017fb10")) (; ";")) (} "}")))) (} "}")))) (} "}"))) (for_statement "for (; DAT_0017f358 = plVar17, DAT_0017fb10 = lVar16, plVar18 != (long *)0x0;\n      plVar18 = (long *)plVar18[4]) {\n    lVar16 = plVar18[5];\n    if ((((lVar16 != 0) && (plVar18[9] == 0)) && (plVar18[0xc] == 0)) &&\n       ((plVar18[0xb] == 0 && (plVar18[8] == *(long *)(lVar16 + 0x40))))) {\n      plVar18[9] = *(long *)(lVar16 + 0x48);\n    }\n    plVar17 = DAT_0017f358;\n    lVar16 = DAT_0017fb10;\n  }" (for "for") (( "(") (; ";") (comma_expression "DAT_0017f358 = plVar17, DAT_0017fb10 = lVar16, plVar18 != (long *)0x0" (assignment_expression "DAT_0017f358 = plVar17" (identifier "DAT_0017f358") (= "=") (identifier "plVar17")) (, ",") (comma_expression "DAT_0017fb10 = lVar16, plVar18 != (long *)0x0" (assignment_expression "DAT_0017fb10 = lVar16" (identifier "DAT_0017fb10") (= "=") (identifier "lVar16")) (, ",") (binary_expression "plVar18 != (long *)0x0" (identifier "plVar18") (!= "!=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))))) (; ";") (assignment_expression "plVar18 = (long *)plVar18[4]" (identifier "plVar18") (= "=") (cast_expression "(long *)plVar18[4]" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "plVar18[4]" (identifier "plVar18") ([ "[") (number_literal "4") (] "]")))) () ")") (compound_statement "{\n    lVar16 = plVar18[5];\n    if ((((lVar16 != 0) && (plVar18[9] == 0)) && (plVar18[0xc] == 0)) &&\n       ((plVar18[0xb] == 0 && (plVar18[8] == *(long *)(lVar16 + 0x40))))) {\n      plVar18[9] = *(long *)(lVar16 + 0x48);\n    }\n    plVar17 = DAT_0017f358;\n    lVar16 = DAT_0017fb10;\n  }" ({ "{") (expression_statement "lVar16 = plVar18[5];" (assignment_expression "lVar16 = plVar18[5]" (identifier "lVar16") (= "=") (subscript_expression "plVar18[5]" (identifier "plVar18") ([ "[") (number_literal "5") (] "]"))) (; ";")) (if_statement "if ((((lVar16 != 0) && (plVar18[9] == 0)) && (plVar18[0xc] == 0)) &&\n       ((plVar18[0xb] == 0 && (plVar18[8] == *(long *)(lVar16 + 0x40))))) {\n      plVar18[9] = *(long *)(lVar16 + 0x48);\n    }" (if "if") (parenthesized_expression "((((lVar16 != 0) && (plVar18[9] == 0)) && (plVar18[0xc] == 0)) &&\n       ((plVar18[0xb] == 0 && (plVar18[8] == *(long *)(lVar16 + 0x40)))))" (( "(") (binary_expression "(((lVar16 != 0) && (plVar18[9] == 0)) && (plVar18[0xc] == 0)) &&\n       ((plVar18[0xb] == 0 && (plVar18[8] == *(long *)(lVar16 + 0x40))))" (parenthesized_expression "(((lVar16 != 0) && (plVar18[9] == 0)) && (plVar18[0xc] == 0))" (( "(") (binary_expression "((lVar16 != 0) && (plVar18[9] == 0)) && (plVar18[0xc] == 0)" (parenthesized_expression "((lVar16 != 0) && (plVar18[9] == 0))" (( "(") (binary_expression "(lVar16 != 0) && (plVar18[9] == 0)" (parenthesized_expression "(lVar16 != 0)" (( "(") (binary_expression "lVar16 != 0" (identifier "lVar16") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(plVar18[9] == 0)" (( "(") (binary_expression "plVar18[9] == 0" (subscript_expression "plVar18[9]" (identifier "plVar18") ([ "[") (number_literal "9") (] "]")) (== "==") (number_literal "0")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(plVar18[0xc] == 0)" (( "(") (binary_expression "plVar18[0xc] == 0" (subscript_expression "plVar18[0xc]" (identifier "plVar18") ([ "[") (number_literal "0xc") (] "]")) (== "==") (number_literal "0")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "((plVar18[0xb] == 0 && (plVar18[8] == *(long *)(lVar16 + 0x40))))" (( "(") (parenthesized_expression "(plVar18[0xb] == 0 && (plVar18[8] == *(long *)(lVar16 + 0x40)))" (( "(") (binary_expression "plVar18[0xb] == 0 && (plVar18[8] == *(long *)(lVar16 + 0x40))" (binary_expression "plVar18[0xb] == 0" (subscript_expression "plVar18[0xb]" (identifier "plVar18") ([ "[") (number_literal "0xb") (] "]")) (== "==") (number_literal "0")) (&& "&&") (parenthesized_expression "(plVar18[8] == *(long *)(lVar16 + 0x40))" (( "(") (binary_expression "plVar18[8] == *(long *)(lVar16 + 0x40)" (subscript_expression "plVar18[8]" (identifier "plVar18") ([ "[") (number_literal "8") (] "]")) (== "==") (pointer_expression "*(long *)(lVar16 + 0x40)" (* "*") (cast_expression "(long *)(lVar16 + 0x40)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar16 + 0x40)" (( "(") (binary_expression "lVar16 + 0x40" (identifier "lVar16") (+ "+") (number_literal "0x40")) () ")"))))) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n      plVar18[9] = *(long *)(lVar16 + 0x48);\n    }" ({ "{") (expression_statement "plVar18[9] = *(long *)(lVar16 + 0x48);" (assignment_expression "plVar18[9] = *(long *)(lVar16 + 0x48)" (subscript_expression "plVar18[9]" (identifier "plVar18") ([ "[") (number_literal "9") (] "]")) (= "=") (pointer_expression "*(long *)(lVar16 + 0x48)" (* "*") (cast_expression "(long *)(lVar16 + 0x48)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar16 + 0x48)" (( "(") (binary_expression "lVar16 + 0x48" (identifier "lVar16") (+ "+") (number_literal "0x48")) () ")"))))) (; ";")) (} "}"))) (expression_statement "plVar17 = DAT_0017f358;" (assignment_expression "plVar17 = DAT_0017f358" (identifier "plVar17") (= "=") (identifier "DAT_0017f358")) (; ";")) (expression_statement "lVar16 = DAT_0017fb10;" (assignment_expression "lVar16 = DAT_0017fb10" (identifier "lVar16") (= "=") (identifier "DAT_0017fb10")) (; ";")) (} "}"))) (if_statement "if ((DAT_0017fc4c != 0) && (DAT_0017f350 != 0)) {\n    plVar18 = plVar17 + DAT_0017f350;\n    do {\n      lVar15 = *plVar17;\n      if ((*(byte *)(lVar15 + 0x19) & 8) == 0) {\n        puVar21 = (undefined8 *)(*(undefined8 **)(lVar15 + 0x28))[0xd];\n        if (((puVar21 == (undefined8 *)0x0) || (puVar21[0x1e] != lVar16)) ||\n           (iVar9 = strcmp((char *)**(undefined8 **)(lVar15 + 0x28),(char *)*puVar21), iVar9 != 0))\n        {\n          *(undefined1 *)(lVar15 + 0x18) = 1;\n          *(undefined8 *)(lVar15 + 0x28) = 0;\n        }\n      }\n      plVar17 = plVar17 + 1;\n    } while (plVar18 != plVar17);\n  }" (if "if") (parenthesized_expression "((DAT_0017fc4c != 0) && (DAT_0017f350 != 0))" (( "(") (binary_expression "(DAT_0017fc4c != 0) && (DAT_0017f350 != 0)" (parenthesized_expression "(DAT_0017fc4c != 0)" (( "(") (binary_expression "DAT_0017fc4c != 0" (identifier "DAT_0017fc4c") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(DAT_0017f350 != 0)" (( "(") (binary_expression "DAT_0017f350 != 0" (identifier "DAT_0017f350") (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n    plVar18 = plVar17 + DAT_0017f350;\n    do {\n      lVar15 = *plVar17;\n      if ((*(byte *)(lVar15 + 0x19) & 8) == 0) {\n        puVar21 = (undefined8 *)(*(undefined8 **)(lVar15 + 0x28))[0xd];\n        if (((puVar21 == (undefined8 *)0x0) || (puVar21[0x1e] != lVar16)) ||\n           (iVar9 = strcmp((char *)**(undefined8 **)(lVar15 + 0x28),(char *)*puVar21), iVar9 != 0))\n        {\n          *(undefined1 *)(lVar15 + 0x18) = 1;\n          *(undefined8 *)(lVar15 + 0x28) = 0;\n        }\n      }\n      plVar17 = plVar17 + 1;\n    } while (plVar18 != plVar17);\n  }" ({ "{") (expression_statement "plVar18 = plVar17 + DAT_0017f350;" (assignment_expression "plVar18 = plVar17 + DAT_0017f350" (identifier "plVar18") (= "=") (binary_expression "plVar17 + DAT_0017f350" (identifier "plVar17") (+ "+") (identifier "DAT_0017f350"))) (; ";")) (do_statement "do {\n      lVar15 = *plVar17;\n      if ((*(byte *)(lVar15 + 0x19) & 8) == 0) {\n        puVar21 = (undefined8 *)(*(undefined8 **)(lVar15 + 0x28))[0xd];\n        if (((puVar21 == (undefined8 *)0x0) || (puVar21[0x1e] != lVar16)) ||\n           (iVar9 = strcmp((char *)**(undefined8 **)(lVar15 + 0x28),(char *)*puVar21), iVar9 != 0))\n        {\n          *(undefined1 *)(lVar15 + 0x18) = 1;\n          *(undefined8 *)(lVar15 + 0x28) = 0;\n        }\n      }\n      plVar17 = plVar17 + 1;\n    } while (plVar18 != plVar17);" (do "do") (compound_statement "{\n      lVar15 = *plVar17;\n      if ((*(byte *)(lVar15 + 0x19) & 8) == 0) {\n        puVar21 = (undefined8 *)(*(undefined8 **)(lVar15 + 0x28))[0xd];\n        if (((puVar21 == (undefined8 *)0x0) || (puVar21[0x1e] != lVar16)) ||\n           (iVar9 = strcmp((char *)**(undefined8 **)(lVar15 + 0x28),(char *)*puVar21), iVar9 != 0))\n        {\n          *(undefined1 *)(lVar15 + 0x18) = 1;\n          *(undefined8 *)(lVar15 + 0x28) = 0;\n        }\n      }\n      plVar17 = plVar17 + 1;\n    }" ({ "{") (expression_statement "lVar15 = *plVar17;" (assignment_expression "lVar15 = *plVar17" (identifier "lVar15") (= "=") (pointer_expression "*plVar17" (* "*") (identifier "plVar17"))) (; ";")) (if_statement "if ((*(byte *)(lVar15 + 0x19) & 8) == 0) {\n        puVar21 = (undefined8 *)(*(undefined8 **)(lVar15 + 0x28))[0xd];\n        if (((puVar21 == (undefined8 *)0x0) || (puVar21[0x1e] != lVar16)) ||\n           (iVar9 = strcmp((char *)**(undefined8 **)(lVar15 + 0x28),(char *)*puVar21), iVar9 != 0))\n        {\n          *(undefined1 *)(lVar15 + 0x18) = 1;\n          *(undefined8 *)(lVar15 + 0x28) = 0;\n        }\n      }" (if "if") (parenthesized_expression "((*(byte *)(lVar15 + 0x19) & 8) == 0)" (( "(") (binary_expression "(*(byte *)(lVar15 + 0x19) & 8) == 0" (parenthesized_expression "(*(byte *)(lVar15 + 0x19) & 8)" (( "(") (binary_expression "*(byte *)(lVar15 + 0x19) & 8" (pointer_expression "*(byte *)(lVar15 + 0x19)" (* "*") (cast_expression "(byte *)(lVar15 + 0x19)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar15 + 0x19)" (( "(") (binary_expression "lVar15 + 0x19" (identifier "lVar15") (+ "+") (number_literal "0x19")) () ")")))) (& "&") (number_literal "8")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        puVar21 = (undefined8 *)(*(undefined8 **)(lVar15 + 0x28))[0xd];\n        if (((puVar21 == (undefined8 *)0x0) || (puVar21[0x1e] != lVar16)) ||\n           (iVar9 = strcmp((char *)**(undefined8 **)(lVar15 + 0x28),(char *)*puVar21), iVar9 != 0))\n        {\n          *(undefined1 *)(lVar15 + 0x18) = 1;\n          *(undefined8 *)(lVar15 + 0x28) = 0;\n        }\n      }" ({ "{") (expression_statement "puVar21 = (undefined8 *)(*(undefined8 **)(lVar15 + 0x28))[0xd];" (assignment_expression "puVar21 = (undefined8 *)(*(undefined8 **)(lVar15 + 0x28))[0xd]" (identifier "puVar21") (= "=") (cast_expression "(undefined8 *)(*(undefined8 **)(lVar15 + 0x28))[0xd]" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "(*(undefined8 **)(lVar15 + 0x28))[0xd]" (parenthesized_expression "(*(undefined8 **)(lVar15 + 0x28))" (( "(") (pointer_expression "*(undefined8 **)(lVar15 + 0x28)" (* "*") (cast_expression "(undefined8 **)(lVar15 + 0x28)" (( "(") (type_descriptor "undefined8 **" (type_identifier "undefined8") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar15 + 0x28)" (( "(") (binary_expression "lVar15 + 0x28" (identifier "lVar15") (+ "+") (number_literal "0x28")) () ")")))) () ")")) ([ "[") (number_literal "0xd") (] "]")))) (; ";")) (if_statement "if (((puVar21 == (undefined8 *)0x0) || (puVar21[0x1e] != lVar16)) ||\n           (iVar9 = strcmp((char *)**(undefined8 **)(lVar15 + 0x28),(char *)*puVar21), iVar9 != 0))\n        {\n          *(undefined1 *)(lVar15 + 0x18) = 1;\n          *(undefined8 *)(lVar15 + 0x28) = 0;\n        }" (if "if") (parenthesized_expression "(((puVar21 == (undefined8 *)0x0) || (puVar21[0x1e] != lVar16)) ||\n           (iVar9 = strcmp((char *)**(undefined8 **)(lVar15 + 0x28),(char *)*puVar21), iVar9 != 0))" (( "(") (binary_expression "((puVar21 == (undefined8 *)0x0) || (puVar21[0x1e] != lVar16)) ||\n           (iVar9 = strcmp((char *)**(undefined8 **)(lVar15 + 0x28),(char *)*puVar21), iVar9 != 0)" (parenthesized_expression "((puVar21 == (undefined8 *)0x0) || (puVar21[0x1e] != lVar16))" (( "(") (binary_expression "(puVar21 == (undefined8 *)0x0) || (puVar21[0x1e] != lVar16)" (parenthesized_expression "(puVar21 == (undefined8 *)0x0)" (( "(") (binary_expression "puVar21 == (undefined8 *)0x0" (identifier "puVar21") (== "==") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (|| "||") (parenthesized_expression "(puVar21[0x1e] != lVar16)" (( "(") (binary_expression "puVar21[0x1e] != lVar16" (subscript_expression "puVar21[0x1e]" (identifier "puVar21") ([ "[") (number_literal "0x1e") (] "]")) (!= "!=") (identifier "lVar16")) () ")"))) () ")")) (|| "||") (parenthesized_expression "(iVar9 = strcmp((char *)**(undefined8 **)(lVar15 + 0x28),(char *)*puVar21), iVar9 != 0)" (( "(") (comma_expression "iVar9 = strcmp((char *)**(undefined8 **)(lVar15 + 0x28),(char *)*puVar21), iVar9 != 0" (assignment_expression "iVar9 = strcmp((char *)**(undefined8 **)(lVar15 + 0x28),(char *)*puVar21)" (identifier "iVar9") (= "=") (call_expression "strcmp((char *)**(undefined8 **)(lVar15 + 0x28),(char *)*puVar21)" (identifier "strcmp") (argument_list "((char *)**(undefined8 **)(lVar15 + 0x28),(char *)*puVar21)" (( "(") (cast_expression "(char *)**(undefined8 **)(lVar15 + 0x28)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "**(undefined8 **)(lVar15 + 0x28)" (* "*") (pointer_expression "*(undefined8 **)(lVar15 + 0x28)" (* "*") (cast_expression "(undefined8 **)(lVar15 + 0x28)" (( "(") (type_descriptor "undefined8 **" (type_identifier "undefined8") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar15 + 0x28)" (( "(") (binary_expression "lVar15 + 0x28" (identifier "lVar15") (+ "+") (number_literal "0x28")) () ")")))))) (, ",") (cast_expression "(char *)*puVar21" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar21" (* "*") (identifier "puVar21"))) () ")")))) (, ",") (binary_expression "iVar9 != 0" (identifier "iVar9") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n          *(undefined1 *)(lVar15 + 0x18) = 1;\n          *(undefined8 *)(lVar15 + 0x28) = 0;\n        }" ({ "{") (expression_statement "*(undefined1 *)(lVar15 + 0x18) = 1;" (assignment_expression "*(undefined1 *)(lVar15 + 0x18) = 1" (pointer_expression "*(undefined1 *)(lVar15 + 0x18)" (* "*") (cast_expression "(undefined1 *)(lVar15 + 0x18)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar15 + 0x18)" (( "(") (binary_expression "lVar15 + 0x18" (identifier "lVar15") (+ "+") (number_literal "0x18")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "*(undefined8 *)(lVar15 + 0x28) = 0;" (assignment_expression "*(undefined8 *)(lVar15 + 0x28) = 0" (pointer_expression "*(undefined8 *)(lVar15 + 0x28)" (* "*") (cast_expression "(undefined8 *)(lVar15 + 0x28)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar15 + 0x28)" (( "(") (binary_expression "lVar15 + 0x28" (identifier "lVar15") (+ "+") (number_literal "0x28")) () ")")))) (= "=") (number_literal "0")) (; ";")) (} "}"))) (} "}"))) (expression_statement "plVar17 = plVar17 + 1;" (assignment_expression "plVar17 = plVar17 + 1" (identifier "plVar17") (= "=") (binary_expression "plVar17 + 1" (identifier "plVar17") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(plVar18 != plVar17)" (( "(") (binary_expression "plVar18 != plVar17" (identifier "plVar18") (!= "!=") (identifier "plVar17")) () ")")) (; ";")) (} "}"))) (if_statement "if (bVar35 != 2) {\n    for (puVar21 = *(undefined8 **)(DAT_0017fb10 + 0x90); puVar21 != (undefined8 *)0x0;\n        puVar21 = (undefined8 *)puVar21[2]) {\n      pcVar31 = (char *)*puVar21;\n      sVar12 = strlen(pcVar31);\n      pcVar19 = (char *)xmalloc(sVar12 + 10);\n      sprintf(pcVar19,".startof.%s",pcVar31);\n      FUN_00112ee0(pcVar19,puVar21);\n      builtin_strncpy(pcVar19 + 1,".size",5);\n      FUN_00112ee0(pcVar19 + 1,puVar21);\n      free(pcVar19);\n    }\n  }" (if "if") (parenthesized_expression "(bVar35 != 2)" (( "(") (binary_expression "bVar35 != 2" (identifier "bVar35") (!= "!=") (number_literal "2")) () ")")) (compound_statement "{\n    for (puVar21 = *(undefined8 **)(DAT_0017fb10 + 0x90); puVar21 != (undefined8 *)0x0;\n        puVar21 = (undefined8 *)puVar21[2]) {\n      pcVar31 = (char *)*puVar21;\n      sVar12 = strlen(pcVar31);\n      pcVar19 = (char *)xmalloc(sVar12 + 10);\n      sprintf(pcVar19,".startof.%s",pcVar31);\n      FUN_00112ee0(pcVar19,puVar21);\n      builtin_strncpy(pcVar19 + 1,".size",5);\n      FUN_00112ee0(pcVar19 + 1,puVar21);\n      free(pcVar19);\n    }\n  }" ({ "{") (for_statement "for (puVar21 = *(undefined8 **)(DAT_0017fb10 + 0x90); puVar21 != (undefined8 *)0x0;\n        puVar21 = (undefined8 *)puVar21[2]) {\n      pcVar31 = (char *)*puVar21;\n      sVar12 = strlen(pcVar31);\n      pcVar19 = (char *)xmalloc(sVar12 + 10);\n      sprintf(pcVar19,".startof.%s",pcVar31);\n      FUN_00112ee0(pcVar19,puVar21);\n      builtin_strncpy(pcVar19 + 1,".size",5);\n      FUN_00112ee0(pcVar19 + 1,puVar21);\n      free(pcVar19);\n    }" (for "for") (( "(") (assignment_expression "puVar21 = *(undefined8 **)(DAT_0017fb10 + 0x90)" (identifier "puVar21") (= "=") (pointer_expression "*(undefined8 **)(DAT_0017fb10 + 0x90)" (* "*") (cast_expression "(undefined8 **)(DAT_0017fb10 + 0x90)" (( "(") (type_descriptor "undefined8 **" (type_identifier "undefined8") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(DAT_0017fb10 + 0x90)" (( "(") (binary_expression "DAT_0017fb10 + 0x90" (identifier "DAT_0017fb10") (+ "+") (number_literal "0x90")) () ")"))))) (; ";") (binary_expression "puVar21 != (undefined8 *)0x0" (identifier "puVar21") (!= "!=") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";") (assignment_expression "puVar21 = (undefined8 *)puVar21[2]" (identifier "puVar21") (= "=") (cast_expression "(undefined8 *)puVar21[2]" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar21[2]" (identifier "puVar21") ([ "[") (number_literal "2") (] "]")))) () ")") (compound_statement "{\n      pcVar31 = (char *)*puVar21;\n      sVar12 = strlen(pcVar31);\n      pcVar19 = (char *)xmalloc(sVar12 + 10);\n      sprintf(pcVar19,".startof.%s",pcVar31);\n      FUN_00112ee0(pcVar19,puVar21);\n      builtin_strncpy(pcVar19 + 1,".size",5);\n      FUN_00112ee0(pcVar19 + 1,puVar21);\n      free(pcVar19);\n    }" ({ "{") (expression_statement "pcVar31 = (char *)*puVar21;" (assignment_expression "pcVar31 = (char *)*puVar21" (identifier "pcVar31") (= "=") (cast_expression "(char *)*puVar21" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar21" (* "*") (identifier "puVar21")))) (; ";")) (expression_statement "sVar12 = strlen(pcVar31);" (assignment_expression "sVar12 = strlen(pcVar31)" (identifier "sVar12") (= "=") (call_expression "strlen(pcVar31)" (identifier "strlen") (argument_list "(pcVar31)" (( "(") (identifier "pcVar31") () ")")))) (; ";")) (expression_statement "pcVar19 = (char *)xmalloc(sVar12 + 10);" (assignment_expression "pcVar19 = (char *)xmalloc(sVar12 + 10)" (identifier "pcVar19") (= "=") (cast_expression "(char *)xmalloc(sVar12 + 10)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "xmalloc(sVar12 + 10)" (identifier "xmalloc") (argument_list "(sVar12 + 10)" (( "(") (binary_expression "sVar12 + 10" (identifier "sVar12") (+ "+") (number_literal "10")) () ")"))))) (; ";")) (expression_statement "sprintf(pcVar19,".startof.%s",pcVar31);" (call_expression "sprintf(pcVar19,".startof.%s",pcVar31)" (identifier "sprintf") (argument_list "(pcVar19,".startof.%s",pcVar31)" (( "(") (identifier "pcVar19") (, ",") (string_literal "".startof.%s"" (" """) (string_content ".startof.%s") (" """)) (, ",") (identifier "pcVar31") () ")"))) (; ";")) (expression_statement "FUN_00112ee0(pcVar19,puVar21);" (call_expression "FUN_00112ee0(pcVar19,puVar21)" (identifier "FUN_00112ee0") (argument_list "(pcVar19,puVar21)" (( "(") (identifier "pcVar19") (, ",") (identifier "puVar21") () ")"))) (; ";")) (expression_statement "builtin_strncpy(pcVar19 + 1,".size",5);" (call_expression "builtin_strncpy(pcVar19 + 1,".size",5)" (identifier "builtin_strncpy") (argument_list "(pcVar19 + 1,".size",5)" (( "(") (binary_expression "pcVar19 + 1" (identifier "pcVar19") (+ "+") (number_literal "1")) (, ",") (string_literal "".size"" (" """) (string_content ".size") (" """)) (, ",") (number_literal "5") () ")"))) (; ";")) (expression_statement "FUN_00112ee0(pcVar19 + 1,puVar21);" (call_expression "FUN_00112ee0(pcVar19 + 1,puVar21)" (identifier "FUN_00112ee0") (argument_list "(pcVar19 + 1,puVar21)" (( "(") (binary_expression "pcVar19 + 1" (identifier "pcVar19") (+ "+") (number_literal "1")) (, ",") (identifier "puVar21") () ")"))) (; ";")) (expression_statement "free(pcVar19);" (call_expression "free(pcVar19)" (identifier "free") (argument_list "(pcVar19)" (( "(") (identifier "pcVar19") () ")"))) (; ";")) (} "}"))) (} "}"))) (expression_statement "FUN_00123bc0();" (call_expression "FUN_00123bc0()" (identifier "FUN_00123bc0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "plVar17 = (long *)0x0;" (assignment_expression "plVar17 = (long *)0x0" (identifier "plVar17") (= "=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "__ptr = (void *)xmalloc(0x50);" (assignment_expression "__ptr = (void *)xmalloc(0x50)" (identifier "__ptr") (= "=") (cast_expression "(void *)xmalloc(0x50)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "xmalloc(0x50)" (identifier "xmalloc") (argument_list "(0x50)" (( "(") (number_literal "0x50") () ")"))))) (; ";")) (expression_statement "uVar2 = 10;" (assignment_expression "uVar2 = 10" (identifier "uVar2") (= "=") (number_literal "10")) (; ";")) (for_statement "for (puVar21 = DAT_0017fa50; puVar21 != (undefined8 *)0x0; puVar21 = (undefined8 *)*puVar21) {\n    uVar30 = 0;\n    for (plVar18 = DAT_0017fa60; plVar18 != (long *)0x0; plVar18 = (long *)plVar18[4]) {\n      if (-1 < *(int *)((long)plVar18 + 0x84)) {\n        plVar26 = (long *)plVar18[0xe];\n        if (plVar26 == (long *)0x0) {\n          if (((*(int *)((long)plVar18 + 0x8c) != 2) && (plVar18[7] != 0)) &&\n             (((*(byte *)(plVar18[7] + 0x20) & 1) != 0 &&\n              (plVar26 = plVar17, plVar3 = plVar18, puVar21[2] != 3)))) {\n            while( true ) {\n              plVar17 = plVar26;\n              if (plVar26 != (long *)0x0) goto LAB_0011c7fd;\n              plVar3 = (long *)plVar3[4];\n              if (plVar3 == (long *)0x0) break;\n              plVar26 = (long *)plVar3[0xe];\n            }\n            plVar17 = (long *)0x0;\n            dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            FUN_001251f0();\n          }\n        }\n        else {\n          plVar17 = plVar26;\n          plVar3 = (long *)plVar18[7];\n          while (plVar3 != (long *)0x0) {\nLAB_0011c7fd:\n            iVar9 = strcmp((char *)plVar26[1],(char *)puVar21[1]);\n            uVar29 = uVar30;\n            if (iVar9 == 0) {\n              if (uVar2 <= (uint)uVar30) {\n                uVar2 = uVar2 << 1;\n                __ptr = (void *)xrealloc(__ptr,(ulong)uVar2 << 3);\n              }\n              uVar29 = (ulong)((uint)uVar30 + 1);\n              *(long *)((long)__ptr + uVar30 * 8) = plVar18[7];\n              *(undefined4 *)(plVar26 + 2) = 1;\n            }\n            plVar26 = (long *)*plVar26;\n            uVar30 = uVar29;\n            plVar3 = plVar26;\n          }\n        }\n      }\n    }\n    uVar10 = 0;\n    if (puVar21[5] != 0) {\n      uVar10 = FUN_00123800(puVar21[5],0,"phdr flags");\n    }\n    lVar16 = puVar21[4];\n    uVar11 = 0;\n    if (lVar16 != 0) {\n      uVar11 = FUN_00123800(lVar16,0,"phdr load address");\n      lVar16 = puVar21[4];\n    }\n    iVar9 = bfd_record_phdr(DAT_0017fb10,puVar21[2],puVar21[5] != 0,uVar10,lVar16 != 0,uVar11,\n                            *(undefined4 *)(puVar21 + 3),*(undefined4 *)((long)puVar21 + 0x1c),\n                            uVar30,__ptr);\n    if (iVar9 == 0) {\n      dcgettext(0,"%F%P: bfd_record_phdr failed: %E\n",5);\n      FUN_001251f0();\n    }\n  }" (for "for") (( "(") (assignment_expression "puVar21 = DAT_0017fa50" (identifier "puVar21") (= "=") (identifier "DAT_0017fa50")) (; ";") (binary_expression "puVar21 != (undefined8 *)0x0" (identifier "puVar21") (!= "!=") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";") (assignment_expression "puVar21 = (undefined8 *)*puVar21" (identifier "puVar21") (= "=") (cast_expression "(undefined8 *)*puVar21" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar21" (* "*") (identifier "puVar21")))) () ")") (compound_statement "{\n    uVar30 = 0;\n    for (plVar18 = DAT_0017fa60; plVar18 != (long *)0x0; plVar18 = (long *)plVar18[4]) {\n      if (-1 < *(int *)((long)plVar18 + 0x84)) {\n        plVar26 = (long *)plVar18[0xe];\n        if (plVar26 == (long *)0x0) {\n          if (((*(int *)((long)plVar18 + 0x8c) != 2) && (plVar18[7] != 0)) &&\n             (((*(byte *)(plVar18[7] + 0x20) & 1) != 0 &&\n              (plVar26 = plVar17, plVar3 = plVar18, puVar21[2] != 3)))) {\n            while( true ) {\n              plVar17 = plVar26;\n              if (plVar26 != (long *)0x0) goto LAB_0011c7fd;\n              plVar3 = (long *)plVar3[4];\n              if (plVar3 == (long *)0x0) break;\n              plVar26 = (long *)plVar3[0xe];\n            }\n            plVar17 = (long *)0x0;\n            dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            FUN_001251f0();\n          }\n        }\n        else {\n          plVar17 = plVar26;\n          plVar3 = (long *)plVar18[7];\n          while (plVar3 != (long *)0x0) {\nLAB_0011c7fd:\n            iVar9 = strcmp((char *)plVar26[1],(char *)puVar21[1]);\n            uVar29 = uVar30;\n            if (iVar9 == 0) {\n              if (uVar2 <= (uint)uVar30) {\n                uVar2 = uVar2 << 1;\n                __ptr = (void *)xrealloc(__ptr,(ulong)uVar2 << 3);\n              }\n              uVar29 = (ulong)((uint)uVar30 + 1);\n              *(long *)((long)__ptr + uVar30 * 8) = plVar18[7];\n              *(undefined4 *)(plVar26 + 2) = 1;\n            }\n            plVar26 = (long *)*plVar26;\n            uVar30 = uVar29;\n            plVar3 = plVar26;\n          }\n        }\n      }\n    }\n    uVar10 = 0;\n    if (puVar21[5] != 0) {\n      uVar10 = FUN_00123800(puVar21[5],0,"phdr flags");\n    }\n    lVar16 = puVar21[4];\n    uVar11 = 0;\n    if (lVar16 != 0) {\n      uVar11 = FUN_00123800(lVar16,0,"phdr load address");\n      lVar16 = puVar21[4];\n    }\n    iVar9 = bfd_record_phdr(DAT_0017fb10,puVar21[2],puVar21[5] != 0,uVar10,lVar16 != 0,uVar11,\n                            *(undefined4 *)(puVar21 + 3),*(undefined4 *)((long)puVar21 + 0x1c),\n                            uVar30,__ptr);\n    if (iVar9 == 0) {\n      dcgettext(0,"%F%P: bfd_record_phdr failed: %E\n",5);\n      FUN_001251f0();\n    }\n  }" ({ "{") (expression_statement "uVar30 = 0;" (assignment_expression "uVar30 = 0" (identifier "uVar30") (= "=") (number_literal "0")) (; ";")) (for_statement "for (plVar18 = DAT_0017fa60; plVar18 != (long *)0x0; plVar18 = (long *)plVar18[4]) {\n      if (-1 < *(int *)((long)plVar18 + 0x84)) {\n        plVar26 = (long *)plVar18[0xe];\n        if (plVar26 == (long *)0x0) {\n          if (((*(int *)((long)plVar18 + 0x8c) != 2) && (plVar18[7] != 0)) &&\n             (((*(byte *)(plVar18[7] + 0x20) & 1) != 0 &&\n              (plVar26 = plVar17, plVar3 = plVar18, puVar21[2] != 3)))) {\n            while( true ) {\n              plVar17 = plVar26;\n              if (plVar26 != (long *)0x0) goto LAB_0011c7fd;\n              plVar3 = (long *)plVar3[4];\n              if (plVar3 == (long *)0x0) break;\n              plVar26 = (long *)plVar3[0xe];\n            }\n            plVar17 = (long *)0x0;\n            dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            FUN_001251f0();\n          }\n        }\n        else {\n          plVar17 = plVar26;\n          plVar3 = (long *)plVar18[7];\n          while (plVar3 != (long *)0x0) {\nLAB_0011c7fd:\n            iVar9 = strcmp((char *)plVar26[1],(char *)puVar21[1]);\n            uVar29 = uVar30;\n            if (iVar9 == 0) {\n              if (uVar2 <= (uint)uVar30) {\n                uVar2 = uVar2 << 1;\n                __ptr = (void *)xrealloc(__ptr,(ulong)uVar2 << 3);\n              }\n              uVar29 = (ulong)((uint)uVar30 + 1);\n              *(long *)((long)__ptr + uVar30 * 8) = plVar18[7];\n              *(undefined4 *)(plVar26 + 2) = 1;\n            }\n            plVar26 = (long *)*plVar26;\n            uVar30 = uVar29;\n            plVar3 = plVar26;\n          }\n        }\n      }\n    }" (for "for") (( "(") (assignment_expression "plVar18 = DAT_0017fa60" (identifier "plVar18") (= "=") (identifier "DAT_0017fa60")) (; ";") (binary_expression "plVar18 != (long *)0x0" (identifier "plVar18") (!= "!=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";") (assignment_expression "plVar18 = (long *)plVar18[4]" (identifier "plVar18") (= "=") (cast_expression "(long *)plVar18[4]" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "plVar18[4]" (identifier "plVar18") ([ "[") (number_literal "4") (] "]")))) () ")") (compound_statement "{\n      if (-1 < *(int *)((long)plVar18 + 0x84)) {\n        plVar26 = (long *)plVar18[0xe];\n        if (plVar26 == (long *)0x0) {\n          if (((*(int *)((long)plVar18 + 0x8c) != 2) && (plVar18[7] != 0)) &&\n             (((*(byte *)(plVar18[7] + 0x20) & 1) != 0 &&\n              (plVar26 = plVar17, plVar3 = plVar18, puVar21[2] != 3)))) {\n            while( true ) {\n              plVar17 = plVar26;\n              if (plVar26 != (long *)0x0) goto LAB_0011c7fd;\n              plVar3 = (long *)plVar3[4];\n              if (plVar3 == (long *)0x0) break;\n              plVar26 = (long *)plVar3[0xe];\n            }\n            plVar17 = (long *)0x0;\n            dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            FUN_001251f0();\n          }\n        }\n        else {\n          plVar17 = plVar26;\n          plVar3 = (long *)plVar18[7];\n          while (plVar3 != (long *)0x0) {\nLAB_0011c7fd:\n            iVar9 = strcmp((char *)plVar26[1],(char *)puVar21[1]);\n            uVar29 = uVar30;\n            if (iVar9 == 0) {\n              if (uVar2 <= (uint)uVar30) {\n                uVar2 = uVar2 << 1;\n                __ptr = (void *)xrealloc(__ptr,(ulong)uVar2 << 3);\n              }\n              uVar29 = (ulong)((uint)uVar30 + 1);\n              *(long *)((long)__ptr + uVar30 * 8) = plVar18[7];\n              *(undefined4 *)(plVar26 + 2) = 1;\n            }\n            plVar26 = (long *)*plVar26;\n            uVar30 = uVar29;\n            plVar3 = plVar26;\n          }\n        }\n      }\n    }" ({ "{") (if_statement "if (-1 < *(int *)((long)plVar18 + 0x84)) {\n        plVar26 = (long *)plVar18[0xe];\n        if (plVar26 == (long *)0x0) {\n          if (((*(int *)((long)plVar18 + 0x8c) != 2) && (plVar18[7] != 0)) &&\n             (((*(byte *)(plVar18[7] + 0x20) & 1) != 0 &&\n              (plVar26 = plVar17, plVar3 = plVar18, puVar21[2] != 3)))) {\n            while( true ) {\n              plVar17 = plVar26;\n              if (plVar26 != (long *)0x0) goto LAB_0011c7fd;\n              plVar3 = (long *)plVar3[4];\n              if (plVar3 == (long *)0x0) break;\n              plVar26 = (long *)plVar3[0xe];\n            }\n            plVar17 = (long *)0x0;\n            dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            FUN_001251f0();\n          }\n        }\n        else {\n          plVar17 = plVar26;\n          plVar3 = (long *)plVar18[7];\n          while (plVar3 != (long *)0x0) {\nLAB_0011c7fd:\n            iVar9 = strcmp((char *)plVar26[1],(char *)puVar21[1]);\n            uVar29 = uVar30;\n            if (iVar9 == 0) {\n              if (uVar2 <= (uint)uVar30) {\n                uVar2 = uVar2 << 1;\n                __ptr = (void *)xrealloc(__ptr,(ulong)uVar2 << 3);\n              }\n              uVar29 = (ulong)((uint)uVar30 + 1);\n              *(long *)((long)__ptr + uVar30 * 8) = plVar18[7];\n              *(undefined4 *)(plVar26 + 2) = 1;\n            }\n            plVar26 = (long *)*plVar26;\n            uVar30 = uVar29;\n            plVar3 = plVar26;\n          }\n        }\n      }" (if "if") (parenthesized_expression "(-1 < *(int *)((long)plVar18 + 0x84))" (( "(") (binary_expression "-1 < *(int *)((long)plVar18 + 0x84)" (number_literal "-1") (< "<") (pointer_expression "*(int *)((long)plVar18 + 0x84)" (* "*") (cast_expression "(int *)((long)plVar18 + 0x84)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)plVar18 + 0x84)" (( "(") (binary_expression "(long)plVar18 + 0x84" (cast_expression "(long)plVar18" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar18")) (+ "+") (number_literal "0x84")) () ")"))))) () ")")) (compound_statement "{\n        plVar26 = (long *)plVar18[0xe];\n        if (plVar26 == (long *)0x0) {\n          if (((*(int *)((long)plVar18 + 0x8c) != 2) && (plVar18[7] != 0)) &&\n             (((*(byte *)(plVar18[7] + 0x20) & 1) != 0 &&\n              (plVar26 = plVar17, plVar3 = plVar18, puVar21[2] != 3)))) {\n            while( true ) {\n              plVar17 = plVar26;\n              if (plVar26 != (long *)0x0) goto LAB_0011c7fd;\n              plVar3 = (long *)plVar3[4];\n              if (plVar3 == (long *)0x0) break;\n              plVar26 = (long *)plVar3[0xe];\n            }\n            plVar17 = (long *)0x0;\n            dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            FUN_001251f0();\n          }\n        }\n        else {\n          plVar17 = plVar26;\n          plVar3 = (long *)plVar18[7];\n          while (plVar3 != (long *)0x0) {\nLAB_0011c7fd:\n            iVar9 = strcmp((char *)plVar26[1],(char *)puVar21[1]);\n            uVar29 = uVar30;\n            if (iVar9 == 0) {\n              if (uVar2 <= (uint)uVar30) {\n                uVar2 = uVar2 << 1;\n                __ptr = (void *)xrealloc(__ptr,(ulong)uVar2 << 3);\n              }\n              uVar29 = (ulong)((uint)uVar30 + 1);\n              *(long *)((long)__ptr + uVar30 * 8) = plVar18[7];\n              *(undefined4 *)(plVar26 + 2) = 1;\n            }\n            plVar26 = (long *)*plVar26;\n            uVar30 = uVar29;\n            plVar3 = plVar26;\n          }\n        }\n      }" ({ "{") (expression_statement "plVar26 = (long *)plVar18[0xe];" (assignment_expression "plVar26 = (long *)plVar18[0xe]" (identifier "plVar26") (= "=") (cast_expression "(long *)plVar18[0xe]" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "plVar18[0xe]" (identifier "plVar18") ([ "[") (number_literal "0xe") (] "]")))) (; ";")) (if_statement "if (plVar26 == (long *)0x0) {\n          if (((*(int *)((long)plVar18 + 0x8c) != 2) && (plVar18[7] != 0)) &&\n             (((*(byte *)(plVar18[7] + 0x20) & 1) != 0 &&\n              (plVar26 = plVar17, plVar3 = plVar18, puVar21[2] != 3)))) {\n            while( true ) {\n              plVar17 = plVar26;\n              if (plVar26 != (long *)0x0) goto LAB_0011c7fd;\n              plVar3 = (long *)plVar3[4];\n              if (plVar3 == (long *)0x0) break;\n              plVar26 = (long *)plVar3[0xe];\n            }\n            plVar17 = (long *)0x0;\n            dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            FUN_001251f0();\n          }\n        }\n        else {\n          plVar17 = plVar26;\n          plVar3 = (long *)plVar18[7];\n          while (plVar3 != (long *)0x0) {\nLAB_0011c7fd:\n            iVar9 = strcmp((char *)plVar26[1],(char *)puVar21[1]);\n            uVar29 = uVar30;\n            if (iVar9 == 0) {\n              if (uVar2 <= (uint)uVar30) {\n                uVar2 = uVar2 << 1;\n                __ptr = (void *)xrealloc(__ptr,(ulong)uVar2 << 3);\n              }\n              uVar29 = (ulong)((uint)uVar30 + 1);\n              *(long *)((long)__ptr + uVar30 * 8) = plVar18[7];\n              *(undefined4 *)(plVar26 + 2) = 1;\n            }\n            plVar26 = (long *)*plVar26;\n            uVar30 = uVar29;\n            plVar3 = plVar26;\n          }\n        }" (if "if") (parenthesized_expression "(plVar26 == (long *)0x0)" (( "(") (binary_expression "plVar26 == (long *)0x0" (identifier "plVar26") (== "==") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          if (((*(int *)((long)plVar18 + 0x8c) != 2) && (plVar18[7] != 0)) &&\n             (((*(byte *)(plVar18[7] + 0x20) & 1) != 0 &&\n              (plVar26 = plVar17, plVar3 = plVar18, puVar21[2] != 3)))) {\n            while( true ) {\n              plVar17 = plVar26;\n              if (plVar26 != (long *)0x0) goto LAB_0011c7fd;\n              plVar3 = (long *)plVar3[4];\n              if (plVar3 == (long *)0x0) break;\n              plVar26 = (long *)plVar3[0xe];\n            }\n            plVar17 = (long *)0x0;\n            dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            FUN_001251f0();\n          }\n        }" ({ "{") (if_statement "if (((*(int *)((long)plVar18 + 0x8c) != 2) && (plVar18[7] != 0)) &&\n             (((*(byte *)(plVar18[7] + 0x20) & 1) != 0 &&\n              (plVar26 = plVar17, plVar3 = plVar18, puVar21[2] != 3)))) {\n            while( true ) {\n              plVar17 = plVar26;\n              if (plVar26 != (long *)0x0) goto LAB_0011c7fd;\n              plVar3 = (long *)plVar3[4];\n              if (plVar3 == (long *)0x0) break;\n              plVar26 = (long *)plVar3[0xe];\n            }\n            plVar17 = (long *)0x0;\n            dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            FUN_001251f0();\n          }" (if "if") (parenthesized_expression "(((*(int *)((long)plVar18 + 0x8c) != 2) && (plVar18[7] != 0)) &&\n             (((*(byte *)(plVar18[7] + 0x20) & 1) != 0 &&\n              (plVar26 = plVar17, plVar3 = plVar18, puVar21[2] != 3))))" (( "(") (binary_expression "((*(int *)((long)plVar18 + 0x8c) != 2) && (plVar18[7] != 0)) &&\n             (((*(byte *)(plVar18[7] + 0x20) & 1) != 0 &&\n              (plVar26 = plVar17, plVar3 = plVar18, puVar21[2] != 3)))" (parenthesized_expression "((*(int *)((long)plVar18 + 0x8c) != 2) && (plVar18[7] != 0))" (( "(") (binary_expression "(*(int *)((long)plVar18 + 0x8c) != 2) && (plVar18[7] != 0)" (parenthesized_expression "(*(int *)((long)plVar18 + 0x8c) != 2)" (( "(") (binary_expression "*(int *)((long)plVar18 + 0x8c) != 2" (pointer_expression "*(int *)((long)plVar18 + 0x8c)" (* "*") (cast_expression "(int *)((long)plVar18 + 0x8c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)plVar18 + 0x8c)" (( "(") (binary_expression "(long)plVar18 + 0x8c" (cast_expression "(long)plVar18" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar18")) (+ "+") (number_literal "0x8c")) () ")")))) (!= "!=") (number_literal "2")) () ")")) (&& "&&") (parenthesized_expression "(plVar18[7] != 0)" (( "(") (binary_expression "plVar18[7] != 0" (subscript_expression "plVar18[7]" (identifier "plVar18") ([ "[") (number_literal "7") (] "]")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(((*(byte *)(plVar18[7] + 0x20) & 1) != 0 &&\n              (plVar26 = plVar17, plVar3 = plVar18, puVar21[2] != 3)))" (( "(") (parenthesized_expression "((*(byte *)(plVar18[7] + 0x20) & 1) != 0 &&\n              (plVar26 = plVar17, plVar3 = plVar18, puVar21[2] != 3))" (( "(") (binary_expression "(*(byte *)(plVar18[7] + 0x20) & 1) != 0 &&\n              (plVar26 = plVar17, plVar3 = plVar18, puVar21[2] != 3)" (binary_expression "(*(byte *)(plVar18[7] + 0x20) & 1) != 0" (parenthesized_expression "(*(byte *)(plVar18[7] + 0x20) & 1)" (( "(") (binary_expression "*(byte *)(plVar18[7] + 0x20) & 1" (pointer_expression "*(byte *)(plVar18[7] + 0x20)" (* "*") (cast_expression "(byte *)(plVar18[7] + 0x20)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(plVar18[7] + 0x20)" (( "(") (binary_expression "plVar18[7] + 0x20" (subscript_expression "plVar18[7]" (identifier "plVar18") ([ "[") (number_literal "7") (] "]")) (+ "+") (number_literal "0x20")) () ")")))) (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) (&& "&&") (parenthesized_expression "(plVar26 = plVar17, plVar3 = plVar18, puVar21[2] != 3)" (( "(") (comma_expression "plVar26 = plVar17, plVar3 = plVar18, puVar21[2] != 3" (assignment_expression "plVar26 = plVar17" (identifier "plVar26") (= "=") (identifier "plVar17")) (, ",") (comma_expression "plVar3 = plVar18, puVar21[2] != 3" (assignment_expression "plVar3 = plVar18" (identifier "plVar3") (= "=") (identifier "plVar18")) (, ",") (binary_expression "puVar21[2] != 3" (subscript_expression "puVar21[2]" (identifier "puVar21") ([ "[") (number_literal "2") (] "]")) (!= "!=") (number_literal "3")))) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n            while( true ) {\n              plVar17 = plVar26;\n              if (plVar26 != (long *)0x0) goto LAB_0011c7fd;\n              plVar3 = (long *)plVar3[4];\n              if (plVar3 == (long *)0x0) break;\n              plVar26 = (long *)plVar3[0xe];\n            }\n            plVar17 = (long *)0x0;\n            dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            FUN_001251f0();\n          }" ({ "{") (while_statement "while( true ) {\n              plVar17 = plVar26;\n              if (plVar26 != (long *)0x0) goto LAB_0011c7fd;\n              plVar3 = (long *)plVar3[4];\n              if (plVar3 == (long *)0x0) break;\n              plVar26 = (long *)plVar3[0xe];\n            }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n              plVar17 = plVar26;\n              if (plVar26 != (long *)0x0) goto LAB_0011c7fd;\n              plVar3 = (long *)plVar3[4];\n              if (plVar3 == (long *)0x0) break;\n              plVar26 = (long *)plVar3[0xe];\n            }" ({ "{") (expression_statement "plVar17 = plVar26;" (assignment_expression "plVar17 = plVar26" (identifier "plVar17") (= "=") (identifier "plVar26")) (; ";")) (if_statement "if (plVar26 != (long *)0x0) goto LAB_0011c7fd;" (if "if") (parenthesized_expression "(plVar26 != (long *)0x0)" (( "(") (binary_expression "plVar26 != (long *)0x0" (identifier "plVar26") (!= "!=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0011c7fd;" (goto "goto") (statement_identifier "LAB_0011c7fd") (; ";"))) (expression_statement "plVar3 = (long *)plVar3[4];" (assignment_expression "plVar3 = (long *)plVar3[4]" (identifier "plVar3") (= "=") (cast_expression "(long *)plVar3[4]" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "plVar3[4]" (identifier "plVar3") ([ "[") (number_literal "4") (] "]")))) (; ";")) (if_statement "if (plVar3 == (long *)0x0) break;" (if "if") (parenthesized_expression "(plVar3 == (long *)0x0)" (( "(") (binary_expression "plVar3 == (long *)0x0" (identifier "plVar3") (== "==") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "plVar26 = (long *)plVar3[0xe];" (assignment_expression "plVar26 = (long *)plVar3[0xe]" (identifier "plVar26") (= "=") (cast_expression "(long *)plVar3[0xe]" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "plVar3[0xe]" (identifier "plVar3") ([ "[") (number_literal "0xe") (] "]")))) (; ";")) (} "}"))) (expression_statement "plVar17 = (long *)0x0;" (assignment_expression "plVar17 = (long *)0x0" (identifier "plVar17") (= "=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);" (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_001251f0();" (call_expression "FUN_001251f0()" (identifier "FUN_001251f0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n          plVar17 = plVar26;\n          plVar3 = (long *)plVar18[7];\n          while (plVar3 != (long *)0x0) {\nLAB_0011c7fd:\n            iVar9 = strcmp((char *)plVar26[1],(char *)puVar21[1]);\n            uVar29 = uVar30;\n            if (iVar9 == 0) {\n              if (uVar2 <= (uint)uVar30) {\n                uVar2 = uVar2 << 1;\n                __ptr = (void *)xrealloc(__ptr,(ulong)uVar2 << 3);\n              }\n              uVar29 = (ulong)((uint)uVar30 + 1);\n              *(long *)((long)__ptr + uVar30 * 8) = plVar18[7];\n              *(undefined4 *)(plVar26 + 2) = 1;\n            }\n            plVar26 = (long *)*plVar26;\n            uVar30 = uVar29;\n            plVar3 = plVar26;\n          }\n        }" (else "else") (compound_statement "{\n          plVar17 = plVar26;\n          plVar3 = (long *)plVar18[7];\n          while (plVar3 != (long *)0x0) {\nLAB_0011c7fd:\n            iVar9 = strcmp((char *)plVar26[1],(char *)puVar21[1]);\n            uVar29 = uVar30;\n            if (iVar9 == 0) {\n              if (uVar2 <= (uint)uVar30) {\n                uVar2 = uVar2 << 1;\n                __ptr = (void *)xrealloc(__ptr,(ulong)uVar2 << 3);\n              }\n              uVar29 = (ulong)((uint)uVar30 + 1);\n              *(long *)((long)__ptr + uVar30 * 8) = plVar18[7];\n              *(undefined4 *)(plVar26 + 2) = 1;\n            }\n            plVar26 = (long *)*plVar26;\n            uVar30 = uVar29;\n            plVar3 = plVar26;\n          }\n        }" ({ "{") (expression_statement "plVar17 = plVar26;" (assignment_expression "plVar17 = plVar26" (identifier "plVar17") (= "=") (identifier "plVar26")) (; ";")) (expression_statement "plVar3 = (long *)plVar18[7];" (assignment_expression "plVar3 = (long *)plVar18[7]" (identifier "plVar3") (= "=") (cast_expression "(long *)plVar18[7]" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "plVar18[7]" (identifier "plVar18") ([ "[") (number_literal "7") (] "]")))) (; ";")) (while_statement "while (plVar3 != (long *)0x0) {\nLAB_0011c7fd:\n            iVar9 = strcmp((char *)plVar26[1],(char *)puVar21[1]);\n            uVar29 = uVar30;\n            if (iVar9 == 0) {\n              if (uVar2 <= (uint)uVar30) {\n                uVar2 = uVar2 << 1;\n                __ptr = (void *)xrealloc(__ptr,(ulong)uVar2 << 3);\n              }\n              uVar29 = (ulong)((uint)uVar30 + 1);\n              *(long *)((long)__ptr + uVar30 * 8) = plVar18[7];\n              *(undefined4 *)(plVar26 + 2) = 1;\n            }\n            plVar26 = (long *)*plVar26;\n            uVar30 = uVar29;\n            plVar3 = plVar26;\n          }" (while "while") (parenthesized_expression "(plVar3 != (long *)0x0)" (( "(") (binary_expression "plVar3 != (long *)0x0" (identifier "plVar3") (!= "!=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\nLAB_0011c7fd:\n            iVar9 = strcmp((char *)plVar26[1],(char *)puVar21[1]);\n            uVar29 = uVar30;\n            if (iVar9 == 0) {\n              if (uVar2 <= (uint)uVar30) {\n                uVar2 = uVar2 << 1;\n                __ptr = (void *)xrealloc(__ptr,(ulong)uVar2 << 3);\n              }\n              uVar29 = (ulong)((uint)uVar30 + 1);\n              *(long *)((long)__ptr + uVar30 * 8) = plVar18[7];\n              *(undefined4 *)(plVar26 + 2) = 1;\n            }\n            plVar26 = (long *)*plVar26;\n            uVar30 = uVar29;\n            plVar3 = plVar26;\n          }" ({ "{") (labeled_statement "LAB_0011c7fd:\n            iVar9 = strcmp((char *)plVar26[1],(char *)puVar21[1]);" (statement_identifier "LAB_0011c7fd") (: ":") (expression_statement "iVar9 = strcmp((char *)plVar26[1],(char *)puVar21[1]);" (assignment_expression "iVar9 = strcmp((char *)plVar26[1],(char *)puVar21[1])" (identifier "iVar9") (= "=") (call_expression "strcmp((char *)plVar26[1],(char *)puVar21[1])" (identifier "strcmp") (argument_list "((char *)plVar26[1],(char *)puVar21[1])" (( "(") (cast_expression "(char *)plVar26[1]" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "plVar26[1]" (identifier "plVar26") ([ "[") (number_literal "1") (] "]"))) (, ",") (cast_expression "(char *)puVar21[1]" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar21[1]" (identifier "puVar21") ([ "[") (number_literal "1") (] "]"))) () ")")))) (; ";"))) (expression_statement "uVar29 = uVar30;" (assignment_expression "uVar29 = uVar30" (identifier "uVar29") (= "=") (identifier "uVar30")) (; ";")) (if_statement "if (iVar9 == 0) {\n              if (uVar2 <= (uint)uVar30) {\n                uVar2 = uVar2 << 1;\n                __ptr = (void *)xrealloc(__ptr,(ulong)uVar2 << 3);\n              }\n              uVar29 = (ulong)((uint)uVar30 + 1);\n              *(long *)((long)__ptr + uVar30 * 8) = plVar18[7];\n              *(undefined4 *)(plVar26 + 2) = 1;\n            }" (if "if") (parenthesized_expression "(iVar9 == 0)" (( "(") (binary_expression "iVar9 == 0" (identifier "iVar9") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              if (uVar2 <= (uint)uVar30) {\n                uVar2 = uVar2 << 1;\n                __ptr = (void *)xrealloc(__ptr,(ulong)uVar2 << 3);\n              }\n              uVar29 = (ulong)((uint)uVar30 + 1);\n              *(long *)((long)__ptr + uVar30 * 8) = plVar18[7];\n              *(undefined4 *)(plVar26 + 2) = 1;\n            }" ({ "{") (if_statement "if (uVar2 <= (uint)uVar30) {\n                uVar2 = uVar2 << 1;\n                __ptr = (void *)xrealloc(__ptr,(ulong)uVar2 << 3);\n              }" (if "if") (parenthesized_expression "(uVar2 <= (uint)uVar30)" (( "(") (binary_expression "uVar2 <= (uint)uVar30" (identifier "uVar2") (<= "<=") (cast_expression "(uint)uVar30" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar30"))) () ")")) (compound_statement "{\n                uVar2 = uVar2 << 1;\n                __ptr = (void *)xrealloc(__ptr,(ulong)uVar2 << 3);\n              }" ({ "{") (expression_statement "uVar2 = uVar2 << 1;" (assignment_expression "uVar2 = uVar2 << 1" (identifier "uVar2") (= "=") (binary_expression "uVar2 << 1" (identifier "uVar2") (<< "<<") (number_literal "1"))) (; ";")) (expression_statement "__ptr = (void *)xrealloc(__ptr,(ulong)uVar2 << 3);" (assignment_expression "__ptr = (void *)xrealloc(__ptr,(ulong)uVar2 << 3)" (identifier "__ptr") (= "=") (cast_expression "(void *)xrealloc(__ptr,(ulong)uVar2 << 3)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "xrealloc(__ptr,(ulong)uVar2 << 3)" (identifier "xrealloc") (argument_list "(__ptr,(ulong)uVar2 << 3)" (( "(") (identifier "__ptr") (, ",") (binary_expression "(ulong)uVar2 << 3" (cast_expression "(ulong)uVar2" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "uVar2")) (<< "<<") (number_literal "3")) () ")"))))) (; ";")) (} "}"))) (expression_statement "uVar29 = (ulong)((uint)uVar30 + 1);" (assignment_expression "uVar29 = (ulong)((uint)uVar30 + 1)" (identifier "uVar29") (= "=") (call_expression "(ulong)((uint)uVar30 + 1)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "((uint)uVar30 + 1)" (( "(") (binary_expression "(uint)uVar30 + 1" (cast_expression "(uint)uVar30" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar30")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "*(long *)((long)__ptr + uVar30 * 8) = plVar18[7];" (assignment_expression "*(long *)((long)__ptr + uVar30 * 8) = plVar18[7]" (pointer_expression "*(long *)((long)__ptr + uVar30 * 8)" (* "*") (cast_expression "(long *)((long)__ptr + uVar30 * 8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)__ptr + uVar30 * 8)" (( "(") (binary_expression "(long)__ptr + uVar30 * 8" (cast_expression "(long)__ptr" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "__ptr")) (+ "+") (binary_expression "uVar30 * 8" (identifier "uVar30") (* "*") (number_literal "8"))) () ")")))) (= "=") (subscript_expression "plVar18[7]" (identifier "plVar18") ([ "[") (number_literal "7") (] "]"))) (; ";")) (expression_statement "*(undefined4 *)(plVar26 + 2) = 1;" (assignment_expression "*(undefined4 *)(plVar26 + 2) = 1" (pointer_expression "*(undefined4 *)(plVar26 + 2)" (* "*") (cast_expression "(undefined4 *)(plVar26 + 2)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(plVar26 + 2)" (( "(") (binary_expression "plVar26 + 2" (identifier "plVar26") (+ "+") (number_literal "2")) () ")")))) (= "=") (number_literal "1")) (; ";")) (} "}"))) (expression_statement "plVar26 = (long *)*plVar26;" (assignment_expression "plVar26 = (long *)*plVar26" (identifier "plVar26") (= "=") (cast_expression "(long *)*plVar26" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*plVar26" (* "*") (identifier "plVar26")))) (; ";")) (expression_statement "uVar30 = uVar29;" (assignment_expression "uVar30 = uVar29" (identifier "uVar30") (= "=") (identifier "uVar29")) (; ";")) (expression_statement "plVar3 = plVar26;" (assignment_expression "plVar3 = plVar26" (identifier "plVar3") (= "=") (identifier "plVar26")) (; ";")) (} "}"))) (} "}")))) (} "}"))) (} "}"))) (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" (identifier "uVar10") (= "=") (number_literal "0")) (; ";")) (if_statement "if (puVar21[5] != 0) {\n      uVar10 = FUN_00123800(puVar21[5],0,"phdr flags");\n    }" (if "if") (parenthesized_expression "(puVar21[5] != 0)" (( "(") (binary_expression "puVar21[5] != 0" (subscript_expression "puVar21[5]" (identifier "puVar21") ([ "[") (number_literal "5") (] "]")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      uVar10 = FUN_00123800(puVar21[5],0,"phdr flags");\n    }" ({ "{") (expression_statement "uVar10 = FUN_00123800(puVar21[5],0,"phdr flags");" (assignment_expression "uVar10 = FUN_00123800(puVar21[5],0,"phdr flags")" (identifier "uVar10") (= "=") (call_expression "FUN_00123800(puVar21[5],0,"phdr flags")" (identifier "FUN_00123800") (argument_list "(puVar21[5],0,"phdr flags")" (( "(") (subscript_expression "puVar21[5]" (identifier "puVar21") ([ "[") (number_literal "5") (] "]")) (, ",") (number_literal "0") (, ",") (string_literal ""phdr flags"" (" """) (string_content "phdr flags") (" """)) () ")")))) (; ";")) (} "}"))) (expression_statement "lVar16 = puVar21[4];" (assignment_expression "lVar16 = puVar21[4]" (identifier "lVar16") (= "=") (subscript_expression "puVar21[4]" (identifier "puVar21") ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" (identifier "uVar11") (= "=") (number_literal "0")) (; ";")) (if_statement "if (lVar16 != 0) {\n      uVar11 = FUN_00123800(lVar16,0,"phdr load address");\n      lVar16 = puVar21[4];\n    }" (if "if") (parenthesized_expression "(lVar16 != 0)" (( "(") (binary_expression "lVar16 != 0" (identifier "lVar16") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      uVar11 = FUN_00123800(lVar16,0,"phdr load address");\n      lVar16 = puVar21[4];\n    }" ({ "{") (expression_statement "uVar11 = FUN_00123800(lVar16,0,"phdr load address");" (assignment_expression "uVar11 = FUN_00123800(lVar16,0,"phdr load address")" (identifier "uVar11") (= "=") (call_expression "FUN_00123800(lVar16,0,"phdr load address")" (identifier "FUN_00123800") (argument_list "(lVar16,0,"phdr load address")" (( "(") (identifier "lVar16") (, ",") (number_literal "0") (, ",") (string_literal ""phdr load address"" (" """) (string_content "phdr load address") (" """)) () ")")))) (; ";")) (expression_statement "lVar16 = puVar21[4];" (assignment_expression "lVar16 = puVar21[4]" (identifier "lVar16") (= "=") (subscript_expression "puVar21[4]" (identifier "puVar21") ([ "[") (number_literal "4") (] "]"))) (; ";")) (} "}"))) (expression_statement "iVar9 = bfd_record_phdr(DAT_0017fb10,puVar21[2],puVar21[5] != 0,uVar10,lVar16 != 0,uVar11,\n                            *(undefined4 *)(puVar21 + 3),*(undefined4 *)((long)puVar21 + 0x1c),\n                            uVar30,__ptr);" (assignment_expression "iVar9 = bfd_record_phdr(DAT_0017fb10,puVar21[2],puVar21[5] != 0,uVar10,lVar16 != 0,uVar11,\n                            *(undefined4 *)(puVar21 + 3),*(undefined4 *)((long)puVar21 + 0x1c),\n                            uVar30,__ptr)" (identifier "iVar9") (= "=") (call_expression "bfd_record_phdr(DAT_0017fb10,puVar21[2],puVar21[5] != 0,uVar10,lVar16 != 0,uVar11,\n                            *(undefined4 *)(puVar21 + 3),*(undefined4 *)((long)puVar21 + 0x1c),\n                            uVar30,__ptr)" (identifier "bfd_record_phdr") (argument_list "(DAT_0017fb10,puVar21[2],puVar21[5] != 0,uVar10,lVar16 != 0,uVar11,\n                            *(undefined4 *)(puVar21 + 3),*(undefined4 *)((long)puVar21 + 0x1c),\n                            uVar30,__ptr)" (( "(") (identifier "DAT_0017fb10") (, ",") (subscript_expression "puVar21[2]" (identifier "puVar21") ([ "[") (number_literal "2") (] "]")) (, ",") (binary_expression "puVar21[5] != 0" (subscript_expression "puVar21[5]" (identifier "puVar21") ([ "[") (number_literal "5") (] "]")) (!= "!=") (number_literal "0")) (, ",") (identifier "uVar10") (, ",") (binary_expression "lVar16 != 0" (identifier "lVar16") (!= "!=") (number_literal "0")) (, ",") (identifier "uVar11") (, ",") (pointer_expression "*(undefined4 *)(puVar21 + 3)" (* "*") (cast_expression "(undefined4 *)(puVar21 + 3)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + 3)" (( "(") (binary_expression "puVar21 + 3" (identifier "puVar21") (+ "+") (number_literal "3")) () ")")))) (, ",") (pointer_expression "*(undefined4 *)((long)puVar21 + 0x1c)" (* "*") (cast_expression "(undefined4 *)((long)puVar21 + 0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)puVar21 + 0x1c)" (( "(") (binary_expression "(long)puVar21 + 0x1c" (cast_expression "(long)puVar21" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar21")) (+ "+") (number_literal "0x1c")) () ")")))) (, ",") (identifier "uVar30") (, ",") (identifier "__ptr") () ")")))) (; ";")) (if_statement "if (iVar9 == 0) {\n      dcgettext(0,"%F%P: bfd_record_phdr failed: %E\n",5);\n      FUN_001251f0();\n    }" (if "if") (parenthesized_expression "(iVar9 == 0)" (( "(") (binary_expression "iVar9 == 0" (identifier "iVar9") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      dcgettext(0,"%F%P: bfd_record_phdr failed: %E\n",5);\n      FUN_001251f0();\n    }" ({ "{") (expression_statement "dcgettext(0,"%F%P: bfd_record_phdr failed: %E\n",5);" (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_001251f0();" (call_expression "FUN_001251f0()" (identifier "FUN_001251f0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (} "}"))) (expression_statement "free(__ptr);" (call_expression "free(__ptr)" (identifier "free") (argument_list "(__ptr)" (( "(") (identifier "__ptr") () ")"))) (; ";")) (for_statement "for (plVar17 = DAT_0017fa60; plVar17 != (long *)0x0; plVar17 = (long *)plVar17[4]) {\n    if ((-1 < *(int *)((long)plVar17 + 0x84)) && (plVar17[7] != 0)) {\n      plVar18 = (long *)plVar17[0xe];\njoined_r0x0011c90a:\n      if (plVar18 != (long *)0x0) {\n        do {\n          bVar38 = false;\n          bVar39 = (int)plVar18[2] == 0;\n          if (bVar39) {\n            pbVar4 = (byte *)plVar18[1];\n            lVar16 = 5;\n            pbVar20 = pbVar4;\n            pbVar32 = (byte *)0x130359;\n            do {\n              if (lVar16 == 0) break;\n              lVar16 = lVar16 + -1;\n              bVar38 = *pbVar20 < *pbVar32;\n              bVar39 = *pbVar20 == *pbVar32;\n              pbVar20 = pbVar20 + (ulong)bVar40 * -2 + 1;\n              pbVar32 = pbVar32 + (ulong)bVar40 * -2 + 1;\n            } while (bVar39);\n            if ((!bVar38 && !bVar39) != bVar38) goto code_r0x0011c93b;\n          }\n          plVar18 = (long *)*plVar18;\n          if (plVar18 == (long *)0x0) break;\n        } while( true );\n      }\n    }\n  }" (for "for") (( "(") (assignment_expression "plVar17 = DAT_0017fa60" (identifier "plVar17") (= "=") (identifier "DAT_0017fa60")) (; ";") (binary_expression "plVar17 != (long *)0x0" (identifier "plVar17") (!= "!=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";") (assignment_expression "plVar17 = (long *)plVar17[4]" (identifier "plVar17") (= "=") (cast_expression "(long *)plVar17[4]" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "plVar17[4]" (identifier "plVar17") ([ "[") (number_literal "4") (] "]")))) () ")") (compound_statement "{\n    if ((-1 < *(int *)((long)plVar17 + 0x84)) && (plVar17[7] != 0)) {\n      plVar18 = (long *)plVar17[0xe];\njoined_r0x0011c90a:\n      if (plVar18 != (long *)0x0) {\n        do {\n          bVar38 = false;\n          bVar39 = (int)plVar18[2] == 0;\n          if (bVar39) {\n            pbVar4 = (byte *)plVar18[1];\n            lVar16 = 5;\n            pbVar20 = pbVar4;\n            pbVar32 = (byte *)0x130359;\n            do {\n              if (lVar16 == 0) break;\n              lVar16 = lVar16 + -1;\n              bVar38 = *pbVar20 < *pbVar32;\n              bVar39 = *pbVar20 == *pbVar32;\n              pbVar20 = pbVar20 + (ulong)bVar40 * -2 + 1;\n              pbVar32 = pbVar32 + (ulong)bVar40 * -2 + 1;\n            } while (bVar39);\n            if ((!bVar38 && !bVar39) != bVar38) goto code_r0x0011c93b;\n          }\n          plVar18 = (long *)*plVar18;\n          if (plVar18 == (long *)0x0) break;\n        } while( true );\n      }\n    }\n  }" ({ "{") (if_statement "if ((-1 < *(int *)((long)plVar17 + 0x84)) && (plVar17[7] != 0)) {\n      plVar18 = (long *)plVar17[0xe];\njoined_r0x0011c90a:\n      if (plVar18 != (long *)0x0) {\n        do {\n          bVar38 = false;\n          bVar39 = (int)plVar18[2] == 0;\n          if (bVar39) {\n            pbVar4 = (byte *)plVar18[1];\n            lVar16 = 5;\n            pbVar20 = pbVar4;\n            pbVar32 = (byte *)0x130359;\n            do {\n              if (lVar16 == 0) break;\n              lVar16 = lVar16 + -1;\n              bVar38 = *pbVar20 < *pbVar32;\n              bVar39 = *pbVar20 == *pbVar32;\n              pbVar20 = pbVar20 + (ulong)bVar40 * -2 + 1;\n              pbVar32 = pbVar32 + (ulong)bVar40 * -2 + 1;\n            } while (bVar39);\n            if ((!bVar38 && !bVar39) != bVar38) goto code_r0x0011c93b;\n          }\n          plVar18 = (long *)*plVar18;\n          if (plVar18 == (long *)0x0) break;\n        } while( true );\n      }\n    }" (if "if") (parenthesized_expression "((-1 < *(int *)((long)plVar17 + 0x84)) && (plVar17[7] != 0))" (( "(") (binary_expression "(-1 < *(int *)((long)plVar17 + 0x84)) && (plVar17[7] != 0)" (parenthesized_expression "(-1 < *(int *)((long)plVar17 + 0x84))" (( "(") (binary_expression "-1 < *(int *)((long)plVar17 + 0x84)" (number_literal "-1") (< "<") (pointer_expression "*(int *)((long)plVar17 + 0x84)" (* "*") (cast_expression "(int *)((long)plVar17 + 0x84)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)plVar17 + 0x84)" (( "(") (binary_expression "(long)plVar17 + 0x84" (cast_expression "(long)plVar17" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar17")) (+ "+") (number_literal "0x84")) () ")"))))) () ")")) (&& "&&") (parenthesized_expression "(plVar17[7] != 0)" (( "(") (binary_expression "plVar17[7] != 0" (subscript_expression "plVar17[7]" (identifier "plVar17") ([ "[") (number_literal "7") (] "]")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n      plVar18 = (long *)plVar17[0xe];\njoined_r0x0011c90a:\n      if (plVar18 != (long *)0x0) {\n        do {\n          bVar38 = false;\n          bVar39 = (int)plVar18[2] == 0;\n          if (bVar39) {\n            pbVar4 = (byte *)plVar18[1];\n            lVar16 = 5;\n            pbVar20 = pbVar4;\n            pbVar32 = (byte *)0x130359;\n            do {\n              if (lVar16 == 0) break;\n              lVar16 = lVar16 + -1;\n              bVar38 = *pbVar20 < *pbVar32;\n              bVar39 = *pbVar20 == *pbVar32;\n              pbVar20 = pbVar20 + (ulong)bVar40 * -2 + 1;\n              pbVar32 = pbVar32 + (ulong)bVar40 * -2 + 1;\n            } while (bVar39);\n            if ((!bVar38 && !bVar39) != bVar38) goto code_r0x0011c93b;\n          }\n          plVar18 = (long *)*plVar18;\n          if (plVar18 == (long *)0x0) break;\n        } while( true );\n      }\n    }" ({ "{") (expression_statement "plVar18 = (long *)plVar17[0xe];" (assignment_expression "plVar18 = (long *)plVar17[0xe]" (identifier "plVar18") (= "=") (cast_expression "(long *)plVar17[0xe]" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "plVar17[0xe]" (identifier "plVar17") ([ "[") (number_literal "0xe") (] "]")))) (; ";")) (labeled_statement "joined_r0x0011c90a:\n      if (plVar18 != (long *)0x0) {\n        do {\n          bVar38 = false;\n          bVar39 = (int)plVar18[2] == 0;\n          if (bVar39) {\n            pbVar4 = (byte *)plVar18[1];\n            lVar16 = 5;\n            pbVar20 = pbVar4;\n            pbVar32 = (byte *)0x130359;\n            do {\n              if (lVar16 == 0) break;\n              lVar16 = lVar16 + -1;\n              bVar38 = *pbVar20 < *pbVar32;\n              bVar39 = *pbVar20 == *pbVar32;\n              pbVar20 = pbVar20 + (ulong)bVar40 * -2 + 1;\n              pbVar32 = pbVar32 + (ulong)bVar40 * -2 + 1;\n            } while (bVar39);\n            if ((!bVar38 && !bVar39) != bVar38) goto code_r0x0011c93b;\n          }\n          plVar18 = (long *)*plVar18;\n          if (plVar18 == (long *)0x0) break;\n        } while( true );\n      }" (statement_identifier "joined_r0x0011c90a") (: ":") (if_statement "if (plVar18 != (long *)0x0) {\n        do {\n          bVar38 = false;\n          bVar39 = (int)plVar18[2] == 0;\n          if (bVar39) {\n            pbVar4 = (byte *)plVar18[1];\n            lVar16 = 5;\n            pbVar20 = pbVar4;\n            pbVar32 = (byte *)0x130359;\n            do {\n              if (lVar16 == 0) break;\n              lVar16 = lVar16 + -1;\n              bVar38 = *pbVar20 < *pbVar32;\n              bVar39 = *pbVar20 == *pbVar32;\n              pbVar20 = pbVar20 + (ulong)bVar40 * -2 + 1;\n              pbVar32 = pbVar32 + (ulong)bVar40 * -2 + 1;\n            } while (bVar39);\n            if ((!bVar38 && !bVar39) != bVar38) goto code_r0x0011c93b;\n          }\n          plVar18 = (long *)*plVar18;\n          if (plVar18 == (long *)0x0) break;\n        } while( true );\n      }" (if "if") (parenthesized_expression "(plVar18 != (long *)0x0)" (( "(") (binary_expression "plVar18 != (long *)0x0" (identifier "plVar18") (!= "!=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        do {\n          bVar38 = false;\n          bVar39 = (int)plVar18[2] == 0;\n          if (bVar39) {\n            pbVar4 = (byte *)plVar18[1];\n            lVar16 = 5;\n            pbVar20 = pbVar4;\n            pbVar32 = (byte *)0x130359;\n            do {\n              if (lVar16 == 0) break;\n              lVar16 = lVar16 + -1;\n              bVar38 = *pbVar20 < *pbVar32;\n              bVar39 = *pbVar20 == *pbVar32;\n              pbVar20 = pbVar20 + (ulong)bVar40 * -2 + 1;\n              pbVar32 = pbVar32 + (ulong)bVar40 * -2 + 1;\n            } while (bVar39);\n            if ((!bVar38 && !bVar39) != bVar38) goto code_r0x0011c93b;\n          }\n          plVar18 = (long *)*plVar18;\n          if (plVar18 == (long *)0x0) break;\n        } while( true );\n      }" ({ "{") (do_statement "do {\n          bVar38 = false;\n          bVar39 = (int)plVar18[2] == 0;\n          if (bVar39) {\n            pbVar4 = (byte *)plVar18[1];\n            lVar16 = 5;\n            pbVar20 = pbVar4;\n            pbVar32 = (byte *)0x130359;\n            do {\n              if (lVar16 == 0) break;\n              lVar16 = lVar16 + -1;\n              bVar38 = *pbVar20 < *pbVar32;\n              bVar39 = *pbVar20 == *pbVar32;\n              pbVar20 = pbVar20 + (ulong)bVar40 * -2 + 1;\n              pbVar32 = pbVar32 + (ulong)bVar40 * -2 + 1;\n            } while (bVar39);\n            if ((!bVar38 && !bVar39) != bVar38) goto code_r0x0011c93b;\n          }\n          plVar18 = (long *)*plVar18;\n          if (plVar18 == (long *)0x0) break;\n        } while( true );" (do "do") (compound_statement "{\n          bVar38 = false;\n          bVar39 = (int)plVar18[2] == 0;\n          if (bVar39) {\n            pbVar4 = (byte *)plVar18[1];\n            lVar16 = 5;\n            pbVar20 = pbVar4;\n            pbVar32 = (byte *)0x130359;\n            do {\n              if (lVar16 == 0) break;\n              lVar16 = lVar16 + -1;\n              bVar38 = *pbVar20 < *pbVar32;\n              bVar39 = *pbVar20 == *pbVar32;\n              pbVar20 = pbVar20 + (ulong)bVar40 * -2 + 1;\n              pbVar32 = pbVar32 + (ulong)bVar40 * -2 + 1;\n            } while (bVar39);\n            if ((!bVar38 && !bVar39) != bVar38) goto code_r0x0011c93b;\n          }\n          plVar18 = (long *)*plVar18;\n          if (plVar18 == (long *)0x0) break;\n        }" ({ "{") (expression_statement "bVar38 = false;" (assignment_expression "bVar38 = false" (identifier "bVar38") (= "=") (false "false")) (; ";")) (expression_statement "bVar39 = (int)plVar18[2] == 0;" (assignment_expression "bVar39 = (int)plVar18[2] == 0" (identifier "bVar39") (= "=") (binary_expression "(int)plVar18[2] == 0" (cast_expression "(int)plVar18[2]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "plVar18[2]" (identifier "plVar18") ([ "[") (number_literal "2") (] "]"))) (== "==") (number_literal "0"))) (; ";")) (if_statement "if (bVar39) {\n            pbVar4 = (byte *)plVar18[1];\n            lVar16 = 5;\n            pbVar20 = pbVar4;\n            pbVar32 = (byte *)0x130359;\n            do {\n              if (lVar16 == 0) break;\n              lVar16 = lVar16 + -1;\n              bVar38 = *pbVar20 < *pbVar32;\n              bVar39 = *pbVar20 == *pbVar32;\n              pbVar20 = pbVar20 + (ulong)bVar40 * -2 + 1;\n              pbVar32 = pbVar32 + (ulong)bVar40 * -2 + 1;\n            } while (bVar39);\n            if ((!bVar38 && !bVar39) != bVar38) goto code_r0x0011c93b;\n          }" (if "if") (parenthesized_expression "(bVar39)" (( "(") (identifier "bVar39") () ")")) (compound_statement "{\n            pbVar4 = (byte *)plVar18[1];\n            lVar16 = 5;\n            pbVar20 = pbVar4;\n            pbVar32 = (byte *)0x130359;\n            do {\n              if (lVar16 == 0) break;\n              lVar16 = lVar16 + -1;\n              bVar38 = *pbVar20 < *pbVar32;\n              bVar39 = *pbVar20 == *pbVar32;\n              pbVar20 = pbVar20 + (ulong)bVar40 * -2 + 1;\n              pbVar32 = pbVar32 + (ulong)bVar40 * -2 + 1;\n            } while (bVar39);\n            if ((!bVar38 && !bVar39) != bVar38) goto code_r0x0011c93b;\n          }" ({ "{") (expression_statement "pbVar4 = (byte *)plVar18[1];" (assignment_expression "pbVar4 = (byte *)plVar18[1]" (identifier "pbVar4") (= "=") (cast_expression "(byte *)plVar18[1]" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "plVar18[1]" (identifier "plVar18") ([ "[") (number_literal "1") (] "]")))) (; ";")) (expression_statement "lVar16 = 5;" (assignment_expression "lVar16 = 5" (identifier "lVar16") (= "=") (number_literal "5")) (; ";")) (expression_statement "pbVar20 = pbVar4;" (assignment_expression "pbVar20 = pbVar4" (identifier "pbVar20") (= "=") (identifier "pbVar4")) (; ";")) (expression_statement "pbVar32 = (byte *)0x130359;" (assignment_expression "pbVar32 = (byte *)0x130359" (identifier "pbVar32") (= "=") (cast_expression "(byte *)0x130359" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x130359"))) (; ";")) (do_statement "do {\n              if (lVar16 == 0) break;\n              lVar16 = lVar16 + -1;\n              bVar38 = *pbVar20 < *pbVar32;\n              bVar39 = *pbVar20 == *pbVar32;\n              pbVar20 = pbVar20 + (ulong)bVar40 * -2 + 1;\n              pbVar32 = pbVar32 + (ulong)bVar40 * -2 + 1;\n            } while (bVar39);" (do "do") (compound_statement "{\n              if (lVar16 == 0) break;\n              lVar16 = lVar16 + -1;\n              bVar38 = *pbVar20 < *pbVar32;\n              bVar39 = *pbVar20 == *pbVar32;\n              pbVar20 = pbVar20 + (ulong)bVar40 * -2 + 1;\n              pbVar32 = pbVar32 + (ulong)bVar40 * -2 + 1;\n            }" ({ "{") (if_statement "if (lVar16 == 0) break;" (if "if") (parenthesized_expression "(lVar16 == 0)" (( "(") (binary_expression "lVar16 == 0" (identifier "lVar16") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "lVar16 = lVar16 + -1;" (assignment_expression "lVar16 = lVar16 + -1" (identifier "lVar16") (= "=") (binary_expression "lVar16 + -1" (identifier "lVar16") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar38 = *pbVar20 < *pbVar32;" (assignment_expression "bVar38 = *pbVar20 < *pbVar32" (identifier "bVar38") (= "=") (binary_expression "*pbVar20 < *pbVar32" (pointer_expression "*pbVar20" (* "*") (identifier "pbVar20")) (< "<") (pointer_expression "*pbVar32" (* "*") (identifier "pbVar32")))) (; ";")) (expression_statement "bVar39 = *pbVar20 == *pbVar32;" (assignment_expression "bVar39 = *pbVar20 == *pbVar32" (identifier "bVar39") (= "=") (binary_expression "*pbVar20 == *pbVar32" (pointer_expression "*pbVar20" (* "*") (identifier "pbVar20")) (== "==") (pointer_expression "*pbVar32" (* "*") (identifier "pbVar32")))) (; ";")) (expression_statement "pbVar20 = pbVar20 + (ulong)bVar40 * -2 + 1;" (assignment_expression "pbVar20 = pbVar20 + (ulong)bVar40 * -2 + 1" (identifier "pbVar20") (= "=") (binary_expression "pbVar20 + (ulong)bVar40 * -2 + 1" (binary_expression "pbVar20 + (ulong)bVar40 * -2" (identifier "pbVar20") (+ "+") (binary_expression "(ulong)bVar40 * -2" (cast_expression "(ulong)bVar40" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar40")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar32 = pbVar32 + (ulong)bVar40 * -2 + 1;" (assignment_expression "pbVar32 = pbVar32 + (ulong)bVar40 * -2 + 1" (identifier "pbVar32") (= "=") (binary_expression "pbVar32 + (ulong)bVar40 * -2 + 1" (binary_expression "pbVar32 + (ulong)bVar40 * -2" (identifier "pbVar32") (+ "+") (binary_expression "(ulong)bVar40 * -2" (cast_expression "(ulong)bVar40" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar40")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar39)" (( "(") (identifier "bVar39") () ")")) (; ";")) (if_statement "if ((!bVar38 && !bVar39) != bVar38) goto code_r0x0011c93b;" (if "if") (parenthesized_expression "((!bVar38 && !bVar39) != bVar38)" (( "(") (binary_expression "(!bVar38 && !bVar39) != bVar38" (parenthesized_expression "(!bVar38 && !bVar39)" (( "(") (binary_expression "!bVar38 && !bVar39" (unary_expression "!bVar38" (! "!") (identifier "bVar38")) (&& "&&") (unary_expression "!bVar39" (! "!") (identifier "bVar39"))) () ")")) (!= "!=") (identifier "bVar38")) () ")")) (goto_statement "goto code_r0x0011c93b;" (goto "goto") (statement_identifier "code_r0x0011c93b") (; ";"))) (} "}"))) (expression_statement "plVar18 = (long *)*plVar18;" (assignment_expression "plVar18 = (long *)*plVar18" (identifier "plVar18") (= "=") (cast_expression "(long *)*plVar18" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*plVar18" (* "*") (identifier "plVar18")))) (; ";")) (if_statement "if (plVar18 == (long *)0x0) break;" (if "if") (parenthesized_expression "(plVar18 == (long *)0x0)" (( "(") (binary_expression "plVar18 == (long *)0x0" (identifier "plVar18") (== "==") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (} "}")))) (} "}"))) (} "}"))) (if_statement "if (((DAT_0017fac3 & 0x10) != 0) && ((DAT_0017fac0 & 3) != 2)) {\n    local_40 = 0;\n    FUN_00119860(DAT_0017fd98,&local_40);\n    if (local_40 == 0) {\n      DAT_0017fac3 = DAT_0017fac3 & 0xef;\n    }\n  }" (if "if") (parenthesized_expression "(((DAT_0017fac3 & 0x10) != 0) && ((DAT_0017fac0 & 3) != 2))" (( "(") (binary_expression "((DAT_0017fac3 & 0x10) != 0) && ((DAT_0017fac0 & 3) != 2)" (parenthesized_expression "((DAT_0017fac3 & 0x10) != 0)" (( "(") (binary_expression "(DAT_0017fac3 & 0x10) != 0" (parenthesized_expression "(DAT_0017fac3 & 0x10)" (( "(") (binary_expression "DAT_0017fac3 & 0x10" (identifier "DAT_0017fac3") (& "&") (number_literal "0x10")) () ")")) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "((DAT_0017fac0 & 3) != 2)" (( "(") (binary_expression "(DAT_0017fac0 & 3) != 2" (parenthesized_expression "(DAT_0017fac0 & 3)" (( "(") (binary_expression "DAT_0017fac0 & 3" (identifier "DAT_0017fac0") (& "&") (number_literal "3")) () ")")) (!= "!=") (number_literal "2")) () ")"))) () ")")) (compound_statement "{\n    local_40 = 0;\n    FUN_00119860(DAT_0017fd98,&local_40);\n    if (local_40 == 0) {\n      DAT_0017fac3 = DAT_0017fac3 & 0xef;\n    }\n  }" ({ "{") (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" (identifier "local_40") (= "=") (number_literal "0")) (; ";")) (expression_statement "FUN_00119860(DAT_0017fd98,&local_40);" (call_expression "FUN_00119860(DAT_0017fd98,&local_40)" (identifier "FUN_00119860") (argument_list "(DAT_0017fd98,&local_40)" (( "(") (identifier "DAT_0017fd98") (, ",") (pointer_expression "&local_40" (& "&") (identifier "local_40")) () ")"))) (; ";")) (if_statement "if (local_40 == 0) {\n      DAT_0017fac3 = DAT_0017fac3 & 0xef;\n    }" (if "if") (parenthesized_expression "(local_40 == 0)" (( "(") (binary_expression "local_40 == 0" (identifier "local_40") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      DAT_0017fac3 = DAT_0017fac3 & 0xef;\n    }" ({ "{") (expression_statement "DAT_0017fac3 = DAT_0017fac3 & 0xef;" (assignment_expression "DAT_0017fac3 = DAT_0017fac3 & 0xef" (identifier "DAT_0017fac3") (= "=") (binary_expression "DAT_0017fac3 & 0xef" (identifier "DAT_0017fac3") (& "&") (number_literal "0xef"))) (; ";")) (} "}"))) (} "}"))) (expression_statement "FUN_0011a050(0,1 < DAT_0017fad8);" (call_expression "FUN_0011a050(0,1 < DAT_0017fad8)" (identifier "FUN_0011a050") (argument_list "(0,1 < DAT_0017fad8)" (( "(") (number_literal "0") (, ",") (binary_expression "1 < DAT_0017fad8" (number_literal "1") (< "<") (identifier "DAT_0017fad8")) () ")"))) (; ";")) (expression_statement "FUN_00123bb0();" (call_expression "FUN_00123bb0()" (identifier "FUN_00123bb0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "lVar16 = DAT_0017fb10;" (assignment_expression "lVar16 = DAT_0017fb10" (identifier "lVar16") (= "=") (identifier "DAT_0017fb10")) (; ";")) (expression_statement "uVar10 = DAT_0017f3c8;" (assignment_expression "uVar10 = DAT_0017f3c8" (identifier "uVar10") (= "=") (identifier "DAT_0017f3c8")) (; ";")) (if_statement "if (DAT_0017f350 != 0) {\n    plVar17 = DAT_0017f358 + DAT_0017f350;\n    plVar18 = DAT_0017f358;\n    do {\n      while (lVar15 = *plVar18, (*(ushort *)(lVar15 + 0x18) & 0x8ff) == 3) {\n        pcVar31 = *(char **)(lVar15 + 8);\n        if (*pcVar31 != '.') {\n          cVar8 = *(char *)(*(long *)(lVar16 + 8) + 0x1c);\n          lVar13 = *(long *)(*(long *)(lVar15 + 0x28) + 0x68);\n          *(long *)(lVar15 + 0x28) = lVar13;\n          if (pcVar31[(int)((cVar8 != '\0') + 4)] == 'o') {\n            *(ulong *)(lVar15 + 0x30) = *(ulong *)(lVar13 + 0x38) >> ((byte)uVar10 & 0x3f);\n          }\n          break;\n        }\n        if (pcVar31[2] != 'i') break;\n        plVar18 = plVar18 + 1;\n        uVar30 = *(ulong *)(*(long *)(lVar15 + 0x28) + 0x38);\n        *(undefined8 *)(lVar15 + 0x28) = 0x17ed50;\n        *(ulong *)(lVar15 + 0x30) = uVar30 >> ((byte)uVar10 & 0x3f);\n        if (plVar18 == plVar17) goto LAB_0011ca60;\n      }\n      plVar18 = plVar18 + 1;\n    } while (plVar18 != plVar17);\n  }" (if "if") (parenthesized_expression "(DAT_0017f350 != 0)" (( "(") (binary_expression "DAT_0017f350 != 0" (identifier "DAT_0017f350") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    plVar17 = DAT_0017f358 + DAT_0017f350;\n    plVar18 = DAT_0017f358;\n    do {\n      while (lVar15 = *plVar18, (*(ushort *)(lVar15 + 0x18) & 0x8ff) == 3) {\n        pcVar31 = *(char **)(lVar15 + 8);\n        if (*pcVar31 != '.') {\n          cVar8 = *(char *)(*(long *)(lVar16 + 8) + 0x1c);\n          lVar13 = *(long *)(*(long *)(lVar15 + 0x28) + 0x68);\n          *(long *)(lVar15 + 0x28) = lVar13;\n          if (pcVar31[(int)((cVar8 != '\0') + 4)] == 'o') {\n            *(ulong *)(lVar15 + 0x30) = *(ulong *)(lVar13 + 0x38) >> ((byte)uVar10 & 0x3f);\n          }\n          break;\n        }\n        if (pcVar31[2] != 'i') break;\n        plVar18 = plVar18 + 1;\n        uVar30 = *(ulong *)(*(long *)(lVar15 + 0x28) + 0x38);\n        *(undefined8 *)(lVar15 + 0x28) = 0x17ed50;\n        *(ulong *)(lVar15 + 0x30) = uVar30 >> ((byte)uVar10 & 0x3f);\n        if (plVar18 == plVar17) goto LAB_0011ca60;\n      }\n      plVar18 = plVar18 + 1;\n    } while (plVar18 != plVar17);\n  }" ({ "{") (expression_statement "plVar17 = DAT_0017f358 + DAT_0017f350;" (assignment_expression "plVar17 = DAT_0017f358 + DAT_0017f350" (identifier "plVar17") (= "=") (binary_expression "DAT_0017f358 + DAT_0017f350" (identifier "DAT_0017f358") (+ "+") (identifier "DAT_0017f350"))) (; ";")) (expression_statement "plVar18 = DAT_0017f358;" (assignment_expression "plVar18 = DAT_0017f358" (identifier "plVar18") (= "=") (identifier "DAT_0017f358")) (; ";")) (do_statement "do {\n      while (lVar15 = *plVar18, (*(ushort *)(lVar15 + 0x18) & 0x8ff) == 3) {\n        pcVar31 = *(char **)(lVar15 + 8);\n        if (*pcVar31 != '.') {\n          cVar8 = *(char *)(*(long *)(lVar16 + 8) + 0x1c);\n          lVar13 = *(long *)(*(long *)(lVar15 + 0x28) + 0x68);\n          *(long *)(lVar15 + 0x28) = lVar13;\n          if (pcVar31[(int)((cVar8 != '\0') + 4)] == 'o') {\n            *(ulong *)(lVar15 + 0x30) = *(ulong *)(lVar13 + 0x38) >> ((byte)uVar10 & 0x3f);\n          }\n          break;\n        }\n        if (pcVar31[2] != 'i') break;\n        plVar18 = plVar18 + 1;\n        uVar30 = *(ulong *)(*(long *)(lVar15 + 0x28) + 0x38);\n        *(undefined8 *)(lVar15 + 0x28) = 0x17ed50;\n        *(ulong *)(lVar15 + 0x30) = uVar30 >> ((byte)uVar10 & 0x3f);\n        if (plVar18 == plVar17) goto LAB_0011ca60;\n      }\n      plVar18 = plVar18 + 1;\n    } while (plVar18 != plVar17);" (do "do") (compound_statement "{\n      while (lVar15 = *plVar18, (*(ushort *)(lVar15 + 0x18) & 0x8ff) == 3) {\n        pcVar31 = *(char **)(lVar15 + 8);\n        if (*pcVar31 != '.') {\n          cVar8 = *(char *)(*(long *)(lVar16 + 8) + 0x1c);\n          lVar13 = *(long *)(*(long *)(lVar15 + 0x28) + 0x68);\n          *(long *)(lVar15 + 0x28) = lVar13;\n          if (pcVar31[(int)((cVar8 != '\0') + 4)] == 'o') {\n            *(ulong *)(lVar15 + 0x30) = *(ulong *)(lVar13 + 0x38) >> ((byte)uVar10 & 0x3f);\n          }\n          break;\n        }\n        if (pcVar31[2] != 'i') break;\n        plVar18 = plVar18 + 1;\n        uVar30 = *(ulong *)(*(long *)(lVar15 + 0x28) + 0x38);\n        *(undefined8 *)(lVar15 + 0x28) = 0x17ed50;\n        *(ulong *)(lVar15 + 0x30) = uVar30 >> ((byte)uVar10 & 0x3f);\n        if (plVar18 == plVar17) goto LAB_0011ca60;\n      }\n      plVar18 = plVar18 + 1;\n    }" ({ "{") (while_statement "while (lVar15 = *plVar18, (*(ushort *)(lVar15 + 0x18) & 0x8ff) == 3) {\n        pcVar31 = *(char **)(lVar15 + 8);\n        if (*pcVar31 != '.') {\n          cVar8 = *(char *)(*(long *)(lVar16 + 8) + 0x1c);\n          lVar13 = *(long *)(*(long *)(lVar15 + 0x28) + 0x68);\n          *(long *)(lVar15 + 0x28) = lVar13;\n          if (pcVar31[(int)((cVar8 != '\0') + 4)] == 'o') {\n            *(ulong *)(lVar15 + 0x30) = *(ulong *)(lVar13 + 0x38) >> ((byte)uVar10 & 0x3f);\n          }\n          break;\n        }\n        if (pcVar31[2] != 'i') break;\n        plVar18 = plVar18 + 1;\n        uVar30 = *(ulong *)(*(long *)(lVar15 + 0x28) + 0x38);\n        *(undefined8 *)(lVar15 + 0x28) = 0x17ed50;\n        *(ulong *)(lVar15 + 0x30) = uVar30 >> ((byte)uVar10 & 0x3f);\n        if (plVar18 == plVar17) goto LAB_0011ca60;\n      }" (while "while") (parenthesized_expression "(lVar15 = *plVar18, (*(ushort *)(lVar15 + 0x18) & 0x8ff) == 3)" (( "(") (comma_expression "lVar15 = *plVar18, (*(ushort *)(lVar15 + 0x18) & 0x8ff) == 3" (assignment_expression "lVar15 = *plVar18" (identifier "lVar15") (= "=") (pointer_expression "*plVar18" (* "*") (identifier "plVar18"))) (, ",") (binary_expression "(*(ushort *)(lVar15 + 0x18) & 0x8ff) == 3" (parenthesized_expression "(*(ushort *)(lVar15 + 0x18) & 0x8ff)" (( "(") (binary_expression "*(ushort *)(lVar15 + 0x18) & 0x8ff" (pointer_expression "*(ushort *)(lVar15 + 0x18)" (* "*") (cast_expression "(ushort *)(lVar15 + 0x18)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar15 + 0x18)" (( "(") (binary_expression "lVar15 + 0x18" (identifier "lVar15") (+ "+") (number_literal "0x18")) () ")")))) (& "&") (number_literal "0x8ff")) () ")")) (== "==") (number_literal "3"))) () ")")) (compound_statement "{\n        pcVar31 = *(char **)(lVar15 + 8);\n        if (*pcVar31 != '.') {\n          cVar8 = *(char *)(*(long *)(lVar16 + 8) + 0x1c);\n          lVar13 = *(long *)(*(long *)(lVar15 + 0x28) + 0x68);\n          *(long *)(lVar15 + 0x28) = lVar13;\n          if (pcVar31[(int)((cVar8 != '\0') + 4)] == 'o') {\n            *(ulong *)(lVar15 + 0x30) = *(ulong *)(lVar13 + 0x38) >> ((byte)uVar10 & 0x3f);\n          }\n          break;\n        }\n        if (pcVar31[2] != 'i') break;\n        plVar18 = plVar18 + 1;\n        uVar30 = *(ulong *)(*(long *)(lVar15 + 0x28) + 0x38);\n        *(undefined8 *)(lVar15 + 0x28) = 0x17ed50;\n        *(ulong *)(lVar15 + 0x30) = uVar30 >> ((byte)uVar10 & 0x3f);\n        if (plVar18 == plVar17) goto LAB_0011ca60;\n      }" ({ "{") (expression_statement "pcVar31 = *(char **)(lVar15 + 8);" (assignment_expression "pcVar31 = *(char **)(lVar15 + 8)" (identifier "pcVar31") (= "=") (pointer_expression "*(char **)(lVar15 + 8)" (* "*") (cast_expression "(char **)(lVar15 + 8)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar15 + 8)" (( "(") (binary_expression "lVar15 + 8" (identifier "lVar15") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if (*pcVar31 != '.') {\n          cVar8 = *(char *)(*(long *)(lVar16 + 8) + 0x1c);\n          lVar13 = *(long *)(*(long *)(lVar15 + 0x28) + 0x68);\n          *(long *)(lVar15 + 0x28) = lVar13;\n          if (pcVar31[(int)((cVar8 != '\0') + 4)] == 'o') {\n            *(ulong *)(lVar15 + 0x30) = *(ulong *)(lVar13 + 0x38) >> ((byte)uVar10 & 0x3f);\n          }\n          break;\n        }" (if "if") (parenthesized_expression "(*pcVar31 != '.')" (( "(") (binary_expression "*pcVar31 != '.'" (pointer_expression "*pcVar31" (* "*") (identifier "pcVar31")) (!= "!=") (char_literal "'.'" (' "'") (character ".") (' "'"))) () ")")) (compound_statement "{\n          cVar8 = *(char *)(*(long *)(lVar16 + 8) + 0x1c);\n          lVar13 = *(long *)(*(long *)(lVar15 + 0x28) + 0x68);\n          *(long *)(lVar15 + 0x28) = lVar13;\n          if (pcVar31[(int)((cVar8 != '\0') + 4)] == 'o') {\n            *(ulong *)(lVar15 + 0x30) = *(ulong *)(lVar13 + 0x38) >> ((byte)uVar10 & 0x3f);\n          }\n          break;\n        }" ({ "{") (expression_statement "cVar8 = *(char *)(*(long *)(lVar16 + 8) + 0x1c);" (assignment_expression "cVar8 = *(char *)(*(long *)(lVar16 + 8) + 0x1c)" (identifier "cVar8") (= "=") (pointer_expression "*(char *)(*(long *)(lVar16 + 8) + 0x1c)" (* "*") (cast_expression "(char *)(*(long *)(lVar16 + 8) + 0x1c)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(long *)(lVar16 + 8) + 0x1c)" (( "(") (binary_expression "*(long *)(lVar16 + 8) + 0x1c" (pointer_expression "*(long *)(lVar16 + 8)" (* "*") (cast_expression "(long *)(lVar16 + 8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar16 + 8)" (( "(") (binary_expression "lVar16 + 8" (identifier "lVar16") (+ "+") (number_literal "8")) () ")")))) (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (expression_statement "lVar13 = *(long *)(*(long *)(lVar15 + 0x28) + 0x68);" (assignment_expression "lVar13 = *(long *)(*(long *)(lVar15 + 0x28) + 0x68)" (identifier "lVar13") (= "=") (pointer_expression "*(long *)(*(long *)(lVar15 + 0x28) + 0x68)" (* "*") (cast_expression "(long *)(*(long *)(lVar15 + 0x28) + 0x68)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(long *)(lVar15 + 0x28) + 0x68)" (( "(") (binary_expression "*(long *)(lVar15 + 0x28) + 0x68" (pointer_expression "*(long *)(lVar15 + 0x28)" (* "*") (cast_expression "(long *)(lVar15 + 0x28)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar15 + 0x28)" (( "(") (binary_expression "lVar15 + 0x28" (identifier "lVar15") (+ "+") (number_literal "0x28")) () ")")))) (+ "+") (number_literal "0x68")) () ")"))))) (; ";")) (expression_statement "*(long *)(lVar15 + 0x28) = lVar13;" (assignment_expression "*(long *)(lVar15 + 0x28) = lVar13" (pointer_expression "*(long *)(lVar15 + 0x28)" (* "*") (cast_expression "(long *)(lVar15 + 0x28)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar15 + 0x28)" (( "(") (binary_expression "lVar15 + 0x28" (identifier "lVar15") (+ "+") (number_literal "0x28")) () ")")))) (= "=") (identifier "lVar13")) (; ";")) (if_statement "if (pcVar31[(int)((cVar8 != '\0') + 4)] == 'o') {\n            *(ulong *)(lVar15 + 0x30) = *(ulong *)(lVar13 + 0x38) >> ((byte)uVar10 & 0x3f);\n          }" (if "if") (parenthesized_expression "(pcVar31[(int)((cVar8 != '\0') + 4)] == 'o')" (( "(") (binary_expression "pcVar31[(int)((cVar8 != '\0') + 4)] == 'o'" (subscript_expression "pcVar31[(int)((cVar8 != '\0') + 4)]" (identifier "pcVar31") ([ "[") (cast_expression "(int)((cVar8 != '\0') + 4)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((cVar8 != '\0') + 4)" (( "(") (binary_expression "(cVar8 != '\0') + 4" (parenthesized_expression "(cVar8 != '\0')" (( "(") (binary_expression "cVar8 != '\0'" (identifier "cVar8") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (+ "+") (number_literal "4")) () ")"))) (] "]")) (== "==") (char_literal "'o'" (' "'") (character "o") (' "'"))) () ")")) (compound_statement "{\n            *(ulong *)(lVar15 + 0x30) = *(ulong *)(lVar13 + 0x38) >> ((byte)uVar10 & 0x3f);\n          }" ({ "{") (expression_statement "*(ulong *)(lVar15 + 0x30) = *(ulong *)(lVar13 + 0x38) >> ((byte)uVar10 & 0x3f);" (assignment_expression "*(ulong *)(lVar15 + 0x30) = *(ulong *)(lVar13 + 0x38) >> ((byte)uVar10 & 0x3f)" (pointer_expression "*(ulong *)(lVar15 + 0x30)" (* "*") (cast_expression "(ulong *)(lVar15 + 0x30)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar15 + 0x30)" (( "(") (binary_expression "lVar15 + 0x30" (identifier "lVar15") (+ "+") (number_literal "0x30")) () ")")))) (= "=") (binary_expression "*(ulong *)(lVar13 + 0x38) >> ((byte)uVar10 & 0x3f)" (pointer_expression "*(ulong *)(lVar13 + 0x38)" (* "*") (cast_expression "(ulong *)(lVar13 + 0x38)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar13 + 0x38)" (( "(") (binary_expression "lVar13 + 0x38" (identifier "lVar13") (+ "+") (number_literal "0x38")) () ")")))) (>> ">>") (parenthesized_expression "((byte)uVar10 & 0x3f)" (( "(") (binary_expression "(byte)uVar10 & 0x3f" (cast_expression "(byte)uVar10" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar10")) (& "&") (number_literal "0x3f")) () ")")))) (; ";")) (} "}"))) (break_statement "break;" (break "break") (; ";")) (} "}"))) (if_statement "if (pcVar31[2] != 'i') break;" (if "if") (parenthesized_expression "(pcVar31[2] != 'i')" (( "(") (binary_expression "pcVar31[2] != 'i'" (subscript_expression "pcVar31[2]" (identifier "pcVar31") ([ "[") (number_literal "2") (] "]")) (!= "!=") (char_literal "'i'" (' "'") (character "i") (' "'"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "plVar18 = plVar18 + 1;" (assignment_expression "plVar18 = plVar18 + 1" (identifier "plVar18") (= "=") (binary_expression "plVar18 + 1" (identifier "plVar18") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar30 = *(ulong *)(*(long *)(lVar15 + 0x28) + 0x38);" (assignment_expression "uVar30 = *(ulong *)(*(long *)(lVar15 + 0x28) + 0x38)" (identifier "uVar30") (= "=") (pointer_expression "*(ulong *)(*(long *)(lVar15 + 0x28) + 0x38)" (* "*") (cast_expression "(ulong *)(*(long *)(lVar15 + 0x28) + 0x38)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(long *)(lVar15 + 0x28) + 0x38)" (( "(") (binary_expression "*(long *)(lVar15 + 0x28) + 0x38" (pointer_expression "*(long *)(lVar15 + 0x28)" (* "*") (cast_expression "(long *)(lVar15 + 0x28)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar15 + 0x28)" (( "(") (binary_expression "lVar15 + 0x28" (identifier "lVar15") (+ "+") (number_literal "0x28")) () ")")))) (+ "+") (number_literal "0x38")) () ")"))))) (; ";")) (expression_statement "*(undefined8 *)(lVar15 + 0x28) = 0x17ed50;" (assignment_expression "*(undefined8 *)(lVar15 + 0x28) = 0x17ed50" (pointer_expression "*(undefined8 *)(lVar15 + 0x28)" (* "*") (cast_expression "(undefined8 *)(lVar15 + 0x28)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar15 + 0x28)" (( "(") (binary_expression "lVar15 + 0x28" (identifier "lVar15") (+ "+") (number_literal "0x28")) () ")")))) (= "=") (number_literal "0x17ed50")) (; ";")) (expression_statement "*(ulong *)(lVar15 + 0x30) = uVar30 >> ((byte)uVar10 & 0x3f);" (assignment_expression "*(ulong *)(lVar15 + 0x30) = uVar30 >> ((byte)uVar10 & 0x3f)" (pointer_expression "*(ulong *)(lVar15 + 0x30)" (* "*") (cast_expression "(ulong *)(lVar15 + 0x30)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar15 + 0x30)" (( "(") (binary_expression "lVar15 + 0x30" (identifier "lVar15") (+ "+") (number_literal "0x30")) () ")")))) (= "=") (binary_expression "uVar30 >> ((byte)uVar10 & 0x3f)" (identifier "uVar30") (>> ">>") (parenthesized_expression "((byte)uVar10 & 0x3f)" (( "(") (binary_expression "(byte)uVar10 & 0x3f" (cast_expression "(byte)uVar10" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar10")) (& "&") (number_literal "0x3f")) () ")")))) (; ";")) (if_statement "if (plVar18 == plVar17) goto LAB_0011ca60;" (if "if") (parenthesized_expression "(plVar18 == plVar17)" (( "(") (binary_expression "plVar18 == plVar17" (identifier "plVar18") (== "==") (identifier "plVar17")) () ")")) (goto_statement "goto LAB_0011ca60;" (goto "goto") (statement_identifier "LAB_0011ca60") (; ";"))) (} "}"))) (expression_statement "plVar18 = plVar18 + 1;" (assignment_expression "plVar18 = plVar18 + 1" (identifier "plVar18") (= "=") (binary_expression "plVar18 + 1" (identifier "plVar18") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(plVar18 != plVar17)" (( "(") (binary_expression "plVar18 != plVar17" (identifier "plVar18") (!= "!=") (identifier "plVar17")) () ")")) (; ";")) (} "}"))) (labeled_statement "LAB_0011ca60:\n  FUN_001188a0(4);" (statement_identifier "LAB_0011ca60") (: ":") (expression_statement "FUN_001188a0(4);" (call_expression "FUN_001188a0(4)" (identifier "FUN_001188a0") (argument_list "(4)" (( "(") (number_literal "4") () ")"))) (; ";"))) (expression_statement "FUN_00123be0();" (call_expression "FUN_00123be0()" (identifier "FUN_00123be0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_00123b20();" (call_expression "FUN_00123b20()" (identifier "FUN_00123b20") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "puVar21 = DAT_0017f378;" (assignment_expression "puVar21 = DAT_0017f378" (identifier "puVar21") (= "=") (identifier "DAT_0017f378")) (; ";")) (if_statement "if (DAT_0017fbd8 != '\0') {\n    cVar8 = bfd_arch_bits_per_address(DAT_0017fb10);\n    puVar21 = *(undefined8 **)(DAT_0017fb10 + 0x90);\n    uVar30 = (1L << (cVar8 - 1U & 0x3f)) * 2 - 1;\n    if (puVar21 != (undefined8 *)0x0) {\n      do {\n        if ((*(byte *)(puVar21 + 4) & 1) != 0) {\n          uVar29 = puVar21[5] + puVar21[7] & uVar30;\n          if ((uVar29 == 0) || ((puVar21[5] & uVar30) <= uVar29)) {\n            uVar29 = puVar21[7] + puVar21[6] & uVar30;\n            if ((uVar29 == 0) || ((puVar21[6] & uVar30) <= uVar29)) goto LAB_0011d2f0;\n            uVar11 = *puVar21;\n            pcVar31 = "%X%P: section %s LMA wraps around address space\n";\n          }\n          else {\n            uVar11 = *puVar21;\n            pcVar31 = "%X%P: section %s VMA wraps around address space\n";\n          }\n          uVar14 = dcgettext(0,pcVar31,5);\n          FUN_001251f0(uVar14,uVar11);\n        }\nLAB_0011d2f0:\n        puVar21 = (undefined8 *)puVar21[2];\n      } while (puVar21 != (undefined8 *)0x0);\n    }\n    puVar21 = DAT_0017f378;\n    if (1 < *(uint *)(DAT_0017fb10 + 0xa0)) {\n      uVar30 = 0;\n      plVar17 = (long *)xmalloc((ulong)*(uint *)(DAT_0017fb10 + 0xa0) << 4);\n      lVar16 = *(long *)(DAT_0017fb10 + 0x90);\n      if (lVar16 != 0) {\n        do {\n          uVar29 = uVar30;\n          if ((((*(uint *)(lVar16 + 0x20) & 1) != 0) &&\n              ((*(uint *)(lVar16 + 0x20) & 0x402) != 0x400)) && (*(long *)(lVar16 + 0x38) != 0)) {\n            uVar29 = uVar30 + 1;\n            plVar17[uVar30 * 2] = lVar16;\n            *(undefined4 *)(plVar17 + uVar30 * 2 + 1) = 0;\n          }\n          lVar16 = *(long *)(lVar16 + 0x10);\n          uVar30 = uVar29;\n        } while (lVar16 != 0);\n        if (1 < uVar29) {\n          qsort(plVar17,uVar29,0x10,FUN_00112320);\n          puVar21 = (undefined8 *)0x0;\n          plVar18 = plVar17;\n          uVar30 = 0;\n          uVar25 = 0;\n          do {\n            puVar27 = (undefined8 *)*plVar18;\n            puVar22 = puVar21;\n            uVar34 = uVar30;\n            uVar23 = uVar25;\n            if ((*(byte *)(puVar27 + 4) & 2) != 0) {\n              uVar34 = puVar27[6];\n              uVar23 = (uVar34 - 1) + ((ulong)puVar27[7] >> ((byte)DAT_0017f3c8 & 0x3f));\n              puVar22 = puVar27;\n              if ((puVar21 != (undefined8 *)0x0) && ((uVar34 <= uVar25 || (uVar25 < uVar30)))) {\n                uVar11 = *puVar21;\n                uVar14 = *puVar27;\n                uVar24 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);\n                FUN_001251f0(uVar24,uVar14,uVar34,uVar23,uVar11,uVar30,uVar25);\n                *(undefined4 *)(plVar18 + 1) = 1;\n              }\n            }\n            plVar18 = plVar18 + 2;\n            puVar21 = puVar22;\n            uVar30 = uVar34;\n            uVar25 = uVar23;\n          } while (plVar18 != plVar17 + uVar29 * 2);\n          qsort(plVar17,uVar29,0x10,FUN_00112350);\n          puVar21 = (undefined8 *)*plVar17;\n          uVar23 = 1;\n          uVar30 = puVar21[5];\n          uVar25 = uVar30;\n          do {\n            lVar16 = uVar23 * 2;\n            if (*(ulong *)(plVar17[lVar16] + 0x28) == uVar25) goto LAB_0011d4c4;\n            uVar23 = uVar23 + 1;\n            uVar25 = *(ulong *)(plVar17[lVar16] + 0x28);\n          } while (uVar23 != uVar29);\n          uVar23 = 0;\n          uVar25 = (uVar30 - 1) + ((ulong)puVar21[7] >> ((byte)DAT_0017f3c8 & 0x3f));\n          plVar18 = plVar17;\n          while( true ) {\n            uVar37 = uVar25;\n            uVar34 = uVar30;\n            puVar27 = puVar21;\n            plVar26 = plVar18 + 2;\n            uVar23 = uVar23 + 1;\n            if (uVar23 == uVar29) break;\n            puVar21 = (undefined8 *)*plVar26;\n            plVar3 = plVar18 + 3;\n            uVar30 = puVar21[5];\n            uVar25 = (uVar30 - 1) + ((ulong)puVar21[7] >> ((byte)DAT_0017f3c8 & 0x3f));\n            plVar18 = plVar26;\n            if (((int)*plVar3 == 0) && ((uVar30 <= uVar37 || (uVar37 < uVar34)))) {\n              uVar11 = *puVar27;\n              uVar14 = *puVar21;\n              uVar24 = dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",\n                                 5);\n              FUN_001251f0(uVar24,uVar14,uVar30,uVar25,uVar11,uVar34,uVar37);\n            }\n          }\nLAB_0011d4c4:\n          free(plVar17);\n          for (puVar27 = DAT_0017f398; puVar21 = DAT_0017f378, puVar27 != (undefined8 *)0x0;\n              puVar27 = (undefined8 *)puVar27[2]) {\n            if (*(int *)(puVar27 + 10) != 0) {\n              uVar11 = *puVar27;\n              lVar16 = puVar27[7] - (puVar27[5] + puVar27[4]);\n              uVar14 = dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",lVar16,5);\n              FUN_001251f0(uVar14,uVar11,lVar16);\n            }\n          }\n          goto joined_r0x0011ca92;\n        }\n      }\n      free(plVar17);\n      puVar21 = DAT_0017f378;\n    }\n  }" (if "if") (parenthesized_expression "(DAT_0017fbd8 != '\0')" (( "(") (binary_expression "DAT_0017fbd8 != '\0'" (identifier "DAT_0017fbd8") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    cVar8 = bfd_arch_bits_per_address(DAT_0017fb10);\n    puVar21 = *(undefined8 **)(DAT_0017fb10 + 0x90);\n    uVar30 = (1L << (cVar8 - 1U & 0x3f)) * 2 - 1;\n    if (puVar21 != (undefined8 *)0x0) {\n      do {\n        if ((*(byte *)(puVar21 + 4) & 1) != 0) {\n          uVar29 = puVar21[5] + puVar21[7] & uVar30;\n          if ((uVar29 == 0) || ((puVar21[5] & uVar30) <= uVar29)) {\n            uVar29 = puVar21[7] + puVar21[6] & uVar30;\n            if ((uVar29 == 0) || ((puVar21[6] & uVar30) <= uVar29)) goto LAB_0011d2f0;\n            uVar11 = *puVar21;\n            pcVar31 = "%X%P: section %s LMA wraps around address space\n";\n          }\n          else {\n            uVar11 = *puVar21;\n            pcVar31 = "%X%P: section %s VMA wraps around address space\n";\n          }\n          uVar14 = dcgettext(0,pcVar31,5);\n          FUN_001251f0(uVar14,uVar11);\n        }\nLAB_0011d2f0:\n        puVar21 = (undefined8 *)puVar21[2];\n      } while (puVar21 != (undefined8 *)0x0);\n    }\n    puVar21 = DAT_0017f378;\n    if (1 < *(uint *)(DAT_0017fb10 + 0xa0)) {\n      uVar30 = 0;\n      plVar17 = (long *)xmalloc((ulong)*(uint *)(DAT_0017fb10 + 0xa0) << 4);\n      lVar16 = *(long *)(DAT_0017fb10 + 0x90);\n      if (lVar16 != 0) {\n        do {\n          uVar29 = uVar30;\n          if ((((*(uint *)(lVar16 + 0x20) & 1) != 0) &&\n              ((*(uint *)(lVar16 + 0x20) & 0x402) != 0x400)) && (*(long *)(lVar16 + 0x38) != 0)) {\n            uVar29 = uVar30 + 1;\n            plVar17[uVar30 * 2] = lVar16;\n            *(undefined4 *)(plVar17 + uVar30 * 2 + 1) = 0;\n          }\n          lVar16 = *(long *)(lVar16 + 0x10);\n          uVar30 = uVar29;\n        } while (lVar16 != 0);\n        if (1 < uVar29) {\n          qsort(plVar17,uVar29,0x10,FUN_00112320);\n          puVar21 = (undefined8 *)0x0;\n          plVar18 = plVar17;\n          uVar30 = 0;\n          uVar25 = 0;\n          do {\n            puVar27 = (undefined8 *)*plVar18;\n            puVar22 = puVar21;\n            uVar34 = uVar30;\n            uVar23 = uVar25;\n            if ((*(byte *)(puVar27 + 4) & 2) != 0) {\n              uVar34 = puVar27[6];\n              uVar23 = (uVar34 - 1) + ((ulong)puVar27[7] >> ((byte)DAT_0017f3c8 & 0x3f));\n              puVar22 = puVar27;\n              if ((puVar21 != (undefined8 *)0x0) && ((uVar34 <= uVar25 || (uVar25 < uVar30)))) {\n                uVar11 = *puVar21;\n                uVar14 = *puVar27;\n                uVar24 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);\n                FUN_001251f0(uVar24,uVar14,uVar34,uVar23,uVar11,uVar30,uVar25);\n                *(undefined4 *)(plVar18 + 1) = 1;\n              }\n            }\n            plVar18 = plVar18 + 2;\n            puVar21 = puVar22;\n            uVar30 = uVar34;\n            uVar25 = uVar23;\n          } while (plVar18 != plVar17 + uVar29 * 2);\n          qsort(plVar17,uVar29,0x10,FUN_00112350);\n          puVar21 = (undefined8 *)*plVar17;\n          uVar23 = 1;\n          uVar30 = puVar21[5];\n          uVar25 = uVar30;\n          do {\n            lVar16 = uVar23 * 2;\n            if (*(ulong *)(plVar17[lVar16] + 0x28) == uVar25) goto LAB_0011d4c4;\n            uVar23 = uVar23 + 1;\n            uVar25 = *(ulong *)(plVar17[lVar16] + 0x28);\n          } while (uVar23 != uVar29);\n          uVar23 = 0;\n          uVar25 = (uVar30 - 1) + ((ulong)puVar21[7] >> ((byte)DAT_0017f3c8 & 0x3f));\n          plVar18 = plVar17;\n          while( true ) {\n            uVar37 = uVar25;\n            uVar34 = uVar30;\n            puVar27 = puVar21;\n            plVar26 = plVar18 + 2;\n            uVar23 = uVar23 + 1;\n            if (uVar23 == uVar29) break;\n            puVar21 = (undefined8 *)*plVar26;\n            plVar3 = plVar18 + 3;\n            uVar30 = puVar21[5];\n            uVar25 = (uVar30 - 1) + ((ulong)puVar21[7] >> ((byte)DAT_0017f3c8 & 0x3f));\n            plVar18 = plVar26;\n            if (((int)*plVar3 == 0) && ((uVar30 <= uVar37 || (uVar37 < uVar34)))) {\n              uVar11 = *puVar27;\n              uVar14 = *puVar21;\n              uVar24 = dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",\n                                 5);\n              FUN_001251f0(uVar24,uVar14,uVar30,uVar25,uVar11,uVar34,uVar37);\n            }\n          }\nLAB_0011d4c4:\n          free(plVar17);\n          for (puVar27 = DAT_0017f398; puVar21 = DAT_0017f378, puVar27 != (undefined8 *)0x0;\n              puVar27 = (undefined8 *)puVar27[2]) {\n            if (*(int *)(puVar27 + 10) != 0) {\n              uVar11 = *puVar27;\n              lVar16 = puVar27[7] - (puVar27[5] + puVar27[4]);\n              uVar14 = dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",lVar16,5);\n              FUN_001251f0(uVar14,uVar11,lVar16);\n            }\n          }\n          goto joined_r0x0011ca92;\n        }\n      }\n      free(plVar17);\n      puVar21 = DAT_0017f378;\n    }\n  }" ({ "{") (expression_statement "cVar8 = bfd_arch_bits_per_address(DAT_0017fb10);" (assignment_expression "cVar8 = bfd_arch_bits_per_address(DAT_0017fb10)" (identifier "cVar8") (= "=") (call_expression "bfd_arch_bits_per_address(DAT_0017fb10)" (identifier "bfd_arch_bits_per_address") (argument_list "(DAT_0017fb10)" (( "(") (identifier "DAT_0017fb10") () ")")))) (; ";")) (expression_statement "puVar21 = *(undefined8 **)(DAT_0017fb10 + 0x90);" (assignment_expression "puVar21 = *(undefined8 **)(DAT_0017fb10 + 0x90)" (identifier "puVar21") (= "=") (pointer_expression "*(undefined8 **)(DAT_0017fb10 + 0x90)" (* "*") (cast_expression "(undefined8 **)(DAT_0017fb10 + 0x90)" (( "(") (type_descriptor "undefined8 **" (type_identifier "undefined8") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(DAT_0017fb10 + 0x90)" (( "(") (binary_expression "DAT_0017fb10 + 0x90" (identifier "DAT_0017fb10") (+ "+") (number_literal "0x90")) () ")"))))) (; ";")) (expression_statement "uVar30 = (1L << (cVar8 - 1U & 0x3f)) * 2 - 1;" (assignment_expression "uVar30 = (1L << (cVar8 - 1U & 0x3f)) * 2 - 1" (identifier "uVar30") (= "=") (binary_expression "(1L << (cVar8 - 1U & 0x3f)) * 2 - 1" (binary_expression "(1L << (cVar8 - 1U & 0x3f)) * 2" (parenthesized_expression "(1L << (cVar8 - 1U & 0x3f))" (( "(") (binary_expression "1L << (cVar8 - 1U & 0x3f)" (number_literal "1L") (<< "<<") (parenthesized_expression "(cVar8 - 1U & 0x3f)" (( "(") (binary_expression "cVar8 - 1U & 0x3f" (binary_expression "cVar8 - 1U" (identifier "cVar8") (- "-") (number_literal "1U")) (& "&") (number_literal "0x3f")) () ")"))) () ")")) (* "*") (number_literal "2")) (- "-") (number_literal "1"))) (; ";")) (if_statement "if (puVar21 != (undefined8 *)0x0) {\n      do {\n        if ((*(byte *)(puVar21 + 4) & 1) != 0) {\n          uVar29 = puVar21[5] + puVar21[7] & uVar30;\n          if ((uVar29 == 0) || ((puVar21[5] & uVar30) <= uVar29)) {\n            uVar29 = puVar21[7] + puVar21[6] & uVar30;\n            if ((uVar29 == 0) || ((puVar21[6] & uVar30) <= uVar29)) goto LAB_0011d2f0;\n            uVar11 = *puVar21;\n            pcVar31 = "%X%P: section %s LMA wraps around address space\n";\n          }\n          else {\n            uVar11 = *puVar21;\n            pcVar31 = "%X%P: section %s VMA wraps around address space\n";\n          }\n          uVar14 = dcgettext(0,pcVar31,5);\n          FUN_001251f0(uVar14,uVar11);\n        }\nLAB_0011d2f0:\n        puVar21 = (undefined8 *)puVar21[2];\n      } while (puVar21 != (undefined8 *)0x0);\n    }" (if "if") (parenthesized_expression "(puVar21 != (undefined8 *)0x0)" (( "(") (binary_expression "puVar21 != (undefined8 *)0x0" (identifier "puVar21") (!= "!=") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      do {\n        if ((*(byte *)(puVar21 + 4) & 1) != 0) {\n          uVar29 = puVar21[5] + puVar21[7] & uVar30;\n          if ((uVar29 == 0) || ((puVar21[5] & uVar30) <= uVar29)) {\n            uVar29 = puVar21[7] + puVar21[6] & uVar30;\n            if ((uVar29 == 0) || ((puVar21[6] & uVar30) <= uVar29)) goto LAB_0011d2f0;\n            uVar11 = *puVar21;\n            pcVar31 = "%X%P: section %s LMA wraps around address space\n";\n          }\n          else {\n            uVar11 = *puVar21;\n            pcVar31 = "%X%P: section %s VMA wraps around address space\n";\n          }\n          uVar14 = dcgettext(0,pcVar31,5);\n          FUN_001251f0(uVar14,uVar11);\n        }\nLAB_0011d2f0:\n        puVar21 = (undefined8 *)puVar21[2];\n      } while (puVar21 != (undefined8 *)0x0);\n    }" ({ "{") (do_statement "do {\n        if ((*(byte *)(puVar21 + 4) & 1) != 0) {\n          uVar29 = puVar21[5] + puVar21[7] & uVar30;\n          if ((uVar29 == 0) || ((puVar21[5] & uVar30) <= uVar29)) {\n            uVar29 = puVar21[7] + puVar21[6] & uVar30;\n            if ((uVar29 == 0) || ((puVar21[6] & uVar30) <= uVar29)) goto LAB_0011d2f0;\n            uVar11 = *puVar21;\n            pcVar31 = "%X%P: section %s LMA wraps around address space\n";\n          }\n          else {\n            uVar11 = *puVar21;\n            pcVar31 = "%X%P: section %s VMA wraps around address space\n";\n          }\n          uVar14 = dcgettext(0,pcVar31,5);\n          FUN_001251f0(uVar14,uVar11);\n        }\nLAB_0011d2f0:\n        puVar21 = (undefined8 *)puVar21[2];\n      } while (puVar21 != (undefined8 *)0x0);" (do "do") (compound_statement "{\n        if ((*(byte *)(puVar21 + 4) & 1) != 0) {\n          uVar29 = puVar21[5] + puVar21[7] & uVar30;\n          if ((uVar29 == 0) || ((puVar21[5] & uVar30) <= uVar29)) {\n            uVar29 = puVar21[7] + puVar21[6] & uVar30;\n            if ((uVar29 == 0) || ((puVar21[6] & uVar30) <= uVar29)) goto LAB_0011d2f0;\n            uVar11 = *puVar21;\n            pcVar31 = "%X%P: section %s LMA wraps around address space\n";\n          }\n          else {\n            uVar11 = *puVar21;\n            pcVar31 = "%X%P: section %s VMA wraps around address space\n";\n          }\n          uVar14 = dcgettext(0,pcVar31,5);\n          FUN_001251f0(uVar14,uVar11);\n        }\nLAB_0011d2f0:\n        puVar21 = (undefined8 *)puVar21[2];\n      }" ({ "{") (if_statement "if ((*(byte *)(puVar21 + 4) & 1) != 0) {\n          uVar29 = puVar21[5] + puVar21[7] & uVar30;\n          if ((uVar29 == 0) || ((puVar21[5] & uVar30) <= uVar29)) {\n            uVar29 = puVar21[7] + puVar21[6] & uVar30;\n            if ((uVar29 == 0) || ((puVar21[6] & uVar30) <= uVar29)) goto LAB_0011d2f0;\n            uVar11 = *puVar21;\n            pcVar31 = "%X%P: section %s LMA wraps around address space\n";\n          }\n          else {\n            uVar11 = *puVar21;\n            pcVar31 = "%X%P: section %s VMA wraps around address space\n";\n          }\n          uVar14 = dcgettext(0,pcVar31,5);\n          FUN_001251f0(uVar14,uVar11);\n        }" (if "if") (parenthesized_expression "((*(byte *)(puVar21 + 4) & 1) != 0)" (( "(") (binary_expression "(*(byte *)(puVar21 + 4) & 1) != 0" (parenthesized_expression "(*(byte *)(puVar21 + 4) & 1)" (( "(") (binary_expression "*(byte *)(puVar21 + 4) & 1" (pointer_expression "*(byte *)(puVar21 + 4)" (* "*") (cast_expression "(byte *)(puVar21 + 4)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + 4)" (( "(") (binary_expression "puVar21 + 4" (identifier "puVar21") (+ "+") (number_literal "4")) () ")")))) (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          uVar29 = puVar21[5] + puVar21[7] & uVar30;\n          if ((uVar29 == 0) || ((puVar21[5] & uVar30) <= uVar29)) {\n            uVar29 = puVar21[7] + puVar21[6] & uVar30;\n            if ((uVar29 == 0) || ((puVar21[6] & uVar30) <= uVar29)) goto LAB_0011d2f0;\n            uVar11 = *puVar21;\n            pcVar31 = "%X%P: section %s LMA wraps around address space\n";\n          }\n          else {\n            uVar11 = *puVar21;\n            pcVar31 = "%X%P: section %s VMA wraps around address space\n";\n          }\n          uVar14 = dcgettext(0,pcVar31,5);\n          FUN_001251f0(uVar14,uVar11);\n        }" ({ "{") (expression_statement "uVar29 = puVar21[5] + puVar21[7] & uVar30;" (assignment_expression "uVar29 = puVar21[5] + puVar21[7] & uVar30" (identifier "uVar29") (= "=") (binary_expression "puVar21[5] + puVar21[7] & uVar30" (binary_expression "puVar21[5] + puVar21[7]" (subscript_expression "puVar21[5]" (identifier "puVar21") ([ "[") (number_literal "5") (] "]")) (+ "+") (subscript_expression "puVar21[7]" (identifier "puVar21") ([ "[") (number_literal "7") (] "]"))) (& "&") (identifier "uVar30"))) (; ";")) (if_statement "if ((uVar29 == 0) || ((puVar21[5] & uVar30) <= uVar29)) {\n            uVar29 = puVar21[7] + puVar21[6] & uVar30;\n            if ((uVar29 == 0) || ((puVar21[6] & uVar30) <= uVar29)) goto LAB_0011d2f0;\n            uVar11 = *puVar21;\n            pcVar31 = "%X%P: section %s LMA wraps around address space\n";\n          }\n          else {\n            uVar11 = *puVar21;\n            pcVar31 = "%X%P: section %s VMA wraps around address space\n";\n          }" (if "if") (parenthesized_expression "((uVar29 == 0) || ((puVar21[5] & uVar30) <= uVar29))" (( "(") (binary_expression "(uVar29 == 0) || ((puVar21[5] & uVar30) <= uVar29)" (parenthesized_expression "(uVar29 == 0)" (( "(") (binary_expression "uVar29 == 0" (identifier "uVar29") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "((puVar21[5] & uVar30) <= uVar29)" (( "(") (binary_expression "(puVar21[5] & uVar30) <= uVar29" (parenthesized_expression "(puVar21[5] & uVar30)" (( "(") (binary_expression "puVar21[5] & uVar30" (subscript_expression "puVar21[5]" (identifier "puVar21") ([ "[") (number_literal "5") (] "]")) (& "&") (identifier "uVar30")) () ")")) (<= "<=") (identifier "uVar29")) () ")"))) () ")")) (compound_statement "{\n            uVar29 = puVar21[7] + puVar21[6] & uVar30;\n            if ((uVar29 == 0) || ((puVar21[6] & uVar30) <= uVar29)) goto LAB_0011d2f0;\n            uVar11 = *puVar21;\n            pcVar31 = "%X%P: section %s LMA wraps around address space\n";\n          }" ({ "{") (expression_statement "uVar29 = puVar21[7] + puVar21[6] & uVar30;" (assignment_expression "uVar29 = puVar21[7] + puVar21[6] & uVar30" (identifier "uVar29") (= "=") (binary_expression "puVar21[7] + puVar21[6] & uVar30" (binary_expression "puVar21[7] + puVar21[6]" (subscript_expression "puVar21[7]" (identifier "puVar21") ([ "[") (number_literal "7") (] "]")) (+ "+") (subscript_expression "puVar21[6]" (identifier "puVar21") ([ "[") (number_literal "6") (] "]"))) (& "&") (identifier "uVar30"))) (; ";")) (if_statement "if ((uVar29 == 0) || ((puVar21[6] & uVar30) <= uVar29)) goto LAB_0011d2f0;" (if "if") (parenthesized_expression "((uVar29 == 0) || ((puVar21[6] & uVar30) <= uVar29))" (( "(") (binary_expression "(uVar29 == 0) || ((puVar21[6] & uVar30) <= uVar29)" (parenthesized_expression "(uVar29 == 0)" (( "(") (binary_expression "uVar29 == 0" (identifier "uVar29") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "((puVar21[6] & uVar30) <= uVar29)" (( "(") (binary_expression "(puVar21[6] & uVar30) <= uVar29" (parenthesized_expression "(puVar21[6] & uVar30)" (( "(") (binary_expression "puVar21[6] & uVar30" (subscript_expression "puVar21[6]" (identifier "puVar21") ([ "[") (number_literal "6") (] "]")) (& "&") (identifier "uVar30")) () ")")) (<= "<=") (identifier "uVar29")) () ")"))) () ")")) (goto_statement "goto LAB_0011d2f0;" (goto "goto") (statement_identifier "LAB_0011d2f0") (; ";"))) (expression_statement "uVar11 = *puVar21;" (assignment_expression "uVar11 = *puVar21" (identifier "uVar11") (= "=") (pointer_expression "*puVar21" (* "*") (identifier "puVar21"))) (; ";")) (expression_statement "pcVar31 = "%X%P: section %s LMA wraps around address space\n";" (assignment_expression "pcVar31 = "%X%P: section %s LMA wraps around address space\n"" (identifier "pcVar31") (= "=") (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            uVar11 = *puVar21;\n            pcVar31 = "%X%P: section %s VMA wraps around address space\n";\n          }" (else "else") (compound_statement "{\n            uVar11 = *puVar21;\n            pcVar31 = "%X%P: section %s VMA wraps around address space\n";\n          }" ({ "{") (expression_statement "uVar11 = *puVar21;" (assignment_expression "uVar11 = *puVar21" (identifier "uVar11") (= "=") (pointer_expression "*puVar21" (* "*") (identifier "puVar21"))) (; ";")) (expression_statement "pcVar31 = "%X%P: section %s VMA wraps around address space\n";" (assignment_expression "pcVar31 = "%X%P: section %s VMA wraps around address space\n"" (identifier "pcVar31") (= "=") (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,pcVar31,5);" (assignment_expression "uVar14 = dcgettext(0,pcVar31,5)" (identifier "uVar14") (= "=") (call_expression "dcgettext(0,pcVar31,5)" (identifier "dcgettext") (argument_list "(0,pcVar31,5)" (( "(") (number_literal "0") (, ",") (identifier "pcVar31") (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_001251f0(uVar14,uVar11);" (call_expression "FUN_001251f0(uVar14,uVar11)" (identifier "FUN_001251f0") (argument_list "(uVar14,uVar11)" (( "(") (identifier "uVar14") (, ",") (identifier "uVar11") () ")"))) (; ";")) (} "}"))) (labeled_statement "LAB_0011d2f0:\n        puVar21 = (undefined8 *)puVar21[2];" (statement_identifier "LAB_0011d2f0") (: ":") (expression_statement "puVar21 = (undefined8 *)puVar21[2];" (assignment_expression "puVar21 = (undefined8 *)puVar21[2]" (identifier "puVar21") (= "=") (cast_expression "(undefined8 *)puVar21[2]" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar21[2]" (identifier "puVar21") ([ "[") (number_literal "2") (] "]")))) (; ";"))) (} "}")) (while "while") (parenthesized_expression "(puVar21 != (undefined8 *)0x0)" (( "(") (binary_expression "puVar21 != (undefined8 *)0x0" (identifier "puVar21") (!= "!=") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (} "}"))) (expression_statement "puVar21 = DAT_0017f378;" (assignment_expression "puVar21 = DAT_0017f378" (identifier "puVar21") (= "=") (identifier "DAT_0017f378")) (; ";")) (if_statement "if (1 < *(uint *)(DAT_0017fb10 + 0xa0)) {\n      uVar30 = 0;\n      plVar17 = (long *)xmalloc((ulong)*(uint *)(DAT_0017fb10 + 0xa0) << 4);\n      lVar16 = *(long *)(DAT_0017fb10 + 0x90);\n      if (lVar16 != 0) {\n        do {\n          uVar29 = uVar30;\n          if ((((*(uint *)(lVar16 + 0x20) & 1) != 0) &&\n              ((*(uint *)(lVar16 + 0x20) & 0x402) != 0x400)) && (*(long *)(lVar16 + 0x38) != 0)) {\n            uVar29 = uVar30 + 1;\n            plVar17[uVar30 * 2] = lVar16;\n            *(undefined4 *)(plVar17 + uVar30 * 2 + 1) = 0;\n          }\n          lVar16 = *(long *)(lVar16 + 0x10);\n          uVar30 = uVar29;\n        } while (lVar16 != 0);\n        if (1 < uVar29) {\n          qsort(plVar17,uVar29,0x10,FUN_00112320);\n          puVar21 = (undefined8 *)0x0;\n          plVar18 = plVar17;\n          uVar30 = 0;\n          uVar25 = 0;\n          do {\n            puVar27 = (undefined8 *)*plVar18;\n            puVar22 = puVar21;\n            uVar34 = uVar30;\n            uVar23 = uVar25;\n            if ((*(byte *)(puVar27 + 4) & 2) != 0) {\n              uVar34 = puVar27[6];\n              uVar23 = (uVar34 - 1) + ((ulong)puVar27[7] >> ((byte)DAT_0017f3c8 & 0x3f));\n              puVar22 = puVar27;\n              if ((puVar21 != (undefined8 *)0x0) && ((uVar34 <= uVar25 || (uVar25 < uVar30)))) {\n                uVar11 = *puVar21;\n                uVar14 = *puVar27;\n                uVar24 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);\n                FUN_001251f0(uVar24,uVar14,uVar34,uVar23,uVar11,uVar30,uVar25);\n                *(undefined4 *)(plVar18 + 1) = 1;\n              }\n            }\n            plVar18 = plVar18 + 2;\n            puVar21 = puVar22;\n            uVar30 = uVar34;\n            uVar25 = uVar23;\n          } while (plVar18 != plVar17 + uVar29 * 2);\n          qsort(plVar17,uVar29,0x10,FUN_00112350);\n          puVar21 = (undefined8 *)*plVar17;\n          uVar23 = 1;\n          uVar30 = puVar21[5];\n          uVar25 = uVar30;\n          do {\n            lVar16 = uVar23 * 2;\n            if (*(ulong *)(plVar17[lVar16] + 0x28) == uVar25) goto LAB_0011d4c4;\n            uVar23 = uVar23 + 1;\n            uVar25 = *(ulong *)(plVar17[lVar16] + 0x28);\n          } while (uVar23 != uVar29);\n          uVar23 = 0;\n          uVar25 = (uVar30 - 1) + ((ulong)puVar21[7] >> ((byte)DAT_0017f3c8 & 0x3f));\n          plVar18 = plVar17;\n          while( true ) {\n            uVar37 = uVar25;\n            uVar34 = uVar30;\n            puVar27 = puVar21;\n            plVar26 = plVar18 + 2;\n            uVar23 = uVar23 + 1;\n            if (uVar23 == uVar29) break;\n            puVar21 = (undefined8 *)*plVar26;\n            plVar3 = plVar18 + 3;\n            uVar30 = puVar21[5];\n            uVar25 = (uVar30 - 1) + ((ulong)puVar21[7] >> ((byte)DAT_0017f3c8 & 0x3f));\n            plVar18 = plVar26;\n            if (((int)*plVar3 == 0) && ((uVar30 <= uVar37 || (uVar37 < uVar34)))) {\n              uVar11 = *puVar27;\n              uVar14 = *puVar21;\n              uVar24 = dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",\n                                 5);\n              FUN_001251f0(uVar24,uVar14,uVar30,uVar25,uVar11,uVar34,uVar37);\n            }\n          }\nLAB_0011d4c4:\n          free(plVar17);\n          for (puVar27 = DAT_0017f398; puVar21 = DAT_0017f378, puVar27 != (undefined8 *)0x0;\n              puVar27 = (undefined8 *)puVar27[2]) {\n            if (*(int *)(puVar27 + 10) != 0) {\n              uVar11 = *puVar27;\n              lVar16 = puVar27[7] - (puVar27[5] + puVar27[4]);\n              uVar14 = dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",lVar16,5);\n              FUN_001251f0(uVar14,uVar11,lVar16);\n            }\n          }\n          goto joined_r0x0011ca92;\n        }\n      }\n      free(plVar17);\n      puVar21 = DAT_0017f378;\n    }" (if "if") (parenthesized_expression "(1 < *(uint *)(DAT_0017fb10 + 0xa0))" (( "(") (binary_expression "1 < *(uint *)(DAT_0017fb10 + 0xa0)" (number_literal "1") (< "<") (pointer_expression "*(uint *)(DAT_0017fb10 + 0xa0)" (* "*") (cast_expression "(uint *)(DAT_0017fb10 + 0xa0)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_0017fb10 + 0xa0)" (( "(") (binary_expression "DAT_0017fb10 + 0xa0" (identifier "DAT_0017fb10") (+ "+") (number_literal "0xa0")) () ")"))))) () ")")) (compound_statement "{\n      uVar30 = 0;\n      plVar17 = (long *)xmalloc((ulong)*(uint *)(DAT_0017fb10 + 0xa0) << 4);\n      lVar16 = *(long *)(DAT_0017fb10 + 0x90);\n      if (lVar16 != 0) {\n        do {\n          uVar29 = uVar30;\n          if ((((*(uint *)(lVar16 + 0x20) & 1) != 0) &&\n              ((*(uint *)(lVar16 + 0x20) & 0x402) != 0x400)) && (*(long *)(lVar16 + 0x38) != 0)) {\n            uVar29 = uVar30 + 1;\n            plVar17[uVar30 * 2] = lVar16;\n            *(undefined4 *)(plVar17 + uVar30 * 2 + 1) = 0;\n          }\n          lVar16 = *(long *)(lVar16 + 0x10);\n          uVar30 = uVar29;\n        } while (lVar16 != 0);\n        if (1 < uVar29) {\n          qsort(plVar17,uVar29,0x10,FUN_00112320);\n          puVar21 = (undefined8 *)0x0;\n          plVar18 = plVar17;\n          uVar30 = 0;\n          uVar25 = 0;\n          do {\n            puVar27 = (undefined8 *)*plVar18;\n            puVar22 = puVar21;\n            uVar34 = uVar30;\n            uVar23 = uVar25;\n            if ((*(byte *)(puVar27 + 4) & 2) != 0) {\n              uVar34 = puVar27[6];\n              uVar23 = (uVar34 - 1) + ((ulong)puVar27[7] >> ((byte)DAT_0017f3c8 & 0x3f));\n              puVar22 = puVar27;\n              if ((puVar21 != (undefined8 *)0x0) && ((uVar34 <= uVar25 || (uVar25 < uVar30)))) {\n                uVar11 = *puVar21;\n                uVar14 = *puVar27;\n                uVar24 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);\n                FUN_001251f0(uVar24,uVar14,uVar34,uVar23,uVar11,uVar30,uVar25);\n                *(undefined4 *)(plVar18 + 1) = 1;\n              }\n            }\n            plVar18 = plVar18 + 2;\n            puVar21 = puVar22;\n            uVar30 = uVar34;\n            uVar25 = uVar23;\n          } while (plVar18 != plVar17 + uVar29 * 2);\n          qsort(plVar17,uVar29,0x10,FUN_00112350);\n          puVar21 = (undefined8 *)*plVar17;\n          uVar23 = 1;\n          uVar30 = puVar21[5];\n          uVar25 = uVar30;\n          do {\n            lVar16 = uVar23 * 2;\n            if (*(ulong *)(plVar17[lVar16] + 0x28) == uVar25) goto LAB_0011d4c4;\n            uVar23 = uVar23 + 1;\n            uVar25 = *(ulong *)(plVar17[lVar16] + 0x28);\n          } while (uVar23 != uVar29);\n          uVar23 = 0;\n          uVar25 = (uVar30 - 1) + ((ulong)puVar21[7] >> ((byte)DAT_0017f3c8 & 0x3f));\n          plVar18 = plVar17;\n          while( true ) {\n            uVar37 = uVar25;\n            uVar34 = uVar30;\n            puVar27 = puVar21;\n            plVar26 = plVar18 + 2;\n            uVar23 = uVar23 + 1;\n            if (uVar23 == uVar29) break;\n            puVar21 = (undefined8 *)*plVar26;\n            plVar3 = plVar18 + 3;\n            uVar30 = puVar21[5];\n            uVar25 = (uVar30 - 1) + ((ulong)puVar21[7] >> ((byte)DAT_0017f3c8 & 0x3f));\n            plVar18 = plVar26;\n            if (((int)*plVar3 == 0) && ((uVar30 <= uVar37 || (uVar37 < uVar34)))) {\n              uVar11 = *puVar27;\n              uVar14 = *puVar21;\n              uVar24 = dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",\n                                 5);\n              FUN_001251f0(uVar24,uVar14,uVar30,uVar25,uVar11,uVar34,uVar37);\n            }\n          }\nLAB_0011d4c4:\n          free(plVar17);\n          for (puVar27 = DAT_0017f398; puVar21 = DAT_0017f378, puVar27 != (undefined8 *)0x0;\n              puVar27 = (undefined8 *)puVar27[2]) {\n            if (*(int *)(puVar27 + 10) != 0) {\n              uVar11 = *puVar27;\n              lVar16 = puVar27[7] - (puVar27[5] + puVar27[4]);\n              uVar14 = dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",lVar16,5);\n              FUN_001251f0(uVar14,uVar11,lVar16);\n            }\n          }\n          goto joined_r0x0011ca92;\n        }\n      }\n      free(plVar17);\n      puVar21 = DAT_0017f378;\n    }" ({ "{") (expression_statement "uVar30 = 0;" (assignment_expression "uVar30 = 0" (identifier "uVar30") (= "=") (number_literal "0")) (; ";")) (expression_statement "plVar17 = (long *)xmalloc((ulong)*(uint *)(DAT_0017fb10 + 0xa0) << 4);" (assignment_expression "plVar17 = (long *)xmalloc((ulong)*(uint *)(DAT_0017fb10 + 0xa0) << 4)" (identifier "plVar17") (= "=") (cast_expression "(long *)xmalloc((ulong)*(uint *)(DAT_0017fb10 + 0xa0) << 4)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "xmalloc((ulong)*(uint *)(DAT_0017fb10 + 0xa0) << 4)" (identifier "xmalloc") (argument_list "((ulong)*(uint *)(DAT_0017fb10 + 0xa0) << 4)" (( "(") (binary_expression "(ulong)*(uint *)(DAT_0017fb10 + 0xa0) << 4" (binary_expression "(ulong)*(uint *)(DAT_0017fb10 + 0xa0)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (* "*") (cast_expression "(uint *)(DAT_0017fb10 + 0xa0)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_0017fb10 + 0xa0)" (( "(") (binary_expression "DAT_0017fb10 + 0xa0" (identifier "DAT_0017fb10") (+ "+") (number_literal "0xa0")) () ")")))) (<< "<<") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "lVar16 = *(long *)(DAT_0017fb10 + 0x90);" (assignment_expression "lVar16 = *(long *)(DAT_0017fb10 + 0x90)" (identifier "lVar16") (= "=") (pointer_expression "*(long *)(DAT_0017fb10 + 0x90)" (* "*") (cast_expression "(long *)(DAT_0017fb10 + 0x90)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_0017fb10 + 0x90)" (( "(") (binary_expression "DAT_0017fb10 + 0x90" (identifier "DAT_0017fb10") (+ "+") (number_literal "0x90")) () ")"))))) (; ";")) (if_statement "if (lVar16 != 0) {\n        do {\n          uVar29 = uVar30;\n          if ((((*(uint *)(lVar16 + 0x20) & 1) != 0) &&\n              ((*(uint *)(lVar16 + 0x20) & 0x402) != 0x400)) && (*(long *)(lVar16 + 0x38) != 0)) {\n            uVar29 = uVar30 + 1;\n            plVar17[uVar30 * 2] = lVar16;\n            *(undefined4 *)(plVar17 + uVar30 * 2 + 1) = 0;\n          }\n          lVar16 = *(long *)(lVar16 + 0x10);\n          uVar30 = uVar29;\n        } while (lVar16 != 0);\n        if (1 < uVar29) {\n          qsort(plVar17,uVar29,0x10,FUN_00112320);\n          puVar21 = (undefined8 *)0x0;\n          plVar18 = plVar17;\n          uVar30 = 0;\n          uVar25 = 0;\n          do {\n            puVar27 = (undefined8 *)*plVar18;\n            puVar22 = puVar21;\n            uVar34 = uVar30;\n            uVar23 = uVar25;\n            if ((*(byte *)(puVar27 + 4) & 2) != 0) {\n              uVar34 = puVar27[6];\n              uVar23 = (uVar34 - 1) + ((ulong)puVar27[7] >> ((byte)DAT_0017f3c8 & 0x3f));\n              puVar22 = puVar27;\n              if ((puVar21 != (undefined8 *)0x0) && ((uVar34 <= uVar25 || (uVar25 < uVar30)))) {\n                uVar11 = *puVar21;\n                uVar14 = *puVar27;\n                uVar24 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);\n                FUN_001251f0(uVar24,uVar14,uVar34,uVar23,uVar11,uVar30,uVar25);\n                *(undefined4 *)(plVar18 + 1) = 1;\n              }\n            }\n            plVar18 = plVar18 + 2;\n            puVar21 = puVar22;\n            uVar30 = uVar34;\n            uVar25 = uVar23;\n          } while (plVar18 != plVar17 + uVar29 * 2);\n          qsort(plVar17,uVar29,0x10,FUN_00112350);\n          puVar21 = (undefined8 *)*plVar17;\n          uVar23 = 1;\n          uVar30 = puVar21[5];\n          uVar25 = uVar30;\n          do {\n            lVar16 = uVar23 * 2;\n            if (*(ulong *)(plVar17[lVar16] + 0x28) == uVar25) goto LAB_0011d4c4;\n            uVar23 = uVar23 + 1;\n            uVar25 = *(ulong *)(plVar17[lVar16] + 0x28);\n          } while (uVar23 != uVar29);\n          uVar23 = 0;\n          uVar25 = (uVar30 - 1) + ((ulong)puVar21[7] >> ((byte)DAT_0017f3c8 & 0x3f));\n          plVar18 = plVar17;\n          while( true ) {\n            uVar37 = uVar25;\n            uVar34 = uVar30;\n            puVar27 = puVar21;\n            plVar26 = plVar18 + 2;\n            uVar23 = uVar23 + 1;\n            if (uVar23 == uVar29) break;\n            puVar21 = (undefined8 *)*plVar26;\n            plVar3 = plVar18 + 3;\n            uVar30 = puVar21[5];\n            uVar25 = (uVar30 - 1) + ((ulong)puVar21[7] >> ((byte)DAT_0017f3c8 & 0x3f));\n            plVar18 = plVar26;\n            if (((int)*plVar3 == 0) && ((uVar30 <= uVar37 || (uVar37 < uVar34)))) {\n              uVar11 = *puVar27;\n              uVar14 = *puVar21;\n              uVar24 = dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",\n                                 5);\n              FUN_001251f0(uVar24,uVar14,uVar30,uVar25,uVar11,uVar34,uVar37);\n            }\n          }\nLAB_0011d4c4:\n          free(plVar17);\n          for (puVar27 = DAT_0017f398; puVar21 = DAT_0017f378, puVar27 != (undefined8 *)0x0;\n              puVar27 = (undefined8 *)puVar27[2]) {\n            if (*(int *)(puVar27 + 10) != 0) {\n              uVar11 = *puVar27;\n              lVar16 = puVar27[7] - (puVar27[5] + puVar27[4]);\n              uVar14 = dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",lVar16,5);\n              FUN_001251f0(uVar14,uVar11,lVar16);\n            }\n          }\n          goto joined_r0x0011ca92;\n        }\n      }" (if "if") (parenthesized_expression "(lVar16 != 0)" (( "(") (binary_expression "lVar16 != 0" (identifier "lVar16") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        do {\n          uVar29 = uVar30;\n          if ((((*(uint *)(lVar16 + 0x20) & 1) != 0) &&\n              ((*(uint *)(lVar16 + 0x20) & 0x402) != 0x400)) && (*(long *)(lVar16 + 0x38) != 0)) {\n            uVar29 = uVar30 + 1;\n            plVar17[uVar30 * 2] = lVar16;\n            *(undefined4 *)(plVar17 + uVar30 * 2 + 1) = 0;\n          }\n          lVar16 = *(long *)(lVar16 + 0x10);\n          uVar30 = uVar29;\n        } while (lVar16 != 0);\n        if (1 < uVar29) {\n          qsort(plVar17,uVar29,0x10,FUN_00112320);\n          puVar21 = (undefined8 *)0x0;\n          plVar18 = plVar17;\n          uVar30 = 0;\n          uVar25 = 0;\n          do {\n            puVar27 = (undefined8 *)*plVar18;\n            puVar22 = puVar21;\n            uVar34 = uVar30;\n            uVar23 = uVar25;\n            if ((*(byte *)(puVar27 + 4) & 2) != 0) {\n              uVar34 = puVar27[6];\n              uVar23 = (uVar34 - 1) + ((ulong)puVar27[7] >> ((byte)DAT_0017f3c8 & 0x3f));\n              puVar22 = puVar27;\n              if ((puVar21 != (undefined8 *)0x0) && ((uVar34 <= uVar25 || (uVar25 < uVar30)))) {\n                uVar11 = *puVar21;\n                uVar14 = *puVar27;\n                uVar24 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);\n                FUN_001251f0(uVar24,uVar14,uVar34,uVar23,uVar11,uVar30,uVar25);\n                *(undefined4 *)(plVar18 + 1) = 1;\n              }\n            }\n            plVar18 = plVar18 + 2;\n            puVar21 = puVar22;\n            uVar30 = uVar34;\n            uVar25 = uVar23;\n          } while (plVar18 != plVar17 + uVar29 * 2);\n          qsort(plVar17,uVar29,0x10,FUN_00112350);\n          puVar21 = (undefined8 *)*plVar17;\n          uVar23 = 1;\n          uVar30 = puVar21[5];\n          uVar25 = uVar30;\n          do {\n            lVar16 = uVar23 * 2;\n            if (*(ulong *)(plVar17[lVar16] + 0x28) == uVar25) goto LAB_0011d4c4;\n            uVar23 = uVar23 + 1;\n            uVar25 = *(ulong *)(plVar17[lVar16] + 0x28);\n          } while (uVar23 != uVar29);\n          uVar23 = 0;\n          uVar25 = (uVar30 - 1) + ((ulong)puVar21[7] >> ((byte)DAT_0017f3c8 & 0x3f));\n          plVar18 = plVar17;\n          while( true ) {\n            uVar37 = uVar25;\n            uVar34 = uVar30;\n            puVar27 = puVar21;\n            plVar26 = plVar18 + 2;\n            uVar23 = uVar23 + 1;\n            if (uVar23 == uVar29) break;\n            puVar21 = (undefined8 *)*plVar26;\n            plVar3 = plVar18 + 3;\n            uVar30 = puVar21[5];\n            uVar25 = (uVar30 - 1) + ((ulong)puVar21[7] >> ((byte)DAT_0017f3c8 & 0x3f));\n            plVar18 = plVar26;\n            if (((int)*plVar3 == 0) && ((uVar30 <= uVar37 || (uVar37 < uVar34)))) {\n              uVar11 = *puVar27;\n              uVar14 = *puVar21;\n              uVar24 = dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",\n                                 5);\n              FUN_001251f0(uVar24,uVar14,uVar30,uVar25,uVar11,uVar34,uVar37);\n            }\n          }\nLAB_0011d4c4:\n          free(plVar17);\n          for (puVar27 = DAT_0017f398; puVar21 = DAT_0017f378, puVar27 != (undefined8 *)0x0;\n              puVar27 = (undefined8 *)puVar27[2]) {\n            if (*(int *)(puVar27 + 10) != 0) {\n              uVar11 = *puVar27;\n              lVar16 = puVar27[7] - (puVar27[5] + puVar27[4]);\n              uVar14 = dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",lVar16,5);\n              FUN_001251f0(uVar14,uVar11,lVar16);\n            }\n          }\n          goto joined_r0x0011ca92;\n        }\n      }" ({ "{") (do_statement "do {\n          uVar29 = uVar30;\n          if ((((*(uint *)(lVar16 + 0x20) & 1) != 0) &&\n              ((*(uint *)(lVar16 + 0x20) & 0x402) != 0x400)) && (*(long *)(lVar16 + 0x38) != 0)) {\n            uVar29 = uVar30 + 1;\n            plVar17[uVar30 * 2] = lVar16;\n            *(undefined4 *)(plVar17 + uVar30 * 2 + 1) = 0;\n          }\n          lVar16 = *(long *)(lVar16 + 0x10);\n          uVar30 = uVar29;\n        } while (lVar16 != 0);" (do "do") (compound_statement "{\n          uVar29 = uVar30;\n          if ((((*(uint *)(lVar16 + 0x20) & 1) != 0) &&\n              ((*(uint *)(lVar16 + 0x20) & 0x402) != 0x400)) && (*(long *)(lVar16 + 0x38) != 0)) {\n            uVar29 = uVar30 + 1;\n            plVar17[uVar30 * 2] = lVar16;\n            *(undefined4 *)(plVar17 + uVar30 * 2 + 1) = 0;\n          }\n          lVar16 = *(long *)(lVar16 + 0x10);\n          uVar30 = uVar29;\n        }" ({ "{") (expression_statement "uVar29 = uVar30;" (assignment_expression "uVar29 = uVar30" (identifier "uVar29") (= "=") (identifier "uVar30")) (; ";")) (if_statement "if ((((*(uint *)(lVar16 + 0x20) & 1) != 0) &&\n              ((*(uint *)(lVar16 + 0x20) & 0x402) != 0x400)) && (*(long *)(lVar16 + 0x38) != 0)) {\n            uVar29 = uVar30 + 1;\n            plVar17[uVar30 * 2] = lVar16;\n            *(undefined4 *)(plVar17 + uVar30 * 2 + 1) = 0;\n          }" (if "if") (parenthesized_expression "((((*(uint *)(lVar16 + 0x20) & 1) != 0) &&\n              ((*(uint *)(lVar16 + 0x20) & 0x402) != 0x400)) && (*(long *)(lVar16 + 0x38) != 0))" (( "(") (binary_expression "(((*(uint *)(lVar16 + 0x20) & 1) != 0) &&\n              ((*(uint *)(lVar16 + 0x20) & 0x402) != 0x400)) && (*(long *)(lVar16 + 0x38) != 0)" (parenthesized_expression "(((*(uint *)(lVar16 + 0x20) & 1) != 0) &&\n              ((*(uint *)(lVar16 + 0x20) & 0x402) != 0x400))" (( "(") (binary_expression "((*(uint *)(lVar16 + 0x20) & 1) != 0) &&\n              ((*(uint *)(lVar16 + 0x20) & 0x402) != 0x400)" (parenthesized_expression "((*(uint *)(lVar16 + 0x20) & 1) != 0)" (( "(") (binary_expression "(*(uint *)(lVar16 + 0x20) & 1) != 0" (parenthesized_expression "(*(uint *)(lVar16 + 0x20) & 1)" (( "(") (binary_expression "*(uint *)(lVar16 + 0x20) & 1" (pointer_expression "*(uint *)(lVar16 + 0x20)" (* "*") (cast_expression "(uint *)(lVar16 + 0x20)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar16 + 0x20)" (( "(") (binary_expression "lVar16 + 0x20" (identifier "lVar16") (+ "+") (number_literal "0x20")) () ")")))) (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "((*(uint *)(lVar16 + 0x20) & 0x402) != 0x400)" (( "(") (binary_expression "(*(uint *)(lVar16 + 0x20) & 0x402) != 0x400" (parenthesized_expression "(*(uint *)(lVar16 + 0x20) & 0x402)" (( "(") (binary_expression "*(uint *)(lVar16 + 0x20) & 0x402" (pointer_expression "*(uint *)(lVar16 + 0x20)" (* "*") (cast_expression "(uint *)(lVar16 + 0x20)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar16 + 0x20)" (( "(") (binary_expression "lVar16 + 0x20" (identifier "lVar16") (+ "+") (number_literal "0x20")) () ")")))) (& "&") (number_literal "0x402")) () ")")) (!= "!=") (number_literal "0x400")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(*(long *)(lVar16 + 0x38) != 0)" (( "(") (binary_expression "*(long *)(lVar16 + 0x38) != 0" (pointer_expression "*(long *)(lVar16 + 0x38)" (* "*") (cast_expression "(long *)(lVar16 + 0x38)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar16 + 0x38)" (( "(") (binary_expression "lVar16 + 0x38" (identifier "lVar16") (+ "+") (number_literal "0x38")) () ")")))) (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n            uVar29 = uVar30 + 1;\n            plVar17[uVar30 * 2] = lVar16;\n            *(undefined4 *)(plVar17 + uVar30 * 2 + 1) = 0;\n          }" ({ "{") (expression_statement "uVar29 = uVar30 + 1;" (assignment_expression "uVar29 = uVar30 + 1" (identifier "uVar29") (= "=") (binary_expression "uVar30 + 1" (identifier "uVar30") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "plVar17[uVar30 * 2] = lVar16;" (assignment_expression "plVar17[uVar30 * 2] = lVar16" (subscript_expression "plVar17[uVar30 * 2]" (identifier "plVar17") ([ "[") (binary_expression "uVar30 * 2" (identifier "uVar30") (* "*") (number_literal "2")) (] "]")) (= "=") (identifier "lVar16")) (; ";")) (expression_statement "*(undefined4 *)(plVar17 + uVar30 * 2 + 1) = 0;" (assignment_expression "*(undefined4 *)(plVar17 + uVar30 * 2 + 1) = 0" (pointer_expression "*(undefined4 *)(plVar17 + uVar30 * 2 + 1)" (* "*") (cast_expression "(undefined4 *)(plVar17 + uVar30 * 2 + 1)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(plVar17 + uVar30 * 2 + 1)" (( "(") (binary_expression "plVar17 + uVar30 * 2 + 1" (binary_expression "plVar17 + uVar30 * 2" (identifier "plVar17") (+ "+") (binary_expression "uVar30 * 2" (identifier "uVar30") (* "*") (number_literal "2"))) (+ "+") (number_literal "1")) () ")")))) (= "=") (number_literal "0")) (; ";")) (} "}"))) (expression_statement "lVar16 = *(long *)(lVar16 + 0x10);" (assignment_expression "lVar16 = *(long *)(lVar16 + 0x10)" (identifier "lVar16") (= "=") (pointer_expression "*(long *)(lVar16 + 0x10)" (* "*") (cast_expression "(long *)(lVar16 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar16 + 0x10)" (( "(") (binary_expression "lVar16 + 0x10" (identifier "lVar16") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "uVar30 = uVar29;" (assignment_expression "uVar30 = uVar29" (identifier "uVar30") (= "=") (identifier "uVar29")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(lVar16 != 0)" (( "(") (binary_expression "lVar16 != 0" (identifier "lVar16") (!= "!=") (number_literal "0")) () ")")) (; ";")) (if_statement "if (1 < uVar29) {\n          qsort(plVar17,uVar29,0x10,FUN_00112320);\n          puVar21 = (undefined8 *)0x0;\n          plVar18 = plVar17;\n          uVar30 = 0;\n          uVar25 = 0;\n          do {\n            puVar27 = (undefined8 *)*plVar18;\n            puVar22 = puVar21;\n            uVar34 = uVar30;\n            uVar23 = uVar25;\n            if ((*(byte *)(puVar27 + 4) & 2) != 0) {\n              uVar34 = puVar27[6];\n              uVar23 = (uVar34 - 1) + ((ulong)puVar27[7] >> ((byte)DAT_0017f3c8 & 0x3f));\n              puVar22 = puVar27;\n              if ((puVar21 != (undefined8 *)0x0) && ((uVar34 <= uVar25 || (uVar25 < uVar30)))) {\n                uVar11 = *puVar21;\n                uVar14 = *puVar27;\n                uVar24 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);\n                FUN_001251f0(uVar24,uVar14,uVar34,uVar23,uVar11,uVar30,uVar25);\n                *(undefined4 *)(plVar18 + 1) = 1;\n              }\n            }\n            plVar18 = plVar18 + 2;\n            puVar21 = puVar22;\n            uVar30 = uVar34;\n            uVar25 = uVar23;\n          } while (plVar18 != plVar17 + uVar29 * 2);\n          qsort(plVar17,uVar29,0x10,FUN_00112350);\n          puVar21 = (undefined8 *)*plVar17;\n          uVar23 = 1;\n          uVar30 = puVar21[5];\n          uVar25 = uVar30;\n          do {\n            lVar16 = uVar23 * 2;\n            if (*(ulong *)(plVar17[lVar16] + 0x28) == uVar25) goto LAB_0011d4c4;\n            uVar23 = uVar23 + 1;\n            uVar25 = *(ulong *)(plVar17[lVar16] + 0x28);\n          } while (uVar23 != uVar29);\n          uVar23 = 0;\n          uVar25 = (uVar30 - 1) + ((ulong)puVar21[7] >> ((byte)DAT_0017f3c8 & 0x3f));\n          plVar18 = plVar17;\n          while( true ) {\n            uVar37 = uVar25;\n            uVar34 = uVar30;\n            puVar27 = puVar21;\n            plVar26 = plVar18 + 2;\n            uVar23 = uVar23 + 1;\n            if (uVar23 == uVar29) break;\n            puVar21 = (undefined8 *)*plVar26;\n            plVar3 = plVar18 + 3;\n            uVar30 = puVar21[5];\n            uVar25 = (uVar30 - 1) + ((ulong)puVar21[7] >> ((byte)DAT_0017f3c8 & 0x3f));\n            plVar18 = plVar26;\n            if (((int)*plVar3 == 0) && ((uVar30 <= uVar37 || (uVar37 < uVar34)))) {\n              uVar11 = *puVar27;\n              uVar14 = *puVar21;\n              uVar24 = dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",\n                                 5);\n              FUN_001251f0(uVar24,uVar14,uVar30,uVar25,uVar11,uVar34,uVar37);\n            }\n          }\nLAB_0011d4c4:\n          free(plVar17);\n          for (puVar27 = DAT_0017f398; puVar21 = DAT_0017f378, puVar27 != (undefined8 *)0x0;\n              puVar27 = (undefined8 *)puVar27[2]) {\n            if (*(int *)(puVar27 + 10) != 0) {\n              uVar11 = *puVar27;\n              lVar16 = puVar27[7] - (puVar27[5] + puVar27[4]);\n              uVar14 = dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",lVar16,5);\n              FUN_001251f0(uVar14,uVar11,lVar16);\n            }\n          }\n          goto joined_r0x0011ca92;\n        }" (if "if") (parenthesized_expression "(1 < uVar29)" (( "(") (binary_expression "1 < uVar29" (number_literal "1") (< "<") (identifier "uVar29")) () ")")) (compound_statement "{\n          qsort(plVar17,uVar29,0x10,FUN_00112320);\n          puVar21 = (undefined8 *)0x0;\n          plVar18 = plVar17;\n          uVar30 = 0;\n          uVar25 = 0;\n          do {\n            puVar27 = (undefined8 *)*plVar18;\n            puVar22 = puVar21;\n            uVar34 = uVar30;\n            uVar23 = uVar25;\n            if ((*(byte *)(puVar27 + 4) & 2) != 0) {\n              uVar34 = puVar27[6];\n              uVar23 = (uVar34 - 1) + ((ulong)puVar27[7] >> ((byte)DAT_0017f3c8 & 0x3f));\n              puVar22 = puVar27;\n              if ((puVar21 != (undefined8 *)0x0) && ((uVar34 <= uVar25 || (uVar25 < uVar30)))) {\n                uVar11 = *puVar21;\n                uVar14 = *puVar27;\n                uVar24 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);\n                FUN_001251f0(uVar24,uVar14,uVar34,uVar23,uVar11,uVar30,uVar25);\n                *(undefined4 *)(plVar18 + 1) = 1;\n              }\n            }\n            plVar18 = plVar18 + 2;\n            puVar21 = puVar22;\n            uVar30 = uVar34;\n            uVar25 = uVar23;\n          } while (plVar18 != plVar17 + uVar29 * 2);\n          qsort(plVar17,uVar29,0x10,FUN_00112350);\n          puVar21 = (undefined8 *)*plVar17;\n          uVar23 = 1;\n          uVar30 = puVar21[5];\n          uVar25 = uVar30;\n          do {\n            lVar16 = uVar23 * 2;\n            if (*(ulong *)(plVar17[lVar16] + 0x28) == uVar25) goto LAB_0011d4c4;\n            uVar23 = uVar23 + 1;\n            uVar25 = *(ulong *)(plVar17[lVar16] + 0x28);\n          } while (uVar23 != uVar29);\n          uVar23 = 0;\n          uVar25 = (uVar30 - 1) + ((ulong)puVar21[7] >> ((byte)DAT_0017f3c8 & 0x3f));\n          plVar18 = plVar17;\n          while( true ) {\n            uVar37 = uVar25;\n            uVar34 = uVar30;\n            puVar27 = puVar21;\n            plVar26 = plVar18 + 2;\n            uVar23 = uVar23 + 1;\n            if (uVar23 == uVar29) break;\n            puVar21 = (undefined8 *)*plVar26;\n            plVar3 = plVar18 + 3;\n            uVar30 = puVar21[5];\n            uVar25 = (uVar30 - 1) + ((ulong)puVar21[7] >> ((byte)DAT_0017f3c8 & 0x3f));\n            plVar18 = plVar26;\n            if (((int)*plVar3 == 0) && ((uVar30 <= uVar37 || (uVar37 < uVar34)))) {\n              uVar11 = *puVar27;\n              uVar14 = *puVar21;\n              uVar24 = dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",\n                                 5);\n              FUN_001251f0(uVar24,uVar14,uVar30,uVar25,uVar11,uVar34,uVar37);\n            }\n          }\nLAB_0011d4c4:\n          free(plVar17);\n          for (puVar27 = DAT_0017f398; puVar21 = DAT_0017f378, puVar27 != (undefined8 *)0x0;\n              puVar27 = (undefined8 *)puVar27[2]) {\n            if (*(int *)(puVar27 + 10) != 0) {\n              uVar11 = *puVar27;\n              lVar16 = puVar27[7] - (puVar27[5] + puVar27[4]);\n              uVar14 = dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",lVar16,5);\n              FUN_001251f0(uVar14,uVar11,lVar16);\n            }\n          }\n          goto joined_r0x0011ca92;\n        }" ({ "{") (expression_statement "qsort(plVar17,uVar29,0x10,FUN_00112320);" (call_expression "qsort(plVar17,uVar29,0x10,FUN_00112320)" (identifier "qsort") (argument_list "(plVar17,uVar29,0x10,FUN_00112320)" (( "(") (identifier "plVar17") (, ",") (identifier "uVar29") (, ",") (number_literal "0x10") (, ",") (identifier "FUN_00112320") () ")"))) (; ";")) (expression_statement "puVar21 = (undefined8 *)0x0;" (assignment_expression "puVar21 = (undefined8 *)0x0" (identifier "puVar21") (= "=") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "plVar18 = plVar17;" (assignment_expression "plVar18 = plVar17" (identifier "plVar18") (= "=") (identifier "plVar17")) (; ";")) (expression_statement "uVar30 = 0;" (assignment_expression "uVar30 = 0" (identifier "uVar30") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar25 = 0;" (assignment_expression "uVar25 = 0" (identifier "uVar25") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n            puVar27 = (undefined8 *)*plVar18;\n            puVar22 = puVar21;\n            uVar34 = uVar30;\n            uVar23 = uVar25;\n            if ((*(byte *)(puVar27 + 4) & 2) != 0) {\n              uVar34 = puVar27[6];\n              uVar23 = (uVar34 - 1) + ((ulong)puVar27[7] >> ((byte)DAT_0017f3c8 & 0x3f));\n              puVar22 = puVar27;\n              if ((puVar21 != (undefined8 *)0x0) && ((uVar34 <= uVar25 || (uVar25 < uVar30)))) {\n                uVar11 = *puVar21;\n                uVar14 = *puVar27;\n                uVar24 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);\n                FUN_001251f0(uVar24,uVar14,uVar34,uVar23,uVar11,uVar30,uVar25);\n                *(undefined4 *)(plVar18 + 1) = 1;\n              }\n            }\n            plVar18 = plVar18 + 2;\n            puVar21 = puVar22;\n            uVar30 = uVar34;\n            uVar25 = uVar23;\n          } while (plVar18 != plVar17 + uVar29 * 2);" (do "do") (compound_statement "{\n            puVar27 = (undefined8 *)*plVar18;\n            puVar22 = puVar21;\n            uVar34 = uVar30;\n            uVar23 = uVar25;\n            if ((*(byte *)(puVar27 + 4) & 2) != 0) {\n              uVar34 = puVar27[6];\n              uVar23 = (uVar34 - 1) + ((ulong)puVar27[7] >> ((byte)DAT_0017f3c8 & 0x3f));\n              puVar22 = puVar27;\n              if ((puVar21 != (undefined8 *)0x0) && ((uVar34 <= uVar25 || (uVar25 < uVar30)))) {\n                uVar11 = *puVar21;\n                uVar14 = *puVar27;\n                uVar24 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);\n                FUN_001251f0(uVar24,uVar14,uVar34,uVar23,uVar11,uVar30,uVar25);\n                *(undefined4 *)(plVar18 + 1) = 1;\n              }\n            }\n            plVar18 = plVar18 + 2;\n            puVar21 = puVar22;\n            uVar30 = uVar34;\n            uVar25 = uVar23;\n          }" ({ "{") (expression_statement "puVar27 = (undefined8 *)*plVar18;" (assignment_expression "puVar27 = (undefined8 *)*plVar18" (identifier "puVar27") (= "=") (cast_expression "(undefined8 *)*plVar18" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*plVar18" (* "*") (identifier "plVar18")))) (; ";")) (expression_statement "puVar22 = puVar21;" (assignment_expression "puVar22 = puVar21" (identifier "puVar22") (= "=") (identifier "puVar21")) (; ";")) (expression_statement "uVar34 = uVar30;" (assignment_expression "uVar34 = uVar30" (identifier "uVar34") (= "=") (identifier "uVar30")) (; ";")) (expression_statement "uVar23 = uVar25;" (assignment_expression "uVar23 = uVar25" (identifier "uVar23") (= "=") (identifier "uVar25")) (; ";")) (if_statement "if ((*(byte *)(puVar27 + 4) & 2) != 0) {\n              uVar34 = puVar27[6];\n              uVar23 = (uVar34 - 1) + ((ulong)puVar27[7] >> ((byte)DAT_0017f3c8 & 0x3f));\n              puVar22 = puVar27;\n              if ((puVar21 != (undefined8 *)0x0) && ((uVar34 <= uVar25 || (uVar25 < uVar30)))) {\n                uVar11 = *puVar21;\n                uVar14 = *puVar27;\n                uVar24 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);\n                FUN_001251f0(uVar24,uVar14,uVar34,uVar23,uVar11,uVar30,uVar25);\n                *(undefined4 *)(plVar18 + 1) = 1;\n              }\n            }" (if "if") (parenthesized_expression "((*(byte *)(puVar27 + 4) & 2) != 0)" (( "(") (binary_expression "(*(byte *)(puVar27 + 4) & 2) != 0" (parenthesized_expression "(*(byte *)(puVar27 + 4) & 2)" (( "(") (binary_expression "*(byte *)(puVar27 + 4) & 2" (pointer_expression "*(byte *)(puVar27 + 4)" (* "*") (cast_expression "(byte *)(puVar27 + 4)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar27 + 4)" (( "(") (binary_expression "puVar27 + 4" (identifier "puVar27") (+ "+") (number_literal "4")) () ")")))) (& "&") (number_literal "2")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              uVar34 = puVar27[6];\n              uVar23 = (uVar34 - 1) + ((ulong)puVar27[7] >> ((byte)DAT_0017f3c8 & 0x3f));\n              puVar22 = puVar27;\n              if ((puVar21 != (undefined8 *)0x0) && ((uVar34 <= uVar25 || (uVar25 < uVar30)))) {\n                uVar11 = *puVar21;\n                uVar14 = *puVar27;\n                uVar24 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);\n                FUN_001251f0(uVar24,uVar14,uVar34,uVar23,uVar11,uVar30,uVar25);\n                *(undefined4 *)(plVar18 + 1) = 1;\n              }\n            }" ({ "{") (expression_statement "uVar34 = puVar27[6];" (assignment_expression "uVar34 = puVar27[6]" (identifier "uVar34") (= "=") (subscript_expression "puVar27[6]" (identifier "puVar27") ([ "[") (number_literal "6") (] "]"))) (; ";")) (expression_statement "uVar23 = (uVar34 - 1) + ((ulong)puVar27[7] >> ((byte)DAT_0017f3c8 & 0x3f));" (assignment_expression "uVar23 = (uVar34 - 1) + ((ulong)puVar27[7] >> ((byte)DAT_0017f3c8 & 0x3f))" (identifier "uVar23") (= "=") (binary_expression "(uVar34 - 1) + ((ulong)puVar27[7] >> ((byte)DAT_0017f3c8 & 0x3f))" (parenthesized_expression "(uVar34 - 1)" (( "(") (binary_expression "uVar34 - 1" (identifier "uVar34") (- "-") (number_literal "1")) () ")")) (+ "+") (parenthesized_expression "((ulong)puVar27[7] >> ((byte)DAT_0017f3c8 & 0x3f))" (( "(") (binary_expression "(ulong)puVar27[7] >> ((byte)DAT_0017f3c8 & 0x3f)" (cast_expression "(ulong)puVar27[7]" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (subscript_expression "puVar27[7]" (identifier "puVar27") ([ "[") (number_literal "7") (] "]"))) (>> ">>") (parenthesized_expression "((byte)DAT_0017f3c8 & 0x3f)" (( "(") (binary_expression "(byte)DAT_0017f3c8 & 0x3f" (cast_expression "(byte)DAT_0017f3c8" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "DAT_0017f3c8")) (& "&") (number_literal "0x3f")) () ")"))) () ")")))) (; ";")) (expression_statement "puVar22 = puVar27;" (assignment_expression "puVar22 = puVar27" (identifier "puVar22") (= "=") (identifier "puVar27")) (; ";")) (if_statement "if ((puVar21 != (undefined8 *)0x0) && ((uVar34 <= uVar25 || (uVar25 < uVar30)))) {\n                uVar11 = *puVar21;\n                uVar14 = *puVar27;\n                uVar24 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);\n                FUN_001251f0(uVar24,uVar14,uVar34,uVar23,uVar11,uVar30,uVar25);\n                *(undefined4 *)(plVar18 + 1) = 1;\n              }" (if "if") (parenthesized_expression "((puVar21 != (undefined8 *)0x0) && ((uVar34 <= uVar25 || (uVar25 < uVar30))))" (( "(") (binary_expression "(puVar21 != (undefined8 *)0x0) && ((uVar34 <= uVar25 || (uVar25 < uVar30)))" (parenthesized_expression "(puVar21 != (undefined8 *)0x0)" (( "(") (binary_expression "puVar21 != (undefined8 *)0x0" (identifier "puVar21") (!= "!=") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "((uVar34 <= uVar25 || (uVar25 < uVar30)))" (( "(") (parenthesized_expression "(uVar34 <= uVar25 || (uVar25 < uVar30))" (( "(") (binary_expression "uVar34 <= uVar25 || (uVar25 < uVar30)" (binary_expression "uVar34 <= uVar25" (identifier "uVar34") (<= "<=") (identifier "uVar25")) (|| "||") (parenthesized_expression "(uVar25 < uVar30)" (( "(") (binary_expression "uVar25 < uVar30" (identifier "uVar25") (< "<") (identifier "uVar30")) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n                uVar11 = *puVar21;\n                uVar14 = *puVar27;\n                uVar24 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);\n                FUN_001251f0(uVar24,uVar14,uVar34,uVar23,uVar11,uVar30,uVar25);\n                *(undefined4 *)(plVar18 + 1) = 1;\n              }" ({ "{") (expression_statement "uVar11 = *puVar21;" (assignment_expression "uVar11 = *puVar21" (identifier "uVar11") (= "=") (pointer_expression "*puVar21" (* "*") (identifier "puVar21"))) (; ";")) (expression_statement "uVar14 = *puVar27;" (assignment_expression "uVar14 = *puVar27" (identifier "uVar14") (= "=") (pointer_expression "*puVar27" (* "*") (identifier "puVar27"))) (; ";")) (expression_statement "uVar24 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);" (assignment_expression "uVar24 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5)" (identifier "uVar24") (= "=") (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_001251f0(uVar24,uVar14,uVar34,uVar23,uVar11,uVar30,uVar25);" (call_expression "FUN_001251f0(uVar24,uVar14,uVar34,uVar23,uVar11,uVar30,uVar25)" (identifier "FUN_001251f0") (argument_list "(uVar24,uVar14,uVar34,uVar23,uVar11,uVar30,uVar25)" (( "(") (identifier "uVar24") (, ",") (identifier "uVar14") (, ",") (identifier "uVar34") (, ",") (identifier "uVar23") (, ",") (identifier "uVar11") (, ",") (identifier "uVar30") (, ",") (identifier "uVar25") () ")"))) (; ";")) (expression_statement "*(undefined4 *)(plVar18 + 1) = 1;" (assignment_expression "*(undefined4 *)(plVar18 + 1) = 1" (pointer_expression "*(undefined4 *)(plVar18 + 1)" (* "*") (cast_expression "(undefined4 *)(plVar18 + 1)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(plVar18 + 1)" (( "(") (binary_expression "plVar18 + 1" (identifier "plVar18") (+ "+") (number_literal "1")) () ")")))) (= "=") (number_literal "1")) (; ";")) (} "}"))) (} "}"))) (expression_statement "plVar18 = plVar18 + 2;" (assignment_expression "plVar18 = plVar18 + 2" (identifier "plVar18") (= "=") (binary_expression "plVar18 + 2" (identifier "plVar18") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "puVar21 = puVar22;" (assignment_expression "puVar21 = puVar22" (identifier "puVar21") (= "=") (identifier "puVar22")) (; ";")) (expression_statement "uVar30 = uVar34;" (assignment_expression "uVar30 = uVar34" (identifier "uVar30") (= "=") (identifier "uVar34")) (; ";")) (expression_statement "uVar25 = uVar23;" (assignment_expression "uVar25 = uVar23" (identifier "uVar25") (= "=") (identifier "uVar23")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(plVar18 != plVar17 + uVar29 * 2)" (( "(") (binary_expression "plVar18 != plVar17 + uVar29 * 2" (identifier "plVar18") (!= "!=") (binary_expression "plVar17 + uVar29 * 2" (identifier "plVar17") (+ "+") (binary_expression "uVar29 * 2" (identifier "uVar29") (* "*") (number_literal "2")))) () ")")) (; ";")) (expression_statement "qsort(plVar17,uVar29,0x10,FUN_00112350);" (call_expression "qsort(plVar17,uVar29,0x10,FUN_00112350)" (identifier "qsort") (argument_list "(plVar17,uVar29,0x10,FUN_00112350)" (( "(") (identifier "plVar17") (, ",") (identifier "uVar29") (, ",") (number_literal "0x10") (, ",") (identifier "FUN_00112350") () ")"))) (; ";")) (expression_statement "puVar21 = (undefined8 *)*plVar17;" (assignment_expression "puVar21 = (undefined8 *)*plVar17" (identifier "puVar21") (= "=") (cast_expression "(undefined8 *)*plVar17" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*plVar17" (* "*") (identifier "plVar17")))) (; ";")) (expression_statement "uVar23 = 1;" (assignment_expression "uVar23 = 1" (identifier "uVar23") (= "=") (number_literal "1")) (; ";")) (expression_statement "uVar30 = puVar21[5];" (assignment_expression "uVar30 = puVar21[5]" (identifier "uVar30") (= "=") (subscript_expression "puVar21[5]" (identifier "puVar21") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "uVar25 = uVar30;" (assignment_expression "uVar25 = uVar30" (identifier "uVar25") (= "=") (identifier "uVar30")) (; ";")) (do_statement "do {\n            lVar16 = uVar23 * 2;\n            if (*(ulong *)(plVar17[lVar16] + 0x28) == uVar25) goto LAB_0011d4c4;\n            uVar23 = uVar23 + 1;\n            uVar25 = *(ulong *)(plVar17[lVar16] + 0x28);\n          } while (uVar23 != uVar29);" (do "do") (compound_statement "{\n            lVar16 = uVar23 * 2;\n            if (*(ulong *)(plVar17[lVar16] + 0x28) == uVar25) goto LAB_0011d4c4;\n            uVar23 = uVar23 + 1;\n            uVar25 = *(ulong *)(plVar17[lVar16] + 0x28);\n          }" ({ "{") (expression_statement "lVar16 = uVar23 * 2;" (assignment_expression "lVar16 = uVar23 * 2" (identifier "lVar16") (= "=") (binary_expression "uVar23 * 2" (identifier "uVar23") (* "*") (number_literal "2"))) (; ";")) (if_statement "if (*(ulong *)(plVar17[lVar16] + 0x28) == uVar25) goto LAB_0011d4c4;" (if "if") (parenthesized_expression "(*(ulong *)(plVar17[lVar16] + 0x28) == uVar25)" (( "(") (binary_expression "*(ulong *)(plVar17[lVar16] + 0x28) == uVar25" (pointer_expression "*(ulong *)(plVar17[lVar16] + 0x28)" (* "*") (cast_expression "(ulong *)(plVar17[lVar16] + 0x28)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(plVar17[lVar16] + 0x28)" (( "(") (binary_expression "plVar17[lVar16] + 0x28" (subscript_expression "plVar17[lVar16]" (identifier "plVar17") ([ "[") (identifier "lVar16") (] "]")) (+ "+") (number_literal "0x28")) () ")")))) (== "==") (identifier "uVar25")) () ")")) (goto_statement "goto LAB_0011d4c4;" (goto "goto") (statement_identifier "LAB_0011d4c4") (; ";"))) (expression_statement "uVar23 = uVar23 + 1;" (assignment_expression "uVar23 = uVar23 + 1" (identifier "uVar23") (= "=") (binary_expression "uVar23 + 1" (identifier "uVar23") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar25 = *(ulong *)(plVar17[lVar16] + 0x28);" (assignment_expression "uVar25 = *(ulong *)(plVar17[lVar16] + 0x28)" (identifier "uVar25") (= "=") (pointer_expression "*(ulong *)(plVar17[lVar16] + 0x28)" (* "*") (cast_expression "(ulong *)(plVar17[lVar16] + 0x28)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(plVar17[lVar16] + 0x28)" (( "(") (binary_expression "plVar17[lVar16] + 0x28" (subscript_expression "plVar17[lVar16]" (identifier "plVar17") ([ "[") (identifier "lVar16") (] "]")) (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar23 != uVar29)" (( "(") (binary_expression "uVar23 != uVar29" (identifier "uVar23") (!= "!=") (identifier "uVar29")) () ")")) (; ";")) (expression_statement "uVar23 = 0;" (assignment_expression "uVar23 = 0" (identifier "uVar23") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar25 = (uVar30 - 1) + ((ulong)puVar21[7] >> ((byte)DAT_0017f3c8 & 0x3f));" (assignment_expression "uVar25 = (uVar30 - 1) + ((ulong)puVar21[7] >> ((byte)DAT_0017f3c8 & 0x3f))" (identifier "uVar25") (= "=") (binary_expression "(uVar30 - 1) + ((ulong)puVar21[7] >> ((byte)DAT_0017f3c8 & 0x3f))" (parenthesized_expression "(uVar30 - 1)" (( "(") (binary_expression "uVar30 - 1" (identifier "uVar30") (- "-") (number_literal "1")) () ")")) (+ "+") (parenthesized_expression "((ulong)puVar21[7] >> ((byte)DAT_0017f3c8 & 0x3f))" (( "(") (binary_expression "(ulong)puVar21[7] >> ((byte)DAT_0017f3c8 & 0x3f)" (cast_expression "(ulong)puVar21[7]" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (subscript_expression "puVar21[7]" (identifier "puVar21") ([ "[") (number_literal "7") (] "]"))) (>> ">>") (parenthesized_expression "((byte)DAT_0017f3c8 & 0x3f)" (( "(") (binary_expression "(byte)DAT_0017f3c8 & 0x3f" (cast_expression "(byte)DAT_0017f3c8" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "DAT_0017f3c8")) (& "&") (number_literal "0x3f")) () ")"))) () ")")))) (; ";")) (expression_statement "plVar18 = plVar17;" (assignment_expression "plVar18 = plVar17" (identifier "plVar18") (= "=") (identifier "plVar17")) (; ";")) (while_statement "while( true ) {\n            uVar37 = uVar25;\n            uVar34 = uVar30;\n            puVar27 = puVar21;\n            plVar26 = plVar18 + 2;\n            uVar23 = uVar23 + 1;\n            if (uVar23 == uVar29) break;\n            puVar21 = (undefined8 *)*plVar26;\n            plVar3 = plVar18 + 3;\n            uVar30 = puVar21[5];\n            uVar25 = (uVar30 - 1) + ((ulong)puVar21[7] >> ((byte)DAT_0017f3c8 & 0x3f));\n            plVar18 = plVar26;\n            if (((int)*plVar3 == 0) && ((uVar30 <= uVar37 || (uVar37 < uVar34)))) {\n              uVar11 = *puVar27;\n              uVar14 = *puVar21;\n              uVar24 = dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",\n                                 5);\n              FUN_001251f0(uVar24,uVar14,uVar30,uVar25,uVar11,uVar34,uVar37);\n            }\n          }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n            uVar37 = uVar25;\n            uVar34 = uVar30;\n            puVar27 = puVar21;\n            plVar26 = plVar18 + 2;\n            uVar23 = uVar23 + 1;\n            if (uVar23 == uVar29) break;\n            puVar21 = (undefined8 *)*plVar26;\n            plVar3 = plVar18 + 3;\n            uVar30 = puVar21[5];\n            uVar25 = (uVar30 - 1) + ((ulong)puVar21[7] >> ((byte)DAT_0017f3c8 & 0x3f));\n            plVar18 = plVar26;\n            if (((int)*plVar3 == 0) && ((uVar30 <= uVar37 || (uVar37 < uVar34)))) {\n              uVar11 = *puVar27;\n              uVar14 = *puVar21;\n              uVar24 = dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",\n                                 5);\n              FUN_001251f0(uVar24,uVar14,uVar30,uVar25,uVar11,uVar34,uVar37);\n            }\n          }" ({ "{") (expression_statement "uVar37 = uVar25;" (assignment_expression "uVar37 = uVar25" (identifier "uVar37") (= "=") (identifier "uVar25")) (; ";")) (expression_statement "uVar34 = uVar30;" (assignment_expression "uVar34 = uVar30" (identifier "uVar34") (= "=") (identifier "uVar30")) (; ";")) (expression_statement "puVar27 = puVar21;" (assignment_expression "puVar27 = puVar21" (identifier "puVar27") (= "=") (identifier "puVar21")) (; ";")) (expression_statement "plVar26 = plVar18 + 2;" (assignment_expression "plVar26 = plVar18 + 2" (identifier "plVar26") (= "=") (binary_expression "plVar18 + 2" (identifier "plVar18") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "uVar23 = uVar23 + 1;" (assignment_expression "uVar23 = uVar23 + 1" (identifier "uVar23") (= "=") (binary_expression "uVar23 + 1" (identifier "uVar23") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (uVar23 == uVar29) break;" (if "if") (parenthesized_expression "(uVar23 == uVar29)" (( "(") (binary_expression "uVar23 == uVar29" (identifier "uVar23") (== "==") (identifier "uVar29")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "puVar21 = (undefined8 *)*plVar26;" (assignment_expression "puVar21 = (undefined8 *)*plVar26" (identifier "puVar21") (= "=") (cast_expression "(undefined8 *)*plVar26" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*plVar26" (* "*") (identifier "plVar26")))) (; ";")) (expression_statement "plVar3 = plVar18 + 3;" (assignment_expression "plVar3 = plVar18 + 3" (identifier "plVar3") (= "=") (binary_expression "plVar18 + 3" (identifier "plVar18") (+ "+") (number_literal "3"))) (; ";")) (expression_statement "uVar30 = puVar21[5];" (assignment_expression "uVar30 = puVar21[5]" (identifier "uVar30") (= "=") (subscript_expression "puVar21[5]" (identifier "puVar21") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "uVar25 = (uVar30 - 1) + ((ulong)puVar21[7] >> ((byte)DAT_0017f3c8 & 0x3f));" (assignment_expression "uVar25 = (uVar30 - 1) + ((ulong)puVar21[7] >> ((byte)DAT_0017f3c8 & 0x3f))" (identifier "uVar25") (= "=") (binary_expression "(uVar30 - 1) + ((ulong)puVar21[7] >> ((byte)DAT_0017f3c8 & 0x3f))" (parenthesized_expression "(uVar30 - 1)" (( "(") (binary_expression "uVar30 - 1" (identifier "uVar30") (- "-") (number_literal "1")) () ")")) (+ "+") (parenthesized_expression "((ulong)puVar21[7] >> ((byte)DAT_0017f3c8 & 0x3f))" (( "(") (binary_expression "(ulong)puVar21[7] >> ((byte)DAT_0017f3c8 & 0x3f)" (cast_expression "(ulong)puVar21[7]" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (subscript_expression "puVar21[7]" (identifier "puVar21") ([ "[") (number_literal "7") (] "]"))) (>> ">>") (parenthesized_expression "((byte)DAT_0017f3c8 & 0x3f)" (( "(") (binary_expression "(byte)DAT_0017f3c8 & 0x3f" (cast_expression "(byte)DAT_0017f3c8" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "DAT_0017f3c8")) (& "&") (number_literal "0x3f")) () ")"))) () ")")))) (; ";")) (expression_statement "plVar18 = plVar26;" (assignment_expression "plVar18 = plVar26" (identifier "plVar18") (= "=") (identifier "plVar26")) (; ";")) (if_statement "if (((int)*plVar3 == 0) && ((uVar30 <= uVar37 || (uVar37 < uVar34)))) {\n              uVar11 = *puVar27;\n              uVar14 = *puVar21;\n              uVar24 = dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",\n                                 5);\n              FUN_001251f0(uVar24,uVar14,uVar30,uVar25,uVar11,uVar34,uVar37);\n            }" (if "if") (parenthesized_expression "(((int)*plVar3 == 0) && ((uVar30 <= uVar37 || (uVar37 < uVar34))))" (( "(") (binary_expression "((int)*plVar3 == 0) && ((uVar30 <= uVar37 || (uVar37 < uVar34)))" (parenthesized_expression "((int)*plVar3 == 0)" (( "(") (binary_expression "(int)*plVar3 == 0" (cast_expression "(int)*plVar3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*plVar3" (* "*") (identifier "plVar3"))) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "((uVar30 <= uVar37 || (uVar37 < uVar34)))" (( "(") (parenthesized_expression "(uVar30 <= uVar37 || (uVar37 < uVar34))" (( "(") (binary_expression "uVar30 <= uVar37 || (uVar37 < uVar34)" (binary_expression "uVar30 <= uVar37" (identifier "uVar30") (<= "<=") (identifier "uVar37")) (|| "||") (parenthesized_expression "(uVar37 < uVar34)" (( "(") (binary_expression "uVar37 < uVar34" (identifier "uVar37") (< "<") (identifier "uVar34")) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n              uVar11 = *puVar27;\n              uVar14 = *puVar21;\n              uVar24 = dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",\n                                 5);\n              FUN_001251f0(uVar24,uVar14,uVar30,uVar25,uVar11,uVar34,uVar37);\n            }" ({ "{") (expression_statement "uVar11 = *puVar27;" (assignment_expression "uVar11 = *puVar27" (identifier "uVar11") (= "=") (pointer_expression "*puVar27" (* "*") (identifier "puVar27"))) (; ";")) (expression_statement "uVar14 = *puVar21;" (assignment_expression "uVar14 = *puVar21" (identifier "uVar14") (= "=") (pointer_expression "*puVar21" (* "*") (identifier "puVar21"))) (; ";")) (expression_statement "uVar24 = dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",\n                                 5);" (assignment_expression "uVar24 = dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",\n                                 5)" (identifier "uVar24") (= "=") (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_001251f0(uVar24,uVar14,uVar30,uVar25,uVar11,uVar34,uVar37);" (call_expression "FUN_001251f0(uVar24,uVar14,uVar30,uVar25,uVar11,uVar34,uVar37)" (identifier "FUN_001251f0") (argument_list "(uVar24,uVar14,uVar30,uVar25,uVar11,uVar34,uVar37)" (( "(") (identifier "uVar24") (, ",") (identifier "uVar14") (, ",") (identifier "uVar30") (, ",") (identifier "uVar25") (, ",") (identifier "uVar11") (, ",") (identifier "uVar34") (, ",") (identifier "uVar37") () ")"))) (; ";")) (} "}"))) (} "}"))) (labeled_statement "LAB_0011d4c4:\n          free(plVar17);" (statement_identifier "LAB_0011d4c4") (: ":") (expression_statement "free(plVar17);" (call_expression "free(plVar17)" (identifier "free") (argument_list "(plVar17)" (( "(") (identifier "plVar17") () ")"))) (; ";"))) (for_statement "for (puVar27 = DAT_0017f398; puVar21 = DAT_0017f378, puVar27 != (undefined8 *)0x0;\n              puVar27 = (undefined8 *)puVar27[2]) {\n            if (*(int *)(puVar27 + 10) != 0) {\n              uVar11 = *puVar27;\n              lVar16 = puVar27[7] - (puVar27[5] + puVar27[4]);\n              uVar14 = dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",lVar16,5);\n              FUN_001251f0(uVar14,uVar11,lVar16);\n            }\n          }" (for "for") (( "(") (assignment_expression "puVar27 = DAT_0017f398" (identifier "puVar27") (= "=") (identifier "DAT_0017f398")) (; ";") (comma_expression "puVar21 = DAT_0017f378, puVar27 != (undefined8 *)0x0" (assignment_expression "puVar21 = DAT_0017f378" (identifier "puVar21") (= "=") (identifier "DAT_0017f378")) (, ",") (binary_expression "puVar27 != (undefined8 *)0x0" (identifier "puVar27") (!= "!=") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) (; ";") (assignment_expression "puVar27 = (undefined8 *)puVar27[2]" (identifier "puVar27") (= "=") (cast_expression "(undefined8 *)puVar27[2]" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar27[2]" (identifier "puVar27") ([ "[") (number_literal "2") (] "]")))) () ")") (compound_statement "{\n            if (*(int *)(puVar27 + 10) != 0) {\n              uVar11 = *puVar27;\n              lVar16 = puVar27[7] - (puVar27[5] + puVar27[4]);\n              uVar14 = dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",lVar16,5);\n              FUN_001251f0(uVar14,uVar11,lVar16);\n            }\n          }" ({ "{") (if_statement "if (*(int *)(puVar27 + 10) != 0) {\n              uVar11 = *puVar27;\n              lVar16 = puVar27[7] - (puVar27[5] + puVar27[4]);\n              uVar14 = dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",lVar16,5);\n              FUN_001251f0(uVar14,uVar11,lVar16);\n            }" (if "if") (parenthesized_expression "(*(int *)(puVar27 + 10) != 0)" (( "(") (binary_expression "*(int *)(puVar27 + 10) != 0" (pointer_expression "*(int *)(puVar27 + 10)" (* "*") (cast_expression "(int *)(puVar27 + 10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar27 + 10)" (( "(") (binary_expression "puVar27 + 10" (identifier "puVar27") (+ "+") (number_literal "10")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              uVar11 = *puVar27;\n              lVar16 = puVar27[7] - (puVar27[5] + puVar27[4]);\n              uVar14 = dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",lVar16,5);\n              FUN_001251f0(uVar14,uVar11,lVar16);\n            }" ({ "{") (expression_statement "uVar11 = *puVar27;" (assignment_expression "uVar11 = *puVar27" (identifier "uVar11") (= "=") (pointer_expression "*puVar27" (* "*") (identifier "puVar27"))) (; ";")) (expression_statement "lVar16 = puVar27[7] - (puVar27[5] + puVar27[4]);" (assignment_expression "lVar16 = puVar27[7] - (puVar27[5] + puVar27[4])" (identifier "lVar16") (= "=") (binary_expression "puVar27[7] - (puVar27[5] + puVar27[4])" (subscript_expression "puVar27[7]" (identifier "puVar27") ([ "[") (number_literal "7") (] "]")) (- "-") (parenthesized_expression "(puVar27[5] + puVar27[4])" (( "(") (binary_expression "puVar27[5] + puVar27[4]" (subscript_expression "puVar27[5]" (identifier "puVar27") ([ "[") (number_literal "5") (] "]")) (+ "+") (subscript_expression "puVar27[4]" (identifier "puVar27") ([ "[") (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",lVar16,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",lVar16,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",lVar16,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",lVar16,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 "lVar16") (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_001251f0(uVar14,uVar11,lVar16);" (call_expression "FUN_001251f0(uVar14,uVar11,lVar16)" (identifier "FUN_001251f0") (argument_list "(uVar14,uVar11,lVar16)" (( "(") (identifier "uVar14") (, ",") (identifier "uVar11") (, ",") (identifier "lVar16") () ")"))) (; ";")) (} "}"))) (} "}"))) (goto_statement "goto joined_r0x0011ca92;" (goto "goto") (statement_identifier "joined_r0x0011ca92") (; ";")) (} "}"))) (} "}"))) (expression_statement "free(plVar17);" (call_expression "free(plVar17)" (identifier "free") (argument_list "(plVar17)" (( "(") (identifier "plVar17") () ")"))) (; ";")) (expression_statement "puVar21 = DAT_0017f378;" (assignment_expression "puVar21 = DAT_0017f378" (identifier "puVar21") (= "=") (identifier "DAT_0017f378")) (; ";")) (} "}"))) (} "}"))) (labeled_statement "joined_r0x0011ca92:\n  for (; puVar21 != (undefined8 *)0x0; puVar21 = (undefined8 *)puVar21[1]) {\n    lVar16 = bfd_link_hash_lookup(DAT_0017fae8,*puVar21,0,0,1);\n    if ((lVar16 == 0) || (1 < (byte)(*(char *)(lVar16 + 0x18) - 3U))) {\n      uVar11 = *puVar21;\n      uVar14 = dcgettext(0,"%X%P: required symbol `%s\' not defined\n",5);\n      FUN_001251f0(uVar14,uVar11);\n    }\n  }" (statement_identifier "joined_r0x0011ca92") (: ":") (for_statement "for (; puVar21 != (undefined8 *)0x0; puVar21 = (undefined8 *)puVar21[1]) {\n    lVar16 = bfd_link_hash_lookup(DAT_0017fae8,*puVar21,0,0,1);\n    if ((lVar16 == 0) || (1 < (byte)(*(char *)(lVar16 + 0x18) - 3U))) {\n      uVar11 = *puVar21;\n      uVar14 = dcgettext(0,"%X%P: required symbol `%s\' not defined\n",5);\n      FUN_001251f0(uVar14,uVar11);\n    }\n  }" (for "for") (( "(") (; ";") (binary_expression "puVar21 != (undefined8 *)0x0" (identifier "puVar21") (!= "!=") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";") (assignment_expression "puVar21 = (undefined8 *)puVar21[1]" (identifier "puVar21") (= "=") (cast_expression "(undefined8 *)puVar21[1]" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar21[1]" (identifier "puVar21") ([ "[") (number_literal "1") (] "]")))) () ")") (compound_statement "{\n    lVar16 = bfd_link_hash_lookup(DAT_0017fae8,*puVar21,0,0,1);\n    if ((lVar16 == 0) || (1 < (byte)(*(char *)(lVar16 + 0x18) - 3U))) {\n      uVar11 = *puVar21;\n      uVar14 = dcgettext(0,"%X%P: required symbol `%s\' not defined\n",5);\n      FUN_001251f0(uVar14,uVar11);\n    }\n  }" ({ "{") (expression_statement "lVar16 = bfd_link_hash_lookup(DAT_0017fae8,*puVar21,0,0,1);" (assignment_expression "lVar16 = bfd_link_hash_lookup(DAT_0017fae8,*puVar21,0,0,1)" (identifier "lVar16") (= "=") (call_expression "bfd_link_hash_lookup(DAT_0017fae8,*puVar21,0,0,1)" (identifier "bfd_link_hash_lookup") (argument_list "(DAT_0017fae8,*puVar21,0,0,1)" (( "(") (identifier "DAT_0017fae8") (, ",") (pointer_expression "*puVar21" (* "*") (identifier "puVar21")) (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "1") () ")")))) (; ";")) (if_statement "if ((lVar16 == 0) || (1 < (byte)(*(char *)(lVar16 + 0x18) - 3U))) {\n      uVar11 = *puVar21;\n      uVar14 = dcgettext(0,"%X%P: required symbol `%s\' not defined\n",5);\n      FUN_001251f0(uVar14,uVar11);\n    }" (if "if") (parenthesized_expression "((lVar16 == 0) || (1 < (byte)(*(char *)(lVar16 + 0x18) - 3U)))" (( "(") (binary_expression "(lVar16 == 0) || (1 < (byte)(*(char *)(lVar16 + 0x18) - 3U))" (parenthesized_expression "(lVar16 == 0)" (( "(") (binary_expression "lVar16 == 0" (identifier "lVar16") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(1 < (byte)(*(char *)(lVar16 + 0x18) - 3U))" (( "(") (binary_expression "1 < (byte)(*(char *)(lVar16 + 0x18) - 3U)" (number_literal "1") (< "<") (call_expression "(byte)(*(char *)(lVar16 + 0x18) - 3U)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(*(char *)(lVar16 + 0x18) - 3U)" (( "(") (binary_expression "*(char *)(lVar16 + 0x18) - 3U" (pointer_expression "*(char *)(lVar16 + 0x18)" (* "*") (cast_expression "(char *)(lVar16 + 0x18)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar16 + 0x18)" (( "(") (binary_expression "lVar16 + 0x18" (identifier "lVar16") (+ "+") (number_literal "0x18")) () ")")))) (- "-") (number_literal "3U")) () ")")))) () ")"))) () ")")) (compound_statement "{\n      uVar11 = *puVar21;\n      uVar14 = dcgettext(0,"%X%P: required symbol `%s\' not defined\n",5);\n      FUN_001251f0(uVar14,uVar11);\n    }" ({ "{") (expression_statement "uVar11 = *puVar21;" (assignment_expression "uVar11 = *puVar21" (identifier "uVar11") (= "=") (pointer_expression "*puVar21" (* "*") (identifier "puVar21"))) (; ";")) (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_001251f0(uVar14,uVar11);" (call_expression "FUN_001251f0(uVar14,uVar11)" (identifier "FUN_001251f0") (argument_list "(uVar14,uVar11)" (( "(") (identifier "uVar14") (, ",") (identifier "uVar11") () ")"))) (; ";")) (} "}"))) (} "}")))) (expression_statement "iVar9 = DAT_0017fa0c;" (assignment_expression "iVar9 = DAT_0017fa0c" (identifier "iVar9") (= "=") (identifier "DAT_0017fa0c")) (; ";")) (if_statement "if (((DAT_0017fac0 & 0x43) != 2) && ((DAT_0017fac0 & 3) != 3)) {\n    iVar9 = 1;\n  }" (if "if") (parenthesized_expression "(((DAT_0017fac0 & 0x43) != 2) && ((DAT_0017fac0 & 3) != 3))" (( "(") (binary_expression "((DAT_0017fac0 & 0x43) != 2) && ((DAT_0017fac0 & 3) != 3)" (parenthesized_expression "((DAT_0017fac0 & 0x43) != 2)" (( "(") (binary_expression "(DAT_0017fac0 & 0x43) != 2" (parenthesized_expression "(DAT_0017fac0 & 0x43)" (( "(") (binary_expression "DAT_0017fac0 & 0x43" (identifier "DAT_0017fac0") (& "&") (number_literal "0x43")) () ")")) (!= "!=") (number_literal "2")) () ")")) (&& "&&") (parenthesized_expression "((DAT_0017fac0 & 3) != 3)" (( "(") (binary_expression "(DAT_0017fac0 & 3) != 3" (parenthesized_expression "(DAT_0017fac0 & 3)" (( "(") (binary_expression "DAT_0017fac0 & 3" (identifier "DAT_0017fac0") (& "&") (number_literal "3")) () ")")) (!= "!=") (number_literal "3")) () ")"))) () ")")) (compound_statement "{\n    iVar9 = 1;\n  }" ({ "{") (expression_statement "iVar9 = 1;" (assignment_expression "iVar9 = 1" (identifier "iVar9") (= "=") (number_literal "1")) (; ";")) (} "}"))) (if_statement "if (((DAT_0017fac0 & 0x43) == 0x42) && (DAT_0017fa0c == 0 && _DAT_0017fa08 == 0)) {\n    uVar11 = dcgettext(0,"%F%P: gc-sections requires either an entry or an undefined symbol\n",5);\n    FUN_001251f0(uVar11);\n  }" (if "if") (parenthesized_expression "(((DAT_0017fac0 & 0x43) == 0x42) && (DAT_0017fa0c == 0 && _DAT_0017fa08 == 0))" (( "(") (binary_expression "((DAT_0017fac0 & 0x43) == 0x42) && (DAT_0017fa0c == 0 && _DAT_0017fa08 == 0)" (parenthesized_expression "((DAT_0017fac0 & 0x43) == 0x42)" (( "(") (binary_expression "(DAT_0017fac0 & 0x43) == 0x42" (parenthesized_expression "(DAT_0017fac0 & 0x43)" (( "(") (binary_expression "DAT_0017fac0 & 0x43" (identifier "DAT_0017fac0") (& "&") (number_literal "0x43")) () ")")) (== "==") (number_literal "0x42")) () ")")) (&& "&&") (parenthesized_expression "(DAT_0017fa0c == 0 && _DAT_0017fa08 == 0)" (( "(") (binary_expression "DAT_0017fa0c == 0 && _DAT_0017fa08 == 0" (binary_expression "DAT_0017fa0c == 0" (identifier "DAT_0017fa0c") (== "==") (number_literal "0")) (&& "&&") (binary_expression "_DAT_0017fa08 == 0" (identifier "_DAT_0017fa08") (== "==") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n    uVar11 = dcgettext(0,"%F%P: gc-sections requires either an entry or an undefined symbol\n",5);\n    FUN_001251f0(uVar11);\n  }" ({ "{") (expression_statement "uVar11 = dcgettext(0,"%F%P: gc-sections requires either an entry or an undefined symbol\n",5);" (assignment_expression "uVar11 = dcgettext(0,"%F%P: gc-sections requires either an entry or an undefined symbol\n",5)" (identifier "uVar11") (= "=") (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_001251f0(uVar11);" (call_expression "FUN_001251f0(uVar11)" (identifier "FUN_001251f0") (argument_list "(uVar11)" (( "(") (identifier "uVar11") () ")"))) (; ";")) (} "}"))) (if_statement "if (DAT_0017f2e8 == (undefined *)0x0) {\n    DAT_0017f2e8 = PTR_s_start_0017e660;\n    iVar9 = 0;\n  }" (if "if") (parenthesized_expression "(DAT_0017f2e8 == (undefined *)0x0)" (( "(") (binary_expression "DAT_0017f2e8 == (undefined *)0x0" (identifier "DAT_0017f2e8") (== "==") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    DAT_0017f2e8 = PTR_s_start_0017e660;\n    iVar9 = 0;\n  }" ({ "{") (expression_statement "DAT_0017f2e8 = PTR_s_start_0017e660;" (assignment_expression "DAT_0017f2e8 = PTR_s_start_0017e660" (identifier "DAT_0017f2e8") (= "=") (identifier "PTR_s_start_0017e660")) (; ";")) (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" (identifier "iVar9") (= "=") (number_literal "0")) (; ";")) (} "}"))) (expression_statement "lVar16 = bfd_link_hash_lookup(DAT_0017fae8,DAT_0017f2e8,0,0,1);" (assignment_expression "lVar16 = bfd_link_hash_lookup(DAT_0017fae8,DAT_0017f2e8,0,0,1)" (identifier "lVar16") (= "=") (call_expression "bfd_link_hash_lookup(DAT_0017fae8,DAT_0017f2e8,0,0,1)" (identifier "bfd_link_hash_lookup") (argument_list "(DAT_0017fae8,DAT_0017f2e8,0,0,1)" (( "(") (identifier "DAT_0017fae8") (, ",") (identifier "DAT_0017f2e8") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "1") () ")")))) (; ";")) (if_statement "if ((lVar16 != 0) && ((byte)(*(char *)(lVar16 + 0x18) - 3U) < 2)) {\n    lVar15 = *(long *)(*(long *)(lVar16 + 0x28) + 0x68);\n    if (lVar15 != 0) {\n      iVar9 = bfd_set_start_address\n                        (DAT_0017fb10,\n                         *(long *)(lVar15 + 0x28) +\n                         *(long *)(*(long *)(lVar16 + 0x28) + 0x60) + *(long *)(lVar16 + 0x30));\n      if (iVar9 != 0) {\n        return;\n      }\n      pcVar31 = "%F%P: %s: can\'t set start address\n";\n      goto LAB_0011cf37;\n    }\n  }" (if "if") (parenthesized_expression "((lVar16 != 0) && ((byte)(*(char *)(lVar16 + 0x18) - 3U) < 2))" (( "(") (binary_expression "(lVar16 != 0) && ((byte)(*(char *)(lVar16 + 0x18) - 3U) < 2)" (parenthesized_expression "(lVar16 != 0)" (( "(") (binary_expression "lVar16 != 0" (identifier "lVar16") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "((byte)(*(char *)(lVar16 + 0x18) - 3U) < 2)" (( "(") (binary_expression "(byte)(*(char *)(lVar16 + 0x18) - 3U) < 2" (call_expression "(byte)(*(char *)(lVar16 + 0x18) - 3U)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(*(char *)(lVar16 + 0x18) - 3U)" (( "(") (binary_expression "*(char *)(lVar16 + 0x18) - 3U" (pointer_expression "*(char *)(lVar16 + 0x18)" (* "*") (cast_expression "(char *)(lVar16 + 0x18)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar16 + 0x18)" (( "(") (binary_expression "lVar16 + 0x18" (identifier "lVar16") (+ "+") (number_literal "0x18")) () ")")))) (- "-") (number_literal "3U")) () ")"))) (< "<") (number_literal "2")) () ")"))) () ")")) (compound_statement "{\n    lVar15 = *(long *)(*(long *)(lVar16 + 0x28) + 0x68);\n    if (lVar15 != 0) {\n      iVar9 = bfd_set_start_address\n                        (DAT_0017fb10,\n                         *(long *)(lVar15 + 0x28) +\n                         *(long *)(*(long *)(lVar16 + 0x28) + 0x60) + *(long *)(lVar16 + 0x30));\n      if (iVar9 != 0) {\n        return;\n      }\n      pcVar31 = "%F%P: %s: can\'t set start address\n";\n      goto LAB_0011cf37;\n    }\n  }" ({ "{") (expression_statement "lVar15 = *(long *)(*(long *)(lVar16 + 0x28) + 0x68);" (assignment_expression "lVar15 = *(long *)(*(long *)(lVar16 + 0x28) + 0x68)" (identifier "lVar15") (= "=") (pointer_expression "*(long *)(*(long *)(lVar16 + 0x28) + 0x68)" (* "*") (cast_expression "(long *)(*(long *)(lVar16 + 0x28) + 0x68)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(long *)(lVar16 + 0x28) + 0x68)" (( "(") (binary_expression "*(long *)(lVar16 + 0x28) + 0x68" (pointer_expression "*(long *)(lVar16 + 0x28)" (* "*") (cast_expression "(long *)(lVar16 + 0x28)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar16 + 0x28)" (( "(") (binary_expression "lVar16 + 0x28" (identifier "lVar16") (+ "+") (number_literal "0x28")) () ")")))) (+ "+") (number_literal "0x68")) () ")"))))) (; ";")) (if_statement "if (lVar15 != 0) {\n      iVar9 = bfd_set_start_address\n                        (DAT_0017fb10,\n                         *(long *)(lVar15 + 0x28) +\n                         *(long *)(*(long *)(lVar16 + 0x28) + 0x60) + *(long *)(lVar16 + 0x30));\n      if (iVar9 != 0) {\n        return;\n      }\n      pcVar31 = "%F%P: %s: can\'t set start address\n";\n      goto LAB_0011cf37;\n    }" (if "if") (parenthesized_expression "(lVar15 != 0)" (( "(") (binary_expression "lVar15 != 0" (identifier "lVar15") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      iVar9 = bfd_set_start_address\n                        (DAT_0017fb10,\n                         *(long *)(lVar15 + 0x28) +\n                         *(long *)(*(long *)(lVar16 + 0x28) + 0x60) + *(long *)(lVar16 + 0x30));\n      if (iVar9 != 0) {\n        return;\n      }\n      pcVar31 = "%F%P: %s: can\'t set start address\n";\n      goto LAB_0011cf37;\n    }" ({ "{") (expression_statement "iVar9 = bfd_set_start_address\n                        (DAT_0017fb10,\n                         *(long *)(lVar15 + 0x28) +\n                         *(long *)(*(long *)(lVar16 + 0x28) + 0x60) + *(long *)(lVar16 + 0x30));" (assignment_expression "iVar9 = bfd_set_start_address\n                        (DAT_0017fb10,\n                         *(long *)(lVar15 + 0x28) +\n                         *(long *)(*(long *)(lVar16 + 0x28) + 0x60) + *(long *)(lVar16 + 0x30))" (identifier "iVar9") (= "=") (call_expression "bfd_set_start_address\n                        (DAT_0017fb10,\n                         *(long *)(lVar15 + 0x28) +\n                         *(long *)(*(long *)(lVar16 + 0x28) + 0x60) + *(long *)(lVar16 + 0x30))" (identifier "bfd_set_start_address") (argument_list "(DAT_0017fb10,\n                         *(long *)(lVar15 + 0x28) +\n                         *(long *)(*(long *)(lVar16 + 0x28) + 0x60) + *(long *)(lVar16 + 0x30))" (( "(") (identifier "DAT_0017fb10") (, ",") (binary_expression "*(long *)(lVar15 + 0x28) +\n                         *(long *)(*(long *)(lVar16 + 0x28) + 0x60) + *(long *)(lVar16 + 0x30)" (binary_expression "*(long *)(lVar15 + 0x28) +\n                         *(long *)(*(long *)(lVar16 + 0x28) + 0x60)" (pointer_expression "*(long *)(lVar15 + 0x28)" (* "*") (cast_expression "(long *)(lVar15 + 0x28)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar15 + 0x28)" (( "(") (binary_expression "lVar15 + 0x28" (identifier "lVar15") (+ "+") (number_literal "0x28")) () ")")))) (+ "+") (pointer_expression "*(long *)(*(long *)(lVar16 + 0x28) + 0x60)" (* "*") (cast_expression "(long *)(*(long *)(lVar16 + 0x28) + 0x60)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(long *)(lVar16 + 0x28) + 0x60)" (( "(") (binary_expression "*(long *)(lVar16 + 0x28) + 0x60" (pointer_expression "*(long *)(lVar16 + 0x28)" (* "*") (cast_expression "(long *)(lVar16 + 0x28)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar16 + 0x28)" (( "(") (binary_expression "lVar16 + 0x28" (identifier "lVar16") (+ "+") (number_literal "0x28")) () ")")))) (+ "+") (number_literal "0x60")) () ")"))))) (+ "+") (pointer_expression "*(long *)(lVar16 + 0x30)" (* "*") (cast_expression "(long *)(lVar16 + 0x30)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar16 + 0x30)" (( "(") (binary_expression "lVar16 + 0x30" (identifier "lVar16") (+ "+") (number_literal "0x30")) () ")"))))) () ")")))) (; ";")) (if_statement "if (iVar9 != 0) {\n        return;\n      }" (if "if") (parenthesized_expression "(iVar9 != 0)" (( "(") (binary_expression "iVar9 != 0" (identifier "iVar9") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        return;\n      }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "pcVar31 = "%F%P: %s: can\'t set start address\n";" (assignment_expression "pcVar31 = "%F%P: %s: can\'t set start address\n"" (identifier "pcVar31") (= "=") (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_0011cf37;" (goto "goto") (statement_identifier "LAB_0011cf37") (; ";")) (} "}"))) (} "}"))) (expression_statement "uVar11 = bfd_scan_vma(DAT_0017f2e8,&local_40,0);" (assignment_expression "uVar11 = bfd_scan_vma(DAT_0017f2e8,&local_40,0)" (identifier "uVar11") (= "=") (call_expression "bfd_scan_vma(DAT_0017f2e8,&local_40,0)" (identifier "bfd_scan_vma") (argument_list "(DAT_0017f2e8,&local_40,0)" (( "(") (identifier "DAT_0017f2e8") (, ",") (pointer_expression "&local_40" (& "&") (identifier "local_40")) (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (*(char *)CONCAT44(uStack_3c,local_40) == '\0') {\n    iVar9 = bfd_set_start_address(DAT_0017fb10,uVar11);\n  }\n  else {\n    lVar16 = bfd_get_section_by_name(DAT_0017fb10,PTR_s__text_0017e648);\n    puVar7 = DAT_0017f2e8;\n    if (lVar16 == 0) {\n      if (iVar9 == 0) {\n        return;\n      }\n      pcVar31 = "%P: warning: cannot find entry symbol %s; not setting start address\n";\nLAB_0011cf37:\n      puVar7 = DAT_0017f2e8;\n      uVar11 = dcgettext(0,pcVar31,5);\n      FUN_001251f0(uVar11,puVar7);\n      return;\n    }\n    uVar11 = *(undefined8 *)(lVar16 + 0x28);\n    if (iVar9 != 0) {\n      uVar14 = dcgettext(0,"%P: warning: cannot find entry symbol %s; defaulting to %V\n",5);\n      FUN_001251f0(uVar14,puVar7,uVar11);\n      uVar11 = *(undefined8 *)(lVar16 + 0x28);\n    }\n    iVar9 = bfd_set_start_address(DAT_0017fb10,uVar11);\n  }" (if "if") (parenthesized_expression "(*(char *)CONCAT44(uStack_3c,local_40) == '\0')" (( "(") (binary_expression "*(char *)CONCAT44(uStack_3c,local_40) == '\0'" (pointer_expression "*(char *)CONCAT44(uStack_3c,local_40)" (* "*") (cast_expression "(char *)CONCAT44(uStack_3c,local_40)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "CONCAT44(uStack_3c,local_40)" (identifier "CONCAT44") (argument_list "(uStack_3c,local_40)" (( "(") (identifier "uStack_3c") (, ",") (identifier "local_40") () ")"))))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    iVar9 = bfd_set_start_address(DAT_0017fb10,uVar11);\n  }" ({ "{") (expression_statement "iVar9 = bfd_set_start_address(DAT_0017fb10,uVar11);" (assignment_expression "iVar9 = bfd_set_start_address(DAT_0017fb10,uVar11)" (identifier "iVar9") (= "=") (call_expression "bfd_set_start_address(DAT_0017fb10,uVar11)" (identifier "bfd_set_start_address") (argument_list "(DAT_0017fb10,uVar11)" (( "(") (identifier "DAT_0017fb10") (, ",") (identifier "uVar11") () ")")))) (; ";")) (} "}")) (else_clause "else {\n    lVar16 = bfd_get_section_by_name(DAT_0017fb10,PTR_s__text_0017e648);\n    puVar7 = DAT_0017f2e8;\n    if (lVar16 == 0) {\n      if (iVar9 == 0) {\n        return;\n      }\n      pcVar31 = "%P: warning: cannot find entry symbol %s; not setting start address\n";\nLAB_0011cf37:\n      puVar7 = DAT_0017f2e8;\n      uVar11 = dcgettext(0,pcVar31,5);\n      FUN_001251f0(uVar11,puVar7);\n      return;\n    }\n    uVar11 = *(undefined8 *)(lVar16 + 0x28);\n    if (iVar9 != 0) {\n      uVar14 = dcgettext(0,"%P: warning: cannot find entry symbol %s; defaulting to %V\n",5);\n      FUN_001251f0(uVar14,puVar7,uVar11);\n      uVar11 = *(undefined8 *)(lVar16 + 0x28);\n    }\n    iVar9 = bfd_set_start_address(DAT_0017fb10,uVar11);\n  }" (else "else") (compound_statement "{\n    lVar16 = bfd_get_section_by_name(DAT_0017fb10,PTR_s__text_0017e648);\n    puVar7 = DAT_0017f2e8;\n    if (lVar16 == 0) {\n      if (iVar9 == 0) {\n        return;\n      }\n      pcVar31 = "%P: warning: cannot find entry symbol %s; not setting start address\n";\nLAB_0011cf37:\n      puVar7 = DAT_0017f2e8;\n      uVar11 = dcgettext(0,pcVar31,5);\n      FUN_001251f0(uVar11,puVar7);\n      return;\n    }\n    uVar11 = *(undefined8 *)(lVar16 + 0x28);\n    if (iVar9 != 0) {\n      uVar14 = dcgettext(0,"%P: warning: cannot find entry symbol %s; defaulting to %V\n",5);\n      FUN_001251f0(uVar14,puVar7,uVar11);\n      uVar11 = *(undefined8 *)(lVar16 + 0x28);\n    }\n    iVar9 = bfd_set_start_address(DAT_0017fb10,uVar11);\n  }" ({ "{") (expression_statement "lVar16 = bfd_get_section_by_name(DAT_0017fb10,PTR_s__text_0017e648);" (assignment_expression "lVar16 = bfd_get_section_by_name(DAT_0017fb10,PTR_s__text_0017e648)" (identifier "lVar16") (= "=") (call_expression "bfd_get_section_by_name(DAT_0017fb10,PTR_s__text_0017e648)" (identifier "bfd_get_section_by_name") (argument_list "(DAT_0017fb10,PTR_s__text_0017e648)" (( "(") (identifier "DAT_0017fb10") (, ",") (identifier "PTR_s__text_0017e648") () ")")))) (; ";")) (expression_statement "puVar7 = DAT_0017f2e8;" (assignment_expression "puVar7 = DAT_0017f2e8" (identifier "puVar7") (= "=") (identifier "DAT_0017f2e8")) (; ";")) (if_statement "if (lVar16 == 0) {\n      if (iVar9 == 0) {\n        return;\n      }\n      pcVar31 = "%P: warning: cannot find entry symbol %s; not setting start address\n";\nLAB_0011cf37:\n      puVar7 = DAT_0017f2e8;\n      uVar11 = dcgettext(0,pcVar31,5);\n      FUN_001251f0(uVar11,puVar7);\n      return;\n    }" (if "if") (parenthesized_expression "(lVar16 == 0)" (( "(") (binary_expression "lVar16 == 0" (identifier "lVar16") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      if (iVar9 == 0) {\n        return;\n      }\n      pcVar31 = "%P: warning: cannot find entry symbol %s; not setting start address\n";\nLAB_0011cf37:\n      puVar7 = DAT_0017f2e8;\n      uVar11 = dcgettext(0,pcVar31,5);\n      FUN_001251f0(uVar11,puVar7);\n      return;\n    }" ({ "{") (if_statement "if (iVar9 == 0) {\n        return;\n      }" (if "if") (parenthesized_expression "(iVar9 == 0)" (( "(") (binary_expression "iVar9 == 0" (identifier "iVar9") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        return;\n      }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "pcVar31 = "%P: warning: cannot find entry symbol %s; not setting start address\n";" (assignment_expression "pcVar31 = "%P: warning: cannot find entry symbol %s; not setting start address\n"" (identifier "pcVar31") (= "=") (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_0011cf37:\n      puVar7 = DAT_0017f2e8;" (statement_identifier "LAB_0011cf37") (: ":") (expression_statement "puVar7 = DAT_0017f2e8;" (assignment_expression "puVar7 = DAT_0017f2e8" (identifier "puVar7") (= "=") (identifier "DAT_0017f2e8")) (; ";"))) (expression_statement "uVar11 = dcgettext(0,pcVar31,5);" (assignment_expression "uVar11 = dcgettext(0,pcVar31,5)" (identifier "uVar11") (= "=") (call_expression "dcgettext(0,pcVar31,5)" (identifier "dcgettext") (argument_list "(0,pcVar31,5)" (( "(") (number_literal "0") (, ",") (identifier "pcVar31") (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_001251f0(uVar11,puVar7);" (call_expression "FUN_001251f0(uVar11,puVar7)" (identifier "FUN_001251f0") (argument_list "(uVar11,puVar7)" (( "(") (identifier "uVar11") (, ",") (identifier "puVar7") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "uVar11 = *(undefined8 *)(lVar16 + 0x28);" (assignment_expression "uVar11 = *(undefined8 *)(lVar16 + 0x28)" (identifier "uVar11") (= "=") (pointer_expression "*(undefined8 *)(lVar16 + 0x28)" (* "*") (cast_expression "(undefined8 *)(lVar16 + 0x28)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar16 + 0x28)" (( "(") (binary_expression "lVar16 + 0x28" (identifier "lVar16") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (if_statement "if (iVar9 != 0) {\n      uVar14 = dcgettext(0,"%P: warning: cannot find entry symbol %s; defaulting to %V\n",5);\n      FUN_001251f0(uVar14,puVar7,uVar11);\n      uVar11 = *(undefined8 *)(lVar16 + 0x28);\n    }" (if "if") (parenthesized_expression "(iVar9 != 0)" (( "(") (binary_expression "iVar9 != 0" (identifier "iVar9") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      uVar14 = dcgettext(0,"%P: warning: cannot find entry symbol %s; defaulting to %V\n",5);\n      FUN_001251f0(uVar14,puVar7,uVar11);\n      uVar11 = *(undefined8 *)(lVar16 + 0x28);\n    }" ({ "{") (expression_statement "uVar14 = dcgettext(0,"%P: warning: cannot find entry symbol %s; defaulting to %V\n",5);" (assignment_expression "uVar14 = dcgettext(0,"%P: warning: cannot find entry symbol %s; defaulting to %V\n",5)" (identifier "uVar14") (= "=") (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_001251f0(uVar14,puVar7,uVar11);" (call_expression "FUN_001251f0(uVar14,puVar7,uVar11)" (identifier "FUN_001251f0") (argument_list "(uVar14,puVar7,uVar11)" (( "(") (identifier "uVar14") (, ",") (identifier "puVar7") (, ",") (identifier "uVar11") () ")"))) (; ";")) (expression_statement "uVar11 = *(undefined8 *)(lVar16 + 0x28);" (assignment_expression "uVar11 = *(undefined8 *)(lVar16 + 0x28)" (identifier "uVar11") (= "=") (pointer_expression "*(undefined8 *)(lVar16 + 0x28)" (* "*") (cast_expression "(undefined8 *)(lVar16 + 0x28)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar16 + 0x28)" (( "(") (binary_expression "lVar16 + 0x28" (identifier "lVar16") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (} "}"))) (expression_statement "iVar9 = bfd_set_start_address(DAT_0017fb10,uVar11);" (assignment_expression "iVar9 = bfd_set_start_address(DAT_0017fb10,uVar11)" (identifier "iVar9") (= "=") (call_expression "bfd_set_start_address(DAT_0017fb10,uVar11)" (identifier "bfd_set_start_address") (argument_list "(DAT_0017fb10,uVar11)" (( "(") (identifier "DAT_0017fb10") (, ",") (identifier "uVar11") () ")")))) (; ";")) (} "}")))) (if_statement "if (iVar9 != 0) {\n    return;\n  }" (if "if") (parenthesized_expression "(iVar9 != 0)" (( "(") (binary_expression "iVar9 != 0" (identifier "iVar9") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    return;\n  }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "uVar11 = dcgettext(0,"%F%P: can\'t set start address\n",5);" (assignment_expression "uVar11 = dcgettext(0,"%F%P: can\'t set start address\n",5)" (identifier "uVar11") (= "=") (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_001251f0(uVar11);" (call_expression "FUN_001251f0(uVar11)" (identifier "FUN_001251f0") (argument_list "(uVar11)" (( "(") (identifier "uVar11") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (labeled_statement "code_r0x0011c5be:\n  plVar17 = (long *)plVar17[6];" (statement_identifier "code_r0x0011c5be") (: ":") (expression_statement "plVar17 = (long *)plVar17[6];" (assignment_expression "plVar17 = (long *)plVar17[6]" (identifier "plVar17") (= "=") (cast_expression "(long *)plVar17[6]" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "plVar17[6]" (identifier "plVar17") ([ "[") (number_literal "6") (] "]")))) (; ";"))) (goto_statement "goto joined_r0x0011be7f;" (goto "goto") (statement_identifier "joined_r0x0011be7f") (; ";")) (labeled_statement "LAB_0011c1d0:\n  uVar11 = *puVar21;" (statement_identifier "LAB_0011c1d0") (: ":") (expression_statement "uVar11 = *puVar21;" (assignment_expression "uVar11 = *puVar21" (identifier "uVar11") (= "=") (pointer_expression "*puVar21" (* "*") (identifier "puVar21"))) (; ";"))) (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_001251f0(uVar14,uVar11);" (call_expression "FUN_001251f0(uVar14,uVar11)" (identifier "FUN_001251f0") (argument_list "(uVar14,uVar11)" (( "(") (identifier "uVar14") (, ",") (identifier "uVar11") () ")"))) (; ";")) (expression_statement "puVar21 = (undefined8 *)puVar21[2];" (assignment_expression "puVar21 = (undefined8 *)puVar21[2]" (identifier "puVar21") (= "=") (cast_expression "(undefined8 *)puVar21[2]" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar21[2]" (identifier "puVar21") ([ "[") (number_literal "2") (] "]")))) (; ";")) (goto_statement "goto joined_r0x0011bfdf;" (goto "goto") (statement_identifier "joined_r0x0011bfdf") (; ";")) (labeled_statement "code_r0x0011c493:\n  (**(code **)(*(long *)(plVar17[4] + 8) + 0x2c8))(puVar21,&DAT_0017fac0);" (statement_identifier "code_r0x0011c493") (: ":") (expression_statement "(**(code **)(*(long *)(plVar17[4] + 8) + 0x2c8))(puVar21,&DAT_0017fac0);" (call_expression "(**(code **)(*(long *)(plVar17[4] + 8) + 0x2c8))(puVar21,&DAT_0017fac0)" (parenthesized_expression "(**(code **)(*(long *)(plVar17[4] + 8) + 0x2c8))" (( "(") (pointer_expression "**(code **)(*(long *)(plVar17[4] + 8) + 0x2c8)" (* "*") (pointer_expression "*(code **)(*(long *)(plVar17[4] + 8) + 0x2c8)" (* "*") (cast_expression "(code **)(*(long *)(plVar17[4] + 8) + 0x2c8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(long *)(plVar17[4] + 8) + 0x2c8)" (( "(") (binary_expression "*(long *)(plVar17[4] + 8) + 0x2c8" (pointer_expression "*(long *)(plVar17[4] + 8)" (* "*") (cast_expression "(long *)(plVar17[4] + 8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(plVar17[4] + 8)" (( "(") (binary_expression "plVar17[4] + 8" (subscript_expression "plVar17[4]" (identifier "plVar17") ([ "[") (number_literal "4") (] "]")) (+ "+") (number_literal "8")) () ")")))) (+ "+") (number_literal "0x2c8")) () ")"))))) () ")")) (argument_list "(puVar21,&DAT_0017fac0)" (( "(") (identifier "puVar21") (, ",") (pointer_expression "&DAT_0017fac0" (& "&") (identifier "DAT_0017fac0")) () ")"))) (; ";"))) (expression_statement "puVar21 = (undefined8 *)puVar21[2];" (assignment_expression "puVar21 = (undefined8 *)puVar21[2]" (identifier "puVar21") (= "=") (cast_expression "(undefined8 *)puVar21[2]" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar21[2]" (identifier "puVar21") ([ "[") (number_literal "2") (] "]")))) (; ";")) (goto_statement "goto joined_r0x0011c46e;" (goto "goto") (statement_identifier "joined_r0x0011c46e") (; ";")) (labeled_statement "code_r0x0011c93b:\n  lVar16 = plVar17[6];" (statement_identifier "code_r0x0011c93b") (: ":") (expression_statement "lVar16 = plVar17[6];" (assignment_expression "lVar16 = plVar17[6]" (identifier "lVar16") (= "=") (subscript_expression "plVar17[6]" (identifier "plVar17") ([ "[") (number_literal "6") (] "]"))) (; ";"))) (expression_statement "uVar11 = dcgettext(0,"%X%P: section `%s\' assigned to non-existent phdr `%s\'\n",5);" (assignment_expression "uVar11 = dcgettext(0,"%X%P: section `%s\' assigned to non-existent phdr `%s\'\n",5)" (identifier "uVar11") (= "=") (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_001251f0(uVar11,lVar16,pbVar4);" (call_expression "FUN_001251f0(uVar11,lVar16,pbVar4)" (identifier "FUN_001251f0") (argument_list "(uVar11,lVar16,pbVar4)" (( "(") (identifier "uVar11") (, ",") (identifier "lVar16") (, ",") (identifier "pbVar4") () ")"))) (; ";")) (expression_statement "plVar18 = (long *)*plVar18;" (assignment_expression "plVar18 = (long *)*plVar18" (identifier "plVar18") (= "=") (cast_expression "(long *)*plVar18" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*plVar18" (* "*") (identifier "plVar18")))) (; ";")) (goto_statement "goto joined_r0x0011c90a;" (goto "goto") (statement_identifier "joined_r0x0011c90a") (; ";")) (} "}")))

/* WARNING: Type propagation algorithm not settling */
/* WARNING: Unknown calling convention -- yet parameter storage is locked */

void function_1(void)

{
  long *plVar1;
  type_1 var_55;
  type_2 var_108;
  type_3 *var_5;
  type_4 *var_32;
  type_5 *var_104;
  type_1 *pbVar7;
  type_6 *pbVar8;
  type_7 *plVar9;
  type_7 *var_79;
  long var_47;
  type_8 **var_100;
  type_9 **pplVar13;
  type_9 **pplVar14;
  type_10 var_25;
  type_11 uVar16;
  type_12 *var_133;
  type_13 *var_107;
  type_14 *plVar19;
  type_9 **pplVar20;
  type_9 **var_21;
  type_15 *var_20;
  type_16 var_70;
  char var_58;
  int var_8;
  type_17 var_41;
  char *var_46;
  size_t var_34;
  long var_39;
  type_18 *pbVar30;
  type_19 *version;
  type_18 *orig;
  type_20 *pbVar31;
  char *fmt;
  type_7 *var_78;
  type_21 **pplVar32;
  type_22 *var_95;
  void *__ptr;
  type_10 var_24;
  type_6 **var_102;
  char *var_48;
  type_11 uVar37;
  type_1 *var_56;
  long *var_123;
  type_23 *var_53;
  type_11 *var_127;
  type_11 *puVar41;
  type_24 var_130;
  type_9 *var_18;
  type_25 *var_112;
  type_24 var_128;
  type_9 *var_19;
  type_10 *pbVar47;
  type_20 *pbVar48;
  type_17 *extraout_RDX;
  type_17 *extraout_RDX_00;
  type_17 *has_relro_section;
  type_26 *var_80;
  type_24 var_122;
  type_9 *var_17;
  type_27 *var_63;
  type_24 var_110;
  type_13 *var_114;
  type_6 **var_99;
  long *var_129;
  long *plVar57;
  type_13 *var_105;
  type_26 *var_81;
  type_11 *var_125;
  type_9 *var_15;
  type_10 *var_26;
  type_1 *var_86;
  type_26 *var_82;
  type_28 *var_23;
  type_23 *var_83;
  type_24 var_126;
  type_1 var_54;
  type_28 *var_22;
  type_9 *plVar70;
  type_24 var_131;
  bool var_87;
  bool bVar73;
  type_1 bVar74;
  type_2 var_68;
  type_29 uStack_3c;
  
  bVar74 = 0;
  if (link_info.dynamic_list != (type_30 *)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;
  pplVar20 = file_chain.tail;
  var_17 = file_chain.head;
  if ((link_info._1_1_ & 2) != 0) {
    var_15 = stat_ptr->head;
    pplVar13 = stat_ptr->tail;
    var_8 = var_13();
    if (var_8 != 0) {
      var_14();
      var_46 = (char *)var_9(0,"%F%P: %s: plugin reported error after all symbols read\n",5);
      var_10(var_46);
    }
    var_12(*pplVar13,OPEN_BFD_NORMAL);
    plVar19 = stat_ptr;
    if (stat_ptr->head != var_15) {
      var_16("../../ld/ldlang.c",0x1baf);
    }
    pplVar14 = plVar19->tail;
    var_15 = *pplVar13;
    plVar19->tail = pplVar13;
    *pplVar13 = (type_9 *)0x0;
    if (file_chain.head != var_17) {
      var_16("../../ld/ldlang.c",0x1baf);
    }
    pplVar13 = file_chain.tail;
    var_17 = *pplVar20;
    file_chain.tail = pplVar20;
    *pplVar20 = (type_9 *)0x0;
    if (input_file_chain.head != var_18) {
      var_16("../../ld/ldlang.c",0x1baf);
    }
    pplVar20 = input_file_chain.tail;
    var_18 = *var_21;
    input_file_chain.tail = var_21;
    *var_21 = (type_9 *)0x0;
    var_19 = file_chain.head;
    plVar70 = input_file_chain.head;
    if (var_15 != (type_9 *)0x0) {
      for (; plugin_insert = (type_15 *)plVar70,
          var_19 != (type_9 *)0x0; var_19 = (var_19->wild_statement).children.head)
      {
        if (((type_24)(var_19->wild_statement).walk_wild_section_handler & 0x2000) != 0) {
          if (((type_24)(var_19->wild_statement).walk_wild_section_handler & 0x4000) == 0)
          goto LAB_0011d6c0;
          break;
        }
        if (((var_19->reloc_statement).section != (type_26 *)0x0) &&
           (((var_19->reloc_statement).section)->moving_line_filepos == 0)) {
          plugin_insert = (type_15 *)var_19;
        }
        plVar70 = (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_0011d6c0:
      plugin_insert = &var_19->input_statement;
      var_20 = plugin_insert;
      plVar19 = stat_ptr;
      *pplVar14 = (plugin_insert->header).next;
      (var_20->header).next = var_15;
      if (var_20 == (type_15 *)plVar19->tail) {
        plVar19->tail = pplVar14;
      }
      *pplVar20 = var_20->next_real_file;
      var_87 = input_file_chain.tail == &var_20->next_real_file;
      var_20->next_real_file = var_18;
      var_21 = file_chain.tail;
      if (var_87) {
        input_file_chain.tail = pplVar20;
      }
      if (var_20->filename == (char *)0x0) {
        *pplVar13 = file_chain.head;
        file_chain.head = var_17;
        if ((type_14 *)var_21 != &file_chain) {
          pplVar13 = file_chain.tail;
        }
      }
      else {
        *pplVar13 = var_20->next;
        var_20->next = var_17;
        if (var_21 != &var_20->next) {
          pplVar13 = file_chain.tail;
        }
      }
      file_chain.tail = pplVar13;
      pplVar20 = 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 = *pplVar20;
      file_chain.tail = pplVar20;
      *pplVar20 = (type_9 *)0x0;
      while (var_17 != (type_9 *)0x0) {
        var_22 = ((var_17->input_statement).the_bfd)->my_archive;
        var_23 = (var_17->input_statement).the_bfd;
        if (var_22 != (type_28 *)0x0) {
          var_23 = var_22;
        }
        if (input_file_chain.head == (type_9 *)0x0) {
LAB_0011dad0:
          var_15 = file_chain.head;
        }
        else {
          var_19 = (type_9 *)0x0;
          var_18 = input_file_chain.head;
          var_15 = (type_9 *)0x0;
          do {
            while ((type_28 *)(var_18->wild_statement).section_list != var_23) {
              if (((type_28 *)(var_18->wild_statement).section_list != (type_28 *)0x0) &&
                 ((var_18->wild_statement).children.head != (type_9 *)0x0)) {
                var_19 = var_18;
              }
              var_18 = (type_9 *)(var_18->wild_statement).children.tail;
              if (var_18 == (type_9 *)0x0) goto LAB_0011d7f1;
            }
            var_24 = (var_18->data_statement).output_offset;
            if (var_24 != 0) {
              pbVar47 = (type_10 *)(var_24 + 0x30);
              var_24 = *(type_10 *)(var_24 + 0x30);
              goto LAB_0011d835;
            }
            var_18 = (type_9 *)(var_18->wild_statement).children.tail;
            var_15 = var_19;
          } while (var_18 != (type_9 *)0x0);
LAB_0011d7f1:
          if (var_15 == (type_9 *)0x0) goto LAB_0011dad0;
        }
        pbVar47 = &(var_15->data_statement).output_offset;
        for (var_24 = *pbVar47; var_24 != 0; var_24 = *(type_10 *)(var_24 + 0x30)) {
          if (((*(type_1 *)(var_24 + 0x49) & 0x40) == 0) &&
             (*(long *)(*(long *)(var_24 + 0x20) + 0xd0) == 0)) {
            var_24 = *pbVar47;
            break;
          }
          pbVar47 = (type_10 *)(var_24 + 0x30);
        }
LAB_0011d835:
        var_26 = &(var_17->data_statement).output_offset;
        if (var_22 == (type_28 *)0x0) {
          *pbVar47 = (type_10)var_17;
          var_18 = (var_17->wild_statement).children.head;
          (var_17->data_statement).output_offset = var_24;
          var_17 = var_18;
        }
        else {
          var_25 = (var_17->data_statement).output_offset;
          if (var_25 != 0) {
            var_23 = *(type_28 **)(*(long *)(var_25 + 0x20) + 0xd0);
            while (var_22 == var_23) {
              var_26 = (type_10 *)(var_25 + 0x30);
              var_25 = *(type_10 *)(var_25 + 0x30);
              if (var_25 == 0) break;
              var_23 = *(type_28 **)(*(long *)(var_25 + 0x20) + 0xd0);
            }
          }
          *pbVar47 = (type_10)var_17;
          var_17 = (type_9 *)*var_26;
          *var_26 = var_24;
          if (var_22->usrdata != (void *)0x0) {
            *(type_31 **)((long)var_22->usrdata + 0x30) =
                 (type_31 *)(var_26 + -6);
          }
        }
      }
    }
  }
  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_32 *)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_28 *)0x0) {
        var_31("%pB ");
      }
      var_31("(%pT)\n",var_32->name);
    }
  }
  var_37();
  var_17 = file_chain.head;
joined_r0x0011be7f:
  if (var_17 != (type_9 *)0x0) {
    do {
      if (((type_24)(var_17->wild_statement).walk_wild_section_handler & 0x2000) == 0) {
        var_22 = (var_17->input_statement).the_bfd;
        var_39 = var_38
                           (var_22,link_info.output_bfd,command_line.accept_unknown_input_arch);
        var_23 = link_info.output_bfd;
        if (((link_info._0_1_ & 3) == 2) || ((link_info._3_1_ & 8) != 0)) {
          if (var_39 != 0) {
            pbVar31 = var_22->xvec;
            pbVar48 = (link_info.output_bfd)->xvec;
            if ((pbVar31->flavour != pbVar48->flavour) && ((var_22->field_0x44 & 0x20) != 0))
            goto LAB_0011c12e;
            goto LAB_0011bed4;
          }
          if ((var_22->field_0x44 & 0x20) != 0) {
            pbVar31 = var_22->xvec;
            pbVar48 = (link_info.output_bfd)->xvec;
LAB_0011c12e:
            var_46 = pbVar48->name;
            var_48 = pbVar31->name;
            fmt = (char *)var_9(0,
                                    "%F%P: relocatable linking with relocations from format %s (%pB) to format %s (%pB) is not supported\n"
                                    ,5);
            var_10(fmt,var_48,var_22,var_46,var_23);
            goto joined_r0x0011c167;
          }
        }
        else {
joined_r0x0011c167:
          if (var_39 != 0) {
LAB_0011bed4:
            if (var_22->section_count == 0) goto LAB_0011bf30;
            if (command_line.warn_mismatch == 0) {
              var_40(ignore_bfd_errors);
            }
            var_41 = (*(link_info.output_bfd)->xvec->_bfd_merge_private_bfd_data)
                               (var_22,&link_info);
            if (var_41 == 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_22);
                goto LAB_0011c5b0;
              }
            }
            else {
LAB_0011c5b0:
              if (command_line.warn_mismatch != 0) goto code_r0x0011c5be;
            }
            var_40();
            goto LAB_0011bf30;
          }
        }
        if (command_line.warn_mismatch == 0) goto LAB_0011bf30;
        var_42(link_info.output_bfd);
        uVar37 = var_42(var_22);
        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,uVar37,var_22);
        var_17 = (var_17->wild_statement).children.head;
      }
      else {
LAB_0011bf30:
        var_17 = (var_17->wild_statement).children.head;
      }
      if (var_17 == (type_9 *)0x0) break;
    } while( true );
  }
  if (command_line.version_exports_section != (char *)0x0) {
    orig = (type_18 *)0x0;
    for (var_17 = file_chain.head; var_17 != (type_9 *)0x0;
        var_17 = (var_17->wild_statement).children.head) {
      var_39 = var_43((var_17->wild_statement).section_list,".exports");
      if (var_39 != 0) {
        var_47 = *(long *)(var_39 + 0x38);
        var_46 = (char *)var_44(var_47);
        var_8 = var_45
                           ((var_17->wild_statement).section_list,var_39,var_46,0,var_47);
        if (var_8 == 0) {
          var_48 = (char *)var_9(0,"%X%P: unable to read .exports section contents\n",5);
          var_10(var_48,var_39);
        }
        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);
        }
        *(type_2 *)(var_39 + 0x20) = *(type_2 *)(var_39 + 0x20) | 0x208000;
      }
    }
    pbVar30 = var_49((type_18 *)0x0,"*",(char *)0x0,0);
    version = (type_19 *)var_50(1,0x70);
    var_46 = command_line.version_exports_section;
    (version->globals).list = orig;
    (version->locals).list = pbVar30;
    version->match = lang_vers_match;
    version->name_indx = 0xffffffff;
    var_51(var_46,version,(type_33 *)0x0);
  }
  var_52();
  if ((config.build_constructors != 0) &&
     (var_58 = (link_info.output_bfd)->xvec->symbol_leading_char, link_info.input_bfds != (type_28 *)0x0
     )) {
    var_22 = link_info.input_bfds;
    do {
      for (var_53 = var_22->sections; var_53 != (type_23 *)0x0; var_53 = var_53->next) {
        while( true ) {
          pbVar7 = (type_1 *)var_53->name;
          var_54 = *pbVar7;
          if (var_54 == 0) break;
          var_55 = _sch_istable[(type_24)var_54 * 2];
          var_56 = pbVar7;
          while (((var_55 & 0x8c) != 0 || (var_54 == 0x5f))) {
            var_56 = var_56 + 1;
            var_54 = *var_56;
            if (var_54 == 0) goto LAB_0011d178;
            var_55 = _sch_istable[(type_24)var_54 * 2];
          }
          var_53 = var_53->next;
          if (var_53 == (type_23 *)0x0) goto LAB_0011d163;
        }
LAB_0011d178:
        var_34 = var_33((char *)pbVar7);
        var_46 = (char *)var_44(var_34 + 10);
        *var_46 = var_58;
        var_57(var_46 + (var_58 != '\0'),"__start_%s",pbVar7);
        var_59(var_46,var_53);
        var_46[1] = var_58;
        var_60(var_46 + (2 - (type_24)(var_58 == '\0')),"__stop",6);
        var_59(var_46 + 1,var_53);
        var_61(var_46);
      }
LAB_0011d163:
      var_22 = (var_22->link).next;
    } while (var_22 != (type_28 *)0x0);
  }
  var_62(lang_mark_phase_enum);
  var_63 = lang_memory_region_list;
joined_r0x0011bfdf:
  if (var_63 != (type_34 *)0x0) {
    do {
      if (var_63->origin_exp != (type_25 *)0x0) {
        var_64(var_63->origin_exp);
        var_24 = expld.result.value;
        if (expld.result.valid_p == 0) {
          var_46 = (var_63->type_39).name;
          var_48 = (char *)var_9(0,"%F%P: invalid origin for memory region %s\n",5);
          var_10(var_48,var_46);
        }
        else {
          var_63->origin = expld.result.value;
          var_63->current = var_24;
        }
      }
      if (var_63->length_exp != (type_25 *)0x0) {
        var_64(var_63->length_exp);
        if (expld.result.valid_p == 0) goto LAB_0011c1d0;
        var_63->length = expld.result.value;
      }
      var_63 = var_63->next;
      if (var_63 == (type_27 *)0x0) break;
    } while( true );
  }
  expld.phase = lang_first_phase_enum;
  if (((link_info._7_1_ & 0x20) == 0) &&
     (((link_info._0_1_ & 3) != 2 || (command_line.force_common_definition != 0)))) {
    if (config.sort_common == var_65) {
      var_66(link_info.hash,lang_one_common,0);
    }
    else {
      if (config.sort_common == var_67) {
        var_68 = 4;
        do {
          var_66(link_info.hash,lang_one_common,&var_68);
          var_68 = var_68 - 1;
        } while (var_68 != 0);
        var_68 = 0;
      }
      else {
        var_68 = 0;
        do {
          var_66(link_info.hash,lang_one_common,&var_68);
          var_68 = var_68 + 1;
        } while (var_68 < 5);
        var_68 = 0xffffffff;
      }
      var_66(link_info.hash,lang_one_common,&var_68);
    }
  }
  var_69(statement_list.head);
  var_70 = link_info._0_1_;
  var_17 = file_chain.head;
  if ((link_info._0_1_ & 3) == 2) {
    for (; var_17 != (type_9 *)0x0; var_17 = (var_17->wild_statement).children.head
        ) {
      if (((type_24)(var_17->wild_statement).walk_wild_section_handler & 0x2000) == 0) {
        for (var_53 = ((var_17->input_statement).the_bfd)->sections; var_53 != (type_23 *)0x0
            ; var_53 = var_53->next) {
          if ((var_53->flags & 0x2000) == 0) {
            var_53->flags = var_53->flags & 0xffff7fff;
          }
        }
      }
    }
  }
  if ((var_70 & 0x40) != 0) {
    (*(link_info.output_bfd)->xvec->_bfd_gc_sections)(link_info.output_bfd,&link_info);
  }
  var_22 = link_info.input_bfds;
  if ((link_info._6_1_ & 0x20) != 0) {
    for (; var_22 != (type_28 *)0x0; var_22 = (var_22->link).next) {
      var_8 = var_71(var_22);
      if (var_8 == 0) {
        config.make_executable = 0;
      }
    }
  }
  var_72();
  var_73(statement_list.head);
  var_11 = var_11 + 1;
  var_74
            (statement_list.head,(char *)0x0,(type_22 *)0x0);
  var_18 = (type_9 *)0x0;
  var_15 = (type_9 *)0x0;
  var_17 = lang_output_section_statement.head;
  while (plVar70 = var_17, var_19 = (plVar70->header).next, var_19 != (type_9 *)0x0
        ) {
    var_17 = var_19;
    if ((var_19->header).type == var_75) {
      if ((var_15 != (type_9 *)0x0) &&
         (var_19 != (type_9 *)(var_15->wild_statement).section_list)) {
        var_16("../../ld/ldlang.c",0xea0);
        var_17 = (plVar70->header).next;
      }
      (var_19->output_section_statement).constraint =
           -2 - (var_19->output_section_statement).constraint;
      var_15 = var_19;
      if (var_18 == (type_9 *)0x0) {
        var_18 = var_19;
      }
    }
    else if ((var_19->header).type == var_76) {
      var_78 = var_77((var_19->wild_statement).filename,0,0);
      if (var_78 == (type_22 *)0x0) {
LAB_0011c415:
        var_46 = (char *)var_9(0,"%F%P: %s not found for insert\n",5);
        var_10(var_46);
        var_17 = file_chain.head;
        goto joined_r0x0011c458;
      }
      if ((var_19->wild_statement).filenames_sorted != 0) {
        do {
          var_78 = var_78->prev;
          if (var_78 == (type_7 *)0x0) goto LAB_0011c415;
        } while (var_78->constraint < 0);
      }
      if (var_15 != (type_9 *)0x0) {
        plVar9 = (var_18->output_section_statement).prev;
        var_79 = (var_15->output_section_statement).next;
        plVar9->next = var_79;
        if (var_79 == (type_7 *)0x0) {
          lang_output_section_statement.tail = (type_9 **)&plVar9->next;
        }
        else {
          var_79->prev = plVar9;
        }
        (var_15->wild_statement).section_list = (type_35 *)var_78->next;
        if (var_78->next == (type_7 *)0x0) {
          lang_output_section_statement.tail =
               (type_9 **)&(var_15->output_section_statement).next;
        }
        else {
          var_78->next->prev = (type_7 *)var_15;
        }
        (var_18->output_section_statement).prev = var_78;
        var_82 = (type_26 *)0x0;
        var_81 = (type_26 *)0x0;
        var_78->next = (type_7 *)var_18;
        do {
          (var_18->output_section_statement).constraint =
               -2 - (var_18->output_section_statement).constraint;
          var_80 = (var_18->output_section_statement).type_23;
          if (((var_80 != (type_26 *)0x0) && (var_80->owner != (type_28 *)0x0)) &&
             (var_82 = var_80, var_81 == (type_26 *)0x0)) {
            var_81 = var_80;
          }
        } while ((var_15 != var_18) &&
                (var_18 = (type_9 *)(var_18->wild_statement).section_list,
                var_18 != (type_9 *)0x0));
        var_18 = (type_9 *)0x0;
        if (var_82 != (type_26 *)0x0) {
          var_80 = var_78->type_23;
          if (var_80 == (type_26 *)0x0) {
            var_18 = (type_9 *)var_78->prev;
            if (var_18 != (type_9 *)0x0) {
              do {
                if (((-1 < (var_18->output_section_statement).constraint) &&
                    (var_80 = (var_18->output_section_statement).type_23,
                    var_80 != (type_26 *)0x0)) && (var_80->owner != (type_28 *)0x0))
                goto LAB_0011cd61;
                var_18 = (type_9 *)(var_18->data_statement).output_section;
              } while (var_18 != (type_9 *)0x0);
              var_18 = (type_9 *)0x0;
            }
          }
          else {
LAB_0011cd61:
            var_18 = (type_9 *)0x0;
            if (var_80 != var_82) {
              var_53 = var_81->prev;
              var_83 = var_82->next;
              if (var_53 == (type_23 *)0x0) {
                (link_info.output_bfd)->sections = var_83;
              }
              else {
                var_53->next = var_83;
                var_83 = var_82->next;
              }
              if (var_83 == (type_23 *)0x0) {
                (link_info.output_bfd)->section_last = var_53;
              }
              else {
                var_83->prev = var_53;
              }
              var_53 = var_80->next;
              var_82->next = var_53;
              if (var_53 == (type_23 *)0x0) {
                (link_info.output_bfd)->section_last = var_82;
              }
              else {
                var_53->prev = var_82;
              }
              var_81->prev = var_80;
              var_18 = (type_9 *)0x0;
              var_80->next = var_81;
            }
          }
        }
      }
      pplVar32 = var_84(var_78);
      var_17 = ((lang_output_section_statement.head)->header).next;
      ((lang_output_section_statement.head)->header).next = (((plVar70->header).next)->header).next;
      var_15 = *pplVar32;
      (plVar70->header).next = var_15;
      if (var_15 == (type_9 *)0x0) {
        statement_list.tail = (type_9 **)plVar70;
      }
      *pplVar32 = var_17;
      var_15 = (type_9 *)0x0;
      var_17 = lang_output_section_statement.head;
    }
  }
  for (; (var_17 = file_chain.head, var_18 != (type_9 *)0x0 &&
         ((var_18->output_section_statement).constraint =
               -2 - (var_18->output_section_statement).constraint, var_17 = file_chain.head,
         var_15 != var_18));
      var_18 = (type_9 *)(var_18->wild_statement).section_list) {
  }
joined_r0x0011c458:
  for (; var_17 != (type_9 *)0x0; var_17 = (var_17->wild_statement).children.head)
  {
    var_53 = ((var_17->input_statement).the_bfd)->sections;
joined_r0x0011c46e:
    if (var_53 != (type_23 *)0x0) {
      do {
        if (var_53->output_section == (type_23 *)0x0) {
          if (((type_24)(var_17->wild_statement).walk_wild_section_handler & 0x10) != 0)
          goto code_r0x0011c493;
          var_41 = var_85((type_26 *)(type_24)var_53->flags);
          var_87 = false;
          bVar73 = var_41 == 0;
          if (bVar73) {
            pbVar7 = (type_1 *)var_53->name;
            var_39 = 7;
            var_56 = pbVar7;
            var_86 = (type_1 *)"COMMON";
            do {
              if (var_39 == 0) break;
              var_39 = var_39 + -1;
              var_87 = *var_56 < *var_86;
              bVar73 = *var_56 == *var_86;
              var_56 = var_56 + (type_24)bVar74 * -2 + 1;
              var_86 = var_86 + (type_24)bVar74 * -2 + 1;
            } while (bVar73);
            if ((!var_87 && !bVar73) == var_87) {
              if (((link_info._0_1_ & 3) != 2) || (command_line.force_common_definition != 0)) {
                var_95 = var_88;
                if (var_88 == (type_22 *)0x0) {
                  var_95 = var_77(".bss",0,1);
                  var_88 = var_95;
                }
LAB_0011c659:
                var_89(&var_95->children,var_53,(type_36 *)0x0,var_95);
              }
            }
            else {
              if (config.orphan_handling == var_90) {
                var_95 = var_77("/DISCARD/",0,1);
                if ((var_95->addr_tree == (type_37 *)0x0) &&
                   (((link_info._0_1_ & 3) == 2 || ((var_53->flags & 3) == 0)))) {
                  var_112 = var_91(0);
                  var_95->addr_tree = var_112;
                }
                goto LAB_0011c659;
              }
              if (config.orphan_handling == var_92) {
                var_22 = var_53->owner;
                var_46 = (char *)var_9(0,
                                            "%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n"
                                            ,5);
                var_10(var_46,var_53,var_22);
              }
              if ((config.unique_orphan_sections == 0) &&
                 (var_41 = var_93(var_53,(type_22 *)0x0),
                 var_41 == 0)) {
                var_8 = 0;
              }
              else {
                var_8 = 0x17e;
              }
              var_95 = var_94(var_53,(char *)pbVar7,var_8);
              if (var_95 == (type_22 *)0x0) {
                var_95 = var_77((char *)pbVar7,var_8,1);
                if ((var_95->addr_tree == (type_37 *)0x0) &&
                   (((link_info._0_1_ & 3) == 2 || ((var_53->flags & 3) == 0)))) {
                  var_112 = var_91(0);
                  var_95->addr_tree = var_112;
                }
                var_89(&var_95->children,var_53,(type_36 *)0x0,var_95);
              }
              if (config.orphan_handling == var_96) {
                var_22 = var_53->owner;
                var_46 = (char *)var_9(0,
                                            "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"
                                            ,5);
                var_10(var_46,var_53,var_22);
              }
            }
          }
          else {
            var_53->output_section = (type_23 *)(var_97 + 0x230);
          }
        }
        var_53 = var_53->next;
        if (var_53 == (type_23 *)0x0) break;
      } while( true );
    }
  }
  var_54 = link_info._0_1_ & 3;
  var_99 = var_118;
  var_17 = lang_output_section_statement.head;
  var_22 = link_info.output_bfd;
  if (var_54 != 2) {
    (*(link_info.output_bfd)->xvec->_bfd_merge_sections)(link_info.output_bfd,&link_info);
    var_39 = var_43(link_info.output_bfd);
    if (var_39 == 0) {
      var_54 = link_info._0_1_ & 3;
      var_99 = var_118;
      var_17 = lang_output_section_statement.head;
      var_22 = link_info.output_bfd;
    }
    else {
      var_54 = link_info._0_1_ & 3;
      if (config.text_read_only == 0) {
        *(type_2 *)(var_39 + 0x20) = *(type_2 *)(var_39 + 0x20) & 0xfffffff7;
        var_99 = var_118;
        var_17 = lang_output_section_statement.head;
        var_22 = link_info.output_bfd;
      }
      else {
        *(type_2 *)(var_39 + 0x20) = *(type_2 *)(var_39 + 0x20) | 8;
        var_99 = var_118;
        var_17 = lang_output_section_statement.head;
        var_22 = link_info.output_bfd;
      }
    }
  }
  for (; var_118 = var_99, link_info.output_bfd = var_22,
      var_17 != (type_9 *)0x0;
      var_17 = (type_9 *)(var_17->wild_statement).section_list) {
    var_81 = (var_17->data_statement).output_section;
    if ((((var_81 != (type_26 *)0x0) &&
         ((var_17->wild_statement).walk_wild_section_handler == (type_38)0x0))
        && ((var_17->wild_statement).handler_data[2] == (type_35 *)0x0)) &&
       (((var_17->wild_statement).handler_data[1] == (type_35 *)0x0 &&
        ((var_17->wild_statement).exclude_name_list == (type_39 *)var_81->rawsize)))) {
      (var_17->wild_statement).walk_wild_section_handler =
           (type_38)var_81->compressed_size;
    }
    var_99 = var_118;
    var_22 = link_info.output_bfd;
  }
  if ((config.build_constructors != 0) && (var_98 != 0)) {
    var_102 = var_99 + var_98;
    do {
      pbVar8 = *var_99;
      if ((pbVar8->field_0x19 & 8) == 0) {
        var_23 = (pbVar8->u).undef.abfd;
        var_100 = (var_23->section_htab).table;
        if (((var_100 == (type_8 **)0x0) || ((type_28 *)var_100[0x1e] != var_22)) ||
           (var_8 = var_101(var_23->filename,(char *)*var_100), var_8 != 0)) {
          pbVar8->field_0x18 = 1;
          (pbVar8->u).undef.abfd = (type_28 *)0x0;
        }
      }
      var_99 = var_99 + 1;
    } while (var_102 != var_99);
  }
  if (var_54 != 2) {
    for (var_81 = (link_info.output_bfd)->sections; var_81 != (type_26 *)0x0;
        var_81 = var_81->next) {
      var_46 = var_81->name;
      var_34 = var_33(var_46);
      var_48 = (char *)var_44(var_34 + 10);
      var_57(var_48,".startof.%s",var_46);
      var_59(var_48,var_81);
      var_60(var_48 + 1,".size",5);
      var_59(var_48 + 1,var_81);
      var_61(var_48);
    }
  }
  var_103();
  var_114 = (type_13 *)0x0;
  __ptr = (void *)var_44(0x50);
  var_108 = 10;
  for (var_104 = lang_phdr_list; var_104 != (type_5 *)0x0; var_104 = var_104->next) {
    var_110 = 0;
    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_13 *)0x0) {
          if ((((var_17->output_section_statement).sectype != var_106) &&
              ((var_17->output_section_statement).type_23 != (type_26 *)0x0)) &&
             (((((var_17->output_section_statement).type_23)->flags & 1) != 0 &&
              (var_105 = var_114, var_18 = var_17, var_104->type != 3)))) {
            while( true ) {
              var_114 = var_105;
              if (var_105 != (type_13 *)0x0) goto LAB_0011c7fd;
              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;
            }
            var_114 = (type_13 *)0x0;
            var_46 = (char *)var_9(0,"%F%P: no sections assigned to phdrs\n",5);
            var_10(var_46);
          }
        }
        else {
          var_114 = var_105;
          var_107 = (type_13 *)(var_17->wild_statement).children.tail;
          while (var_107 != (type_13 *)0x0) {
LAB_0011c7fd:
            var_8 = var_101(var_105->name,var_104->name);
            var_122 = var_110;
            if (var_8 == 0) {
              if (var_108 <= (type_2)var_110) {
                var_108 = var_108 << 1;
                __ptr = (void *)var_109(__ptr,(type_24)var_108 << 3);
              }
              var_122 = (type_24)((type_2)var_110 + 1);
              *(type_9 ***)((long)__ptr + var_110 * 8) =
                   (var_17->wild_statement).children.tail;
              var_105->used = 1;
            }
            var_105 = var_105->next;
            var_110 = var_122;
            var_107 = var_105;
          }
        }
      }
    }
    var_122 = 0;
    if (var_104->flags != (type_25 *)0x0) {
      var_24 = var_111(var_104->flags,0,"phdr flags");
      var_122 = var_24 & 0xffffffff;
    }
    var_112 = var_104->at;
    var_24 = 0;
    if (var_112 != (type_25 *)0x0) {
      var_24 = var_111(var_112,0,"phdr load address");
      var_112 = var_104->at;
    }
    var_8 = var_113(link_info.output_bfd,var_104->type,var_104->flags != (type_25 *)0x0,
                             var_122,var_112 != (type_25 *)0x0,var_24,var_104->filehdr,
                             var_104->phdrs,var_110,__ptr);
    if (var_8 == 0) {
      var_46 = (char *)var_9(0,"%F%P: bfd_record_phdr failed: %E\n",5);
      var_10(var_46);
    }
  }
  var_61(__ptr);
  has_relro_section = extraout_RDX;
  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_17->wild_statement).children.tail != (type_9 **)0x0)) {
      var_114 = (var_17->output_section_statement).phdrs;
joined_r0x0011c90a:
      if (var_114 != (type_13 *)0x0) {
        do {
          var_87 = false;
          bVar73 = var_114->used == 0;
          if (bVar73) {
            pbVar7 = (type_1 *)var_114->name;
            var_39 = 5;
            var_56 = pbVar7;
            var_86 = (type_1 *)0x130359;
            do {
              if (var_39 == 0) break;
              var_39 = var_39 + -1;
              var_87 = *var_56 < *var_86;
              bVar73 = *var_56 == *var_86;
              var_56 = var_56 + (type_24)bVar74 * -2 + 1;
              var_86 = var_86 + (type_24)bVar74 * -2 + 1;
            } while (bVar73);
            if ((!var_87 && !bVar73) != var_87) goto code_r0x0011c93b;
          }
          var_114 = var_114->next;
          if (var_114 == (type_13 *)0x0) break;
        } while( true );
      }
    }
  }
  if (((link_info._3_1_ & 0x10) != 0) && ((link_info._0_1_ & 3) != 2)) {
    var_68 = 0;
    var_115
              (expld.dataseg.relro_start_stat,(type_40 *)&var_68,has_relro_section);
    if (var_68 == 0) {
      link_info._3_1_ = link_info._3_1_ & 0xef;
    }
  }
  var_116((type_17 *)0x0,
                     (type_2)(1 < (type_2)link_info.disable_target_specific_optimizations));
  var_117();
  var_22 = link_info.output_bfd;
  var_108 = opb_shift;
  if (var_98 != 0) {
    var_99 = var_118 + var_98;
    var_102 = var_118;
    do {
      while (pbVar8 = *var_102, (*(type_41 *)&pbVar8->field_0x18 & 0x8ff) == 3) {
        var_46 = (pbVar8->root).string;
        if (*var_46 != '.') {
          var_58 = var_22->xvec->symbol_leading_char;
          var_53 = ((pbVar8->u).def.section)->output_section;
          (pbVar8->u).def.section = var_53;
          if (var_46[(int)((var_58 != '\0') + 4)] == 'o') {
            (pbVar8->u).def.value = var_53->size >> ((type_1)var_108 & 0x3f);
          }
          break;
        }
        if (var_46[2] != 'i') break;
        var_102 = var_102 + 1;
        var_110 = ((pbVar8->u).def.section)->size;
        (pbVar8->u).undef.abfd = (type_28 *)0x17ed50;
        (pbVar8->u).def.value = var_110 >> ((type_1)var_108 & 0x3f);
        if (var_102 == var_99) goto LAB_0011ca60;
      }
      var_102 = var_102 + 1;
    } while (var_102 != var_99);
  }
LAB_0011ca60:
  var_62(lang_final_phase_enum);
  var_119();
  var_120();
  var_133 = require_defined_symbol_list;
  if (command_line.check_section_addresses != '\0') {
    var_58 = var_121(link_info.output_bfd);
    var_53 = (link_info.output_bfd)->sections;
    var_110 = (1L << (var_58 - 1U & 0x3f)) * 2 - 1;
    if (var_53 != (type_23 *)0x0) {
      do {
        if ((var_53->flags & 1) != 0) {
          var_122 = var_53->vma + var_53->size & var_110;
          if ((var_122 == 0) || ((var_53->vma & var_110) <= var_122)) {
            var_122 = var_53->size + var_53->lma & var_110;
            if ((var_122 == 0) || ((var_53->lma & var_110) <= var_122)) goto LAB_0011d2f0;
            var_46 = var_53->name;
            var_48 = "%X%P: section %s LMA wraps around address space\n";
          }
          else {
            var_46 = var_53->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_0011d2f0:
        var_53 = var_53->next;
      } while (var_53 != (type_23 *)0x0);
    }
    var_133 = require_defined_symbol_list;
    if (1 < (link_info.output_bfd)->section_count) {
      var_110 = 0;
      var_123 = (long *)var_44((type_24)(link_info.output_bfd)->section_count << 4);
      var_53 = (link_info.output_bfd)->sections;
      if (var_53 != (type_23 *)0x0) {
        do {
          var_122 = var_110;
          if ((((var_53->flags & 1) != 0) && ((var_53->flags & 0x402) != 0x400)) &&
             (var_53->size != 0)) {
            var_122 = var_110 + 1;
            var_123[var_110 * 2] = (long)var_53;
            *(type_29 *)(var_123 + var_110 * 2 + 1) = 0;
          }
          var_53 = var_53->next;
          var_110 = var_122;
        } while (var_53 != (type_23 *)0x0);
        if (1 < var_122) {
          var_124(var_123,var_122,0x10,sort_sections_by_lma);
          var_127 = (type_11 *)0x0;
          var_129 = var_123;
          var_110 = 0;
          var_128 = 0;
          do {
            var_125 = (type_11 *)*var_129;
            puVar41 = var_127;
            var_126 = var_110;
            var_130 = var_128;
            if ((*(type_1 *)(var_125 + 4) & 2) != 0) {
              var_126 = var_125[6];
              var_130 = (var_126 - 1) + ((type_24)var_125[7] >> ((type_1)opb_shift & 0x3f));
              puVar41 = var_125;
              if ((var_127 != (type_11 *)0x0) && ((var_126 <= var_128 || (var_128 < var_110)))) {
                uVar37 = *var_127;
                uVar16 = *var_125;
                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,uVar16,var_126,var_130,uVar37,var_110,var_128);
                *(type_29 *)(var_129 + 1) = 1;
              }
            }
            var_129 = var_129 + 2;
            var_127 = puVar41;
            var_110 = var_126;
            var_128 = var_130;
          } while (var_129 != var_123 + var_122 * 2);
          var_124(var_123,var_122,0x10,sort_sections_by_vma);
          var_127 = (type_11 *)*var_123;
          var_130 = 1;
          var_110 = var_127[5];
          var_128 = var_110;
          do {
            var_39 = var_130 * 2;
            if (*(type_24 *)(var_123[var_39] + 0x28) == var_128) goto LAB_0011d4c4;
            var_130 = var_130 + 1;
            var_128 = *(type_24 *)(var_123[var_39] + 0x28);
          } while (var_130 != var_122);
          var_130 = 0;
          var_128 = (var_110 - 1) + ((type_24)var_127[7] >> ((type_1)opb_shift & 0x3f));
          var_129 = var_123;
          while( true ) {
            var_131 = var_128;
            var_126 = var_110;
            var_125 = var_127;
            plVar57 = var_129 + 2;
            var_130 = var_130 + 1;
            if (var_130 == var_122) break;
            var_127 = (type_11 *)*plVar57;
            plVar1 = var_129 + 3;
            var_110 = var_127[5];
            var_128 = (var_110 - 1) + ((type_24)var_127[7] >> ((type_1)opb_shift & 0x3f));
            var_129 = plVar57;
            if (((int)*plVar1 == 0) && ((var_110 <= var_131 || (var_131 < var_126)))) {
              uVar37 = *var_125;
              uVar16 = *var_127;
              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,uVar16,var_110,var_128,uVar37,var_126,var_131);
            }
          }
LAB_0011d4c4:
          var_61(var_123);
          for (var_63 = lang_memory_region_list; var_133 = require_defined_symbol_list,
              var_63 != (type_34 *)0x0; var_63 = var_63->next) {
            if (var_63->had_full_message != 0) {
              var_46 = (var_63->type_39).name;
              var_39 = var_63->current - (var_63->length + var_63->origin);
              var_48 = (char *)var_132(0,"%X%P: region `%s\' overflowed by %lu byte\n",
                                           "%X%P: region `%s\' overflowed by %lu bytes\n",var_39,5);
              var_10(var_48,var_46,var_39);
            }
          }
          goto joined_r0x0011ca92;
        }
      }
      var_61(var_123);
      var_133 = require_defined_symbol_list;
    }
  }
joined_r0x0011ca92:
  for (; var_133 != (type_12 *)0x0; var_133 = var_133->next) {
    var_39 = var_134(link_info.hash,var_133->name,0,0,1);
    if ((var_39 == 0) || (1 < (type_1)(*(char *)(var_39 + 0x18) - 3U))) {
      var_46 = var_133->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_135;
  if (((link_info._0_1_ & 0x43) != 2) && ((link_info._0_1_ & 3) != 3)) {
    var_8 = 1;
  }
  if (((link_info._0_1_ & 0x43) == 0x42) && (var_135 == 0 && var_136 == 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_39 = var_134(link_info.hash,entry_symbol.name,0,0,1);
  if ((var_39 != 0) && ((type_1)(*(char *)(var_39 + 0x18) - 3U) < 2)) {
    var_47 = *(long *)(*(long *)(var_39 + 0x28) + 0x68);
    if (var_47 != 0) {
      var_8 = var_137
                         (link_info.output_bfd,
                          *(long *)(var_47 + 0x28) +
                          *(long *)(*(long *)(var_39 + 0x28) + 0x60) + *(long *)(var_39 + 0x30));
      if (var_8 != 0) {
        return;
      }
      var_46 = "%F%P: %s: can\'t set start address\n";
      goto LAB_0011cf37;
    }
  }
  uVar37 = var_138(entry_symbol.name,&var_68,0);
  if (*(char *)var_139(uStack_3c,var_68) == '\0') {
    var_8 = var_137(link_info.output_bfd,uVar37);
  }
  else {
    var_39 = var_43(link_info.output_bfd,entry_section);
    var_46 = entry_symbol.name;
    if (var_39 == 0) {
      if (var_8 == 0) {
        return;
      }
      var_46 = "%P: warning: cannot find entry symbol %s; not setting start address\n";
LAB_0011cf37:
      var_48 = entry_symbol.name;
      var_46 = (char *)var_9(0,var_46,5);
      var_10(var_46,var_48);
      return;
    }
    uVar37 = *(type_11 *)(var_39 + 0x28);
    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,uVar37);
      uVar37 = *(type_11 *)(var_39 + 0x28);
    }
    var_8 = var_137(link_info.output_bfd,uVar37);
  }
  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;
code_r0x0011c5be:
  var_17 = (var_17->wild_statement).children.head;
  goto joined_r0x0011be7f;
LAB_0011c1d0:
  var_46 = (var_63->type_39).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_r0x0011bfdf;
code_r0x0011c493:
  (*((var_17->input_statement).the_bfd)->xvec->_bfd_link_just_syms)(var_53,&link_info);
  var_53 = var_53->next;
  goto joined_r0x0011c46e;
code_r0x0011c93b:
  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,pbVar7);
  var_114 = var_114->next;
  has_relro_section = extraout_RDX_00;
  goto joined_r0x0011c90a;
}


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

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

void MASKED(void)

{
  byte bVar1;
  uint uVar2;
  long *plVar3;
  byte *pbVar4;
  long lVar5;
  long *plVar6;
  undefined *puVar7;
  char cVar8;
  int iVar9;
  undefined4 uVar10;
  undefined8 uVar11;
  size_t sVar12;
  long lVar13;
  undefined8 uVar14;
  long lVar15;
  long lVar16;
  long *plVar17;
  void *__ptr;
  long *plVar18;
  char *pcVar19;
  byte *pbVar20;
  undefined8 *puVar21;
  undefined8 *puVar22;
  ulong uVar23;
  undefined8 uVar24;
  ulong uVar25;
  long *plVar26;
  undefined8 *puVar27;
  long lVar28;
  ulong uVar29;
  ulong uVar30;
  char *pcVar31;
  byte *pbVar32;
  long lVar33;
  ulong uVar34;
  byte bVar35;
  long *plVar36;
  ulong uVar37;
  bool bVar38;
  bool bVar39;
  byte bVar40;
  uint local_40;
  undefined4 uStack_3c;
  
  bVar40 = 0;
  if (DAT_0017fb98 != 0) {
    FUN_00112d70();
  }
  DAT_0017f440 = DAT_0017fcc8;
  FUN_00115a50(FUN_001182b0,DAT_0017f430);
  FUN_00113540();
  FUN_00123c10();
  for (puVar21 = DAT_0017f2e0; puVar21 != (undefined8 *)0x0; puVar21 = (undefined8 *)*puVar21) {
    FUN_00112b40(puVar21[1]);
  }
  iVar9 = bfd_section_already_linked_table_init();
  if (iVar9 == 0) {
    uVar11 = dcgettext(0,"%F%P: can not create hash table: %E\n",5);
    FUN_001251f0(uVar11);
  }
  _DAT_0017f2c0 = _DAT_0017f2c0 + 1;
  DAT_0017f440 = DAT_0017fcc8;
  FUN_00119910(DAT_0017f430,0);
  plVar3 = DAT_0017fa28;
  plVar26 = DAT_0017fa20;
  plVar18 = DAT_0017f2f8;
  plVar17 = DAT_0017f2f0;
  if ((DAT_0017fac1 & 2) != 0) {
    lVar16 = *(long *)PTR_DAT_0017e650;
    plVar36 = *(long **)(PTR_DAT_0017e650 + 8);
    iVar9 = FUN_00128bb0();
    if (iVar9 != 0) {
      uVar11 = FUN_00128550();
      uVar14 = dcgettext(0,"%F%P: %s: plugin reported error after all symbols read\n",5);
      FUN_001251f0(uVar14,uVar11);
    }
    FUN_00119910(*plVar36,0);
    puVar7 = PTR_DAT_0017e650;
    if (*(long *)PTR_DAT_0017e650 != lVar16) {
      FUN_001252b0("../../ld/ldlang.c",0x1baf);
    }
    plVar6 = *(long **)(puVar7 + 8);
    lVar16 = *plVar36;
    *(long **)(puVar7 + 8) = plVar36;
    *plVar36 = 0;
    if (DAT_0017f2f0 != plVar17) {
      FUN_001252b0("../../ld/ldlang.c",0x1baf);
    }
    plVar36 = DAT_0017f2f8;
    plVar17 = (long *)*plVar18;
    DAT_0017f2f8 = plVar18;
    *plVar18 = 0;
    if (DAT_0017fa20 != plVar26) {
      FUN_001252b0("../../ld/ldlang.c",0x1baf);
    }
    plVar26 = DAT_0017fa28;
    lVar15 = *plVar3;
    DAT_0017fa28 = plVar3;
    *plVar3 = 0;
    plVar18 = DAT_0017f2f0;
    plVar3 = DAT_0017fa20;
    if (lVar16 != 0) {
      for (; DAT_0017f380 = plVar3, plVar18 != (long *)0x0; plVar18 = (long *)plVar18[6]) {
        if ((*(byte *)((long)plVar18 + 0x49) & 0x20) != 0) {
          if ((*(byte *)((long)plVar18 + 0x49) & 0x40) == 0) goto LAB_0011d6c0;
          break;
        }
        if ((plVar18[4] != 0) && (*(long *)(plVar18[4] + 0xd0) == 0)) {
          DAT_0017f380 = plVar18;
        }
        plVar3 = DAT_0017f380;
      }
      plVar18 = DAT_0017f380;
      if (DAT_0017f380 == (long *)0x0) {
        FUN_001252b0("../../ld/ldlang.c",0x1c32);
        plVar18 = DAT_0017f380;
      }
LAB_0011d6c0:
      DAT_0017f380 = plVar18;
      plVar18 = DAT_0017f380;
      puVar7 = PTR_DAT_0017e650;
      *plVar6 = *DAT_0017f380;
      *plVar18 = lVar16;
      if (plVar18 == *(long **)(puVar7 + 8)) {
        *(long **)(puVar7 + 8) = plVar6;
      }
      *plVar26 = plVar18[7];
      bVar38 = DAT_0017fa28 == plVar18 + 7;
      plVar18[7] = lVar15;
      plVar3 = DAT_0017f2f8;
      if (bVar38) {
        DAT_0017fa28 = plVar26;
      }
      if (plVar18[2] == 0) {
        *plVar36 = (long)DAT_0017f2f0;
        DAT_0017f2f0 = plVar17;
        if ((long **)plVar3 != &DAT_0017f2f0) {
          plVar36 = DAT_0017f2f8;
        }
      }
      else {
        *plVar36 = plVar18[6];
        plVar18[6] = (long)plVar17;
        if (plVar3 != plVar18 + 6) {
          plVar36 = DAT_0017f2f8;
        }
      }
      DAT_0017f2f8 = plVar36;
      plVar18 = DAT_0017f2f8;
      plVar17 = DAT_0017f2f0;
      _DAT_0017f2c0 = _DAT_0017f2c0 + 1;
      FUN_00119910(DAT_0017f430);
      if (DAT_0017f2f0 != plVar17) {
        FUN_001252b0("../../ld/ldlang.c");
      }
      lVar16 = *plVar18;
      DAT_0017f2f8 = plVar18;
      *plVar18 = 0;
      while (lVar16 != 0) {
        lVar15 = *(long *)(*(long *)(lVar16 + 0x20) + 0xd0);
        lVar13 = *(long *)(lVar16 + 0x20);
        if (lVar15 != 0) {
          lVar13 = lVar15;
        }
        if (DAT_0017fa20 == (long *)0x0) {
LAB_0011dad0:
          plVar17 = DAT_0017f2f0;
        }
        else {
          plVar26 = (long *)0x0;
          plVar18 = DAT_0017fa20;
          plVar17 = (long *)0x0;
          do {
            while (plVar18[4] != lVar13) {
              if ((plVar18[4] != 0) && (plVar18[6] != 0)) {
                plVar26 = plVar18;
              }
              plVar18 = (long *)plVar18[7];
              if (plVar18 == (long *)0x0) goto LAB_0011d7f1;
            }
            lVar28 = plVar18[6];
            if (lVar28 != 0) {
              plVar17 = (long *)(lVar28 + 0x30);
              lVar13 = *(long *)(lVar28 + 0x30);
              goto LAB_0011d835;
            }
            plVar18 = (long *)plVar18[7];
            plVar17 = plVar26;
          } while (plVar18 != (long *)0x0);
LAB_0011d7f1:
          if (plVar17 == (long *)0x0) goto LAB_0011dad0;
        }
        plVar17 = plVar17 + 6;
        for (lVar13 = *plVar17; lVar13 != 0; lVar13 = *(long *)(lVar13 + 0x30)) {
          if (((*(byte *)(lVar13 + 0x49) & 0x40) == 0) &&
             (*(long *)(*(long *)(lVar13 + 0x20) + 0xd0) == 0)) {
            lVar13 = *plVar17;
            break;
          }
          plVar17 = (long *)(lVar13 + 0x30);
        }
LAB_0011d835:
        plVar18 = (long *)(lVar16 + 0x30);
        if (lVar15 == 0) {
          *plVar17 = lVar16;
          lVar15 = *(long *)(lVar16 + 0x30);
          *(long *)(lVar16 + 0x30) = lVar13;
          lVar16 = lVar15;
        }
        else {
          lVar28 = *(long *)(lVar16 + 0x30);
          if (lVar28 != 0) {
            lVar5 = *(long *)(*(long *)(lVar28 + 0x20) + 0xd0);
            while (lVar15 == lVar5) {
              plVar18 = (long *)(lVar28 + 0x30);
              lVar28 = *(long *)(lVar28 + 0x30);
              if (lVar28 == 0) break;
              lVar5 = *(long *)(*(long *)(lVar28 + 0x20) + 0xd0);
            }
          }
          *plVar17 = lVar16;
          lVar16 = *plVar18;
          *plVar18 = lVar13;
          if (*(long *)(lVar15 + 0x100) != 0) {
            *(long **)(*(long *)(lVar15 + 0x100) + 0x30) = plVar18 + -6;
          }
        }
      }
    }
  }
  if (DAT_0017fb38 != (undefined8 *)0x0) {
    FUN_001252b0("../../ld/ldlang.c",0x1c67);
  }
  DAT_0017fb38 = &DAT_0017f2e0;
  if (DAT_0017f2e8 == (undefined *)0x0) {
    DAT_0017fb38 = DAT_0017f2e0;
    if (PTR_s_start_0017e660 != (undefined *)0x0) {
      FUN_00115880();
    }
  }
  if (DAT_0017fb48 != 0) {
    FUN_00115880();
  }
  if (DAT_0017fb50 != 0) {
    FUN_00115880();
  }
  FUN_00123b90();
  if ((DAT_0017fc98 != 0) && (DAT_0017f3d0 != (undefined8 *)0x0)) {
    uVar11 = dcgettext(0,"\nAs-needed library included to satisfy reference by file (symbol)\n\n",5)
    ;
    FUN_001252f0(uVar11);
    for (puVar21 = DAT_0017f3d0; puVar21 != (undefined8 *)0x0; puVar21 = (undefined8 *)*puVar21) {
      FUN_001252f0(&DAT_0013efee,puVar21[1]);
      sVar12 = strlen((char *)puVar21[1]);
      if (0x1c < sVar12) {
        FUN_00124290();
        sVar12 = 0;
      }
      do {
        FUN_00124270();
        sVar12 = sVar12 + 1;
      } while (sVar12 != 0x1e);
      if (puVar21[2] != 0) {
        FUN_001252f0(&DAT_0013f279);
      }
      FUN_001252f0("(%pT)\n",puVar21[3]);
    }
  }
  bfd_section_already_linked_table_free();
  plVar17 = DAT_0017f2f0;
joined_r0x0011be7f:
  if (plVar17 != (long *)0x0) {
    do {
      if ((*(byte *)((long)plVar17 + 0x49) & 0x20) == 0) {
        lVar16 = plVar17[4];
        lVar13 = bfd_arch_get_compatible(lVar16,DAT_0017fb10,DAT_0017fbdc);
        lVar15 = DAT_0017fb10;
        if (((DAT_0017fac0 & 3) == 2) || ((DAT_0017fac3 & 8) != 0)) {
          if (lVar13 != 0) {
            puVar21 = *(undefined8 **)(lVar16 + 8);
            puVar27 = *(undefined8 **)(DAT_0017fb10 + 8);
            if ((*(int *)(puVar21 + 1) != *(int *)(puVar27 + 1)) &&
               ((*(byte *)(lVar16 + 0x44) & 0x20) != 0)) goto LAB_0011c12e;
            goto LAB_0011bed4;
          }
          if ((*(byte *)(lVar16 + 0x44) & 0x20) != 0) {
            puVar21 = *(undefined8 **)(lVar16 + 8);
            puVar27 = *(undefined8 **)(DAT_0017fb10 + 8);
LAB_0011c12e:
            uVar11 = *puVar27;
            uVar14 = *puVar21;
            uVar24 = dcgettext(0,
                               "%F%P: relocatable linking with relocations from format %s (%pB) to format %s (%pB) is not supported\n"
                               ,5);
            FUN_001251f0(uVar24,uVar14,lVar16,uVar11,lVar15);
            goto joined_r0x0011c167;
          }
        }
        else {
joined_r0x0011c167:
          if (lVar13 != 0) {
LAB_0011bed4:
            if (*(int *)(lVar16 + 0xa0) == 0) goto LAB_0011bf30;
            uVar11 = 0;
            if (DAT_0017fbd0 == 0) {
              uVar11 = bfd_set_error_handler(FUN_00112380);
            }
            iVar9 = (**(code **)(*(long *)(DAT_0017fb10 + 8) + 0x140))(lVar16,&DAT_0017fac0);
            if (iVar9 == 0) {
              if (DAT_0017fbd0 != 0) {
                uVar14 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);
                FUN_001251f0(uVar14,lVar16);
                goto LAB_0011c5b0;
              }
            }
            else {
LAB_0011c5b0:
              if (DAT_0017fbd0 != 0) goto code_r0x0011c5be;
            }
            bfd_set_error_handler(uVar11);
            goto LAB_0011bf30;
          }
        }
        if (DAT_0017fbd0 == 0) goto LAB_0011bf30;
        uVar11 = bfd_printable_name(DAT_0017fb10);
        uVar14 = bfd_printable_name(lVar16);
        uVar24 = dcgettext(0,
                           "%X%P: %s architecture of input file `%pB\' is incompatible with %s output\n"
                           ,5);
        FUN_001251f0(uVar24,uVar14,lVar16,uVar11);
        plVar17 = (long *)plVar17[6];
      }
      else {
LAB_0011bf30:
        plVar17 = (long *)plVar17[6];
      }
      if (plVar17 == (long *)0x0) break;
    } while( true );
  }
  if (DAT_0017fc30 != 0) {
    uVar11 = 0;
    for (plVar17 = DAT_0017f2f0; plVar17 != (long *)0x0; plVar17 = (long *)plVar17[6]) {
      lVar16 = bfd_get_section_by_name(plVar17[4],".exports");
      if (lVar16 != 0) {
        lVar15 = *(long *)(lVar16 + 0x38);
        pcVar31 = (char *)xmalloc(lVar15);
        iVar9 = bfd_get_section_contents(plVar17[4],lVar16,pcVar31,0,lVar15);
        if (iVar9 == 0) {
          uVar14 = dcgettext(0,"%X%P: unable to read .exports section contents\n",5);
          FUN_001251f0(uVar14,lVar16);
        }
        pcVar19 = pcVar31 + lVar15;
        for (; pcVar31 < pcVar19; pcVar31 = pcVar31 + sVar12 + 1) {
          uVar11 = FUN_0011b640(uVar11,pcVar31,0);
          sVar12 = strlen(pcVar31);
        }
        *(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) | 0x208000;
      }
    }
    uVar14 = FUN_0011b640(0,&DAT_0013f157,0,0);
    lVar15 = xcalloc(1,0x70);
    lVar16 = DAT_0017fc30;
    *(undefined8 *)(lVar15 + 0x18) = uVar11;
    *(undefined8 *)(lVar15 + 0x38) = uVar14;
    *(code **)(lVar15 + 0x68) = FUN_00112f60;
    *(undefined4 *)(lVar15 + 0x60) = 0xffffffff;
    FUN_0011b860(lVar16,lVar15,0);
  }
  FUN_0011eaa0();
  if ((DAT_0017fc4c != 0) &&
     (cVar8 = *(char *)(*(long *)(DAT_0017fb10 + 8) + 0x1c), DAT_0017fb20 != 0)) {
    lVar16 = DAT_0017fb20;
    do {
      for (puVar21 = *(undefined8 **)(lVar16 + 0x90); puVar21 != (undefined8 *)0x0;
          puVar21 = (undefined8 *)puVar21[2]) {
        while( true ) {
          pbVar4 = (byte *)*puVar21;
          bVar35 = *pbVar4;
          if (bVar35 == 0) break;
          bVar1 = _sch_istable[(ulong)bVar35 * 2];
          pbVar20 = pbVar4;
          while (((bVar1 & 0x8c) != 0 || (bVar35 == 0x5f))) {
            pbVar20 = pbVar20 + 1;
            bVar35 = *pbVar20;
            if (bVar35 == 0) goto LAB_0011d178;
            bVar1 = _sch_istable[(ulong)bVar35 * 2];
          }
          puVar21 = (undefined8 *)puVar21[2];
          if (puVar21 == (undefined8 *)0x0) goto LAB_0011d163;
        }
LAB_0011d178:
        sVar12 = strlen((char *)pbVar4);
        pcVar31 = (char *)xmalloc(sVar12 + 10);
        *pcVar31 = cVar8;
        sprintf(pcVar31 + (cVar8 != '\0'),"__start_%s",pbVar4);
        FUN_00112ee0(pcVar31,puVar21);
        pcVar31[1] = cVar8;
        builtin_strncpy(pcVar31 + (2 - (ulong)(cVar8 == '\0')),"__stop",6);
        FUN_00112ee0(pcVar31 + 1,puVar21);
        free(pcVar31);
      }
LAB_0011d163:
      lVar16 = *(long *)(lVar16 + 0xf0);
    } while (lVar16 != 0);
  }
  FUN_001188a0(1);
  puVar21 = DAT_0017f398;
joined_r0x0011bfdf:
  if (puVar21 != (undefined8 *)0x0) {
    do {
      if (puVar21[3] != 0) {
        FUN_00123150();
        uVar11 = DAT_0017fd20;
        if (DAT_0017fd38 == 0) {
          uVar11 = *puVar21;
          uVar14 = dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);
          FUN_001251f0(uVar14,uVar11);
        }
        else {
          puVar21[4] = DAT_0017fd20;
          puVar21[7] = uVar11;
        }
      }
      if (puVar21[6] != 0) {
        FUN_00123150();
        if (DAT_0017fd38 == 0) goto LAB_0011c1d0;
        puVar21[5] = DAT_0017fd20;
      }
      puVar21 = (undefined8 *)puVar21[2];
      if (puVar21 == (undefined8 *)0x0) break;
    } while( true );
  }
  DAT_0017fd00 = 0;
  if (((DAT_0017fac7 & 0x20) == 0) && (((DAT_0017fac0 & 3) != 2 || (DAT_0017fbc0 != 0)))) {
    if (DAT_0017fc6c == 0) {
      bfd_link_hash_traverse(DAT_0017fae8,FUN_001145f0,0);
    }
    else {
      if (DAT_0017fc6c == 2) {
        local_40 = 4;
        do {
          bfd_link_hash_traverse(DAT_0017fae8,FUN_001145f0,&local_40);
          local_40 = local_40 - 1;
        } while (local_40 != 0);
        local_40 = 0;
      }
      else {
        local_40 = 0;
        do {
          bfd_link_hash_traverse(DAT_0017fae8,FUN_001145f0,&local_40);
          local_40 = local_40 + 1;
        } while (local_40 < 5);
        local_40 = 0xffffffff;
      }
      bfd_link_hash_traverse(DAT_0017fae8,FUN_001145f0,&local_40);
    }
  }
  FUN_00119400(DAT_0017f430);
  bVar35 = DAT_0017fac0;
  plVar17 = DAT_0017f2f0;
  if ((DAT_0017fac0 & 3) == 2) {
    for (; plVar17 != (long *)0x0; plVar17 = (long *)plVar17[6]) {
      if ((*(byte *)((long)plVar17 + 0x49) & 0x20) == 0) {
        for (lVar16 = *(long *)(plVar17[4] + 0x90); lVar16 != 0; lVar16 = *(long *)(lVar16 + 0x10))
        {
          if ((*(uint *)(lVar16 + 0x20) & 0x2000) == 0) {
            *(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) & 0xffff7fff;
          }
        }
      }
    }
  }
  if ((bVar35 & 0x40) != 0) {
    (**(code **)(*(long *)(DAT_0017fb10 + 8) + 0x2f0))(DAT_0017fb10,&DAT_0017fac0);
  }
  lVar16 = DAT_0017fb20;
  if ((DAT_0017fac6 & 0x20) != 0) {
    for (; lVar16 != 0; lVar16 = *(long *)(lVar16 + 0xf0)) {
      iVar9 = bfd_link_check_relocs(lVar16,&DAT_0017fac0);
      if (iVar9 == 0) {
        DAT_0017fc44 = 0;
      }
    }
  }
  FUN_00123ba0();
  FUN_001124e0(DAT_0017f430);
  _DAT_0017f2c0 = _DAT_0017f2c0 + 1;
  FUN_00119520(DAT_0017f430,0,0);
  plVar18 = (long *)0x0;
  plVar26 = (long *)0x0;
  plVar17 = DAT_0017fa60;
  while (plVar36 = plVar17, plVar3 = (long *)*plVar36, plVar3 != (long *)0x0) {
    plVar17 = plVar3;
    if ((int)plVar3[1] == 0) {
      if ((plVar26 != (long *)0x0) && (plVar3 != (long *)plVar26[4])) {
        FUN_001252b0("../../ld/ldlang.c",0xea0);
        plVar17 = (long *)*plVar36;
      }
      *(int *)((long)plVar3 + 0x84) = -2 - *(int *)((long)plVar3 + 0x84);
      plVar26 = plVar3;
      if (plVar18 == (long *)0x0) {
        plVar18 = plVar3;
      }
    }
    else if ((int)plVar3[1] == 0xe) {
      lVar16 = FUN_00116e20(plVar3[2],0,0);
      if (lVar16 == 0) {
LAB_0011c415:
        lVar16 = plVar3[2];
        uVar11 = dcgettext(0,"%F%P: %s not found for insert\n",5);
        FUN_001251f0(uVar11,lVar16);
        plVar17 = DAT_0017f2f0;
        goto joined_r0x0011c458;
      }
      if ((int)plVar3[3] != 0) {
        do {
          lVar16 = *(long *)(lVar16 + 0x28);
          if (lVar16 == 0) goto LAB_0011c415;
        } while (*(int *)(lVar16 + 0x84) < 0);
      }
      if (plVar26 != (long *)0x0) {
        lVar15 = plVar18[5];
        lVar13 = plVar26[4];
        *(long *)(lVar15 + 0x20) = lVar13;
        if (lVar13 == 0) {
          DAT_0017fa68 = (long *)(lVar15 + 0x20);
        }
        else {
          *(long *)(lVar13 + 0x28) = lVar15;
        }
        plVar26[4] = *(long *)(lVar16 + 0x20);
        if (*(long *)(lVar16 + 0x20) == 0) {
          DAT_0017fa68 = plVar26 + 4;
        }
        else {
          *(long **)(*(long *)(lVar16 + 0x20) + 0x28) = plVar26;
        }
        plVar18[5] = lVar16;
        lVar13 = 0;
        lVar15 = 0;
        *(long **)(lVar16 + 0x20) = plVar18;
        do {
          *(int *)((long)plVar18 + 0x84) = -2 - *(int *)((long)plVar18 + 0x84);
          lVar28 = plVar18[7];
          if (((lVar28 != 0) && (*(long *)(lVar28 + 0xf0) != 0)) && (lVar13 = lVar28, lVar15 == 0))
          {
            lVar15 = lVar28;
          }
        } while ((plVar26 != plVar18) && (plVar18 = (long *)plVar18[4], plVar18 != (long *)0x0));
        plVar18 = (long *)0x0;
        if (lVar13 != 0) {
          lVar28 = *(long *)(lVar16 + 0x38);
          if (lVar28 == 0) {
            plVar18 = *(long **)(lVar16 + 0x28);
            if (plVar18 != (long *)0x0) {
              do {
                if (((-1 < *(int *)((long)plVar18 + 0x84)) && (lVar28 = plVar18[7], lVar28 != 0)) &&
                   (*(long *)(lVar28 + 0xf0) != 0)) goto LAB_0011cd61;
                plVar18 = (long *)plVar18[5];
              } while (plVar18 != (long *)0x0);
              plVar18 = (long *)0x0;
            }
          }
          else {
LAB_0011cd61:
            plVar18 = (long *)0x0;
            if (lVar28 != lVar13) {
              lVar5 = *(long *)(lVar15 + 0x18);
              lVar33 = *(long *)(lVar13 + 0x10);
              if (lVar5 == 0) {
                *(long *)(DAT_0017fb10 + 0x90) = lVar33;
              }
              else {
                *(long *)(lVar5 + 0x10) = lVar33;
                lVar33 = *(long *)(lVar13 + 0x10);
              }
              if (lVar33 == 0) {
                *(long *)(DAT_0017fb10 + 0x98) = lVar5;
              }
              else {
                *(long *)(lVar33 + 0x18) = lVar5;
              }
              lVar5 = *(long *)(lVar28 + 0x10);
              *(long *)(lVar13 + 0x10) = lVar5;
              if (lVar5 == 0) {
                *(long *)(DAT_0017fb10 + 0x98) = lVar13;
              }
              else {
                *(long *)(lVar5 + 0x18) = lVar13;
              }
              *(long *)(lVar15 + 0x18) = lVar28;
              plVar18 = (long *)0x0;
              *(long *)(lVar28 + 0x10) = lVar15;
            }
          }
        }
      }
      plVar17 = (long *)FUN_00112240(lVar16);
      lVar16 = *DAT_0017fa60;
      *DAT_0017fa60 = *(long *)*plVar36;
      lVar15 = *plVar17;
      *plVar36 = lVar15;
      if (lVar15 == 0) {
        DAT_0017f438 = plVar36;
      }
      *plVar17 = lVar16;
      plVar26 = (long *)0x0;
      plVar17 = DAT_0017fa60;
    }
  }
  for (; (plVar17 = DAT_0017f2f0, plVar18 != (long *)0x0 &&
         (*(int *)((long)plVar18 + 0x84) = -2 - *(int *)((long)plVar18 + 0x84),
         plVar17 = DAT_0017f2f0, plVar26 != plVar18)); plVar18 = (long *)plVar18[4]) {
  }
joined_r0x0011c458:
  for (; plVar17 != (long *)0x0; plVar17 = (long *)plVar17[6]) {
    puVar21 = *(undefined8 **)(plVar17[4] + 0x90);
joined_r0x0011c46e:
    if (puVar21 != (undefined8 *)0x0) {
      do {
        if (puVar21[0xd] == 0) {
          if ((*(byte *)(plVar17 + 9) & 0x10) != 0) goto code_r0x0011c493;
          iVar9 = FUN_00113350(*(undefined4 *)(puVar21 + 4));
          bVar38 = false;
          bVar39 = iVar9 == 0;
          if (bVar39) {
            pbVar4 = (byte *)*puVar21;
            lVar16 = 7;
            pbVar20 = pbVar4;
            pbVar32 = (byte *)"COMMON";
            do {
              if (lVar16 == 0) break;
              lVar16 = lVar16 + -1;
              bVar38 = *pbVar20 < *pbVar32;
              bVar39 = *pbVar20 == *pbVar32;
              pbVar20 = pbVar20 + (ulong)bVar40 * -2 + 1;
              pbVar32 = pbVar32 + (ulong)bVar40 * -2 + 1;
            } while (bVar39);
            if ((!bVar38 && !bVar39) == bVar38) {
              if (((DAT_0017fac0 & 3) != 2) || (DAT_0017fbc0 != 0)) {
                lVar16 = DAT_0017f458;
                if (DAT_0017f458 == 0) {
                  lVar16 = FUN_00116e20(".bss",0,1);
                  DAT_0017f458 = lVar16;
                }
LAB_0011c659:
                FUN_00117b90(lVar16 + 0x10,puVar21,0);
              }
            }
            else {
              if (DAT_0017fc5c == 1) {
                lVar16 = FUN_00116e20("/DISCARD/",0,1);
                if ((*(long *)(lVar16 + 0x58) == 0) &&
                   (((DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0)))) {
                  uVar11 = FUN_00123030(0);
                  *(undefined8 *)(lVar16 + 0x58) = uVar11;
                }
                goto LAB_0011c659;
              }
              if (DAT_0017fc5c == 3) {
                uVar11 = puVar21[0x1e];
                uVar14 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);
                FUN_001251f0(uVar14,puVar21,uVar11);
              }
              if ((DAT_0017fc78 == 0) && (iVar9 = FUN_001150a0(puVar21,0), iVar9 == 0)) {
                uVar10 = 0;
              }
              else {
                uVar10 = 0x17e;
              }
              lVar16 = FUN_00123c60(puVar21,pbVar4,uVar10);
              if (lVar16 == 0) {
                lVar16 = FUN_00116e20(pbVar4,uVar10,1);
                if ((*(long *)(lVar16 + 0x58) == 0) &&
                   (((DAT_0017fac0 & 3) == 2 || ((*(byte *)(puVar21 + 4) & 3) == 0)))) {
                  uVar11 = FUN_00123030(0);
                  *(undefined8 *)(lVar16 + 0x58) = uVar11;
                }
                FUN_00117b90(lVar16 + 0x10,puVar21,0);
              }
              if (DAT_0017fc5c == 2) {
                uVar11 = puVar21[0x1e];
                uVar14 = dcgettext(0,
                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"
                                   ,5);
                FUN_001251f0(uVar14,puVar21,uVar11);
              }
            }
          }
          else {
            puVar21[0xd] = 0x17ed50;
          }
        }
        puVar21 = (undefined8 *)puVar21[2];
        if (puVar21 == (undefined8 *)0x0) break;
      } while( true );
    }
  }
  bVar35 = DAT_0017fac0 & 3;
  plVar17 = DAT_0017f358;
  plVar18 = DAT_0017fa60;
  lVar16 = DAT_0017fb10;
  if (bVar35 != 2) {
    (**(code **)(*(long *)(DAT_0017fb10 + 8) + 0x300))(DAT_0017fb10,&DAT_0017fac0);
    lVar16 = bfd_get_section_by_name(DAT_0017fb10,".text");
    if (lVar16 == 0) {
      bVar35 = DAT_0017fac0 & 3;
      plVar17 = DAT_0017f358;
      plVar18 = DAT_0017fa60;
      lVar16 = DAT_0017fb10;
    }
    else {
      bVar35 = DAT_0017fac0 & 3;
      if (DAT_0017fc70 == 0) {
        *(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) & 0xfffffff7;
        plVar17 = DAT_0017f358;
        plVar18 = DAT_0017fa60;
        lVar16 = DAT_0017fb10;
      }
      else {
        *(uint *)(lVar16 + 0x20) = *(uint *)(lVar16 + 0x20) | 8;
        plVar17 = DAT_0017f358;
        plVar18 = DAT_0017fa60;
        lVar16 = DAT_0017fb10;
      }
    }
  }
  for (; DAT_0017f358 = plVar17, DAT_0017fb10 = lVar16, plVar18 != (long *)0x0;
      plVar18 = (long *)plVar18[4]) {
    lVar16 = plVar18[5];
    if ((((lVar16 != 0) && (plVar18[9] == 0)) && (plVar18[0xc] == 0)) &&
       ((plVar18[0xb] == 0 && (plVar18[8] == *(long *)(lVar16 + 0x40))))) {
      plVar18[9] = *(long *)(lVar16 + 0x48);
    }
    plVar17 = DAT_0017f358;
    lVar16 = DAT_0017fb10;
  }
  if ((DAT_0017fc4c != 0) && (DAT_0017f350 != 0)) {
    plVar18 = plVar17 + DAT_0017f350;
    do {
      lVar15 = *plVar17;
      if ((*(byte *)(lVar15 + 0x19) & 8) == 0) {
        puVar21 = (undefined8 *)(*(undefined8 **)(lVar15 + 0x28))[0xd];
        if (((puVar21 == (undefined8 *)0x0) || (puVar21[0x1e] != lVar16)) ||
           (iVar9 = strcmp((char *)**(undefined8 **)(lVar15 + 0x28),(char *)*puVar21), iVar9 != 0))
        {
          *(undefined1 *)(lVar15 + 0x18) = 1;
          *(undefined8 *)(lVar15 + 0x28) = 0;
        }
      }
      plVar17 = plVar17 + 1;
    } while (plVar18 != plVar17);
  }
  if (bVar35 != 2) {
    for (puVar21 = *(undefined8 **)(DAT_0017fb10 + 0x90); puVar21 != (undefined8 *)0x0;
        puVar21 = (undefined8 *)puVar21[2]) {
      pcVar31 = (char *)*puVar21;
      sVar12 = strlen(pcVar31);
      pcVar19 = (char *)xmalloc(sVar12 + 10);
      sprintf(pcVar19,".startof.%s",pcVar31);
      FUN_00112ee0(pcVar19,puVar21);
      builtin_strncpy(pcVar19 + 1,".size",5);
      FUN_00112ee0(pcVar19 + 1,puVar21);
      free(pcVar19);
    }
  }
  FUN_00123bc0();
  plVar17 = (long *)0x0;
  __ptr = (void *)xmalloc(0x50);
  uVar2 = 10;
  for (puVar21 = DAT_0017fa50; puVar21 != (undefined8 *)0x0; puVar21 = (undefined8 *)*puVar21) {
    uVar30 = 0;
    for (plVar18 = DAT_0017fa60; plVar18 != (long *)0x0; plVar18 = (long *)plVar18[4]) {
      if (-1 < *(int *)((long)plVar18 + 0x84)) {
        plVar26 = (long *)plVar18[0xe];
        if (plVar26 == (long *)0x0) {
          if (((*(int *)((long)plVar18 + 0x8c) != 2) && (plVar18[7] != 0)) &&
             (((*(byte *)(plVar18[7] + 0x20) & 1) != 0 &&
              (plVar26 = plVar17, plVar3 = plVar18, puVar21[2] != 3)))) {
            while( true ) {
              plVar17 = plVar26;
              if (plVar26 != (long *)0x0) goto LAB_0011c7fd;
              plVar3 = (long *)plVar3[4];
              if (plVar3 == (long *)0x0) break;
              plVar26 = (long *)plVar3[0xe];
            }
            plVar17 = (long *)0x0;
            dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);
            FUN_001251f0();
          }
        }
        else {
          plVar17 = plVar26;
          plVar3 = (long *)plVar18[7];
          while (plVar3 != (long *)0x0) {
LAB_0011c7fd:
            iVar9 = strcmp((char *)plVar26[1],(char *)puVar21[1]);
            uVar29 = uVar30;
            if (iVar9 == 0) {
              if (uVar2 <= (uint)uVar30) {
                uVar2 = uVar2 << 1;
                __ptr = (void *)xrealloc(__ptr,(ulong)uVar2 << 3);
              }
              uVar29 = (ulong)((uint)uVar30 + 1);
              *(long *)((long)__ptr + uVar30 * 8) = plVar18[7];
              *(undefined4 *)(plVar26 + 2) = 1;
            }
            plVar26 = (long *)*plVar26;
            uVar30 = uVar29;
            plVar3 = plVar26;
          }
        }
      }
    }
    uVar10 = 0;
    if (puVar21[5] != 0) {
      uVar10 = FUN_00123800(puVar21[5],0,"phdr flags");
    }
    lVar16 = puVar21[4];
    uVar11 = 0;
    if (lVar16 != 0) {
      uVar11 = FUN_00123800(lVar16,0,"phdr load address");
      lVar16 = puVar21[4];
    }
    iVar9 = bfd_record_phdr(DAT_0017fb10,puVar21[2],puVar21[5] != 0,uVar10,lVar16 != 0,uVar11,
                            *(undefined4 *)(puVar21 + 3),*(undefined4 *)((long)puVar21 + 0x1c),
                            uVar30,__ptr);
    if (iVar9 == 0) {
      dcgettext(0,"%F%P: bfd_record_phdr failed: %E\n",5);
      FUN_001251f0();
    }
  }
  free(__ptr);
  for (plVar17 = DAT_0017fa60; plVar17 != (long *)0x0; plVar17 = (long *)plVar17[4]) {
    if ((-1 < *(int *)((long)plVar17 + 0x84)) && (plVar17[7] != 0)) {
      plVar18 = (long *)plVar17[0xe];
joined_r0x0011c90a:
      if (plVar18 != (long *)0x0) {
        do {
          bVar38 = false;
          bVar39 = (int)plVar18[2] == 0;
          if (bVar39) {
            pbVar4 = (byte *)plVar18[1];
            lVar16 = 5;
            pbVar20 = pbVar4;
            pbVar32 = (byte *)0x130359;
            do {
              if (lVar16 == 0) break;
              lVar16 = lVar16 + -1;
              bVar38 = *pbVar20 < *pbVar32;
              bVar39 = *pbVar20 == *pbVar32;
              pbVar20 = pbVar20 + (ulong)bVar40 * -2 + 1;
              pbVar32 = pbVar32 + (ulong)bVar40 * -2 + 1;
            } while (bVar39);
            if ((!bVar38 && !bVar39) != bVar38) goto code_r0x0011c93b;
          }
          plVar18 = (long *)*plVar18;
          if (plVar18 == (long *)0x0) break;
        } while( true );
      }
    }
  }
  if (((DAT_0017fac3 & 0x10) != 0) && ((DAT_0017fac0 & 3) != 2)) {
    local_40 = 0;
    FUN_00119860(DAT_0017fd98,&local_40);
    if (local_40 == 0) {
      DAT_0017fac3 = DAT_0017fac3 & 0xef;
    }
  }
  FUN_0011a050(0,1 < DAT_0017fad8);
  FUN_00123bb0();
  lVar16 = DAT_0017fb10;
  uVar10 = DAT_0017f3c8;
  if (DAT_0017f350 != 0) {
    plVar17 = DAT_0017f358 + DAT_0017f350;
    plVar18 = DAT_0017f358;
    do {
      while (lVar15 = *plVar18, (*(ushort *)(lVar15 + 0x18) & 0x8ff) == 3) {
        pcVar31 = *(char **)(lVar15 + 8);
        if (*pcVar31 != '.') {
          cVar8 = *(char *)(*(long *)(lVar16 + 8) + 0x1c);
          lVar13 = *(long *)(*(long *)(lVar15 + 0x28) + 0x68);
          *(long *)(lVar15 + 0x28) = lVar13;
          if (pcVar31[(int)((cVar8 != '\0') + 4)] == 'o') {
            *(ulong *)(lVar15 + 0x30) = *(ulong *)(lVar13 + 0x38) >> ((byte)uVar10 & 0x3f);
          }
          break;
        }
        if (pcVar31[2] != 'i') break;
        plVar18 = plVar18 + 1;
        uVar30 = *(ulong *)(*(long *)(lVar15 + 0x28) + 0x38);
        *(undefined8 *)(lVar15 + 0x28) = 0x17ed50;
        *(ulong *)(lVar15 + 0x30) = uVar30 >> ((byte)uVar10 & 0x3f);
        if (plVar18 == plVar17) goto LAB_0011ca60;
      }
      plVar18 = plVar18 + 1;
    } while (plVar18 != plVar17);
  }
LAB_0011ca60:
  FUN_001188a0(4);
  FUN_00123be0();
  FUN_00123b20();
  puVar21 = DAT_0017f378;
  if (DAT_0017fbd8 != '\0') {
    cVar8 = bfd_arch_bits_per_address(DAT_0017fb10);
    puVar21 = *(undefined8 **)(DAT_0017fb10 + 0x90);
    uVar30 = (1L << (cVar8 - 1U & 0x3f)) * 2 - 1;
    if (puVar21 != (undefined8 *)0x0) {
      do {
        if ((*(byte *)(puVar21 + 4) & 1) != 0) {
          uVar29 = puVar21[5] + puVar21[7] & uVar30;
          if ((uVar29 == 0) || ((puVar21[5] & uVar30) <= uVar29)) {
            uVar29 = puVar21[7] + puVar21[6] & uVar30;
            if ((uVar29 == 0) || ((puVar21[6] & uVar30) <= uVar29)) goto LAB_0011d2f0;
            uVar11 = *puVar21;
            pcVar31 = "%X%P: section %s LMA wraps around address space\n";
          }
          else {
            uVar11 = *puVar21;
            pcVar31 = "%X%P: section %s VMA wraps around address space\n";
          }
          uVar14 = dcgettext(0,pcVar31,5);
          FUN_001251f0(uVar14,uVar11);
        }
LAB_0011d2f0:
        puVar21 = (undefined8 *)puVar21[2];
      } while (puVar21 != (undefined8 *)0x0);
    }
    puVar21 = DAT_0017f378;
    if (1 < *(uint *)(DAT_0017fb10 + 0xa0)) {
      uVar30 = 0;
      plVar17 = (long *)xmalloc((ulong)*(uint *)(DAT_0017fb10 + 0xa0) << 4);
      lVar16 = *(long *)(DAT_0017fb10 + 0x90);
      if (lVar16 != 0) {
        do {
          uVar29 = uVar30;
          if ((((*(uint *)(lVar16 + 0x20) & 1) != 0) &&
              ((*(uint *)(lVar16 + 0x20) & 0x402) != 0x400)) && (*(long *)(lVar16 + 0x38) != 0)) {
            uVar29 = uVar30 + 1;
            plVar17[uVar30 * 2] = lVar16;
            *(undefined4 *)(plVar17 + uVar30 * 2 + 1) = 0;
          }
          lVar16 = *(long *)(lVar16 + 0x10);
          uVar30 = uVar29;
        } while (lVar16 != 0);
        if (1 < uVar29) {
          qsort(plVar17,uVar29,0x10,FUN_00112320);
          puVar21 = (undefined8 *)0x0;
          plVar18 = plVar17;
          uVar30 = 0;
          uVar25 = 0;
          do {
            puVar27 = (undefined8 *)*plVar18;
            puVar22 = puVar21;
            uVar34 = uVar30;
            uVar23 = uVar25;
            if ((*(byte *)(puVar27 + 4) & 2) != 0) {
              uVar34 = puVar27[6];
              uVar23 = (uVar34 - 1) + ((ulong)puVar27[7] >> ((byte)DAT_0017f3c8 & 0x3f));
              puVar22 = puVar27;
              if ((puVar21 != (undefined8 *)0x0) && ((uVar34 <= uVar25 || (uVar25 < uVar30)))) {
                uVar11 = *puVar21;
                uVar14 = *puVar27;
                uVar24 = dcgettext(0,
                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",
                                   5);
                FUN_001251f0(uVar24,uVar14,uVar34,uVar23,uVar11,uVar30,uVar25);
                *(undefined4 *)(plVar18 + 1) = 1;
              }
            }
            plVar18 = plVar18 + 2;
            puVar21 = puVar22;
            uVar30 = uVar34;
            uVar25 = uVar23;
          } while (plVar18 != plVar17 + uVar29 * 2);
          qsort(plVar17,uVar29,0x10,FUN_00112350);
          puVar21 = (undefined8 *)*plVar17;
          uVar23 = 1;
          uVar30 = puVar21[5];
          uVar25 = uVar30;
          do {
            lVar16 = uVar23 * 2;
            if (*(ulong *)(plVar17[lVar16] + 0x28) == uVar25) goto LAB_0011d4c4;
            uVar23 = uVar23 + 1;
            uVar25 = *(ulong *)(plVar17[lVar16] + 0x28);
          } while (uVar23 != uVar29);
          uVar23 = 0;
          uVar25 = (uVar30 - 1) + ((ulong)puVar21[7] >> ((byte)DAT_0017f3c8 & 0x3f));
          plVar18 = plVar17;
          while( true ) {
            uVar37 = uVar25;
            uVar34 = uVar30;
            puVar27 = puVar21;
            plVar26 = plVar18 + 2;
            uVar23 = uVar23 + 1;
            if (uVar23 == uVar29) break;
            puVar21 = (undefined8 *)*plVar26;
            plVar3 = plVar18 + 3;
            uVar30 = puVar21[5];
            uVar25 = (uVar30 - 1) + ((ulong)puVar21[7] >> ((byte)DAT_0017f3c8 & 0x3f));
            plVar18 = plVar26;
            if (((int)*plVar3 == 0) && ((uVar30 <= uVar37 || (uVar37 < uVar34)))) {
              uVar11 = *puVar27;
              uVar14 = *puVar21;
              uVar24 = dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",
                                 5);
              FUN_001251f0(uVar24,uVar14,uVar30,uVar25,uVar11,uVar34,uVar37);
            }
          }
LAB_0011d4c4:
          free(plVar17);
          for (puVar27 = DAT_0017f398; puVar21 = DAT_0017f378, puVar27 != (undefined8 *)0x0;
              puVar27 = (undefined8 *)puVar27[2]) {
            if (*(int *)(puVar27 + 10) != 0) {
              uVar11 = *puVar27;
              lVar16 = puVar27[7] - (puVar27[5] + puVar27[4]);
              uVar14 = dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",
                                  "%X%P: region `%s\' overflowed by %lu bytes\n",lVar16,5);
              FUN_001251f0(uVar14,uVar11,lVar16);
            }
          }
          goto joined_r0x0011ca92;
        }
      }
      free(plVar17);
      puVar21 = DAT_0017f378;
    }
  }
joined_r0x0011ca92:
  for (; puVar21 != (undefined8 *)0x0; puVar21 = (undefined8 *)puVar21[1]) {
    lVar16 = bfd_link_hash_lookup(DAT_0017fae8,*puVar21,0,0,1);
    if ((lVar16 == 0) || (1 < (byte)(*(char *)(lVar16 + 0x18) - 3U))) {
      uVar11 = *puVar21;
      uVar14 = dcgettext(0,"%X%P: required symbol `%s\' not defined\n",5);
      FUN_001251f0(uVar14,uVar11);
    }
  }
  iVar9 = DAT_0017fa0c;
  if (((DAT_0017fac0 & 0x43) != 2) && ((DAT_0017fac0 & 3) != 3)) {
    iVar9 = 1;
  }
  if (((DAT_0017fac0 & 0x43) == 0x42) && (DAT_0017fa0c == 0 && _DAT_0017fa08 == 0)) {
    uVar11 = dcgettext(0,"%F%P: gc-sections requires either an entry or an undefined symbol\n",5);
    FUN_001251f0(uVar11);
  }
  if (DAT_0017f2e8 == (undefined *)0x0) {
    DAT_0017f2e8 = PTR_s_start_0017e660;
    iVar9 = 0;
  }
  lVar16 = bfd_link_hash_lookup(DAT_0017fae8,DAT_0017f2e8,0,0,1);
  if ((lVar16 != 0) && ((byte)(*(char *)(lVar16 + 0x18) - 3U) < 2)) {
    lVar15 = *(long *)(*(long *)(lVar16 + 0x28) + 0x68);
    if (lVar15 != 0) {
      iVar9 = bfd_set_start_address
                        (DAT_0017fb10,
                         *(long *)(lVar15 + 0x28) +
                         *(long *)(*(long *)(lVar16 + 0x28) + 0x60) + *(long *)(lVar16 + 0x30));
      if (iVar9 != 0) {
        return;
      }
      pcVar31 = "%F%P: %s: can\'t set start address\n";
      goto LAB_0011cf37;
    }
  }
  uVar11 = bfd_scan_vma(DAT_0017f2e8,&local_40,0);
  if (*(char *)CONCAT44(uStack_3c,local_40) == '\0') {
    iVar9 = bfd_set_start_address(DAT_0017fb10,uVar11);
  }
  else {
    lVar16 = bfd_get_section_by_name(DAT_0017fb10,PTR_s__text_0017e648);
    puVar7 = DAT_0017f2e8;
    if (lVar16 == 0) {
      if (iVar9 == 0) {
        return;
      }
      pcVar31 = "%P: warning: cannot find entry symbol %s; not setting start address\n";
LAB_0011cf37:
      puVar7 = DAT_0017f2e8;
      uVar11 = dcgettext(0,pcVar31,5);
      FUN_001251f0(uVar11,puVar7);
      return;
    }
    uVar11 = *(undefined8 *)(lVar16 + 0x28);
    if (iVar9 != 0) {
      uVar14 = dcgettext(0,"%P: warning: cannot find entry symbol %s; defaulting to %V\n",5);
      FUN_001251f0(uVar14,puVar7,uVar11);
      uVar11 = *(undefined8 *)(lVar16 + 0x28);
    }
    iVar9 = bfd_set_start_address(DAT_0017fb10,uVar11);
  }
  if (iVar9 != 0) {
    return;
  }
  uVar11 = dcgettext(0,"%F%P: can\'t set start address\n",5);
  FUN_001251f0(uVar11);
  return;
code_r0x0011c5be:
  plVar17 = (long *)plVar17[6];
  goto joined_r0x0011be7f;
LAB_0011c1d0:
  uVar11 = *puVar21;
  uVar14 = dcgettext(0,"%F%P: invalid length for memory region %s\n",5);
  FUN_001251f0(uVar14,uVar11);
  puVar21 = (undefined8 *)puVar21[2];
  goto joined_r0x0011bfdf;
code_r0x0011c493:
  (**(code **)(*(long *)(plVar17[4] + 8) + 0x2c8))(puVar21,&DAT_0017fac0);
  puVar21 = (undefined8 *)puVar21[2];
  goto joined_r0x0011c46e;
code_r0x0011c93b:
  lVar16 = plVar17[6];
  uVar11 = dcgettext(0,"%X%P: section `%s\' assigned to non-existent phdr `%s\'\n",5);
  FUN_001251f0(uVar11,lVar16,pbVar4);
  plVar18 = (long *)*plVar18;
  goto joined_r0x0011c90a;
}

