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

void gld_i386pe_after_open(void)

{
  anon_union_4_2_31908b46_for_link *paVar1;
  bfd_symbol **ppbVar2;
  pe_tdata *ppVar3;
  undefined4 *puVar4;
  uint uVar5;
  byte bVar6;
  char cVar7;
  char cVar8;
  byte bVar9;
  bfd_boolean bVar10;
  asection *paVar11;
  bfd *pbVar12;
  undefined4 *__ptr;
  undefined4 *puVar13;
  size_t sVar14;
  char *pcVar15;
  char *pcVar16;
  bfd_section *pbVar17;
  bfd_link_hash_entry *pbVar18;
  bfd_link_hash_entry *sym;
  int iVar19;
  int iVar20;
  bool bVar21;
  bfd_section *pbVar22;
  lang_statement_union *plVar23;
  internal_extra_pe_aouthdr *piVar24;
  undefined4 *puVar25;
  lang_statement_union *plVar26;
  byte *pbVar27;
  bfd_symbol **ppbVar28;
  internal_extra_pe_aouthdr *piVar29;
  byte *pbVar30;
  wildcard_list *pwVar31;
  bool bVar32;
  bool bVar33;
  bool bVar34;
  byte bVar35;
  lang_statement_union *local_50;
  lang_statement_union *local_4c;
  lang_statement_union *local_40;
  bfd_section *local_38;
  int found_debug;
  undefined4 uStack_14;
  
  bVar35 = 0;
  uStack_14 = 0x56659;
  after_open_default();
  if (pe_dll_extra_pe_debug == 0) {
LAB_00056682:
    pbVar12 = link_info.input_bfds;
    if (emit_build_id != (char *)0x0) {
      for (; pbVar12 != (bfd *)0x0; pbVar12 = (pbVar12->link).next) {
        if (pbVar12->xvec->flavour == bfd_target_coff_flavour) {
          bVar10 = validate_build_id_style(emit_build_id);
          if (bVar10 == 0) {
            pcVar16 = "%P: warning: unrecognized --build-id style ignored\n";
          }
          else {
            paVar11 = (asection *)
                      bfd_make_section_anyway_with_flags
                                (pbVar12,".buildid",
                                 "*/\n  .debug_aranges  0 : { *(.debug_aranges) }\n  .debug_pubnames 0 : { *(.debug_pubnames) }\n  /* DWARF 2 */\n  .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }\n  .debug_abbrev   0 : { *(.debug_abbrev) }\n  .debug_line     0 : { *(.debug_line .debug_line.* .debug_line_end ) }\n  .debug_frame    0 : { *(.debug_frame) }\n  .debug_str      0 : { *(.debug_str) }\n  .debug_loc      0 : { *(.debug_loc) }\n  .debug_macinfo  0 : { *(.debug_macinfo) }\n  /* SGI/MIPS DWARF 2 extensions */\n  .debug_weaknames 0 : { *(.debug_weaknames) }\n  .debug_funcnames 0 : { *(.debug_funcnames) }\n  .debug_typenames 0 : { *(.debug_typenames) }\n  .debug_varnames  0 : { *(.debug_varnames) }\n  /* DWARF 3 */\n  .debug_pubtypes 0 : { *(.debug_pubtypes) }\n  .debug_ranges   0 : { *(.debug_ranges) }\n  /* DWARF Extension.  */\n  .debug_macro    0 : { *(.debug_macro) }\n  .debug_addr     0 : { *(.debug_addr) }\n  .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) }\n  /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) }\n}\n\n"
                                );
            pbVar12 = link_info.output_bfd;
            if (paVar11 != (asection *)0x0) {
              ppVar3 = ((link_info.output_bfd)->tdata).pe_obj_data;
              (ppVar3->build_id).after_write_object_contents = write_build_id;
              pcVar16 = emit_build_id;
              iVar19 = (ppVar3->coff).pe;
              (ppVar3->build_id).sec = paVar11;
              (ppVar3->build_id).style = pcVar16;
              *(undefined4 *)&paVar11->size = 0x35;
              *(undefined4 *)((int)&paVar11->size + 4) = 0;
              goto joined_r0x00056729;
            }
            pcVar16 = "%P: warning: cannot create .buildid section, --build-id ignored\n";
          }
          pcVar16 = (char *)dcgettext(0,pcVar16,5);
          einfo(pcVar16);
          break;
        }
      }
LAB_00056a59:
      free(emit_build_id);
      emit_build_id = (char *)0x0;
    }
  }
  else {
    printf("%s()\n","gld_i386pe_after_open");
    for (pbVar18 = (link_info.hash)->undefs; pbVar18 != (bfd_link_hash_entry *)0x0;
        pbVar18 = (pbVar18->u).undef.next) {
      printf("-%s\n",(pbVar18->root).string);
    }
    bfd_hash_traverse(link_info.hash,pr_sym,0);
    pbVar12 = link_info.input_bfds;
    if (link_info.input_bfds != (bfd *)0x0) {
      do {
        printf("*%s\n",pbVar12->filename);
        paVar1 = &pbVar12->link;
        pbVar12 = paVar1->next;
      } while (paVar1->next != (bfd *)0x0);
      goto LAB_00056682;
    }
    if (emit_build_id != (char *)0x0) goto LAB_00056a59;
  }
  pbVar12 = link_info.output_bfd;
  if (((link_info.output_bfd)->tdata).coff_obj_data != (coff_tdata *)0x0) {
    iVar19 = (((link_info.output_bfd)->tdata).coff_obj_data)->pe;
joined_r0x00056729:
    if (iVar19 != 0) goto LAB_00056730;
  }
  pcVar16 = (char *)dcgettext(0,"%F%P: cannot perform PE operations on non PE output file \'%pB\'\n"
                              ,5);
  einfo(pcVar16,pbVar12);
LAB_00056730:
  pbVar12 = link_info.output_bfd;
  ppVar3 = ((link_info.output_bfd)->tdata).pe_obj_data;
  piVar24 = &pe;
  piVar29 = &ppVar3->pe_opthdr;
  for (iVar19 = 0x52; iVar19 != 0; iVar19 = iVar19 + -1) {
    cVar7 = piVar24->MajorLinkerVersion;
    cVar8 = piVar24->MinorLinkerVersion;
    piVar29->Magic = piVar24->Magic;
    piVar29->MajorLinkerVersion = cVar7;
    piVar29->MinorLinkerVersion = cVar8;
    piVar24 = (internal_extra_pe_aouthdr *)((int)piVar24 + ((uint)bVar35 * -2 + 1) * 4);
    piVar29 = (internal_extra_pe_aouthdr *)((int)piVar29 + (uint)bVar35 * -8 + 4);
  }
  ppVar3->dll = init[1].value;
  ppVar3->real_flags = ppVar3->real_flags | real_flags;
  ppVar3->insert_timestamp = insert_timestamp;
  if ((pe_use_coff_long_section_names < 0) && ((link_info._1_1_ & 0x60) == 0)) {
    if ((link_info._0_1_ & 3) == 2) {
      pe_use_coff_long_section_names = 1;
    }
    else if (file_chain.head != (lang_statement_union *)0x0) {
      plVar26 = file_chain.head;
      do {
        found_debug = 0;
        bfd_map_over_sections((plVar26->wild_statement).section_list,debug_section_p,&found_debug);
        pbVar12 = link_info.output_bfd;
        if (found_debug != 0) {
          pe_use_coff_long_section_names = 1;
          break;
        }
        plVar26 = (plVar26->wild_statement).children.head;
      } while (plVar26 != (lang_statement_union *)0x0);
    }
  }
  pe_output_file_set_long_section_names(pbVar12);
  pe_process_import_defs(link_info.output_bfd,&link_info);
  if (link_info.pei386_auto_import != 0) {
    iVar19 = is_underscoring();
    pcVar16 = "_head_";
    if (iVar19 != 0) {
      pcVar16 = "__head_";
    }
    pe_find_data_imports(pcVar16,make_import_fixup);
  }
  if (pe_enable_stdcall_fixup != 0) {
    if (pe_dll_extra_pe_debug != 0) {
      puts("pe_fixup_stdcalls");
    }
    for (pbVar18 = (link_info.hash)->undefs; pbVar18 != (bfd_link_hash_entry *)0x0;
        pbVar18 = (pbVar18->u).undef.next) {
      if (pbVar18->field_0xc == '\x01') {
        pcVar16 = (pbVar18->root).string;
        if (*pcVar16 == '@') {
          pcVar15 = strchr(pcVar16 + 1,0x40);
          pcVar16 = (char *)xstrdup(pcVar16);
          *pcVar16 = '_';
          if (pcVar15 != (char *)0x0) goto LAB_00057061;
        }
        else {
          pcVar15 = strchr(pcVar16,0x40);
          if (pcVar15 == (char *)0x0) {
            pe_undef_found_sym = (bfd_link_hash_entry *)0x0;
            bfd_link_hash_traverse(link_info.hash,pe_undef_cdecl_match,pcVar16);
            if (pe_undef_found_sym != (bfd_link_hash_entry *)0x0) {
              change_undef(pbVar18,pe_undef_found_sym);
            }
            goto LAB_00056fa8;
          }
          pcVar16 = (char *)xstrdup(pcVar16);
LAB_00057061:
          pcVar15 = strchr(pcVar16,0x40);
          *pcVar15 = '\0';
        }
        sym = (bfd_link_hash_entry *)bfd_link_hash_lookup(link_info.hash,pcVar16,0,0,1);
        if ((sym != (bfd_link_hash_entry *)0x0) && (sym->field_0xc == '\x03')) {
          change_undef(pbVar18,sym);
        }
      }
LAB_00056fa8:
    }
  }
  if ((link_info._0_1_ & 3) != 2) {
    pe_dll_build_sections(link_info.output_bfd,&link_info);
  }
  local_40 = file_chain.head;
  if (file_chain.head != (lang_statement_union *)0x0) {
    do {
      pbVar12 = (local_40->input_statement).the_bfd;
      if ((pbVar12->my_archive != (bfd *)0x0) &&
         (local_38 = pbVar12->sections, local_38 != (bfd_section *)0x0)) {
        iVar19 = 0;
        bVar34 = true;
        pbVar17 = local_38;
        bVar6 = 0;
        bVar21 = false;
        do {
          bVar32 = false;
          iVar20 = 9;
          pbVar27 = (byte *)pbVar17->name;
          pbVar30 = (byte *)".idata$2";
          do {
            if (iVar20 == 0) break;
            iVar20 = iVar20 + -1;
            bVar32 = *pbVar27 < *pbVar30;
            bVar34 = *pbVar27 == *pbVar30;
            pbVar27 = pbVar27 + (uint)bVar35 * -2 + 1;
            pbVar30 = pbVar30 + (uint)bVar35 * -2 + 1;
          } while (bVar34);
          bVar33 = false;
          bVar34 = (!bVar32 && !bVar34) == bVar32;
          bVar32 = true;
          if (!bVar34) {
            bVar32 = bVar21;
          }
          iVar20 = 7;
          pbVar27 = (byte *)pbVar17->name;
          pbVar30 = (byte *)".idata$";
          do {
            if (iVar20 == 0) break;
            iVar20 = iVar20 + -1;
            bVar33 = *pbVar27 < *pbVar30;
            bVar34 = *pbVar27 == *pbVar30;
            pbVar27 = pbVar27 + (uint)bVar35 * -2 + 1;
            pbVar30 = pbVar30 + (uint)bVar35 * -2 + 1;
          } while (bVar34);
          bVar9 = 1;
          if ((!bVar33 && !bVar34) != bVar33) {
            bVar9 = bVar6;
          }
          iVar19 = iVar19 + pbVar17->reloc_count;
          pbVar17 = pbVar17->next;
          bVar34 = pbVar17 == (bfd_section *)0x0;
          bVar6 = bVar9;
          bVar21 = bVar32;
        } while (!bVar34);
        if (((bool)(bVar9 & iVar19 != 0)) && (!bVar32)) {
          while (iVar19 = bfd_get_reloc_upper_bound(pbVar12,local_38), 0 < iVar19) {
            iVar20 = bfd_generic_link_read_symbols((local_40->wild_statement).section_list);
            local_4c = local_40;
            if (iVar20 == 0) goto LAB_000570af;
            ppbVar28 = ((local_40->input_statement).the_bfd)->outsymbols;
            __ptr = (undefined4 *)xmalloc(iVar19);
            iVar19 = bfd_canonicalize_reloc
                               ((local_40->wild_statement).section_list,local_38,__ptr,ppbVar28);
            if (iVar19 < 0) {
              free(__ptr);
              pcVar16 = (char *)dcgettext(0,"%X%P: unable to process relocs: %E\n",5);
              einfo(pcVar16);
              return;
            }
            puVar25 = __ptr;
            if (iVar19 != 0) {
              do {
                if ((((*(byte *)(**(int **)*puVar25 + 0x10) & 1) == 0) &&
                    (iVar20 = bfd_link_hash_lookup
                                        (link_info.hash,*(undefined4 *)(**(int **)*puVar25 + 4),0,0,
                                         1), iVar20 != 0)) && (*(char *)(iVar20 + 0xc) == '\x03')) {
                  puVar4 = *(undefined4 **)(*(int *)(iVar20 + 0x14) + 0xac);
                  puVar13 = (undefined4 *)puVar4[0x23];
                  if (puVar13 == (undefined4 *)0x0) {
                    puVar13 = puVar4;
                  }
                  pcVar16 = (char *)*puVar13;
                  iVar20 = filename_cmp(((local_40->input_statement).the_bfd)->my_archive->filename,
                                        pcVar16);
                  if (iVar20 != 0) {
                    sVar14 = strlen(pcVar16);
                    pcVar15 = (char *)xmalloc(sVar14 + 1);
                    strcpy(pcVar15,pcVar16);
                    ((local_40->input_statement).the_bfd)->my_archive->filename = pcVar15;
                  }
                }
                puVar25 = puVar25 + 1;
              } while (__ptr + iVar19 != puVar25);
            }
            free(__ptr);
            local_38 = local_38->next;
            if (local_38 == (bfd_section *)0x0) break;
            pbVar12 = (bfd *)(local_40->wild_statement).section_list;
          }
        }
      }
      local_40 = (local_40->wild_statement).children.head;
    } while (local_40 != (lang_statement_union *)0x0);
    local_50 = file_chain.head;
    if (file_chain.head != (lang_statement_union *)0x0) {
      bVar21 = false;
      local_40 = (lang_statement_union *)0x0;
      do {
        uVar5 = ((local_50->reloc_statement).section)->lineno_count;
        if (uVar5 != 0) {
          pcVar16 = strrchr(((local_50->reloc_statement).section)->name,0x2e);
          plVar26 = local_50;
          if ((lang_statement_union *)uVar5 == local_40) {
            if (!bVar21) goto LAB_00056b08;
          }
          else {
            while ((plVar23 = local_50, local_40 = (lang_statement_union *)uVar5,
                   pcVar16 == (char *)0x0 || (iVar19 = filename_cmp(pcVar16,".dll"), iVar19 != 0)))
            {
              plVar26 = (lang_statement_union *)(plVar26->data_statement).output_section;
              if (plVar26 == (lang_statement_union *)0x0) {
                local_50 = (local_50->wild_statement).children.head;
                bVar21 = false;
                goto joined_r0x00056b15;
              }
              if (uVar5 != ((plVar26->reloc_statement).section)->lineno_count) break;
              pcVar16 = strrchr(((plVar26->reloc_statement).section)->name,0x2e);
            }
            do {
              if (uVar5 != ((plVar23->reloc_statement).section)->lineno_count) break;
              pwVar31 = (wildcard_list *)((plVar23->reloc_statement).section)->name;
              pcVar16 = strrchr((char *)pwVar31,0x2e);
              if (pcVar16 == (char *)0x0) {
LAB_00056d20:
                iVar19 = filename_cmp(((plVar26->wild_statement).section_list)->next,pwVar31);
                if (iVar19 != 0) {
                  bVar21 = false;
                  goto LAB_00056b08;
                }
              }
              else {
                iVar19 = filename_cmp(pcVar16,&DAT_00192ed1);
                if (iVar19 != 0) {
                  pwVar31 = ((plVar23->wild_statement).section_list)->next;
                  goto LAB_00056d20;
                }
              }
              plVar23 = (plVar23->wild_statement).children.head;
            } while (plVar23 != (lang_statement_union *)0x0);
            pcVar16 = strrchr(((local_50->reloc_statement).section)->name,0x2e);
          }
          bVar21 = true;
          iVar19 = filename_cmp(pcVar16,".dll");
          if (iVar19 == 0) {
            pbVar17 = ((local_50->input_statement).the_bfd)->sections;
            if (pbVar17 == (bfd_section *)0x0) {
              iVar19 = 99;
            }
            else {
              iVar20 = 0;
              bVar34 = true;
              bVar21 = false;
              do {
                bVar32 = false;
                iVar19 = 9;
                pbVar27 = (byte *)pbVar17->name;
                pbVar30 = (byte *)".idata$2";
                do {
                  if (iVar19 == 0) break;
                  iVar19 = iVar19 + -1;
                  bVar32 = *pbVar27 < *pbVar30;
                  bVar34 = *pbVar27 == *pbVar30;
                  pbVar27 = pbVar27 + (uint)bVar35 * -2 + 1;
                  pbVar30 = pbVar30 + (uint)bVar35 * -2 + 1;
                } while (bVar34);
                if ((!bVar32 && !bVar34) == bVar32) {
                  bVar21 = true;
                }
                iVar20 = iVar20 + pbVar17->reloc_count;
                pbVar17 = pbVar17->next;
                bVar34 = pbVar17 == (bfd_section *)0x0;
              } while (!bVar34);
              iVar19 = 0x61;
              if (!bVar21) {
                iVar19 = (iVar20 < 1) + 0x62;
              }
            }
            sVar14 = strlen(((local_50->input_statement).the_bfd)->filename);
            pcVar16 = (char *)xmalloc(sVar14 + 3);
            sprintf(pcVar16,"%s.%c",((local_50->wild_statement).section_list)->next,iVar19);
            ((local_50->reloc_statement).section)->name = pcVar16;
            sVar14 = strlen((local_50->wild_statement).filename);
            pcVar16 = (char *)xmalloc(sVar14 + 3);
            sprintf(pcVar16,"%s.%c",(local_50->wild_statement).filename,iVar19);
            (local_50->wild_statement).filename = pcVar16;
            bVar21 = true;
          }
        }
LAB_00056b08:
        local_50 = (local_50->wild_statement).children.head;
joined_r0x00056b15:
      } while (local_50 != (lang_statement_union *)0x0);
      local_4c = file_chain.head;
      if (file_chain.head != (lang_statement_union *)0x0) {
        do {
          pbVar12 = (local_4c->input_statement).the_bfd;
          if ((pbVar12->my_archive != (bfd *)0x0) &&
             (pbVar17 = pbVar12->sections, pbVar17 != (bfd_section *)0x0)) {
            pbVar22 = (bfd_section *)0x0;
            bVar21 = false;
            bVar34 = true;
            do {
              bVar32 = false;
              iVar19 = 7;
              pbVar27 = (byte *)pbVar17->name;
              pbVar30 = (byte *)".idata$";
              do {
                if (iVar19 == 0) break;
                iVar19 = iVar19 + -1;
                bVar32 = *pbVar27 < *pbVar30;
                bVar34 = *pbVar27 == *pbVar30;
                pbVar27 = pbVar27 + (uint)bVar35 * -2 + 1;
                pbVar30 = pbVar30 + (uint)bVar35 * -2 + 1;
              } while (bVar34);
              if ((!bVar32 && !bVar34) == bVar32) {
                bVar21 = true;
              }
              if (((pbVar17->flags & 0x10) != 0) && (pbVar17->reloc_count != 0)) {
                pbVar22 = pbVar17;
              }
              pbVar17 = pbVar17->next;
              bVar34 = pbVar17 == (bfd_section *)0x0;
            } while (!bVar34);
            if ((pbVar22 != (bfd_section *)0x0) && (bVar21)) {
              iVar19 = bfd_generic_link_read_symbols(pbVar12);
              if (iVar19 == 0) {
LAB_000570af:
                pwVar31 = (local_4c->wild_statement).section_list;
                pcVar16 = (char *)dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);
                einfo(pcVar16,pwVar31);
                return;
              }
              ppbVar28 = ((local_4c->input_statement).the_bfd)->outsymbols;
              uVar5 = ((local_4c->input_statement).the_bfd)->symcount;
              if (0 < (int)uVar5) {
                ppbVar2 = ppbVar28 + uVar5;
                do {
                  if (((((*ppbVar28)->section->id == pbVar22->id) &&
                       (pbVar18 = (bfd_link_hash_entry *)
                                  bfd_link_hash_lookup(link_info.hash,(*ppbVar28)->name,0,0,1),
                       pbVar18 != (bfd_link_hash_entry *)0x0)) && (pbVar18->field_0xc == '\x03')) &&
                     (((pbVar18->u).undef.next == (bfd_link_hash_entry *)0x0 &&
                      ((link_info.hash)->undefs_tail != pbVar18)))) {
                    pbVar22->flags = pbVar22->flags | 0x8000;
                  }
                  ppbVar28 = ppbVar28 + 1;
                } while (ppbVar2 != ppbVar28);
              }
            }
          }
          local_4c = (local_4c->wild_statement).children.head;
        } while (local_4c != (lang_statement_union *)0x0);
      }
    }
  }
  return;
}



/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

void FUN_00056650(void)

{
  int *piVar1;
  undefined4 *puVar2;
  byte bVar3;
  void *pvVar4;
  byte bVar5;
  int iVar6;
  undefined4 *puVar7;
  undefined4 *puVar8;
  size_t sVar9;
  char *pcVar10;
  undefined4 uVar11;
  char *pcVar12;
  int iVar13;
  undefined4 uVar14;
  int iVar15;
  bool bVar16;
  int iVar17;
  undefined4 *puVar18;
  byte *pbVar19;
  int *piVar20;
  byte *pbVar21;
  bool bVar22;
  bool bVar23;
  bool bVar24;
  byte bVar25;
  int local_50;
  int local_4c;
  int local_40;
  undefined4 *local_38;
  int local_20 [3];
  undefined4 uStack_14;
  
  bVar25 = 0;
  uStack_14 = 0x56659;
  FUN_00033940();
  if (DAT_001d01fc == 0) {
LAB_00056682:
    puVar7 = DAT_001d041c;
    if (DAT_001cff9c != (void *)0x0) {
      for (; puVar7 != (undefined4 *)0x0; puVar7 = (undefined4 *)puVar7[0x27]) {
        if (*(int *)(puVar7[1] + 4) == 2) {
          iVar6 = FUN_00038960(DAT_001cff9c);
          if (iVar6 == 0) {
            pcVar12 = "%P: warning: unrecognized --build-id style ignored\n";
          }
          else {
            iVar17 = bfd_make_section_anyway_with_flags
                               (puVar7,".buildid",
                                "*/\n  .debug_aranges  0 : { *(.debug_aranges) }\n  .debug_pubnames 0 : { *(.debug_pubnames) }\n  /* DWARF 2 */\n  .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }\n  .debug_abbrev   0 : { *(.debug_abbrev) }\n  .debug_line     0 : { *(.debug_line .debug_line.* .debug_line_end ) }\n  .debug_frame    0 : { *(.debug_frame) }\n  .debug_str      0 : { *(.debug_str) }\n  .debug_loc      0 : { *(.debug_loc) }\n  .debug_macinfo  0 : { *(.debug_macinfo) }\n  /* SGI/MIPS DWARF 2 extensions */\n  .debug_weaknames 0 : { *(.debug_weaknames) }\n  .debug_funcnames 0 : { *(.debug_funcnames) }\n  .debug_typenames 0 : { *(.debug_typenames) }\n  .debug_varnames  0 : { *(.debug_varnames) }\n  /* DWARF 3 */\n  .debug_pubtypes 0 : { *(.debug_pubtypes) }\n  .debug_ranges   0 : { *(.debug_ranges) }\n  /* DWARF Extension.  */\n  .debug_macro    0 : { *(.debug_macro) }\n  .debug_addr     0 : { *(.debug_addr) }\n  .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) }\n  /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) }\n}\n\n"
                               );
            iVar6 = DAT_001d0414;
            if (iVar17 != 0) {
              iVar15 = *(int *)(DAT_001d0414 + 0xa0);
              *(code **)(iVar15 + 0x1dc) = FUN_00055c40;
              pvVar4 = DAT_001cff9c;
              iVar13 = *(int *)(iVar15 + 0x58);
              *(int *)(iVar15 + 0x1e4) = iVar17;
              *(void **)(iVar15 + 0x1e0) = pvVar4;
              *(undefined4 *)(iVar17 + 0x2c) = 0x35;
              *(undefined4 *)(iVar17 + 0x30) = 0;
              goto joined_r0x00056729;
            }
            pcVar12 = "%P: warning: cannot create .buildid section, --build-id ignored\n";
          }
          uVar11 = dcgettext(0,pcVar12,5);
          FUN_00034d20(uVar11);
          break;
        }
      }
LAB_00056a59:
      free(DAT_001cff9c);
      DAT_001cff9c = (void *)0x0;
    }
  }
  else {
    printf("%s()\n","gld_i386pe_after_open");
    for (iVar6 = *(int *)(DAT_001d0400 + 0x1c); iVar6 != 0; iVar6 = *(int *)(iVar6 + 0x10)) {
      printf("-%s\n",*(undefined4 *)(iVar6 + 4));
    }
    bfd_hash_traverse(DAT_001d0400,FUN_00055b20,0);
    puVar7 = DAT_001d041c;
    if (DAT_001d041c != (undefined4 *)0x0) {
      do {
        printf("*%s\n",*puVar7);
        puVar18 = puVar7 + 0x27;
        puVar7 = (undefined4 *)*puVar18;
      } while ((undefined4 *)*puVar18 != (undefined4 *)0x0);
      goto LAB_00056682;
    }
    if (DAT_001cff9c != (void *)0x0) goto LAB_00056a59;
  }
  iVar6 = DAT_001d0414;
  if (*(int *)(DAT_001d0414 + 0xa0) != 0) {
    iVar13 = *(int *)(*(int *)(DAT_001d0414 + 0xa0) + 0x58);
joined_r0x00056729:
    if (iVar13 != 0) goto LAB_00056730;
  }
  uVar11 = dcgettext(0,"%F%P: cannot perform PE operations on non PE output file \'%pB\'\n",5);
  FUN_00034d20(uVar11,iVar6);
LAB_00056730:
  iVar17 = DAT_001d0414;
  iVar6 = *(int *)(DAT_001d0414 + 0xa0);
  puVar7 = &DAT_001cffc0;
  puVar18 = (undefined4 *)(iVar6 + 0x7c);
  for (iVar15 = 0x52; iVar15 != 0; iVar15 = iVar15 + -1) {
    *puVar18 = *puVar7;
    puVar7 = puVar7 + (uint)bVar25 * -2 + 1;
    puVar18 = puVar18 + (uint)bVar25 * -2 + 1;
  }
  *(undefined4 *)(iVar6 + 0x1c4) = DAT_001cf040;
  *(uint *)(iVar6 + 0x1d8) = *(uint *)(iVar6 + 0x1d8) | DAT_001cffa8;
  *(undefined4 *)(iVar6 + 0x1d0) = DAT_001cef94;
  if ((DAT_001cf388 < 0) && ((DAT_001d03e1 & 0x60) == 0)) {
    if ((DAT_001d03e0 & 3) == 2) {
      DAT_001cf388 = 1;
    }
    else if (DAT_001cf6bc != 0) {
      iVar6 = DAT_001cf6bc;
      do {
        local_20[0] = 0;
        bfd_map_over_sections(*(undefined4 *)(iVar6 + 0x10),FUN_000554f0,local_20);
        iVar17 = DAT_001d0414;
        if (local_20[0] != 0) {
          DAT_001cf388 = 1;
          break;
        }
        iVar6 = *(int *)(iVar6 + 0x18);
      } while (iVar6 != 0);
    }
  }
  FUN_00066c30(iVar17);
  FUN_000656c0(DAT_001d0414,&DAT_001d03e0);
  if (DAT_001d0448 != 0) {
    iVar6 = FUN_000561f0();
    pcVar12 = "_head_";
    if (iVar6 != 0) {
      pcVar12 = "__head_";
    }
    FUN_00063bc0(pcVar12,FUN_00055b50);
  }
  if (DAT_001cef90 != 0) {
    if (DAT_001d01fc != 0) {
      puts("pe_fixup_stdcalls");
    }
    for (iVar6 = *(int *)(DAT_001d0400 + 0x1c); iVar6 != 0; iVar6 = *(int *)(iVar6 + 0x10)) {
      if (*(char *)(iVar6 + 0xc) == '\x01') {
        pcVar12 = *(char **)(iVar6 + 4);
        if (*pcVar12 == '@') {
          pcVar10 = strchr(pcVar12 + 1,0x40);
          pcVar12 = (char *)xstrdup(pcVar12);
          *pcVar12 = '_';
          if (pcVar10 != (char *)0x0) goto LAB_00057061;
        }
        else {
          pcVar10 = strchr(pcVar12,0x40);
          if (pcVar10 == (char *)0x0) {
            DAT_001cff8c = 0;
            bfd_link_hash_traverse(DAT_001d0400,FUN_00055530,pcVar12);
            if (DAT_001cff8c != 0) {
              FUN_00056030();
            }
            goto LAB_00056fa8;
          }
          pcVar12 = (char *)xstrdup(pcVar12);
LAB_00057061:
          pcVar10 = strchr(pcVar12,0x40);
          *pcVar10 = '\0';
        }
        iVar17 = bfd_link_hash_lookup(DAT_001d0400,pcVar12,0,0,1);
        if ((iVar17 != 0) && (*(char *)(iVar17 + 0xc) == '\x03')) {
          FUN_00056030();
        }
      }
LAB_00056fa8:
    }
  }
  if ((DAT_001d03e0 & 3) != 2) {
    FUN_00066ca0(DAT_001d0414,&DAT_001d03e0);
  }
  local_40 = DAT_001cf6bc;
  if (DAT_001cf6bc != 0) {
    do {
      iVar6 = *(int *)(local_40 + 0x10);
      if ((*(int *)(iVar6 + 0x8c) != 0) &&
         (local_38 = *(undefined4 **)(iVar6 + 0x60), local_38 != (undefined4 *)0x0)) {
        iVar17 = 0;
        bVar24 = true;
        puVar7 = local_38;
        bVar3 = 0;
        bVar16 = false;
        do {
          bVar22 = false;
          iVar15 = 9;
          pbVar19 = (byte *)*puVar7;
          pbVar21 = (byte *)".idata$2";
          do {
            if (iVar15 == 0) break;
            iVar15 = iVar15 + -1;
            bVar22 = *pbVar19 < *pbVar21;
            bVar24 = *pbVar19 == *pbVar21;
            pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;
            pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;
          } while (bVar24);
          bVar23 = false;
          bVar24 = (!bVar22 && !bVar24) == bVar22;
          bVar22 = true;
          if (!bVar24) {
            bVar22 = bVar16;
          }
          iVar15 = 7;
          pbVar19 = (byte *)*puVar7;
          pbVar21 = (byte *)".idata$";
          do {
            if (iVar15 == 0) break;
            iVar15 = iVar15 + -1;
            bVar23 = *pbVar19 < *pbVar21;
            bVar24 = *pbVar19 == *pbVar21;
            pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;
            pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;
          } while (bVar24);
          bVar5 = 1;
          if ((!bVar23 && !bVar24) != bVar23) {
            bVar5 = bVar3;
          }
          iVar17 = iVar17 + puVar7[0x19];
          puVar7 = (undefined4 *)puVar7[3];
          bVar24 = puVar7 == (undefined4 *)0x0;
          bVar3 = bVar5;
          bVar16 = bVar22;
        } while (!bVar24);
        if (((bool)(bVar5 & iVar17 != 0)) && (!bVar22)) {
          while (iVar6 = bfd_get_reloc_upper_bound(iVar6,local_38), 0 < iVar6) {
            iVar17 = bfd_generic_link_read_symbols(*(undefined4 *)(local_40 + 0x10));
            local_4c = local_40;
            if (iVar17 == 0) goto LAB_000570af;
            uVar11 = *(undefined4 *)(*(int *)(local_40 + 0x10) + 0x78);
            puVar7 = (undefined4 *)xmalloc(iVar6);
            iVar6 = bfd_canonicalize_reloc(*(undefined4 *)(local_40 + 0x10),local_38,puVar7,uVar11);
            if (iVar6 < 0) {
              free(puVar7);
              uVar11 = dcgettext(0,"%X%P: unable to process relocs: %E\n",5);
              FUN_00034d20(uVar11);
              return;
            }
            puVar18 = puVar7;
            if (iVar6 != 0) {
              do {
                if ((((*(byte *)(**(int **)*puVar18 + 0x10) & 1) == 0) &&
                    (iVar17 = bfd_link_hash_lookup
                                        (DAT_001d0400,*(undefined4 *)(**(int **)*puVar18 + 4),0,0,1)
                    , iVar17 != 0)) && (*(char *)(iVar17 + 0xc) == '\x03')) {
                  puVar2 = *(undefined4 **)(*(int *)(iVar17 + 0x14) + 0xac);
                  puVar8 = (undefined4 *)puVar2[0x23];
                  if (puVar8 == (undefined4 *)0x0) {
                    puVar8 = puVar2;
                  }
                  pcVar12 = (char *)*puVar8;
                  iVar17 = filename_cmp(**(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c),pcVar12)
                  ;
                  if (iVar17 != 0) {
                    sVar9 = strlen(pcVar12);
                    pcVar10 = (char *)xmalloc(sVar9 + 1);
                    strcpy(pcVar10,pcVar12);
                    **(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c) = pcVar10;
                  }
                }
                puVar18 = puVar18 + 1;
              } while (puVar7 + iVar6 != puVar18);
            }
            free(puVar7);
            local_38 = (undefined4 *)local_38[3];
            if (local_38 == (undefined4 *)0x0) break;
            iVar6 = *(int *)(local_40 + 0x10);
          }
        }
      }
      local_40 = *(int *)(local_40 + 0x18);
    } while (local_40 != 0);
    local_50 = DAT_001cf6bc;
    if (DAT_001cf6bc != 0) {
      bVar16 = false;
      local_40 = 0;
      do {
        iVar6 = (*(undefined4 **)(local_50 + 0x10))[0x23];
        if (iVar6 != 0) {
          pcVar12 = strrchr((char *)**(undefined4 **)(local_50 + 0x10),0x2e);
          iVar17 = local_50;
          if (iVar6 == local_40) {
            if (!bVar16) goto LAB_00056b08;
          }
          else {
            while ((iVar15 = local_50, local_40 = iVar6, pcVar12 == (char *)0x0 ||
                   (iVar13 = filename_cmp(pcVar12,".dll"), iVar13 != 0))) {
              iVar17 = *(int *)(iVar17 + 0x18);
              if (iVar17 == 0) {
                local_50 = *(int *)(local_50 + 0x18);
                bVar16 = false;
                goto joined_r0x00056b15;
              }
              if (iVar6 != (*(undefined4 **)(iVar17 + 0x10))[0x23]) break;
              pcVar12 = strrchr((char *)**(undefined4 **)(iVar17 + 0x10),0x2e);
            }
            do {
              if (iVar6 != (*(undefined4 **)(iVar15 + 0x10))[0x23]) break;
              pcVar12 = (char *)**(undefined4 **)(iVar15 + 0x10);
              pcVar10 = strrchr(pcVar12,0x2e);
              if (pcVar10 == (char *)0x0) {
LAB_00056d20:
                iVar13 = filename_cmp(**(undefined4 **)(iVar17 + 0x10),pcVar12);
                if (iVar13 != 0) {
                  bVar16 = false;
                  goto LAB_00056b08;
                }
              }
              else {
                iVar13 = filename_cmp(pcVar10,&DAT_00192ed1);
                if (iVar13 != 0) {
                  pcVar12 = (char *)**(undefined4 **)(iVar15 + 0x10);
                  goto LAB_00056d20;
                }
              }
              piVar20 = (int *)(iVar15 + 0x18);
              iVar15 = *piVar20;
            } while (*piVar20 != 0);
            pcVar12 = strrchr((char *)**(undefined4 **)(local_50 + 0x10),0x2e);
          }
          bVar16 = true;
          iVar6 = filename_cmp(pcVar12,".dll");
          if (iVar6 == 0) {
            puVar7 = (undefined4 *)(*(undefined4 **)(local_50 + 0x10))[0x18];
            if (puVar7 == (undefined4 *)0x0) {
              iVar6 = 99;
            }
            else {
              iVar17 = 0;
              bVar24 = true;
              bVar16 = false;
              do {
                bVar22 = false;
                iVar6 = 9;
                pbVar19 = (byte *)*puVar7;
                pbVar21 = (byte *)".idata$2";
                do {
                  if (iVar6 == 0) break;
                  iVar6 = iVar6 + -1;
                  bVar22 = *pbVar19 < *pbVar21;
                  bVar24 = *pbVar19 == *pbVar21;
                  pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;
                  pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;
                } while (bVar24);
                if ((!bVar22 && !bVar24) == bVar22) {
                  bVar16 = true;
                }
                iVar17 = iVar17 + puVar7[0x19];
                puVar7 = (undefined4 *)puVar7[3];
                bVar24 = puVar7 == (undefined4 *)0x0;
              } while (!bVar24);
              iVar6 = 0x61;
              if (!bVar16) {
                iVar6 = (iVar17 < 1) + 0x62;
              }
            }
            sVar9 = strlen((char *)**(undefined4 **)(local_50 + 0x10));
            pcVar12 = (char *)xmalloc(sVar9 + 3);
            sprintf(pcVar12,"%s.%c",**(undefined4 **)(local_50 + 0x10),iVar6);
            **(undefined4 **)(local_50 + 0x10) = pcVar12;
            sVar9 = strlen(*(char **)(local_50 + 8));
            pcVar12 = (char *)xmalloc(sVar9 + 3);
            sprintf(pcVar12,"%s.%c",*(undefined4 *)(local_50 + 8),iVar6);
            *(char **)(local_50 + 8) = pcVar12;
            bVar16 = true;
          }
        }
LAB_00056b08:
        local_50 = *(int *)(local_50 + 0x18);
joined_r0x00056b15:
      } while (local_50 != 0);
      local_4c = DAT_001cf6bc;
      if (DAT_001cf6bc != 0) {
        do {
          iVar6 = *(int *)(local_4c + 0x10);
          if ((*(int *)(iVar6 + 0x8c) != 0) &&
             (puVar7 = *(undefined4 **)(iVar6 + 0x60), puVar7 != (undefined4 *)0x0)) {
            puVar18 = (undefined4 *)0x0;
            bVar16 = false;
            bVar24 = true;
            do {
              bVar22 = false;
              iVar17 = 7;
              pbVar19 = (byte *)*puVar7;
              pbVar21 = (byte *)".idata$";
              do {
                if (iVar17 == 0) break;
                iVar17 = iVar17 + -1;
                bVar22 = *pbVar19 < *pbVar21;
                bVar24 = *pbVar19 == *pbVar21;
                pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;
                pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;
              } while (bVar24);
              if ((!bVar22 && !bVar24) == bVar22) {
                bVar16 = true;
              }
              if (((*(byte *)(puVar7 + 5) & 0x10) != 0) && (puVar7[0x19] != 0)) {
                puVar18 = puVar7;
              }
              puVar7 = (undefined4 *)puVar7[3];
              bVar24 = puVar7 == (undefined4 *)0x0;
            } while (!bVar24);
            if ((puVar18 != (undefined4 *)0x0) && (bVar16)) {
              iVar6 = bfd_generic_link_read_symbols(iVar6);
              if (iVar6 == 0) {
LAB_000570af:
                uVar11 = *(undefined4 *)(local_4c + 0x10);
                uVar14 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);
                FUN_00034d20(uVar14,uVar11);
                return;
              }
              piVar20 = *(int **)(*(int *)(local_4c + 0x10) + 0x78);
              iVar6 = *(int *)(*(int *)(local_4c + 0x10) + 0x7c);
              if (0 < iVar6) {
                piVar1 = piVar20 + iVar6;
                do {
                  if ((((*(int *)(*(int *)(*piVar20 + 0x14) + 4) == puVar18[1]) &&
                       (iVar6 = bfd_link_hash_lookup
                                          (DAT_001d0400,*(undefined4 *)(*piVar20 + 4),0,0,1),
                       iVar6 != 0)) && (*(char *)(iVar6 + 0xc) == '\x03')) &&
                     ((*(int *)(iVar6 + 0x10) == 0 && (*(int *)(DAT_001d0400 + 0x20) != iVar6)))) {
                    puVar18[5] = puVar18[5] | 0x8000;
                  }
                  piVar20 = piVar20 + 1;
                } while (piVar1 != piVar20);
              }
            }
          }
          local_4c = *(int *)(local_4c + 0x18);
        } while (local_4c != 0);
      }
    }
  }
  return;
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x00017b80
ADD EBX,0x1779a7
SUB ESP,0x4c
CALL 0x00033940
LEA EBP,[EBX + 0x21fc]
MOV EAX,dword ptr [EBP]
TEST EAX,EAX
JNZ 0x00056edb
LEA EAX,[EBX + 0x23e0]
MOV dword ptr [ESP + 0x20],EAX
MOV EDX,dword ptr [EBX + 0x1f9c]
TEST EDX,EDX
JZ 0x00056a6f
MOV EAX,dword ptr [ESP + 0x20]
MOV ESI,dword ptr [EAX + 0x3c]
TEST ESI,ESI
JNZ 0x000566ae
JMP 0x00056a59
MOV ESI,dword ptr [ESI + 0x9c]
TEST ESI,ESI
JZ 0x00056a59
MOV EAX,dword ptr [ESI + 0x4]
CMP dword ptr [EAX + 0x4],0x2
JNZ 0x000566a0
SUB ESP,0xc
PUSH EDX
CALL 0x00038960
ADD ESP,0x10
TEST EAX,EAX
JZ 0x00056a35
SUB ESP,0x4
LEA EAX,[EBX + 0xfffc4ebf]
PUSH 0x10412b
PUSH EAX
PUSH ESI
CALL 0x00016220
ADD ESP,0x10
TEST EAX,EAX
JZ 0x00057135
MOV EDX,dword ptr [ESP + 0x20]
LEA ECX,[EBX + 0xffe87c40]
MOV ESI,dword ptr [EDX + 0x34]
MOV EDX,dword ptr [ESI + 0xa0]
MOV dword ptr [EDX + 0x1dc],ECX
MOV EDI,dword ptr [EDX + 0x58]
MOV ECX,dword ptr [EBX + 0x1f9c]
MOV dword ptr [EDX + 0x1e4],EAX
MOV dword ptr [EDX + 0x1e0],ECX
MOV dword ptr [EAX + 0x2c],0x35
MOV dword ptr [EAX + 0x30],0x0
TEST EDI,EDI
JZ 0x00056a8b
NOP
MOV EAX,dword ptr [ESP + 0x20]
LEA ESI,[EBX + 0x1fc0]
MOV ECX,0x52
MOV EDX,dword ptr [EAX + 0x34]
MOV EAX,dword ptr [EDX + 0xa0]
LEA EDI,[EAX + 0x7c]
MOVSD.REP ES:EDI,ESI
MOV ECX,dword ptr [EBX + 0x1040]
LEA ESI,[EBX + 0x1388]
LEA EDI,[EBX + 0x16bc]
MOV dword ptr [EAX + 0x1c4],ECX
MOV ECX,dword ptr [EBX + 0x1fa8]
OR dword ptr [EAX + 0x1d8],ECX
MOV ECX,dword ptr [EBX + 0xf94]
MOV dword ptr [ESP + 0x2c],EDI
MOV dword ptr [EAX + 0x1d0],ECX
MOV EAX,dword ptr [ESI]
TEST EAX,EAX
JS 0x00056e52
SUB ESP,0xc
PUSH EDX
CALL 0x00066c30
POP EAX
POP EDX
MOV ESI,dword ptr [ESP + 0x28]
PUSH ESI
PUSH dword ptr [ESI + 0x34]
CALL 0x000656c0
MOV ECX,dword ptr [ESI + 0x68]
ADD ESP,0x10
TEST ECX,ECX
JNZ 0x00057009
MOV EDI,dword ptr [EBX + 0xf90]
TEST EDI,EDI
JNZ 0x00056f7d
MOV EAX,dword ptr [ESP + 0x20]
MOVZX EAX,byte ptr [EAX]
MOV byte ptr [ESP + 0xc],AL
AND EAX,0x3
CMP AL,0x2
JZ 0x000567e4
SUB ESP,0x8
MOV EAX,dword ptr [ESP + 0x28]
PUSH EAX
PUSH dword ptr [EAX + 0x34]
CALL 0x00066ca0
ADD ESP,0x10
MOV EAX,dword ptr [ESP + 0x2c]
MOV EAX,dword ptr [EAX]
MOV dword ptr [ESP + 0x1c],EAX
TEST EAX,EAX
JNZ 0x00056813
JMP 0x00056ad9
MOV EAX,dword ptr [ESP + 0x1c]
MOV EAX,dword ptr [EAX + 0x18]
MOV dword ptr [ESP + 0x1c],EAX
TEST EAX,EAX
JZ 0x00056ae1
MOV EAX,dword ptr [ESP + 0x1c]
MOV EAX,dword ptr [EAX + 0x10]
MOV ECX,dword ptr [EAX + 0x8c]
MOV dword ptr [ESP + 0x28],EAX
TEST ECX,ECX
JZ 0x00056800
MOV EAX,dword ptr [EAX + 0x60]
MOV dword ptr [ESP + 0x24],EAX
TEST EAX,EAX
JZ 0x00056800
MOV EDX,EAX
LEA EAX,[EBX + 0xfffc4ec8]
MOV dword ptr [ESP + 0xc],0x0
XOR EBP,EBP
MOV dword ptr [ESP + 0x18],EAX
LEA EAX,[EBX + 0xfffc4de1]
MOV dword ptr [ESP + 0x10],0x0
MOV dword ptr [ESP + 0x14],EAX
LEA ESI,[ESI]
NOP
MOV EAX,dword ptr [EDX]
MOV EDI,dword ptr [ESP + 0x18]
MOV ECX,0x9
MOV ESI,EAX
CMPSB.REPE ES:EDI,ESI
MOV EDI,0x1
MOV ESI,EAX
SETA CL
SBB CL,0x0
TEST CL,CL
CMOVNZ EDI,dword ptr [ESP + 0x10]
MOV ECX,0x7
MOV dword ptr [ESP + 0x10],EDI
MOV EDI,dword ptr [ESP + 0x14]
CMPSB.REPE ES:EDI,ESI
SETA AL
SBB AL,0x0
TEST AL,AL
MOV EAX,0x1
CMOVNZ EAX,dword ptr [ESP + 0xc]
ADD EBP,dword ptr [EDX + 0x64]
MOV EDX,dword ptr [EDX + 0xc]
MOV dword ptr [ESP + 0xc],EAX
TEST EDX,EDX
JNZ 0x00056860
TEST EBP,EBP
SETNZ AL
TEST byte ptr [ESP + 0xc],AL
JZ 0x00056800
TEST byte ptr [ESP + 0x10],0x1
JNZ 0x00056800
MOV EBP,dword ptr [ESP + 0x1c]
MOV EAX,dword ptr [ESP + 0x28]
LEA ESI,[ESI]
NOP
SUB ESP,0x8
PUSH dword ptr [ESP + 0x2c]
PUSH EAX
CALL 0x00016bf0
ADD ESP,0x10
MOV ESI,EAX
TEST EAX,EAX
JLE 0x00056800
SUB ESP,0xc
PUSH dword ptr [EBP + 0x10]
CALL 0x00016180
ADD ESP,0x10
TEST EAX,EAX
JZ 0x000570ab
MOV EAX,dword ptr [EBP + 0x10]
SUB ESP,0xc
MOV EDI,dword ptr [EAX + 0x78]
PUSH ESI
CALL 0x00016dc8
MOV dword ptr [ESP + 0x20],EAX
PUSH EDI
MOV EDI,EAX
PUSH EAX
PUSH dword ptr [ESP + 0x3c]
PUSH dword ptr [EBP + 0x10]
CALL 0x00016b20
ADD ESP,0x20
TEST EAX,EAX
JS 0x00056aaf
MOV ESI,EDI
LEA EDI,[EDI + EAX*0x4]
JZ 0x00056a0b
LEA ESI,[ESI]
MOV EAX,dword ptr [ESI]
MOV EAX,dword ptr [EAX]
MOV EAX,dword ptr [EAX]
TEST byte ptr [EAX + 0x10],0x1
JNZ 0x00056a00
SUB ESP,0xc
PUSH 0x1
PUSH 0x0
PUSH 0x0
PUSH dword ptr [EAX + 0x4]
MOV EAX,dword ptr [ESP + 0x3c]
PUSH dword ptr [EAX + 0x20]
CALL 0x00016590
ADD ESP,0x20
TEST EAX,EAX
JZ 0x00056a00
CMP byte ptr [EAX + 0xc],0x3
JNZ 0x00056a00
MOV EAX,dword ptr [EAX + 0x14]
MOV EDX,dword ptr [EAX + 0xac]
MOV EAX,dword ptr [EDX + 0x8c]
TEST EAX,EAX
CMOVZ EAX,EDX
SUB ESP,0x8
MOV EDX,dword ptr [EAX]
MOV EAX,dword ptr [EBP + 0x10]
PUSH EDX
MOV EAX,dword ptr [EAX + 0x8c]
MOV dword ptr [ESP + 0x18],EDX
PUSH dword ptr [EAX]
CALL 0x00016230
ADD ESP,0x10
TEST EAX,EAX
JZ 0x00056a00
SUB ESP,0xc
MOV EDX,dword ptr [ESP + 0x18]
PUSH EDX
MOV dword ptr [ESP + 0x1c],EDX
CALL 0x00016760
ADD EAX,0x1
MOV dword ptr [ESP],EAX
CALL 0x00016dc8
MOV ECX,EAX
POP EAX
POP EDX
MOV EDX,dword ptr [ESP + 0x14]
PUSH EDX
PUSH ECX
MOV dword ptr [ESP + 0x1c],ECX
CALL 0x00016530
MOV EAX,dword ptr [EBP + 0x10]
MOV ECX,dword ptr [ESP + 0x1c]
ADD ESP,0x10
MOV EAX,dword ptr [EAX + 0x8c]
MOV dword ptr [EAX],ECX
LEA ESI,[ESI]
NOP
ADD ESI,0x4
CMP EDI,ESI
JNZ 0x00056948
SUB ESP,0xc
PUSH dword ptr [ESP + 0x1c]
CALL 0x00016db0
MOV EAX,dword ptr [ESP + 0x34]
MOV EAX,dword ptr [EAX + 0xc]
MOV dword ptr [ESP + 0x34],EAX
ADD ESP,0x10
TEST EAX,EAX
JZ 0x00056800
MOV EAX,dword ptr [EBP + 0x10]
JMP 0x000568d8
SUB ESP,0x4
LEA EAX,[EBX + 0xffedff00]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x00016310
MOV dword ptr [ESP],EAX
CALL 0x00034d20
MOV EDX,dword ptr [EBX + 0x1f9c]
ADD ESP,0x10
SUB ESP,0xc
PUSH EDX
CALL 0x00016db0
ADD ESP,0x10
MOV dword ptr [EBX + 0x1f9c],0x0
MOV EAX,dword ptr [ESP + 0x20]
MOV ESI,dword ptr [EAX + 0x34]
MOV EDX,dword ptr [ESI + 0xa0]
TEST EDX,EDX
JZ 0x00056a8b
MOV EDI,dword ptr [EDX + 0x58]
TEST EDI,EDI
JNZ 0x00056730
SUB ESP,0x4
LEA EAX,[EBX + 0xfffd2240]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x00016310
POP EDX
POP ECX
PUSH ESI
PUSH EAX
CALL 0x00034d20
ADD ESP,0x10
JMP 0x00056730
SUB ESP,0xc
PUSH dword ptr [ESP + 0x1c]
CALL 0x00016db0
ADD ESP,0xc
LEA EAX,[EBX + 0xfffd22f0]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x00016310
MOV dword ptr [ESP],EAX
CALL 0x00034d20
ADD ESP,0x10
ADD ESP,0x4c
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV EAX,dword ptr [ESP + 0x2c]
MOV EAX,dword ptr [EAX]
MOV dword ptr [ESP + 0xc],EAX
TEST EAX,EAX
JZ 0x00056ad9
LEA EAX,[EBX + 0xfffc4ed1]
XOR ESI,ESI
MOV dword ptr [ESP + 0x14],EAX
JMP 0x00056b1b
TEST ESI,ESI
JNZ 0x00056d5e
MOV EAX,dword ptr [ESP + 0xc]
MOV EAX,dword ptr [EAX + 0x18]
MOV dword ptr [ESP + 0xc],EAX
TEST EAX,EAX
JZ 0x00056ba5
MOV EAX,dword ptr [ESP + 0xc]
MOV EAX,dword ptr [EAX + 0x10]
MOV EDI,dword ptr [EAX + 0x8c]
TEST EDI,EDI
JZ 0x00056b08
SUB ESP,0x8
PUSH 0x2e
PUSH dword ptr [EAX]
CALL 0x00016a40
ADD ESP,0x10
CMP EDI,dword ptr [ESP + 0x1c]
JZ 0x00056b00
MOV ESI,dword ptr [ESP + 0xc]
LEA EBP,[EBX + 0xfffc5072]
JMP 0x00056b6e
MOV EAX,dword ptr [ESI + 0x10]
CMP EDI,dword ptr [EAX + 0x8c]
JNZ 0x00056cd0
SUB ESP,0x8
PUSH 0x2e
PUSH dword ptr [EAX]
CALL 0x00016a40
ADD ESP,0x10
TEST EAX,EAX
JZ 0x00056b87
SUB ESP,0x8
PUSH EBP
PUSH EAX
CALL 0x00016230
ADD ESP,0x10
TEST EAX,EAX
JZ 0x00056cd0
MOV ESI,dword ptr [ESI + 0x18]
TEST ESI,ESI
JNZ 0x00056b50
MOV EAX,dword ptr [ESP + 0xc]
MOV dword ptr [ESP + 0x1c],EDI
MOV EAX,dword ptr [EAX + 0x18]
MOV dword ptr [ESP + 0xc],EAX
TEST EAX,EAX
JNZ 0x00056b1b
MOV EAX,dword ptr [ESP + 0x2c]
MOV EAX,dword ptr [EAX]
MOV dword ptr [ESP + 0x10],EAX
TEST EAX,EAX
JZ 0x00056ad9
LEA EAX,[EBX + 0xfffc4de1]
MOV dword ptr [ESP + 0xc],EAX
JMP 0x00056bdb
MOV EAX,dword ptr [ESP + 0x10]
MOV EAX,dword ptr [EAX + 0x18]
MOV dword ptr [ESP + 0x10],EAX
TEST EAX,EAX
JZ 0x00056ad9
MOV EAX,dword ptr [ESP + 0x10]
MOV EAX,dword ptr [EAX + 0x10]
MOV ESI,dword ptr [EAX + 0x8c]
MOV dword ptr [ESP + 0x14],EAX
TEST ESI,ESI
JZ 0x00056bc8
MOV EAX,dword ptr [ESP + 0x14]
MOV EAX,dword ptr [EAX + 0x60]
TEST EAX,EAX
JZ 0x00056bc8
XOR EBP,EBP
XOR EDX,EDX
NOP
MOV ESI,dword ptr [EAX]
MOV EDI,dword ptr [ESP + 0xc]
MOV ECX,0x7
CMPSB.REPE ES:EDI,ESI
MOV ESI,0x1
SETA CL
SBB CL,0x0
TEST CL,CL
CMOVZ EDX,ESI
TEST byte ptr [EAX + 0x14],0x10
JZ 0x00056c2b
MOV ECX,dword ptr [EAX + 0x64]
TEST ECX,ECX
CMOVNZ EBP,EAX
MOV EAX,dword ptr [EAX + 0xc]
TEST EAX,EAX
JNZ 0x00056c00
TEST EBP,EBP
JZ 0x00056bc8
AND EDX,0x1
JZ 0x00056bc8
SUB ESP,0xc
PUSH dword ptr [ESP + 0x20]
CALL 0x00016180
ADD ESP,0x10
TEST EAX,EAX
MOV EAX,dword ptr [ESP + 0x10]
JZ 0x000570af
MOV EAX,dword ptr [EAX + 0x10]
MOV ESI,dword ptr [EAX + 0x78]
MOV EAX,dword ptr [EAX + 0x7c]
TEST EAX,EAX
JLE 0x00056bc8
LEA EDI,[ESI + EAX*0x4]
JMP 0x00056c7b
ADD ESI,0x4
CMP EDI,ESI
JZ 0x00056bc8
MOV EAX,dword ptr [ESI]
MOV ECX,dword ptr [EBP + 0x4]
MOV EDX,dword ptr [EAX + 0x14]
CMP dword ptr [EDX + 0x4],ECX
JNZ 0x00056c70
SUB ESP,0xc
PUSH 0x1
PUSH 0x0
PUSH 0x0
PUSH dword ptr [EAX + 0x4]
MOV EAX,dword ptr [ESP + 0x3c]
PUSH dword ptr [EAX + 0x20]
CALL 0x00016590
ADD ESP,0x20
TEST EAX,EAX
JZ 0x00056c70
CMP byte ptr [EAX + 0xc],0x3
JNZ 0x00056c70
MOV EDX,dword ptr [EAX + 0x10]
TEST EDX,EDX
JNZ 0x00056c70
MOV EDX,dword ptr [ESP + 0x20]
MOV EDX,dword ptr [EDX + 0x20]
CMP dword ptr [EDX + 0x20],EAX
JZ 0x00056c70
OR dword ptr [EBP + 0x14],0x8000
JMP 0x00056c70
MOV dword ptr [ESP + 0x10],EDI
MOV EBP,dword ptr [ESP + 0xc]
LEA ESI,[ESI]
NOP
MOV EAX,dword ptr [EBP + 0x10]
MOV EDX,dword ptr [ESP + 0x10]
CMP EDX,dword ptr [EAX + 0x8c]
JNZ 0x000570d9
MOV EDI,dword ptr [EAX]
SUB ESP,0x8
PUSH 0x2e
PUSH EDI
CALL 0x00016a40
ADD ESP,0x10
TEST EAX,EAX
JZ 0x00056d20
SUB ESP,0x8
PUSH dword ptr [ESP + 0x1c]
PUSH EAX
CALL 0x00016230
ADD ESP,0x10
TEST EAX,EAX
JZ 0x00056d39
MOV EAX,dword ptr [EBP + 0x10]
MOV EDI,dword ptr [EAX]
MOV EAX,dword ptr [ESI + 0x10]
SUB ESP,0x8
PUSH EDI
PUSH dword ptr [EAX]
CALL 0x00016230
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x000570fc
MOV EBP,dword ptr [EBP + 0x18]
TEST EBP,EBP
JNZ 0x00056ce0
MOV EDI,dword ptr [ESP + 0x10]
SUB ESP,0x8
PUSH 0x2e
MOV EAX,dword ptr [ESP + 0x18]
MOV EAX,dword ptr [EAX + 0x10]
PUSH dword ptr [EAX]
CALL 0x00016a40
ADD ESP,0x10
MOV dword ptr [ESP + 0x1c],EDI
SUB ESP,0x8
LEA EDX,[EBX + 0xfffc5072]
MOV ESI,0x1
PUSH EDX
PUSH EAX
CALL 0x00016230
ADD ESP,0x10
MOV EDX,EAX
TEST EAX,EAX
JNZ 0x00056b08
MOV EAX,dword ptr [ESP + 0xc]
MOV EAX,dword ptr [EAX + 0x10]
MOV dword ptr [ESP + 0x18],EAX
MOV EAX,dword ptr [EAX + 0x60]
TEST EAX,EAX
JZ 0x00057164
LEA ESI,[EBX + 0xfffc4ec8]
XOR EBP,EBP
MOV dword ptr [ESP + 0x10],ESI
LEA ESI,[ESI]
MOV ESI,dword ptr [EAX]
MOV EDI,dword ptr [ESP + 0x10]
MOV ECX,0x9
CMPSB.REPE ES:EDI,ESI
MOV EDI,0x1
SETA CL
SBB CL,0x0
TEST CL,CL
CMOVZ EDX,EDI
ADD EBP,dword ptr [EAX + 0x64]
MOV EAX,dword ptr [EAX + 0xc]
TEST EAX,EAX
JNZ 0x00056da8
MOV ESI,0x61
TEST EDX,EDX
JZ 0x000570e0
SUB ESP,0xc
LEA EDI,[EBX + 0xfffc4ed6]
MOV EAX,dword ptr [ESP + 0x24]
PUSH dword ptr [EAX]
CALL 0x00016760
ADD EAX,0x3
MOV dword ptr [ESP],EAX
CALL 0x00016dc8
PUSH ESI
MOV EDX,dword ptr [ESP + 0x20]
MOV EBP,EAX
MOV EAX,dword ptr [EDX + 0x10]
PUSH dword ptr [EAX]
PUSH EDI
PUSH EBP
CALL 0x00016af0
MOV EDX,dword ptr [ESP + 0x2c]
ADD ESP,0x14
MOV EAX,dword ptr [EDX + 0x10]
MOV dword ptr [ESP + 0x18],EDX
MOV dword ptr [EAX],EBP
PUSH dword ptr [EDX + 0x8]
CALL 0x00016760
ADD EAX,0x3
MOV dword ptr [ESP],EAX
CALL 0x00016dc8
PUSH ESI
MOV ESI,dword ptr [ESP + 0x20]
MOV EBP,EAX
PUSH dword ptr [ESI + 0x8]
PUSH EDI
PUSH EAX
CALL 0x00016af0
MOV dword ptr [ESI + 0x8],EBP
ADD ESP,0x20
MOV ESI,0x1
JMP 0x00056b08
MOV EAX,dword ptr [ESP + 0x20]
TEST byte ptr [EAX + 0x1],0x60
JNZ 0x0005678b
MOVZX EAX,byte ptr [EAX]
MOV byte ptr [ESP + 0xc],AL
AND EAX,0x3
CMP AL,0x2
JZ 0x000570f1
MOV EAX,dword ptr [ESP + 0x2c]
MOV EDI,dword ptr [EAX]
TEST EDI,EDI
JZ 0x0005678b
LEA EAX,[ESP + 0x3c]
MOV dword ptr [ESP + 0x10],EAX
LEA EAX,[EBX + 0xffe874f0]
MOV dword ptr [ESP + 0xc],EAX
JMP 0x00056ea3
MOV EDI,dword ptr [EDI + 0x18]
TEST EDI,EDI
JZ 0x00057145
MOV dword ptr [ESP + 0x3c],0x0
SUB ESP,0x4
PUSH dword ptr [ESP + 0x14]
PUSH dword ptr [ESP + 0x14]
PUSH dword ptr [EDI + 0x10]
CALL 0x00016c10
ADD ESP,0x10
MOV EAX,dword ptr [ESP + 0x3c]
TEST EAX,EAX
JZ 0x00056e98
MOV EAX,dword ptr [ESP + 0x20]
MOV dword ptr [ESI],0x1
MOV EDX,dword ptr [EAX + 0x34]
JMP 0x0005678b
SUB ESP,0x8
LEA EAX,[EBX + 0xfffde1a8]
PUSH EAX
LEA EAX,[EBX + 0xfffc4eaf]
PUSH EAX
CALL 0x00016110
LEA EAX,[EBX + 0x23e0]
MOV dword ptr [ESP + 0x30],EAX
MOV EAX,dword ptr [EAX + 0x20]
ADD ESP,0x10
MOV ESI,dword ptr [EAX + 0x1c]
TEST ESI,ESI
JZ 0x00056f2d
LEA EDI,[EBX + 0xfffc4eb5]
NOP
SUB ESP,0x8
PUSH dword ptr [ESI + 0x4]
PUSH EDI
CALL 0x00016110
MOV ESI,dword ptr [ESI + 0x10]
ADD ESP,0x10
TEST ESI,ESI
JNZ 0x00056f10
MOV EAX,dword ptr [ESP + 0x20]
MOV EAX,dword ptr [EAX + 0x20]
SUB ESP,0x4
LEA EDX,[EBX + 0xffe87b20]
PUSH 0x0
PUSH EDX
PUSH EAX
CALL 0x000161b0
MOV EAX,dword ptr [ESP + 0x30]
ADD ESP,0x10
MOV ESI,dword ptr [EAX + 0x3c]
TEST ESI,ESI
JZ 0x00057151
LEA EDI,[EBX + 0xfffc4eba]
LEA ESI,[ESI]
NOP
SUB ESP,0x8
PUSH dword ptr [ESI]
PUSH EDI
CALL 0x00016110
MOV ESI,dword ptr [ESI + 0x9c]
ADD ESP,0x10
TEST ESI,ESI
JNZ 0x00056f60
JMP 0x00056682
MOV ESI,dword ptr [EBP]
TEST ESI,ESI
JNZ 0x0005711e
MOV EAX,dword ptr [ESP + 0x20]
MOV EAX,dword ptr [EAX + 0x20]
MOV ESI,dword ptr [EAX + 0x1c]
TEST ESI,ESI
JZ 0x000567bf
LEA EDI,[EBX + 0xffe87530]
JMP 0x00056fb3
MOV ESI,dword ptr [ESI + 0x10]
TEST ESI,ESI
JZ 0x000567bf
CMP byte ptr [ESI + 0xc],0x1
JNZ 0x00056fa8
MOV EBP,dword ptr [ESI + 0x4]
CMP byte ptr [EBP],0x40
JZ 0x00057037
SUB ESP,0x8
PUSH 0x40
PUSH EBP
CALL 0x00016730
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x0005710b
MOV dword ptr [EBX + 0x1f8c],0x0
SUB ESP,0x4
PUSH EBP
PUSH EDI
MOV EAX,dword ptr [ESP + 0x2c]
PUSH dword ptr [EAX + 0x20]
CALL 0x00016930
MOV EDX,dword ptr [EBX + 0x1f8c]
ADD ESP,0x10
TEST EDX,EDX
JZ 0x00056fa8
MOV EAX,ESI
CALL 0x00056030
JMP 0x00056fa8
CALL 0x000561f0
LEA EDX,[EBX + 0xfffc4ea7]
TEST EAX,EAX
LEA EAX,[EBX + 0xfffc4ea8]
CMOVNZ EAX,EDX
SUB ESP,0x8
LEA EDX,[EBX + 0xffe87b50]
PUSH EDX
PUSH EAX
CALL 0x00063bc0
ADD ESP,0x10
JMP 0x000567b1
SUB ESP,0x8
LEA EAX,[EBP + 0x1]
PUSH 0x40
PUSH EAX
CALL 0x00016730
MOV dword ptr [ESP],EBP
MOV dword ptr [ESP + 0x1c],EAX
CALL 0x000164f0
ADD ESP,0x10
MOV ECX,dword ptr [ESP + 0xc]
MOV EBP,EAX
MOV byte ptr [EAX],0x5f
TEST ECX,ECX
JZ 0x00057072
SUB ESP,0x8
PUSH 0x40
PUSH EBP
CALL 0x00016730
ADD ESP,0x10
MOV byte ptr [EAX],0x0
SUB ESP,0xc
PUSH 0x1
PUSH 0x0
PUSH 0x0
PUSH EBP
MOV EAX,dword ptr [ESP + 0x3c]
PUSH dword ptr [EAX + 0x20]
CALL 0x00016590
ADD ESP,0x20
TEST EAX,EAX
JZ 0x00056fa8
CMP byte ptr [EAX + 0xc],0x3
JNZ 0x00056fa8
MOV EDX,EAX
MOV EAX,ESI
CALL 0x00056030
JMP 0x00056fa8
MOV EAX,dword ptr [ESP + 0x1c]
SUB ESP,0x4
MOV ESI,dword ptr [EAX + 0x10]
LEA EAX,[EBX + 0xffeae370]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x00016310
POP ECX
POP EDI
PUSH ESI
PUSH EAX
CALL 0x00034d20
ADD ESP,0x10
ADD ESP,0x4c
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV EDI,EDX
JMP 0x00056d44
XOR EAX,EAX
TEST EBP,EBP
SETLE AL
MOV ESI,EAX
ADD ESI,0x62
JMP 0x00056ddc
MOV dword ptr [ESI],0x1
JMP 0x0005678b
MOV EDI,dword ptr [ESP + 0x10]
XOR ESI,ESI
MOV dword ptr [ESP + 0x1c],EDI
JMP 0x00056b08
SUB ESP,0xc
PUSH EBP
CALL 0x000164f0
ADD ESP,0x10
MOV EBP,EAX
JMP 0x00057061
SUB ESP,0xc
LEA EAX,[EBX + 0xfffde194]
PUSH EAX
CALL 0x00016660
ADD ESP,0x10
JMP 0x00056f88
SUB ESP,0x4
LEA EAX,[EBX + 0xfffd21fc]
PUSH 0x5
JMP 0x00056a40
MOV EAX,dword ptr [ESP + 0x20]
MOV EDX,dword ptr [EAX + 0x34]
JMP 0x0005678b
MOV EDX,dword ptr [EBX + 0x1f9c]
TEST EDX,EDX
JNZ 0x00056a59
JMP 0x00056a6f
MOV ESI,0x63
JMP 0x00056ddc
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nvoid FUN_00056650(void)\n\n{\n  int *piVar1;\n  undefined4 *puVar2;\n  byte bVar3;\n  void *pvVar4;\n  byte bVar5;\n  int iVar6;\n  undefined4 *puVar7;\n  undefined4 *puVar8;\n  size_t sVar9;\n  char *pcVar10;\n  undefined4 uVar11;\n  char *pcVar12;\n  int iVar13;\n  undefined4 uVar14;\n  int iVar15;\n  bool bVar16;\n  int iVar17;\n  undefined4 *puVar18;\n  byte *pbVar19;\n  int *piVar20;\n  byte *pbVar21;\n  bool bVar22;\n  bool bVar23;\n  bool bVar24;\n  byte bVar25;\n  int local_50;\n  int local_4c;\n  int local_40;\n  undefined4 *local_38;\n  int local_20 [3];\n  undefined4 uStack_14;\n  \n  bVar25 = 0;\n  uStack_14 = 0x56659;\n  FUN_00033940();\n  if (DAT_001d01fc == 0) {\nLAB_00056682:\n    puVar7 = DAT_001d041c;\n    if (DAT_001cff9c != (void *)0x0) {\n      for (; puVar7 != (undefined4 *)0x0; puVar7 = (undefined4 *)puVar7[0x27]) {\n        if (*(int *)(puVar7[1] + 4) == 2) {\n          iVar6 = FUN_00038960(DAT_001cff9c);\n          if (iVar6 == 0) {\n            pcVar12 = "%P: warning: unrecognized --build-id style ignored\n";\n          }\n          else {\n            iVar17 = bfd_make_section_anyway_with_flags\n                               (puVar7,".buildid",\n                                "*/\n  .debug_aranges  0 : { *(.debug_aranges) }\n  .debug_pubnames 0 : { *(.debug_pubnames) }\n  /* DWARF 2 */\n  .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }\n  .debug_abbrev   0 : { *(.debug_abbrev) }\n  .debug_line     0 : { *(.debug_line .debug_line.* .debug_line_end ) }\n  .debug_frame    0 : { *(.debug_frame) }\n  .debug_str      0 : { *(.debug_str) }\n  .debug_loc      0 : { *(.debug_loc) }\n  .debug_macinfo  0 : { *(.debug_macinfo) }\n  /* SGI/MIPS DWARF 2 extensions */\n  .debug_weaknames 0 : { *(.debug_weaknames) }\n  .debug_funcnames 0 : { *(.debug_funcnames) }\n  .debug_typenames 0 : { *(.debug_typenames) }\n  .debug_varnames  0 : { *(.debug_varnames) }\n  /* DWARF 3 */\n  .debug_pubtypes 0 : { *(.debug_pubtypes) }\n  .debug_ranges   0 : { *(.debug_ranges) }\n  /* DWARF Extension.  */\n  .debug_macro    0 : { *(.debug_macro) }\n  .debug_addr     0 : { *(.debug_addr) }\n  .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) }\n  /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) }\n}\n\n"\n                               );\n            iVar6 = DAT_001d0414;\n            if (iVar17 != 0) {\n              iVar15 = *(int *)(DAT_001d0414 + 0xa0);\n              *(code **)(iVar15 + 0x1dc) = FUN_00055c40;\n              pvVar4 = DAT_001cff9c;\n              iVar13 = *(int *)(iVar15 + 0x58);\n              *(int *)(iVar15 + 0x1e4) = iVar17;\n              *(void **)(iVar15 + 0x1e0) = pvVar4;\n              *(undefined4 *)(iVar17 + 0x2c) = 0x35;\n              *(undefined4 *)(iVar17 + 0x30) = 0;\n              goto joined_r0x00056729;\n            }\n            pcVar12 = "%P: warning: cannot create .buildid section, --build-id ignored\n";\n          }\n          uVar11 = dcgettext(0,pcVar12,5);\n          FUN_00034d20(uVar11);\n          break;\n        }\n      }\nLAB_00056a59:\n      free(DAT_001cff9c);\n      DAT_001cff9c = (void *)0x0;\n    }\n  }\n  else {\n    printf("%s()\n","gld_i386pe_after_open");\n    for (iVar6 = *(int *)(DAT_001d0400 + 0x1c); iVar6 != 0; iVar6 = *(int *)(iVar6 + 0x10)) {\n      printf("-%s\n",*(undefined4 *)(iVar6 + 4));\n    }\n    bfd_hash_traverse(DAT_001d0400,FUN_00055b20,0);\n    puVar7 = DAT_001d041c;\n    if (DAT_001d041c != (undefined4 *)0x0) {\n      do {\n        printf("*%s\n",*puVar7);\n        puVar18 = puVar7 + 0x27;\n        puVar7 = (undefined4 *)*puVar18;\n      } while ((undefined4 *)*puVar18 != (undefined4 *)0x0);\n      goto LAB_00056682;\n    }\n    if (DAT_001cff9c != (void *)0x0) goto LAB_00056a59;\n  }\n  iVar6 = DAT_001d0414;\n  if (*(int *)(DAT_001d0414 + 0xa0) != 0) {\n    iVar13 = *(int *)(*(int *)(DAT_001d0414 + 0xa0) + 0x58);\njoined_r0x00056729:\n    if (iVar13 != 0) goto LAB_00056730;\n  }\n  uVar11 = dcgettext(0,"%F%P: cannot perform PE operations on non PE output file \'%pB\'\n",5);\n  FUN_00034d20(uVar11,iVar6);\nLAB_00056730:\n  iVar17 = DAT_001d0414;\n  iVar6 = *(int *)(DAT_001d0414 + 0xa0);\n  puVar7 = &DAT_001cffc0;\n  puVar18 = (undefined4 *)(iVar6 + 0x7c);\n  for (iVar15 = 0x52; iVar15 != 0; iVar15 = iVar15 + -1) {\n    *puVar18 = *puVar7;\n    puVar7 = puVar7 + (uint)bVar25 * -2 + 1;\n    puVar18 = puVar18 + (uint)bVar25 * -2 + 1;\n  }\n  *(undefined4 *)(iVar6 + 0x1c4) = DAT_001cf040;\n  *(uint *)(iVar6 + 0x1d8) = *(uint *)(iVar6 + 0x1d8) | DAT_001cffa8;\n  *(undefined4 *)(iVar6 + 0x1d0) = DAT_001cef94;\n  if ((DAT_001cf388 < 0) && ((DAT_001d03e1 & 0x60) == 0)) {\n    if ((DAT_001d03e0 & 3) == 2) {\n      DAT_001cf388 = 1;\n    }\n    else if (DAT_001cf6bc != 0) {\n      iVar6 = DAT_001cf6bc;\n      do {\n        local_20[0] = 0;\n        bfd_map_over_sections(*(undefined4 *)(iVar6 + 0x10),FUN_000554f0,local_20);\n        iVar17 = DAT_001d0414;\n        if (local_20[0] != 0) {\n          DAT_001cf388 = 1;\n          break;\n        }\n        iVar6 = *(int *)(iVar6 + 0x18);\n      } while (iVar6 != 0);\n    }\n  }\n  FUN_00066c30(iVar17);\n  FUN_000656c0(DAT_001d0414,&DAT_001d03e0);\n  if (DAT_001d0448 != 0) {\n    iVar6 = FUN_000561f0();\n    pcVar12 = "_head_";\n    if (iVar6 != 0) {\n      pcVar12 = "__head_";\n    }\n    FUN_00063bc0(pcVar12,FUN_00055b50);\n  }\n  if (DAT_001cef90 != 0) {\n    if (DAT_001d01fc != 0) {\n      puts("pe_fixup_stdcalls");\n    }\n    for (iVar6 = *(int *)(DAT_001d0400 + 0x1c); iVar6 != 0; iVar6 = *(int *)(iVar6 + 0x10)) {\n      if (*(char *)(iVar6 + 0xc) == '\x01') {\n        pcVar12 = *(char **)(iVar6 + 4);\n        if (*pcVar12 == '@') {\n          pcVar10 = strchr(pcVar12 + 1,0x40);\n          pcVar12 = (char *)xstrdup(pcVar12);\n          *pcVar12 = '_';\n          if (pcVar10 != (char *)0x0) goto LAB_00057061;\n        }\n        else {\n          pcVar10 = strchr(pcVar12,0x40);\n          if (pcVar10 == (char *)0x0) {\n            DAT_001cff8c = 0;\n            bfd_link_hash_traverse(DAT_001d0400,FUN_00055530,pcVar12);\n            if (DAT_001cff8c != 0) {\n              FUN_00056030();\n            }\n            goto LAB_00056fa8;\n          }\n          pcVar12 = (char *)xstrdup(pcVar12);\nLAB_00057061:\n          pcVar10 = strchr(pcVar12,0x40);\n          *pcVar10 = '\0';\n        }\n        iVar17 = bfd_link_hash_lookup(DAT_001d0400,pcVar12,0,0,1);\n        if ((iVar17 != 0) && (*(char *)(iVar17 + 0xc) == '\x03')) {\n          FUN_00056030();\n        }\n      }\nLAB_00056fa8:\n    }\n  }\n  if ((DAT_001d03e0 & 3) != 2) {\n    FUN_00066ca0(DAT_001d0414,&DAT_001d03e0);\n  }\n  local_40 = DAT_001cf6bc;\n  if (DAT_001cf6bc != 0) {\n    do {\n      iVar6 = *(int *)(local_40 + 0x10);\n      if ((*(int *)(iVar6 + 0x8c) != 0) &&\n         (local_38 = *(undefined4 **)(iVar6 + 0x60), local_38 != (undefined4 *)0x0)) {\n        iVar17 = 0;\n        bVar24 = true;\n        puVar7 = local_38;\n        bVar3 = 0;\n        bVar16 = false;\n        do {\n          bVar22 = false;\n          iVar15 = 9;\n          pbVar19 = (byte *)*puVar7;\n          pbVar21 = (byte *)".idata$2";\n          do {\n            if (iVar15 == 0) break;\n            iVar15 = iVar15 + -1;\n            bVar22 = *pbVar19 < *pbVar21;\n            bVar24 = *pbVar19 == *pbVar21;\n            pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n            pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n          } while (bVar24);\n          bVar23 = false;\n          bVar24 = (!bVar22 && !bVar24) == bVar22;\n          bVar22 = true;\n          if (!bVar24) {\n            bVar22 = bVar16;\n          }\n          iVar15 = 7;\n          pbVar19 = (byte *)*puVar7;\n          pbVar21 = (byte *)".idata$";\n          do {\n            if (iVar15 == 0) break;\n            iVar15 = iVar15 + -1;\n            bVar23 = *pbVar19 < *pbVar21;\n            bVar24 = *pbVar19 == *pbVar21;\n            pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n            pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n          } while (bVar24);\n          bVar5 = 1;\n          if ((!bVar23 && !bVar24) != bVar23) {\n            bVar5 = bVar3;\n          }\n          iVar17 = iVar17 + puVar7[0x19];\n          puVar7 = (undefined4 *)puVar7[3];\n          bVar24 = puVar7 == (undefined4 *)0x0;\n          bVar3 = bVar5;\n          bVar16 = bVar22;\n        } while (!bVar24);\n        if (((bool)(bVar5 & iVar17 != 0)) && (!bVar22)) {\n          while (iVar6 = bfd_get_reloc_upper_bound(iVar6,local_38), 0 < iVar6) {\n            iVar17 = bfd_generic_link_read_symbols(*(undefined4 *)(local_40 + 0x10));\n            local_4c = local_40;\n            if (iVar17 == 0) goto LAB_000570af;\n            uVar11 = *(undefined4 *)(*(int *)(local_40 + 0x10) + 0x78);\n            puVar7 = (undefined4 *)xmalloc(iVar6);\n            iVar6 = bfd_canonicalize_reloc(*(undefined4 *)(local_40 + 0x10),local_38,puVar7,uVar11);\n            if (iVar6 < 0) {\n              free(puVar7);\n              uVar11 = dcgettext(0,"%X%P: unable to process relocs: %E\n",5);\n              FUN_00034d20(uVar11);\n              return;\n            }\n            puVar18 = puVar7;\n            if (iVar6 != 0) {\n              do {\n                if ((((*(byte *)(**(int **)*puVar18 + 0x10) & 1) == 0) &&\n                    (iVar17 = bfd_link_hash_lookup\n                                        (DAT_001d0400,*(undefined4 *)(**(int **)*puVar18 + 4),0,0,1)\n                    , iVar17 != 0)) && (*(char *)(iVar17 + 0xc) == '\x03')) {\n                  puVar2 = *(undefined4 **)(*(int *)(iVar17 + 0x14) + 0xac);\n                  puVar8 = (undefined4 *)puVar2[0x23];\n                  if (puVar8 == (undefined4 *)0x0) {\n                    puVar8 = puVar2;\n                  }\n                  pcVar12 = (char *)*puVar8;\n                  iVar17 = filename_cmp(**(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c),pcVar12)\n                  ;\n                  if (iVar17 != 0) {\n                    sVar9 = strlen(pcVar12);\n                    pcVar10 = (char *)xmalloc(sVar9 + 1);\n                    strcpy(pcVar10,pcVar12);\n                    **(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c) = pcVar10;\n                  }\n                }\n                puVar18 = puVar18 + 1;\n              } while (puVar7 + iVar6 != puVar18);\n            }\n            free(puVar7);\n            local_38 = (undefined4 *)local_38[3];\n            if (local_38 == (undefined4 *)0x0) break;\n            iVar6 = *(int *)(local_40 + 0x10);\n          }\n        }\n      }\n      local_40 = *(int *)(local_40 + 0x18);\n    } while (local_40 != 0);\n    local_50 = DAT_001cf6bc;\n    if (DAT_001cf6bc != 0) {\n      bVar16 = false;\n      local_40 = 0;\n      do {\n        iVar6 = (*(undefined4 **)(local_50 + 0x10))[0x23];\n        if (iVar6 != 0) {\n          pcVar12 = strrchr((char *)**(undefined4 **)(local_50 + 0x10),0x2e);\n          iVar17 = local_50;\n          if (iVar6 == local_40) {\n            if (!bVar16) goto LAB_00056b08;\n          }\n          else {\n            while ((iVar15 = local_50, local_40 = iVar6, pcVar12 == (char *)0x0 ||\n                   (iVar13 = filename_cmp(pcVar12,".dll"), iVar13 != 0))) {\n              iVar17 = *(int *)(iVar17 + 0x18);\n              if (iVar17 == 0) {\n                local_50 = *(int *)(local_50 + 0x18);\n                bVar16 = false;\n                goto joined_r0x00056b15;\n              }\n              if (iVar6 != (*(undefined4 **)(iVar17 + 0x10))[0x23]) break;\n              pcVar12 = strrchr((char *)**(undefined4 **)(iVar17 + 0x10),0x2e);\n            }\n            do {\n              if (iVar6 != (*(undefined4 **)(iVar15 + 0x10))[0x23]) break;\n              pcVar12 = (char *)**(undefined4 **)(iVar15 + 0x10);\n              pcVar10 = strrchr(pcVar12,0x2e);\n              if (pcVar10 == (char *)0x0) {\nLAB_00056d20:\n                iVar13 = filename_cmp(**(undefined4 **)(iVar17 + 0x10),pcVar12);\n                if (iVar13 != 0) {\n                  bVar16 = false;\n                  goto LAB_00056b08;\n                }\n              }\n              else {\n                iVar13 = filename_cmp(pcVar10,&DAT_00192ed1);\n                if (iVar13 != 0) {\n                  pcVar12 = (char *)**(undefined4 **)(iVar15 + 0x10);\n                  goto LAB_00056d20;\n                }\n              }\n              piVar20 = (int *)(iVar15 + 0x18);\n              iVar15 = *piVar20;\n            } while (*piVar20 != 0);\n            pcVar12 = strrchr((char *)**(undefined4 **)(local_50 + 0x10),0x2e);\n          }\n          bVar16 = true;\n          iVar6 = filename_cmp(pcVar12,".dll");\n          if (iVar6 == 0) {\n            puVar7 = (undefined4 *)(*(undefined4 **)(local_50 + 0x10))[0x18];\n            if (puVar7 == (undefined4 *)0x0) {\n              iVar6 = 99;\n            }\n            else {\n              iVar17 = 0;\n              bVar24 = true;\n              bVar16 = false;\n              do {\n                bVar22 = false;\n                iVar6 = 9;\n                pbVar19 = (byte *)*puVar7;\n                pbVar21 = (byte *)".idata$2";\n                do {\n                  if (iVar6 == 0) break;\n                  iVar6 = iVar6 + -1;\n                  bVar22 = *pbVar19 < *pbVar21;\n                  bVar24 = *pbVar19 == *pbVar21;\n                  pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n                  pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n                } while (bVar24);\n                if ((!bVar22 && !bVar24) == bVar22) {\n                  bVar16 = true;\n                }\n                iVar17 = iVar17 + puVar7[0x19];\n                puVar7 = (undefined4 *)puVar7[3];\n                bVar24 = puVar7 == (undefined4 *)0x0;\n              } while (!bVar24);\n              iVar6 = 0x61;\n              if (!bVar16) {\n                iVar6 = (iVar17 < 1) + 0x62;\n              }\n            }\n            sVar9 = strlen((char *)**(undefined4 **)(local_50 + 0x10));\n            pcVar12 = (char *)xmalloc(sVar9 + 3);\n            sprintf(pcVar12,"%s.%c",**(undefined4 **)(local_50 + 0x10),iVar6);\n            **(undefined4 **)(local_50 + 0x10) = pcVar12;\n            sVar9 = strlen(*(char **)(local_50 + 8));\n            pcVar12 = (char *)xmalloc(sVar9 + 3);\n            sprintf(pcVar12,"%s.%c",*(undefined4 *)(local_50 + 8),iVar6);\n            *(char **)(local_50 + 8) = pcVar12;\n            bVar16 = true;\n          }\n        }\nLAB_00056b08:\n        local_50 = *(int *)(local_50 + 0x18);\njoined_r0x00056b15:\n      } while (local_50 != 0);\n      local_4c = DAT_001cf6bc;\n      if (DAT_001cf6bc != 0) {\n        do {\n          iVar6 = *(int *)(local_4c + 0x10);\n          if ((*(int *)(iVar6 + 0x8c) != 0) &&\n             (puVar7 = *(undefined4 **)(iVar6 + 0x60), puVar7 != (undefined4 *)0x0)) {\n            puVar18 = (undefined4 *)0x0;\n            bVar16 = false;\n            bVar24 = true;\n            do {\n              bVar22 = false;\n              iVar17 = 7;\n              pbVar19 = (byte *)*puVar7;\n              pbVar21 = (byte *)".idata$";\n              do {\n                if (iVar17 == 0) break;\n                iVar17 = iVar17 + -1;\n                bVar22 = *pbVar19 < *pbVar21;\n                bVar24 = *pbVar19 == *pbVar21;\n                pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n                pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n              } while (bVar24);\n              if ((!bVar22 && !bVar24) == bVar22) {\n                bVar16 = true;\n              }\n              if (((*(byte *)(puVar7 + 5) & 0x10) != 0) && (puVar7[0x19] != 0)) {\n                puVar18 = puVar7;\n              }\n              puVar7 = (undefined4 *)puVar7[3];\n              bVar24 = puVar7 == (undefined4 *)0x0;\n            } while (!bVar24);\n            if ((puVar18 != (undefined4 *)0x0) && (bVar16)) {\n              iVar6 = bfd_generic_link_read_symbols(iVar6);\n              if (iVar6 == 0) {\nLAB_000570af:\n                uVar11 = *(undefined4 *)(local_4c + 0x10);\n                uVar14 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n                FUN_00034d20(uVar14,uVar11);\n                return;\n              }\n              piVar20 = *(int **)(*(int *)(local_4c + 0x10) + 0x78);\n              iVar6 = *(int *)(*(int *)(local_4c + 0x10) + 0x7c);\n              if (0 < iVar6) {\n                piVar1 = piVar20 + iVar6;\n                do {\n                  if ((((*(int *)(*(int *)(*piVar20 + 0x14) + 4) == puVar18[1]) &&\n                       (iVar6 = bfd_link_hash_lookup\n                                          (DAT_001d0400,*(undefined4 *)(*piVar20 + 4),0,0,1),\n                       iVar6 != 0)) && (*(char *)(iVar6 + 0xc) == '\x03')) &&\n                     ((*(int *)(iVar6 + 0x10) == 0 && (*(int *)(DAT_001d0400 + 0x20) != iVar6)))) {\n                    puVar18[5] = puVar18[5] | 0x8000;\n                  }\n                  piVar20 = piVar20 + 1;\n                } while (piVar1 != piVar20);\n              }\n            }\n          }\n          local_4c = *(int *)(local_4c + 0x18);\n        } while (local_4c != 0);\n      }\n    }\n  }\n  return;\n}\n\n" comment (function_definition "void FUN_00056650(void)\n\n{\n  int *piVar1;\n  undefined4 *puVar2;\n  byte bVar3;\n  void *pvVar4;\n  byte bVar5;\n  int iVar6;\n  undefined4 *puVar7;\n  undefined4 *puVar8;\n  size_t sVar9;\n  char *pcVar10;\n  undefined4 uVar11;\n  char *pcVar12;\n  int iVar13;\n  undefined4 uVar14;\n  int iVar15;\n  bool bVar16;\n  int iVar17;\n  undefined4 *puVar18;\n  byte *pbVar19;\n  int *piVar20;\n  byte *pbVar21;\n  bool bVar22;\n  bool bVar23;\n  bool bVar24;\n  byte bVar25;\n  int local_50;\n  int local_4c;\n  int local_40;\n  undefined4 *local_38;\n  int local_20 [3];\n  undefined4 uStack_14;\n  \n  bVar25 = 0;\n  uStack_14 = 0x56659;\n  FUN_00033940();\n  if (DAT_001d01fc == 0) {\nLAB_00056682:\n    puVar7 = DAT_001d041c;\n    if (DAT_001cff9c != (void *)0x0) {\n      for (; puVar7 != (undefined4 *)0x0; puVar7 = (undefined4 *)puVar7[0x27]) {\n        if (*(int *)(puVar7[1] + 4) == 2) {\n          iVar6 = FUN_00038960(DAT_001cff9c);\n          if (iVar6 == 0) {\n            pcVar12 = "%P: warning: unrecognized --build-id style ignored\n";\n          }\n          else {\n            iVar17 = bfd_make_section_anyway_with_flags\n                               (puVar7,".buildid",\n                                "*/\n  .debug_aranges  0 : { *(.debug_aranges) }\n  .debug_pubnames 0 : { *(.debug_pubnames) }\n  /* DWARF 2 */\n  .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }\n  .debug_abbrev   0 : { *(.debug_abbrev) }\n  .debug_line     0 : { *(.debug_line .debug_line.* .debug_line_end ) }\n  .debug_frame    0 : { *(.debug_frame) }\n  .debug_str      0 : { *(.debug_str) }\n  .debug_loc      0 : { *(.debug_loc) }\n  .debug_macinfo  0 : { *(.debug_macinfo) }\n  /* SGI/MIPS DWARF 2 extensions */\n  .debug_weaknames 0 : { *(.debug_weaknames) }\n  .debug_funcnames 0 : { *(.debug_funcnames) }\n  .debug_typenames 0 : { *(.debug_typenames) }\n  .debug_varnames  0 : { *(.debug_varnames) }\n  /* DWARF 3 */\n  .debug_pubtypes 0 : { *(.debug_pubtypes) }\n  .debug_ranges   0 : { *(.debug_ranges) }\n  /* DWARF Extension.  */\n  .debug_macro    0 : { *(.debug_macro) }\n  .debug_addr     0 : { *(.debug_addr) }\n  .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) }\n  /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) }\n}\n\n"\n                               );\n            iVar6 = DAT_001d0414;\n            if (iVar17 != 0) {\n              iVar15 = *(int *)(DAT_001d0414 + 0xa0);\n              *(code **)(iVar15 + 0x1dc) = FUN_00055c40;\n              pvVar4 = DAT_001cff9c;\n              iVar13 = *(int *)(iVar15 + 0x58);\n              *(int *)(iVar15 + 0x1e4) = iVar17;\n              *(void **)(iVar15 + 0x1e0) = pvVar4;\n              *(undefined4 *)(iVar17 + 0x2c) = 0x35;\n              *(undefined4 *)(iVar17 + 0x30) = 0;\n              goto joined_r0x00056729;\n            }\n            pcVar12 = "%P: warning: cannot create .buildid section, --build-id ignored\n";\n          }\n          uVar11 = dcgettext(0,pcVar12,5);\n          FUN_00034d20(uVar11);\n          break;\n        }\n      }\nLAB_00056a59:\n      free(DAT_001cff9c);\n      DAT_001cff9c = (void *)0x0;\n    }\n  }\n  else {\n    printf("%s()\n","gld_i386pe_after_open");\n    for (iVar6 = *(int *)(DAT_001d0400 + 0x1c); iVar6 != 0; iVar6 = *(int *)(iVar6 + 0x10)) {\n      printf("-%s\n",*(undefined4 *)(iVar6 + 4));\n    }\n    bfd_hash_traverse(DAT_001d0400,FUN_00055b20,0);\n    puVar7 = DAT_001d041c;\n    if (DAT_001d041c != (undefined4 *)0x0) {\n      do {\n        printf("*%s\n",*puVar7);\n        puVar18 = puVar7 + 0x27;\n        puVar7 = (undefined4 *)*puVar18;\n      } while ((undefined4 *)*puVar18 != (undefined4 *)0x0);\n      goto LAB_00056682;\n    }\n    if (DAT_001cff9c != (void *)0x0) goto LAB_00056a59;\n  }\n  iVar6 = DAT_001d0414;\n  if (*(int *)(DAT_001d0414 + 0xa0) != 0) {\n    iVar13 = *(int *)(*(int *)(DAT_001d0414 + 0xa0) + 0x58);\njoined_r0x00056729:\n    if (iVar13 != 0) goto LAB_00056730;\n  }\n  uVar11 = dcgettext(0,"%F%P: cannot perform PE operations on non PE output file \'%pB\'\n",5);\n  FUN_00034d20(uVar11,iVar6);\nLAB_00056730:\n  iVar17 = DAT_001d0414;\n  iVar6 = *(int *)(DAT_001d0414 + 0xa0);\n  puVar7 = &DAT_001cffc0;\n  puVar18 = (undefined4 *)(iVar6 + 0x7c);\n  for (iVar15 = 0x52; iVar15 != 0; iVar15 = iVar15 + -1) {\n    *puVar18 = *puVar7;\n    puVar7 = puVar7 + (uint)bVar25 * -2 + 1;\n    puVar18 = puVar18 + (uint)bVar25 * -2 + 1;\n  }\n  *(undefined4 *)(iVar6 + 0x1c4) = DAT_001cf040;\n  *(uint *)(iVar6 + 0x1d8) = *(uint *)(iVar6 + 0x1d8) | DAT_001cffa8;\n  *(undefined4 *)(iVar6 + 0x1d0) = DAT_001cef94;\n  if ((DAT_001cf388 < 0) && ((DAT_001d03e1 & 0x60) == 0)) {\n    if ((DAT_001d03e0 & 3) == 2) {\n      DAT_001cf388 = 1;\n    }\n    else if (DAT_001cf6bc != 0) {\n      iVar6 = DAT_001cf6bc;\n      do {\n        local_20[0] = 0;\n        bfd_map_over_sections(*(undefined4 *)(iVar6 + 0x10),FUN_000554f0,local_20);\n        iVar17 = DAT_001d0414;\n        if (local_20[0] != 0) {\n          DAT_001cf388 = 1;\n          break;\n        }\n        iVar6 = *(int *)(iVar6 + 0x18);\n      } while (iVar6 != 0);\n    }\n  }\n  FUN_00066c30(iVar17);\n  FUN_000656c0(DAT_001d0414,&DAT_001d03e0);\n  if (DAT_001d0448 != 0) {\n    iVar6 = FUN_000561f0();\n    pcVar12 = "_head_";\n    if (iVar6 != 0) {\n      pcVar12 = "__head_";\n    }\n    FUN_00063bc0(pcVar12,FUN_00055b50);\n  }\n  if (DAT_001cef90 != 0) {\n    if (DAT_001d01fc != 0) {\n      puts("pe_fixup_stdcalls");\n    }\n    for (iVar6 = *(int *)(DAT_001d0400 + 0x1c); iVar6 != 0; iVar6 = *(int *)(iVar6 + 0x10)) {\n      if (*(char *)(iVar6 + 0xc) == '\x01') {\n        pcVar12 = *(char **)(iVar6 + 4);\n        if (*pcVar12 == '@') {\n          pcVar10 = strchr(pcVar12 + 1,0x40);\n          pcVar12 = (char *)xstrdup(pcVar12);\n          *pcVar12 = '_';\n          if (pcVar10 != (char *)0x0) goto LAB_00057061;\n        }\n        else {\n          pcVar10 = strchr(pcVar12,0x40);\n          if (pcVar10 == (char *)0x0) {\n            DAT_001cff8c = 0;\n            bfd_link_hash_traverse(DAT_001d0400,FUN_00055530,pcVar12);\n            if (DAT_001cff8c != 0) {\n              FUN_00056030();\n            }\n            goto LAB_00056fa8;\n          }\n          pcVar12 = (char *)xstrdup(pcVar12);\nLAB_00057061:\n          pcVar10 = strchr(pcVar12,0x40);\n          *pcVar10 = '\0';\n        }\n        iVar17 = bfd_link_hash_lookup(DAT_001d0400,pcVar12,0,0,1);\n        if ((iVar17 != 0) && (*(char *)(iVar17 + 0xc) == '\x03')) {\n          FUN_00056030();\n        }\n      }\nLAB_00056fa8:\n    }\n  }\n  if ((DAT_001d03e0 & 3) != 2) {\n    FUN_00066ca0(DAT_001d0414,&DAT_001d03e0);\n  }\n  local_40 = DAT_001cf6bc;\n  if (DAT_001cf6bc != 0) {\n    do {\n      iVar6 = *(int *)(local_40 + 0x10);\n      if ((*(int *)(iVar6 + 0x8c) != 0) &&\n         (local_38 = *(undefined4 **)(iVar6 + 0x60), local_38 != (undefined4 *)0x0)) {\n        iVar17 = 0;\n        bVar24 = true;\n        puVar7 = local_38;\n        bVar3 = 0;\n        bVar16 = false;\n        do {\n          bVar22 = false;\n          iVar15 = 9;\n          pbVar19 = (byte *)*puVar7;\n          pbVar21 = (byte *)".idata$2";\n          do {\n            if (iVar15 == 0) break;\n            iVar15 = iVar15 + -1;\n            bVar22 = *pbVar19 < *pbVar21;\n            bVar24 = *pbVar19 == *pbVar21;\n            pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n            pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n          } while (bVar24);\n          bVar23 = false;\n          bVar24 = (!bVar22 && !bVar24) == bVar22;\n          bVar22 = true;\n          if (!bVar24) {\n            bVar22 = bVar16;\n          }\n          iVar15 = 7;\n          pbVar19 = (byte *)*puVar7;\n          pbVar21 = (byte *)".idata$";\n          do {\n            if (iVar15 == 0) break;\n            iVar15 = iVar15 + -1;\n            bVar23 = *pbVar19 < *pbVar21;\n            bVar24 = *pbVar19 == *pbVar21;\n            pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n            pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n          } while (bVar24);\n          bVar5 = 1;\n          if ((!bVar23 && !bVar24) != bVar23) {\n            bVar5 = bVar3;\n          }\n          iVar17 = iVar17 + puVar7[0x19];\n          puVar7 = (undefined4 *)puVar7[3];\n          bVar24 = puVar7 == (undefined4 *)0x0;\n          bVar3 = bVar5;\n          bVar16 = bVar22;\n        } while (!bVar24);\n        if (((bool)(bVar5 & iVar17 != 0)) && (!bVar22)) {\n          while (iVar6 = bfd_get_reloc_upper_bound(iVar6,local_38), 0 < iVar6) {\n            iVar17 = bfd_generic_link_read_symbols(*(undefined4 *)(local_40 + 0x10));\n            local_4c = local_40;\n            if (iVar17 == 0) goto LAB_000570af;\n            uVar11 = *(undefined4 *)(*(int *)(local_40 + 0x10) + 0x78);\n            puVar7 = (undefined4 *)xmalloc(iVar6);\n            iVar6 = bfd_canonicalize_reloc(*(undefined4 *)(local_40 + 0x10),local_38,puVar7,uVar11);\n            if (iVar6 < 0) {\n              free(puVar7);\n              uVar11 = dcgettext(0,"%X%P: unable to process relocs: %E\n",5);\n              FUN_00034d20(uVar11);\n              return;\n            }\n            puVar18 = puVar7;\n            if (iVar6 != 0) {\n              do {\n                if ((((*(byte *)(**(int **)*puVar18 + 0x10) & 1) == 0) &&\n                    (iVar17 = bfd_link_hash_lookup\n                                        (DAT_001d0400,*(undefined4 *)(**(int **)*puVar18 + 4),0,0,1)\n                    , iVar17 != 0)) && (*(char *)(iVar17 + 0xc) == '\x03')) {\n                  puVar2 = *(undefined4 **)(*(int *)(iVar17 + 0x14) + 0xac);\n                  puVar8 = (undefined4 *)puVar2[0x23];\n                  if (puVar8 == (undefined4 *)0x0) {\n                    puVar8 = puVar2;\n                  }\n                  pcVar12 = (char *)*puVar8;\n                  iVar17 = filename_cmp(**(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c),pcVar12)\n                  ;\n                  if (iVar17 != 0) {\n                    sVar9 = strlen(pcVar12);\n                    pcVar10 = (char *)xmalloc(sVar9 + 1);\n                    strcpy(pcVar10,pcVar12);\n                    **(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c) = pcVar10;\n                  }\n                }\n                puVar18 = puVar18 + 1;\n              } while (puVar7 + iVar6 != puVar18);\n            }\n            free(puVar7);\n            local_38 = (undefined4 *)local_38[3];\n            if (local_38 == (undefined4 *)0x0) break;\n            iVar6 = *(int *)(local_40 + 0x10);\n          }\n        }\n      }\n      local_40 = *(int *)(local_40 + 0x18);\n    } while (local_40 != 0);\n    local_50 = DAT_001cf6bc;\n    if (DAT_001cf6bc != 0) {\n      bVar16 = false;\n      local_40 = 0;\n      do {\n        iVar6 = (*(undefined4 **)(local_50 + 0x10))[0x23];\n        if (iVar6 != 0) {\n          pcVar12 = strrchr((char *)**(undefined4 **)(local_50 + 0x10),0x2e);\n          iVar17 = local_50;\n          if (iVar6 == local_40) {\n            if (!bVar16) goto LAB_00056b08;\n          }\n          else {\n            while ((iVar15 = local_50, local_40 = iVar6, pcVar12 == (char *)0x0 ||\n                   (iVar13 = filename_cmp(pcVar12,".dll"), iVar13 != 0))) {\n              iVar17 = *(int *)(iVar17 + 0x18);\n              if (iVar17 == 0) {\n                local_50 = *(int *)(local_50 + 0x18);\n                bVar16 = false;\n                goto joined_r0x00056b15;\n              }\n              if (iVar6 != (*(undefined4 **)(iVar17 + 0x10))[0x23]) break;\n              pcVar12 = strrchr((char *)**(undefined4 **)(iVar17 + 0x10),0x2e);\n            }\n            do {\n              if (iVar6 != (*(undefined4 **)(iVar15 + 0x10))[0x23]) break;\n              pcVar12 = (char *)**(undefined4 **)(iVar15 + 0x10);\n              pcVar10 = strrchr(pcVar12,0x2e);\n              if (pcVar10 == (char *)0x0) {\nLAB_00056d20:\n                iVar13 = filename_cmp(**(undefined4 **)(iVar17 + 0x10),pcVar12);\n                if (iVar13 != 0) {\n                  bVar16 = false;\n                  goto LAB_00056b08;\n                }\n              }\n              else {\n                iVar13 = filename_cmp(pcVar10,&DAT_00192ed1);\n                if (iVar13 != 0) {\n                  pcVar12 = (char *)**(undefined4 **)(iVar15 + 0x10);\n                  goto LAB_00056d20;\n                }\n              }\n              piVar20 = (int *)(iVar15 + 0x18);\n              iVar15 = *piVar20;\n            } while (*piVar20 != 0);\n            pcVar12 = strrchr((char *)**(undefined4 **)(local_50 + 0x10),0x2e);\n          }\n          bVar16 = true;\n          iVar6 = filename_cmp(pcVar12,".dll");\n          if (iVar6 == 0) {\n            puVar7 = (undefined4 *)(*(undefined4 **)(local_50 + 0x10))[0x18];\n            if (puVar7 == (undefined4 *)0x0) {\n              iVar6 = 99;\n            }\n            else {\n              iVar17 = 0;\n              bVar24 = true;\n              bVar16 = false;\n              do {\n                bVar22 = false;\n                iVar6 = 9;\n                pbVar19 = (byte *)*puVar7;\n                pbVar21 = (byte *)".idata$2";\n                do {\n                  if (iVar6 == 0) break;\n                  iVar6 = iVar6 + -1;\n                  bVar22 = *pbVar19 < *pbVar21;\n                  bVar24 = *pbVar19 == *pbVar21;\n                  pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n                  pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n                } while (bVar24);\n                if ((!bVar22 && !bVar24) == bVar22) {\n                  bVar16 = true;\n                }\n                iVar17 = iVar17 + puVar7[0x19];\n                puVar7 = (undefined4 *)puVar7[3];\n                bVar24 = puVar7 == (undefined4 *)0x0;\n              } while (!bVar24);\n              iVar6 = 0x61;\n              if (!bVar16) {\n                iVar6 = (iVar17 < 1) + 0x62;\n              }\n            }\n            sVar9 = strlen((char *)**(undefined4 **)(local_50 + 0x10));\n            pcVar12 = (char *)xmalloc(sVar9 + 3);\n            sprintf(pcVar12,"%s.%c",**(undefined4 **)(local_50 + 0x10),iVar6);\n            **(undefined4 **)(local_50 + 0x10) = pcVar12;\n            sVar9 = strlen(*(char **)(local_50 + 8));\n            pcVar12 = (char *)xmalloc(sVar9 + 3);\n            sprintf(pcVar12,"%s.%c",*(undefined4 *)(local_50 + 8),iVar6);\n            *(char **)(local_50 + 8) = pcVar12;\n            bVar16 = true;\n          }\n        }\nLAB_00056b08:\n        local_50 = *(int *)(local_50 + 0x18);\njoined_r0x00056b15:\n      } while (local_50 != 0);\n      local_4c = DAT_001cf6bc;\n      if (DAT_001cf6bc != 0) {\n        do {\n          iVar6 = *(int *)(local_4c + 0x10);\n          if ((*(int *)(iVar6 + 0x8c) != 0) &&\n             (puVar7 = *(undefined4 **)(iVar6 + 0x60), puVar7 != (undefined4 *)0x0)) {\n            puVar18 = (undefined4 *)0x0;\n            bVar16 = false;\n            bVar24 = true;\n            do {\n              bVar22 = false;\n              iVar17 = 7;\n              pbVar19 = (byte *)*puVar7;\n              pbVar21 = (byte *)".idata$";\n              do {\n                if (iVar17 == 0) break;\n                iVar17 = iVar17 + -1;\n                bVar22 = *pbVar19 < *pbVar21;\n                bVar24 = *pbVar19 == *pbVar21;\n                pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n                pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n              } while (bVar24);\n              if ((!bVar22 && !bVar24) == bVar22) {\n                bVar16 = true;\n              }\n              if (((*(byte *)(puVar7 + 5) & 0x10) != 0) && (puVar7[0x19] != 0)) {\n                puVar18 = puVar7;\n              }\n              puVar7 = (undefined4 *)puVar7[3];\n              bVar24 = puVar7 == (undefined4 *)0x0;\n            } while (!bVar24);\n            if ((puVar18 != (undefined4 *)0x0) && (bVar16)) {\n              iVar6 = bfd_generic_link_read_symbols(iVar6);\n              if (iVar6 == 0) {\nLAB_000570af:\n                uVar11 = *(undefined4 *)(local_4c + 0x10);\n                uVar14 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n                FUN_00034d20(uVar14,uVar11);\n                return;\n              }\n              piVar20 = *(int **)(*(int *)(local_4c + 0x10) + 0x78);\n              iVar6 = *(int *)(*(int *)(local_4c + 0x10) + 0x7c);\n              if (0 < iVar6) {\n                piVar1 = piVar20 + iVar6;\n                do {\n                  if ((((*(int *)(*(int *)(*piVar20 + 0x14) + 4) == puVar18[1]) &&\n                       (iVar6 = bfd_link_hash_lookup\n                                          (DAT_001d0400,*(undefined4 *)(*piVar20 + 4),0,0,1),\n                       iVar6 != 0)) && (*(char *)(iVar6 + 0xc) == '\x03')) &&\n                     ((*(int *)(iVar6 + 0x10) == 0 && (*(int *)(DAT_001d0400 + 0x20) != iVar6)))) {\n                    puVar18[5] = puVar18[5] | 0x8000;\n                  }\n                  piVar20 = piVar20 + 1;\n                } while (piVar1 != piVar20);\n              }\n            }\n          }\n          local_4c = *(int *)(local_4c + 0x18);\n        } while (local_4c != 0);\n      }\n    }\n  }\n  return;\n}" primitive_type (function_declarator "FUN_00056650(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  int *piVar1;\n  undefined4 *puVar2;\n  byte bVar3;\n  void *pvVar4;\n  byte bVar5;\n  int iVar6;\n  undefined4 *puVar7;\n  undefined4 *puVar8;\n  size_t sVar9;\n  char *pcVar10;\n  undefined4 uVar11;\n  char *pcVar12;\n  int iVar13;\n  undefined4 uVar14;\n  int iVar15;\n  bool bVar16;\n  int iVar17;\n  undefined4 *puVar18;\n  byte *pbVar19;\n  int *piVar20;\n  byte *pbVar21;\n  bool bVar22;\n  bool bVar23;\n  bool bVar24;\n  byte bVar25;\n  int local_50;\n  int local_4c;\n  int local_40;\n  undefined4 *local_38;\n  int local_20 [3];\n  undefined4 uStack_14;\n  \n  bVar25 = 0;\n  uStack_14 = 0x56659;\n  FUN_00033940();\n  if (DAT_001d01fc == 0) {\nLAB_00056682:\n    puVar7 = DAT_001d041c;\n    if (DAT_001cff9c != (void *)0x0) {\n      for (; puVar7 != (undefined4 *)0x0; puVar7 = (undefined4 *)puVar7[0x27]) {\n        if (*(int *)(puVar7[1] + 4) == 2) {\n          iVar6 = FUN_00038960(DAT_001cff9c);\n          if (iVar6 == 0) {\n            pcVar12 = "%P: warning: unrecognized --build-id style ignored\n";\n          }\n          else {\n            iVar17 = bfd_make_section_anyway_with_flags\n                               (puVar7,".buildid",\n                                "*/\n  .debug_aranges  0 : { *(.debug_aranges) }\n  .debug_pubnames 0 : { *(.debug_pubnames) }\n  /* DWARF 2 */\n  .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }\n  .debug_abbrev   0 : { *(.debug_abbrev) }\n  .debug_line     0 : { *(.debug_line .debug_line.* .debug_line_end ) }\n  .debug_frame    0 : { *(.debug_frame) }\n  .debug_str      0 : { *(.debug_str) }\n  .debug_loc      0 : { *(.debug_loc) }\n  .debug_macinfo  0 : { *(.debug_macinfo) }\n  /* SGI/MIPS DWARF 2 extensions */\n  .debug_weaknames 0 : { *(.debug_weaknames) }\n  .debug_funcnames 0 : { *(.debug_funcnames) }\n  .debug_typenames 0 : { *(.debug_typenames) }\n  .debug_varnames  0 : { *(.debug_varnames) }\n  /* DWARF 3 */\n  .debug_pubtypes 0 : { *(.debug_pubtypes) }\n  .debug_ranges   0 : { *(.debug_ranges) }\n  /* DWARF Extension.  */\n  .debug_macro    0 : { *(.debug_macro) }\n  .debug_addr     0 : { *(.debug_addr) }\n  .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) }\n  /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) }\n}\n\n"\n                               );\n            iVar6 = DAT_001d0414;\n            if (iVar17 != 0) {\n              iVar15 = *(int *)(DAT_001d0414 + 0xa0);\n              *(code **)(iVar15 + 0x1dc) = FUN_00055c40;\n              pvVar4 = DAT_001cff9c;\n              iVar13 = *(int *)(iVar15 + 0x58);\n              *(int *)(iVar15 + 0x1e4) = iVar17;\n              *(void **)(iVar15 + 0x1e0) = pvVar4;\n              *(undefined4 *)(iVar17 + 0x2c) = 0x35;\n              *(undefined4 *)(iVar17 + 0x30) = 0;\n              goto joined_r0x00056729;\n            }\n            pcVar12 = "%P: warning: cannot create .buildid section, --build-id ignored\n";\n          }\n          uVar11 = dcgettext(0,pcVar12,5);\n          FUN_00034d20(uVar11);\n          break;\n        }\n      }\nLAB_00056a59:\n      free(DAT_001cff9c);\n      DAT_001cff9c = (void *)0x0;\n    }\n  }\n  else {\n    printf("%s()\n","gld_i386pe_after_open");\n    for (iVar6 = *(int *)(DAT_001d0400 + 0x1c); iVar6 != 0; iVar6 = *(int *)(iVar6 + 0x10)) {\n      printf("-%s\n",*(undefined4 *)(iVar6 + 4));\n    }\n    bfd_hash_traverse(DAT_001d0400,FUN_00055b20,0);\n    puVar7 = DAT_001d041c;\n    if (DAT_001d041c != (undefined4 *)0x0) {\n      do {\n        printf("*%s\n",*puVar7);\n        puVar18 = puVar7 + 0x27;\n        puVar7 = (undefined4 *)*puVar18;\n      } while ((undefined4 *)*puVar18 != (undefined4 *)0x0);\n      goto LAB_00056682;\n    }\n    if (DAT_001cff9c != (void *)0x0) goto LAB_00056a59;\n  }\n  iVar6 = DAT_001d0414;\n  if (*(int *)(DAT_001d0414 + 0xa0) != 0) {\n    iVar13 = *(int *)(*(int *)(DAT_001d0414 + 0xa0) + 0x58);\njoined_r0x00056729:\n    if (iVar13 != 0) goto LAB_00056730;\n  }\n  uVar11 = dcgettext(0,"%F%P: cannot perform PE operations on non PE output file \'%pB\'\n",5);\n  FUN_00034d20(uVar11,iVar6);\nLAB_00056730:\n  iVar17 = DAT_001d0414;\n  iVar6 = *(int *)(DAT_001d0414 + 0xa0);\n  puVar7 = &DAT_001cffc0;\n  puVar18 = (undefined4 *)(iVar6 + 0x7c);\n  for (iVar15 = 0x52; iVar15 != 0; iVar15 = iVar15 + -1) {\n    *puVar18 = *puVar7;\n    puVar7 = puVar7 + (uint)bVar25 * -2 + 1;\n    puVar18 = puVar18 + (uint)bVar25 * -2 + 1;\n  }\n  *(undefined4 *)(iVar6 + 0x1c4) = DAT_001cf040;\n  *(uint *)(iVar6 + 0x1d8) = *(uint *)(iVar6 + 0x1d8) | DAT_001cffa8;\n  *(undefined4 *)(iVar6 + 0x1d0) = DAT_001cef94;\n  if ((DAT_001cf388 < 0) && ((DAT_001d03e1 & 0x60) == 0)) {\n    if ((DAT_001d03e0 & 3) == 2) {\n      DAT_001cf388 = 1;\n    }\n    else if (DAT_001cf6bc != 0) {\n      iVar6 = DAT_001cf6bc;\n      do {\n        local_20[0] = 0;\n        bfd_map_over_sections(*(undefined4 *)(iVar6 + 0x10),FUN_000554f0,local_20);\n        iVar17 = DAT_001d0414;\n        if (local_20[0] != 0) {\n          DAT_001cf388 = 1;\n          break;\n        }\n        iVar6 = *(int *)(iVar6 + 0x18);\n      } while (iVar6 != 0);\n    }\n  }\n  FUN_00066c30(iVar17);\n  FUN_000656c0(DAT_001d0414,&DAT_001d03e0);\n  if (DAT_001d0448 != 0) {\n    iVar6 = FUN_000561f0();\n    pcVar12 = "_head_";\n    if (iVar6 != 0) {\n      pcVar12 = "__head_";\n    }\n    FUN_00063bc0(pcVar12,FUN_00055b50);\n  }\n  if (DAT_001cef90 != 0) {\n    if (DAT_001d01fc != 0) {\n      puts("pe_fixup_stdcalls");\n    }\n    for (iVar6 = *(int *)(DAT_001d0400 + 0x1c); iVar6 != 0; iVar6 = *(int *)(iVar6 + 0x10)) {\n      if (*(char *)(iVar6 + 0xc) == '\x01') {\n        pcVar12 = *(char **)(iVar6 + 4);\n        if (*pcVar12 == '@') {\n          pcVar10 = strchr(pcVar12 + 1,0x40);\n          pcVar12 = (char *)xstrdup(pcVar12);\n          *pcVar12 = '_';\n          if (pcVar10 != (char *)0x0) goto LAB_00057061;\n        }\n        else {\n          pcVar10 = strchr(pcVar12,0x40);\n          if (pcVar10 == (char *)0x0) {\n            DAT_001cff8c = 0;\n            bfd_link_hash_traverse(DAT_001d0400,FUN_00055530,pcVar12);\n            if (DAT_001cff8c != 0) {\n              FUN_00056030();\n            }\n            goto LAB_00056fa8;\n          }\n          pcVar12 = (char *)xstrdup(pcVar12);\nLAB_00057061:\n          pcVar10 = strchr(pcVar12,0x40);\n          *pcVar10 = '\0';\n        }\n        iVar17 = bfd_link_hash_lookup(DAT_001d0400,pcVar12,0,0,1);\n        if ((iVar17 != 0) && (*(char *)(iVar17 + 0xc) == '\x03')) {\n          FUN_00056030();\n        }\n      }\nLAB_00056fa8:\n    }\n  }\n  if ((DAT_001d03e0 & 3) != 2) {\n    FUN_00066ca0(DAT_001d0414,&DAT_001d03e0);\n  }\n  local_40 = DAT_001cf6bc;\n  if (DAT_001cf6bc != 0) {\n    do {\n      iVar6 = *(int *)(local_40 + 0x10);\n      if ((*(int *)(iVar6 + 0x8c) != 0) &&\n         (local_38 = *(undefined4 **)(iVar6 + 0x60), local_38 != (undefined4 *)0x0)) {\n        iVar17 = 0;\n        bVar24 = true;\n        puVar7 = local_38;\n        bVar3 = 0;\n        bVar16 = false;\n        do {\n          bVar22 = false;\n          iVar15 = 9;\n          pbVar19 = (byte *)*puVar7;\n          pbVar21 = (byte *)".idata$2";\n          do {\n            if (iVar15 == 0) break;\n            iVar15 = iVar15 + -1;\n            bVar22 = *pbVar19 < *pbVar21;\n            bVar24 = *pbVar19 == *pbVar21;\n            pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n            pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n          } while (bVar24);\n          bVar23 = false;\n          bVar24 = (!bVar22 && !bVar24) == bVar22;\n          bVar22 = true;\n          if (!bVar24) {\n            bVar22 = bVar16;\n          }\n          iVar15 = 7;\n          pbVar19 = (byte *)*puVar7;\n          pbVar21 = (byte *)".idata$";\n          do {\n            if (iVar15 == 0) break;\n            iVar15 = iVar15 + -1;\n            bVar23 = *pbVar19 < *pbVar21;\n            bVar24 = *pbVar19 == *pbVar21;\n            pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n            pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n          } while (bVar24);\n          bVar5 = 1;\n          if ((!bVar23 && !bVar24) != bVar23) {\n            bVar5 = bVar3;\n          }\n          iVar17 = iVar17 + puVar7[0x19];\n          puVar7 = (undefined4 *)puVar7[3];\n          bVar24 = puVar7 == (undefined4 *)0x0;\n          bVar3 = bVar5;\n          bVar16 = bVar22;\n        } while (!bVar24);\n        if (((bool)(bVar5 & iVar17 != 0)) && (!bVar22)) {\n          while (iVar6 = bfd_get_reloc_upper_bound(iVar6,local_38), 0 < iVar6) {\n            iVar17 = bfd_generic_link_read_symbols(*(undefined4 *)(local_40 + 0x10));\n            local_4c = local_40;\n            if (iVar17 == 0) goto LAB_000570af;\n            uVar11 = *(undefined4 *)(*(int *)(local_40 + 0x10) + 0x78);\n            puVar7 = (undefined4 *)xmalloc(iVar6);\n            iVar6 = bfd_canonicalize_reloc(*(undefined4 *)(local_40 + 0x10),local_38,puVar7,uVar11);\n            if (iVar6 < 0) {\n              free(puVar7);\n              uVar11 = dcgettext(0,"%X%P: unable to process relocs: %E\n",5);\n              FUN_00034d20(uVar11);\n              return;\n            }\n            puVar18 = puVar7;\n            if (iVar6 != 0) {\n              do {\n                if ((((*(byte *)(**(int **)*puVar18 + 0x10) & 1) == 0) &&\n                    (iVar17 = bfd_link_hash_lookup\n                                        (DAT_001d0400,*(undefined4 *)(**(int **)*puVar18 + 4),0,0,1)\n                    , iVar17 != 0)) && (*(char *)(iVar17 + 0xc) == '\x03')) {\n                  puVar2 = *(undefined4 **)(*(int *)(iVar17 + 0x14) + 0xac);\n                  puVar8 = (undefined4 *)puVar2[0x23];\n                  if (puVar8 == (undefined4 *)0x0) {\n                    puVar8 = puVar2;\n                  }\n                  pcVar12 = (char *)*puVar8;\n                  iVar17 = filename_cmp(**(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c),pcVar12)\n                  ;\n                  if (iVar17 != 0) {\n                    sVar9 = strlen(pcVar12);\n                    pcVar10 = (char *)xmalloc(sVar9 + 1);\n                    strcpy(pcVar10,pcVar12);\n                    **(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c) = pcVar10;\n                  }\n                }\n                puVar18 = puVar18 + 1;\n              } while (puVar7 + iVar6 != puVar18);\n            }\n            free(puVar7);\n            local_38 = (undefined4 *)local_38[3];\n            if (local_38 == (undefined4 *)0x0) break;\n            iVar6 = *(int *)(local_40 + 0x10);\n          }\n        }\n      }\n      local_40 = *(int *)(local_40 + 0x18);\n    } while (local_40 != 0);\n    local_50 = DAT_001cf6bc;\n    if (DAT_001cf6bc != 0) {\n      bVar16 = false;\n      local_40 = 0;\n      do {\n        iVar6 = (*(undefined4 **)(local_50 + 0x10))[0x23];\n        if (iVar6 != 0) {\n          pcVar12 = strrchr((char *)**(undefined4 **)(local_50 + 0x10),0x2e);\n          iVar17 = local_50;\n          if (iVar6 == local_40) {\n            if (!bVar16) goto LAB_00056b08;\n          }\n          else {\n            while ((iVar15 = local_50, local_40 = iVar6, pcVar12 == (char *)0x0 ||\n                   (iVar13 = filename_cmp(pcVar12,".dll"), iVar13 != 0))) {\n              iVar17 = *(int *)(iVar17 + 0x18);\n              if (iVar17 == 0) {\n                local_50 = *(int *)(local_50 + 0x18);\n                bVar16 = false;\n                goto joined_r0x00056b15;\n              }\n              if (iVar6 != (*(undefined4 **)(iVar17 + 0x10))[0x23]) break;\n              pcVar12 = strrchr((char *)**(undefined4 **)(iVar17 + 0x10),0x2e);\n            }\n            do {\n              if (iVar6 != (*(undefined4 **)(iVar15 + 0x10))[0x23]) break;\n              pcVar12 = (char *)**(undefined4 **)(iVar15 + 0x10);\n              pcVar10 = strrchr(pcVar12,0x2e);\n              if (pcVar10 == (char *)0x0) {\nLAB_00056d20:\n                iVar13 = filename_cmp(**(undefined4 **)(iVar17 + 0x10),pcVar12);\n                if (iVar13 != 0) {\n                  bVar16 = false;\n                  goto LAB_00056b08;\n                }\n              }\n              else {\n                iVar13 = filename_cmp(pcVar10,&DAT_00192ed1);\n                if (iVar13 != 0) {\n                  pcVar12 = (char *)**(undefined4 **)(iVar15 + 0x10);\n                  goto LAB_00056d20;\n                }\n              }\n              piVar20 = (int *)(iVar15 + 0x18);\n              iVar15 = *piVar20;\n            } while (*piVar20 != 0);\n            pcVar12 = strrchr((char *)**(undefined4 **)(local_50 + 0x10),0x2e);\n          }\n          bVar16 = true;\n          iVar6 = filename_cmp(pcVar12,".dll");\n          if (iVar6 == 0) {\n            puVar7 = (undefined4 *)(*(undefined4 **)(local_50 + 0x10))[0x18];\n            if (puVar7 == (undefined4 *)0x0) {\n              iVar6 = 99;\n            }\n            else {\n              iVar17 = 0;\n              bVar24 = true;\n              bVar16 = false;\n              do {\n                bVar22 = false;\n                iVar6 = 9;\n                pbVar19 = (byte *)*puVar7;\n                pbVar21 = (byte *)".idata$2";\n                do {\n                  if (iVar6 == 0) break;\n                  iVar6 = iVar6 + -1;\n                  bVar22 = *pbVar19 < *pbVar21;\n                  bVar24 = *pbVar19 == *pbVar21;\n                  pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n                  pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n                } while (bVar24);\n                if ((!bVar22 && !bVar24) == bVar22) {\n                  bVar16 = true;\n                }\n                iVar17 = iVar17 + puVar7[0x19];\n                puVar7 = (undefined4 *)puVar7[3];\n                bVar24 = puVar7 == (undefined4 *)0x0;\n              } while (!bVar24);\n              iVar6 = 0x61;\n              if (!bVar16) {\n                iVar6 = (iVar17 < 1) + 0x62;\n              }\n            }\n            sVar9 = strlen((char *)**(undefined4 **)(local_50 + 0x10));\n            pcVar12 = (char *)xmalloc(sVar9 + 3);\n            sprintf(pcVar12,"%s.%c",**(undefined4 **)(local_50 + 0x10),iVar6);\n            **(undefined4 **)(local_50 + 0x10) = pcVar12;\n            sVar9 = strlen(*(char **)(local_50 + 8));\n            pcVar12 = (char *)xmalloc(sVar9 + 3);\n            sprintf(pcVar12,"%s.%c",*(undefined4 *)(local_50 + 8),iVar6);\n            *(char **)(local_50 + 8) = pcVar12;\n            bVar16 = true;\n          }\n        }\nLAB_00056b08:\n        local_50 = *(int *)(local_50 + 0x18);\njoined_r0x00056b15:\n      } while (local_50 != 0);\n      local_4c = DAT_001cf6bc;\n      if (DAT_001cf6bc != 0) {\n        do {\n          iVar6 = *(int *)(local_4c + 0x10);\n          if ((*(int *)(iVar6 + 0x8c) != 0) &&\n             (puVar7 = *(undefined4 **)(iVar6 + 0x60), puVar7 != (undefined4 *)0x0)) {\n            puVar18 = (undefined4 *)0x0;\n            bVar16 = false;\n            bVar24 = true;\n            do {\n              bVar22 = false;\n              iVar17 = 7;\n              pbVar19 = (byte *)*puVar7;\n              pbVar21 = (byte *)".idata$";\n              do {\n                if (iVar17 == 0) break;\n                iVar17 = iVar17 + -1;\n                bVar22 = *pbVar19 < *pbVar21;\n                bVar24 = *pbVar19 == *pbVar21;\n                pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n                pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n              } while (bVar24);\n              if ((!bVar22 && !bVar24) == bVar22) {\n                bVar16 = true;\n              }\n              if (((*(byte *)(puVar7 + 5) & 0x10) != 0) && (puVar7[0x19] != 0)) {\n                puVar18 = puVar7;\n              }\n              puVar7 = (undefined4 *)puVar7[3];\n              bVar24 = puVar7 == (undefined4 *)0x0;\n            } while (!bVar24);\n            if ((puVar18 != (undefined4 *)0x0) && (bVar16)) {\n              iVar6 = bfd_generic_link_read_symbols(iVar6);\n              if (iVar6 == 0) {\nLAB_000570af:\n                uVar11 = *(undefined4 *)(local_4c + 0x10);\n                uVar14 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n                FUN_00034d20(uVar14,uVar11);\n                return;\n              }\n              piVar20 = *(int **)(*(int *)(local_4c + 0x10) + 0x78);\n              iVar6 = *(int *)(*(int *)(local_4c + 0x10) + 0x7c);\n              if (0 < iVar6) {\n                piVar1 = piVar20 + iVar6;\n                do {\n                  if ((((*(int *)(*(int *)(*piVar20 + 0x14) + 4) == puVar18[1]) &&\n                       (iVar6 = bfd_link_hash_lookup\n                                          (DAT_001d0400,*(undefined4 *)(*piVar20 + 4),0,0,1),\n                       iVar6 != 0)) && (*(char *)(iVar6 + 0xc) == '\x03')) &&\n                     ((*(int *)(iVar6 + 0x10) == 0 && (*(int *)(DAT_001d0400 + 0x20) != iVar6)))) {\n                    puVar18[5] = puVar18[5] | 0x8000;\n                  }\n                  piVar20 = piVar20 + 1;\n                } while (piVar1 != piVar20);\n              }\n            }\n          }\n          local_4c = *(int *)(local_4c + 0x18);\n        } while (local_4c != 0);\n      }\n    }\n  }\n  return;\n}" { (declaration "int *piVar1;" primitive_type (pointer_declarator "*piVar1" * identifier) ;) (declaration "undefined4 *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "byte bVar3;" type_identifier identifier ;) (declaration "void *pvVar4;" primitive_type (pointer_declarator "*pvVar4" * identifier) ;) (declaration "byte bVar5;" type_identifier identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "undefined4 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "undefined4 *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "size_t sVar9;" primitive_type identifier ;) (declaration "char *pcVar10;" primitive_type (pointer_declarator "*pcVar10" * identifier) ;) (declaration "undefined4 uVar11;" type_identifier identifier ;) (declaration "char *pcVar12;" primitive_type (pointer_declarator "*pcVar12" * identifier) ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "undefined4 uVar14;" type_identifier identifier ;) (declaration "int iVar15;" primitive_type identifier ;) (declaration "bool bVar16;" primitive_type identifier ;) (declaration "int iVar17;" primitive_type identifier ;) (declaration "undefined4 *puVar18;" type_identifier (pointer_declarator "*puVar18" * identifier) ;) (declaration "byte *pbVar19;" type_identifier (pointer_declarator "*pbVar19" * identifier) ;) (declaration "int *piVar20;" primitive_type (pointer_declarator "*piVar20" * identifier) ;) (declaration "byte *pbVar21;" type_identifier (pointer_declarator "*pbVar21" * identifier) ;) (declaration "bool bVar22;" primitive_type identifier ;) (declaration "bool bVar23;" primitive_type identifier ;) (declaration "bool bVar24;" primitive_type identifier ;) (declaration "byte bVar25;" type_identifier identifier ;) (declaration "int local_50;" primitive_type identifier ;) (declaration "int local_4c;" primitive_type identifier ;) (declaration "int local_40;" primitive_type identifier ;) (declaration "undefined4 *local_38;" type_identifier (pointer_declarator "*local_38" * identifier) ;) (declaration "int local_20 [3];" primitive_type (array_declarator "local_20 [3]" identifier [ number_literal ]) ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "bVar25 = 0;" (assignment_expression "bVar25 = 0" identifier = number_literal) ;) (expression_statement "uStack_14 = 0x56659;" (assignment_expression "uStack_14 = 0x56659" identifier = number_literal) ;) (expression_statement "FUN_00033940();" (call_expression "FUN_00033940()" identifier (argument_list "()" ( ))) ;) (if_statement "if (DAT_001d01fc == 0) {\nLAB_00056682:\n    puVar7 = DAT_001d041c;\n    if (DAT_001cff9c != (void *)0x0) {\n      for (; puVar7 != (undefined4 *)0x0; puVar7 = (undefined4 *)puVar7[0x27]) {\n        if (*(int *)(puVar7[1] + 4) == 2) {\n          iVar6 = FUN_00038960(DAT_001cff9c);\n          if (iVar6 == 0) {\n            pcVar12 = "%P: warning: unrecognized --build-id style ignored\n";\n          }\n          else {\n            iVar17 = bfd_make_section_anyway_with_flags\n                               (puVar7,".buildid",\n                                "*/\n  .debug_aranges  0 : { *(.debug_aranges) }\n  .debug_pubnames 0 : { *(.debug_pubnames) }\n  /* DWARF 2 */\n  .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }\n  .debug_abbrev   0 : { *(.debug_abbrev) }\n  .debug_line     0 : { *(.debug_line .debug_line.* .debug_line_end ) }\n  .debug_frame    0 : { *(.debug_frame) }\n  .debug_str      0 : { *(.debug_str) }\n  .debug_loc      0 : { *(.debug_loc) }\n  .debug_macinfo  0 : { *(.debug_macinfo) }\n  /* SGI/MIPS DWARF 2 extensions */\n  .debug_weaknames 0 : { *(.debug_weaknames) }\n  .debug_funcnames 0 : { *(.debug_funcnames) }\n  .debug_typenames 0 : { *(.debug_typenames) }\n  .debug_varnames  0 : { *(.debug_varnames) }\n  /* DWARF 3 */\n  .debug_pubtypes 0 : { *(.debug_pubtypes) }\n  .debug_ranges   0 : { *(.debug_ranges) }\n  /* DWARF Extension.  */\n  .debug_macro    0 : { *(.debug_macro) }\n  .debug_addr     0 : { *(.debug_addr) }\n  .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) }\n  /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) }\n}\n\n"\n                               );\n            iVar6 = DAT_001d0414;\n            if (iVar17 != 0) {\n              iVar15 = *(int *)(DAT_001d0414 + 0xa0);\n              *(code **)(iVar15 + 0x1dc) = FUN_00055c40;\n              pvVar4 = DAT_001cff9c;\n              iVar13 = *(int *)(iVar15 + 0x58);\n              *(int *)(iVar15 + 0x1e4) = iVar17;\n              *(void **)(iVar15 + 0x1e0) = pvVar4;\n              *(undefined4 *)(iVar17 + 0x2c) = 0x35;\n              *(undefined4 *)(iVar17 + 0x30) = 0;\n              goto joined_r0x00056729;\n            }\n            pcVar12 = "%P: warning: cannot create .buildid section, --build-id ignored\n";\n          }\n          uVar11 = dcgettext(0,pcVar12,5);\n          FUN_00034d20(uVar11);\n          break;\n        }\n      }\nLAB_00056a59:\n      free(DAT_001cff9c);\n      DAT_001cff9c = (void *)0x0;\n    }\n  }\n  else {\n    printf("%s()\n","gld_i386pe_after_open");\n    for (iVar6 = *(int *)(DAT_001d0400 + 0x1c); iVar6 != 0; iVar6 = *(int *)(iVar6 + 0x10)) {\n      printf("-%s\n",*(undefined4 *)(iVar6 + 4));\n    }\n    bfd_hash_traverse(DAT_001d0400,FUN_00055b20,0);\n    puVar7 = DAT_001d041c;\n    if (DAT_001d041c != (undefined4 *)0x0) {\n      do {\n        printf("*%s\n",*puVar7);\n        puVar18 = puVar7 + 0x27;\n        puVar7 = (undefined4 *)*puVar18;\n      } while ((undefined4 *)*puVar18 != (undefined4 *)0x0);\n      goto LAB_00056682;\n    }\n    if (DAT_001cff9c != (void *)0x0) goto LAB_00056a59;\n  }" if (parenthesized_expression "(DAT_001d01fc == 0)" ( (binary_expression "DAT_001d01fc == 0" identifier == number_literal) )) (compound_statement "{\nLAB_00056682:\n    puVar7 = DAT_001d041c;\n    if (DAT_001cff9c != (void *)0x0) {\n      for (; puVar7 != (undefined4 *)0x0; puVar7 = (undefined4 *)puVar7[0x27]) {\n        if (*(int *)(puVar7[1] + 4) == 2) {\n          iVar6 = FUN_00038960(DAT_001cff9c);\n          if (iVar6 == 0) {\n            pcVar12 = "%P: warning: unrecognized --build-id style ignored\n";\n          }\n          else {\n            iVar17 = bfd_make_section_anyway_with_flags\n                               (puVar7,".buildid",\n                                "*/\n  .debug_aranges  0 : { *(.debug_aranges) }\n  .debug_pubnames 0 : { *(.debug_pubnames) }\n  /* DWARF 2 */\n  .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }\n  .debug_abbrev   0 : { *(.debug_abbrev) }\n  .debug_line     0 : { *(.debug_line .debug_line.* .debug_line_end ) }\n  .debug_frame    0 : { *(.debug_frame) }\n  .debug_str      0 : { *(.debug_str) }\n  .debug_loc      0 : { *(.debug_loc) }\n  .debug_macinfo  0 : { *(.debug_macinfo) }\n  /* SGI/MIPS DWARF 2 extensions */\n  .debug_weaknames 0 : { *(.debug_weaknames) }\n  .debug_funcnames 0 : { *(.debug_funcnames) }\n  .debug_typenames 0 : { *(.debug_typenames) }\n  .debug_varnames  0 : { *(.debug_varnames) }\n  /* DWARF 3 */\n  .debug_pubtypes 0 : { *(.debug_pubtypes) }\n  .debug_ranges   0 : { *(.debug_ranges) }\n  /* DWARF Extension.  */\n  .debug_macro    0 : { *(.debug_macro) }\n  .debug_addr     0 : { *(.debug_addr) }\n  .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) }\n  /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) }\n}\n\n"\n                               );\n            iVar6 = DAT_001d0414;\n            if (iVar17 != 0) {\n              iVar15 = *(int *)(DAT_001d0414 + 0xa0);\n              *(code **)(iVar15 + 0x1dc) = FUN_00055c40;\n              pvVar4 = DAT_001cff9c;\n              iVar13 = *(int *)(iVar15 + 0x58);\n              *(int *)(iVar15 + 0x1e4) = iVar17;\n              *(void **)(iVar15 + 0x1e0) = pvVar4;\n              *(undefined4 *)(iVar17 + 0x2c) = 0x35;\n              *(undefined4 *)(iVar17 + 0x30) = 0;\n              goto joined_r0x00056729;\n            }\n            pcVar12 = "%P: warning: cannot create .buildid section, --build-id ignored\n";\n          }\n          uVar11 = dcgettext(0,pcVar12,5);\n          FUN_00034d20(uVar11);\n          break;\n        }\n      }\nLAB_00056a59:\n      free(DAT_001cff9c);\n      DAT_001cff9c = (void *)0x0;\n    }\n  }" { (labeled_statement "LAB_00056682:\n    puVar7 = DAT_001d041c;" statement_identifier : (expression_statement "puVar7 = DAT_001d041c;" (assignment_expression "puVar7 = DAT_001d041c" identifier = identifier) ;)) (if_statement "if (DAT_001cff9c != (void *)0x0) {\n      for (; puVar7 != (undefined4 *)0x0; puVar7 = (undefined4 *)puVar7[0x27]) {\n        if (*(int *)(puVar7[1] + 4) == 2) {\n          iVar6 = FUN_00038960(DAT_001cff9c);\n          if (iVar6 == 0) {\n            pcVar12 = "%P: warning: unrecognized --build-id style ignored\n";\n          }\n          else {\n            iVar17 = bfd_make_section_anyway_with_flags\n                               (puVar7,".buildid",\n                                "*/\n  .debug_aranges  0 : { *(.debug_aranges) }\n  .debug_pubnames 0 : { *(.debug_pubnames) }\n  /* DWARF 2 */\n  .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }\n  .debug_abbrev   0 : { *(.debug_abbrev) }\n  .debug_line     0 : { *(.debug_line .debug_line.* .debug_line_end ) }\n  .debug_frame    0 : { *(.debug_frame) }\n  .debug_str      0 : { *(.debug_str) }\n  .debug_loc      0 : { *(.debug_loc) }\n  .debug_macinfo  0 : { *(.debug_macinfo) }\n  /* SGI/MIPS DWARF 2 extensions */\n  .debug_weaknames 0 : { *(.debug_weaknames) }\n  .debug_funcnames 0 : { *(.debug_funcnames) }\n  .debug_typenames 0 : { *(.debug_typenames) }\n  .debug_varnames  0 : { *(.debug_varnames) }\n  /* DWARF 3 */\n  .debug_pubtypes 0 : { *(.debug_pubtypes) }\n  .debug_ranges   0 : { *(.debug_ranges) }\n  /* DWARF Extension.  */\n  .debug_macro    0 : { *(.debug_macro) }\n  .debug_addr     0 : { *(.debug_addr) }\n  .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) }\n  /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) }\n}\n\n"\n                               );\n            iVar6 = DAT_001d0414;\n            if (iVar17 != 0) {\n              iVar15 = *(int *)(DAT_001d0414 + 0xa0);\n              *(code **)(iVar15 + 0x1dc) = FUN_00055c40;\n              pvVar4 = DAT_001cff9c;\n              iVar13 = *(int *)(iVar15 + 0x58);\n              *(int *)(iVar15 + 0x1e4) = iVar17;\n              *(void **)(iVar15 + 0x1e0) = pvVar4;\n              *(undefined4 *)(iVar17 + 0x2c) = 0x35;\n              *(undefined4 *)(iVar17 + 0x30) = 0;\n              goto joined_r0x00056729;\n            }\n            pcVar12 = "%P: warning: cannot create .buildid section, --build-id ignored\n";\n          }\n          uVar11 = dcgettext(0,pcVar12,5);\n          FUN_00034d20(uVar11);\n          break;\n        }\n      }\nLAB_00056a59:\n      free(DAT_001cff9c);\n      DAT_001cff9c = (void *)0x0;\n    }" if (parenthesized_expression "(DAT_001cff9c != (void *)0x0)" ( (binary_expression "DAT_001cff9c != (void *)0x0" identifier != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      for (; puVar7 != (undefined4 *)0x0; puVar7 = (undefined4 *)puVar7[0x27]) {\n        if (*(int *)(puVar7[1] + 4) == 2) {\n          iVar6 = FUN_00038960(DAT_001cff9c);\n          if (iVar6 == 0) {\n            pcVar12 = "%P: warning: unrecognized --build-id style ignored\n";\n          }\n          else {\n            iVar17 = bfd_make_section_anyway_with_flags\n                               (puVar7,".buildid",\n                                "*/\n  .debug_aranges  0 : { *(.debug_aranges) }\n  .debug_pubnames 0 : { *(.debug_pubnames) }\n  /* DWARF 2 */\n  .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }\n  .debug_abbrev   0 : { *(.debug_abbrev) }\n  .debug_line     0 : { *(.debug_line .debug_line.* .debug_line_end ) }\n  .debug_frame    0 : { *(.debug_frame) }\n  .debug_str      0 : { *(.debug_str) }\n  .debug_loc      0 : { *(.debug_loc) }\n  .debug_macinfo  0 : { *(.debug_macinfo) }\n  /* SGI/MIPS DWARF 2 extensions */\n  .debug_weaknames 0 : { *(.debug_weaknames) }\n  .debug_funcnames 0 : { *(.debug_funcnames) }\n  .debug_typenames 0 : { *(.debug_typenames) }\n  .debug_varnames  0 : { *(.debug_varnames) }\n  /* DWARF 3 */\n  .debug_pubtypes 0 : { *(.debug_pubtypes) }\n  .debug_ranges   0 : { *(.debug_ranges) }\n  /* DWARF Extension.  */\n  .debug_macro    0 : { *(.debug_macro) }\n  .debug_addr     0 : { *(.debug_addr) }\n  .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) }\n  /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) }\n}\n\n"\n                               );\n            iVar6 = DAT_001d0414;\n            if (iVar17 != 0) {\n              iVar15 = *(int *)(DAT_001d0414 + 0xa0);\n              *(code **)(iVar15 + 0x1dc) = FUN_00055c40;\n              pvVar4 = DAT_001cff9c;\n              iVar13 = *(int *)(iVar15 + 0x58);\n              *(int *)(iVar15 + 0x1e4) = iVar17;\n              *(void **)(iVar15 + 0x1e0) = pvVar4;\n              *(undefined4 *)(iVar17 + 0x2c) = 0x35;\n              *(undefined4 *)(iVar17 + 0x30) = 0;\n              goto joined_r0x00056729;\n            }\n            pcVar12 = "%P: warning: cannot create .buildid section, --build-id ignored\n";\n          }\n          uVar11 = dcgettext(0,pcVar12,5);\n          FUN_00034d20(uVar11);\n          break;\n        }\n      }\nLAB_00056a59:\n      free(DAT_001cff9c);\n      DAT_001cff9c = (void *)0x0;\n    }" { (for_statement "for (; puVar7 != (undefined4 *)0x0; puVar7 = (undefined4 *)puVar7[0x27]) {\n        if (*(int *)(puVar7[1] + 4) == 2) {\n          iVar6 = FUN_00038960(DAT_001cff9c);\n          if (iVar6 == 0) {\n            pcVar12 = "%P: warning: unrecognized --build-id style ignored\n";\n          }\n          else {\n            iVar17 = bfd_make_section_anyway_with_flags\n                               (puVar7,".buildid",\n                                "*/\n  .debug_aranges  0 : { *(.debug_aranges) }\n  .debug_pubnames 0 : { *(.debug_pubnames) }\n  /* DWARF 2 */\n  .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }\n  .debug_abbrev   0 : { *(.debug_abbrev) }\n  .debug_line     0 : { *(.debug_line .debug_line.* .debug_line_end ) }\n  .debug_frame    0 : { *(.debug_frame) }\n  .debug_str      0 : { *(.debug_str) }\n  .debug_loc      0 : { *(.debug_loc) }\n  .debug_macinfo  0 : { *(.debug_macinfo) }\n  /* SGI/MIPS DWARF 2 extensions */\n  .debug_weaknames 0 : { *(.debug_weaknames) }\n  .debug_funcnames 0 : { *(.debug_funcnames) }\n  .debug_typenames 0 : { *(.debug_typenames) }\n  .debug_varnames  0 : { *(.debug_varnames) }\n  /* DWARF 3 */\n  .debug_pubtypes 0 : { *(.debug_pubtypes) }\n  .debug_ranges   0 : { *(.debug_ranges) }\n  /* DWARF Extension.  */\n  .debug_macro    0 : { *(.debug_macro) }\n  .debug_addr     0 : { *(.debug_addr) }\n  .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) }\n  /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) }\n}\n\n"\n                               );\n            iVar6 = DAT_001d0414;\n            if (iVar17 != 0) {\n              iVar15 = *(int *)(DAT_001d0414 + 0xa0);\n              *(code **)(iVar15 + 0x1dc) = FUN_00055c40;\n              pvVar4 = DAT_001cff9c;\n              iVar13 = *(int *)(iVar15 + 0x58);\n              *(int *)(iVar15 + 0x1e4) = iVar17;\n              *(void **)(iVar15 + 0x1e0) = pvVar4;\n              *(undefined4 *)(iVar17 + 0x2c) = 0x35;\n              *(undefined4 *)(iVar17 + 0x30) = 0;\n              goto joined_r0x00056729;\n            }\n            pcVar12 = "%P: warning: cannot create .buildid section, --build-id ignored\n";\n          }\n          uVar11 = dcgettext(0,pcVar12,5);\n          FUN_00034d20(uVar11);\n          break;\n        }\n      }" for ( ; (binary_expression "puVar7 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "puVar7 = (undefined4 *)puVar7[0x27]" identifier = (cast_expression "(undefined4 *)puVar7[0x27]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar7[0x27]" identifier [ number_literal ]))) ) (compound_statement "{\n        if (*(int *)(puVar7[1] + 4) == 2) {\n          iVar6 = FUN_00038960(DAT_001cff9c);\n          if (iVar6 == 0) {\n            pcVar12 = "%P: warning: unrecognized --build-id style ignored\n";\n          }\n          else {\n            iVar17 = bfd_make_section_anyway_with_flags\n                               (puVar7,".buildid",\n                                "*/\n  .debug_aranges  0 : { *(.debug_aranges) }\n  .debug_pubnames 0 : { *(.debug_pubnames) }\n  /* DWARF 2 */\n  .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }\n  .debug_abbrev   0 : { *(.debug_abbrev) }\n  .debug_line     0 : { *(.debug_line .debug_line.* .debug_line_end ) }\n  .debug_frame    0 : { *(.debug_frame) }\n  .debug_str      0 : { *(.debug_str) }\n  .debug_loc      0 : { *(.debug_loc) }\n  .debug_macinfo  0 : { *(.debug_macinfo) }\n  /* SGI/MIPS DWARF 2 extensions */\n  .debug_weaknames 0 : { *(.debug_weaknames) }\n  .debug_funcnames 0 : { *(.debug_funcnames) }\n  .debug_typenames 0 : { *(.debug_typenames) }\n  .debug_varnames  0 : { *(.debug_varnames) }\n  /* DWARF 3 */\n  .debug_pubtypes 0 : { *(.debug_pubtypes) }\n  .debug_ranges   0 : { *(.debug_ranges) }\n  /* DWARF Extension.  */\n  .debug_macro    0 : { *(.debug_macro) }\n  .debug_addr     0 : { *(.debug_addr) }\n  .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) }\n  /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) }\n}\n\n"\n                               );\n            iVar6 = DAT_001d0414;\n            if (iVar17 != 0) {\n              iVar15 = *(int *)(DAT_001d0414 + 0xa0);\n              *(code **)(iVar15 + 0x1dc) = FUN_00055c40;\n              pvVar4 = DAT_001cff9c;\n              iVar13 = *(int *)(iVar15 + 0x58);\n              *(int *)(iVar15 + 0x1e4) = iVar17;\n              *(void **)(iVar15 + 0x1e0) = pvVar4;\n              *(undefined4 *)(iVar17 + 0x2c) = 0x35;\n              *(undefined4 *)(iVar17 + 0x30) = 0;\n              goto joined_r0x00056729;\n            }\n            pcVar12 = "%P: warning: cannot create .buildid section, --build-id ignored\n";\n          }\n          uVar11 = dcgettext(0,pcVar12,5);\n          FUN_00034d20(uVar11);\n          break;\n        }\n      }" { (if_statement "if (*(int *)(puVar7[1] + 4) == 2) {\n          iVar6 = FUN_00038960(DAT_001cff9c);\n          if (iVar6 == 0) {\n            pcVar12 = "%P: warning: unrecognized --build-id style ignored\n";\n          }\n          else {\n            iVar17 = bfd_make_section_anyway_with_flags\n                               (puVar7,".buildid",\n                                "*/\n  .debug_aranges  0 : { *(.debug_aranges) }\n  .debug_pubnames 0 : { *(.debug_pubnames) }\n  /* DWARF 2 */\n  .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }\n  .debug_abbrev   0 : { *(.debug_abbrev) }\n  .debug_line     0 : { *(.debug_line .debug_line.* .debug_line_end ) }\n  .debug_frame    0 : { *(.debug_frame) }\n  .debug_str      0 : { *(.debug_str) }\n  .debug_loc      0 : { *(.debug_loc) }\n  .debug_macinfo  0 : { *(.debug_macinfo) }\n  /* SGI/MIPS DWARF 2 extensions */\n  .debug_weaknames 0 : { *(.debug_weaknames) }\n  .debug_funcnames 0 : { *(.debug_funcnames) }\n  .debug_typenames 0 : { *(.debug_typenames) }\n  .debug_varnames  0 : { *(.debug_varnames) }\n  /* DWARF 3 */\n  .debug_pubtypes 0 : { *(.debug_pubtypes) }\n  .debug_ranges   0 : { *(.debug_ranges) }\n  /* DWARF Extension.  */\n  .debug_macro    0 : { *(.debug_macro) }\n  .debug_addr     0 : { *(.debug_addr) }\n  .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) }\n  /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) }\n}\n\n"\n                               );\n            iVar6 = DAT_001d0414;\n            if (iVar17 != 0) {\n              iVar15 = *(int *)(DAT_001d0414 + 0xa0);\n              *(code **)(iVar15 + 0x1dc) = FUN_00055c40;\n              pvVar4 = DAT_001cff9c;\n              iVar13 = *(int *)(iVar15 + 0x58);\n              *(int *)(iVar15 + 0x1e4) = iVar17;\n              *(void **)(iVar15 + 0x1e0) = pvVar4;\n              *(undefined4 *)(iVar17 + 0x2c) = 0x35;\n              *(undefined4 *)(iVar17 + 0x30) = 0;\n              goto joined_r0x00056729;\n            }\n            pcVar12 = "%P: warning: cannot create .buildid section, --build-id ignored\n";\n          }\n          uVar11 = dcgettext(0,pcVar12,5);\n          FUN_00034d20(uVar11);\n          break;\n        }" if (parenthesized_expression "(*(int *)(puVar7[1] + 4) == 2)" ( (binary_expression "*(int *)(puVar7[1] + 4) == 2" (pointer_expression "*(int *)(puVar7[1] + 4)" * (cast_expression "(int *)(puVar7[1] + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7[1] + 4)" ( (binary_expression "puVar7[1] + 4" (subscript_expression "puVar7[1]" identifier [ number_literal ]) + number_literal) )))) == number_literal) )) (compound_statement "{\n          iVar6 = FUN_00038960(DAT_001cff9c);\n          if (iVar6 == 0) {\n            pcVar12 = "%P: warning: unrecognized --build-id style ignored\n";\n          }\n          else {\n            iVar17 = bfd_make_section_anyway_with_flags\n                               (puVar7,".buildid",\n                                "*/\n  .debug_aranges  0 : { *(.debug_aranges) }\n  .debug_pubnames 0 : { *(.debug_pubnames) }\n  /* DWARF 2 */\n  .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }\n  .debug_abbrev   0 : { *(.debug_abbrev) }\n  .debug_line     0 : { *(.debug_line .debug_line.* .debug_line_end ) }\n  .debug_frame    0 : { *(.debug_frame) }\n  .debug_str      0 : { *(.debug_str) }\n  .debug_loc      0 : { *(.debug_loc) }\n  .debug_macinfo  0 : { *(.debug_macinfo) }\n  /* SGI/MIPS DWARF 2 extensions */\n  .debug_weaknames 0 : { *(.debug_weaknames) }\n  .debug_funcnames 0 : { *(.debug_funcnames) }\n  .debug_typenames 0 : { *(.debug_typenames) }\n  .debug_varnames  0 : { *(.debug_varnames) }\n  /* DWARF 3 */\n  .debug_pubtypes 0 : { *(.debug_pubtypes) }\n  .debug_ranges   0 : { *(.debug_ranges) }\n  /* DWARF Extension.  */\n  .debug_macro    0 : { *(.debug_macro) }\n  .debug_addr     0 : { *(.debug_addr) }\n  .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) }\n  /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) }\n}\n\n"\n                               );\n            iVar6 = DAT_001d0414;\n            if (iVar17 != 0) {\n              iVar15 = *(int *)(DAT_001d0414 + 0xa0);\n              *(code **)(iVar15 + 0x1dc) = FUN_00055c40;\n              pvVar4 = DAT_001cff9c;\n              iVar13 = *(int *)(iVar15 + 0x58);\n              *(int *)(iVar15 + 0x1e4) = iVar17;\n              *(void **)(iVar15 + 0x1e0) = pvVar4;\n              *(undefined4 *)(iVar17 + 0x2c) = 0x35;\n              *(undefined4 *)(iVar17 + 0x30) = 0;\n              goto joined_r0x00056729;\n            }\n            pcVar12 = "%P: warning: cannot create .buildid section, --build-id ignored\n";\n          }\n          uVar11 = dcgettext(0,pcVar12,5);\n          FUN_00034d20(uVar11);\n          break;\n        }" { (expression_statement "iVar6 = FUN_00038960(DAT_001cff9c);" (assignment_expression "iVar6 = FUN_00038960(DAT_001cff9c)" identifier = (call_expression "FUN_00038960(DAT_001cff9c)" identifier (argument_list "(DAT_001cff9c)" ( identifier )))) ;) (if_statement "if (iVar6 == 0) {\n            pcVar12 = "%P: warning: unrecognized --build-id style ignored\n";\n          }\n          else {\n            iVar17 = bfd_make_section_anyway_with_flags\n                               (puVar7,".buildid",\n                                "*/\n  .debug_aranges  0 : { *(.debug_aranges) }\n  .debug_pubnames 0 : { *(.debug_pubnames) }\n  /* DWARF 2 */\n  .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }\n  .debug_abbrev   0 : { *(.debug_abbrev) }\n  .debug_line     0 : { *(.debug_line .debug_line.* .debug_line_end ) }\n  .debug_frame    0 : { *(.debug_frame) }\n  .debug_str      0 : { *(.debug_str) }\n  .debug_loc      0 : { *(.debug_loc) }\n  .debug_macinfo  0 : { *(.debug_macinfo) }\n  /* SGI/MIPS DWARF 2 extensions */\n  .debug_weaknames 0 : { *(.debug_weaknames) }\n  .debug_funcnames 0 : { *(.debug_funcnames) }\n  .debug_typenames 0 : { *(.debug_typenames) }\n  .debug_varnames  0 : { *(.debug_varnames) }\n  /* DWARF 3 */\n  .debug_pubtypes 0 : { *(.debug_pubtypes) }\n  .debug_ranges   0 : { *(.debug_ranges) }\n  /* DWARF Extension.  */\n  .debug_macro    0 : { *(.debug_macro) }\n  .debug_addr     0 : { *(.debug_addr) }\n  .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) }\n  /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) }\n}\n\n"\n                               );\n            iVar6 = DAT_001d0414;\n            if (iVar17 != 0) {\n              iVar15 = *(int *)(DAT_001d0414 + 0xa0);\n              *(code **)(iVar15 + 0x1dc) = FUN_00055c40;\n              pvVar4 = DAT_001cff9c;\n              iVar13 = *(int *)(iVar15 + 0x58);\n              *(int *)(iVar15 + 0x1e4) = iVar17;\n              *(void **)(iVar15 + 0x1e0) = pvVar4;\n              *(undefined4 *)(iVar17 + 0x2c) = 0x35;\n              *(undefined4 *)(iVar17 + 0x30) = 0;\n              goto joined_r0x00056729;\n            }\n            pcVar12 = "%P: warning: cannot create .buildid section, --build-id ignored\n";\n          }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n            pcVar12 = "%P: warning: unrecognized --build-id style ignored\n";\n          }" { (expression_statement "pcVar12 = "%P: warning: unrecognized --build-id style ignored\n";" (assignment_expression "pcVar12 = "%P: warning: unrecognized --build-id style ignored\n"" identifier = (string_literal ""%P: warning: unrecognized --build-id style ignored\n"" " string_content escape_sequence ")) ;) }) (else_clause "else {\n            iVar17 = bfd_make_section_anyway_with_flags\n                               (puVar7,".buildid",\n                                "*/\n  .debug_aranges  0 : { *(.debug_aranges) }\n  .debug_pubnames 0 : { *(.debug_pubnames) }\n  /* DWARF 2 */\n  .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }\n  .debug_abbrev   0 : { *(.debug_abbrev) }\n  .debug_line     0 : { *(.debug_line .debug_line.* .debug_line_end ) }\n  .debug_frame    0 : { *(.debug_frame) }\n  .debug_str      0 : { *(.debug_str) }\n  .debug_loc      0 : { *(.debug_loc) }\n  .debug_macinfo  0 : { *(.debug_macinfo) }\n  /* SGI/MIPS DWARF 2 extensions */\n  .debug_weaknames 0 : { *(.debug_weaknames) }\n  .debug_funcnames 0 : { *(.debug_funcnames) }\n  .debug_typenames 0 : { *(.debug_typenames) }\n  .debug_varnames  0 : { *(.debug_varnames) }\n  /* DWARF 3 */\n  .debug_pubtypes 0 : { *(.debug_pubtypes) }\n  .debug_ranges   0 : { *(.debug_ranges) }\n  /* DWARF Extension.  */\n  .debug_macro    0 : { *(.debug_macro) }\n  .debug_addr     0 : { *(.debug_addr) }\n  .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) }\n  /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) }\n}\n\n"\n                               );\n            iVar6 = DAT_001d0414;\n            if (iVar17 != 0) {\n              iVar15 = *(int *)(DAT_001d0414 + 0xa0);\n              *(code **)(iVar15 + 0x1dc) = FUN_00055c40;\n              pvVar4 = DAT_001cff9c;\n              iVar13 = *(int *)(iVar15 + 0x58);\n              *(int *)(iVar15 + 0x1e4) = iVar17;\n              *(void **)(iVar15 + 0x1e0) = pvVar4;\n              *(undefined4 *)(iVar17 + 0x2c) = 0x35;\n              *(undefined4 *)(iVar17 + 0x30) = 0;\n              goto joined_r0x00056729;\n            }\n            pcVar12 = "%P: warning: cannot create .buildid section, --build-id ignored\n";\n          }" else (compound_statement "{\n            iVar17 = bfd_make_section_anyway_with_flags\n                               (puVar7,".buildid",\n                                "*/\n  .debug_aranges  0 : { *(.debug_aranges) }\n  .debug_pubnames 0 : { *(.debug_pubnames) }\n  /* DWARF 2 */\n  .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }\n  .debug_abbrev   0 : { *(.debug_abbrev) }\n  .debug_line     0 : { *(.debug_line .debug_line.* .debug_line_end ) }\n  .debug_frame    0 : { *(.debug_frame) }\n  .debug_str      0 : { *(.debug_str) }\n  .debug_loc      0 : { *(.debug_loc) }\n  .debug_macinfo  0 : { *(.debug_macinfo) }\n  /* SGI/MIPS DWARF 2 extensions */\n  .debug_weaknames 0 : { *(.debug_weaknames) }\n  .debug_funcnames 0 : { *(.debug_funcnames) }\n  .debug_typenames 0 : { *(.debug_typenames) }\n  .debug_varnames  0 : { *(.debug_varnames) }\n  /* DWARF 3 */\n  .debug_pubtypes 0 : { *(.debug_pubtypes) }\n  .debug_ranges   0 : { *(.debug_ranges) }\n  /* DWARF Extension.  */\n  .debug_macro    0 : { *(.debug_macro) }\n  .debug_addr     0 : { *(.debug_addr) }\n  .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) }\n  /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) }\n}\n\n"\n                               );\n            iVar6 = DAT_001d0414;\n            if (iVar17 != 0) {\n              iVar15 = *(int *)(DAT_001d0414 + 0xa0);\n              *(code **)(iVar15 + 0x1dc) = FUN_00055c40;\n              pvVar4 = DAT_001cff9c;\n              iVar13 = *(int *)(iVar15 + 0x58);\n              *(int *)(iVar15 + 0x1e4) = iVar17;\n              *(void **)(iVar15 + 0x1e0) = pvVar4;\n              *(undefined4 *)(iVar17 + 0x2c) = 0x35;\n              *(undefined4 *)(iVar17 + 0x30) = 0;\n              goto joined_r0x00056729;\n            }\n            pcVar12 = "%P: warning: cannot create .buildid section, --build-id ignored\n";\n          }" { (expression_statement "iVar17 = bfd_make_section_anyway_with_flags\n                               (puVar7,".buildid",\n                                "*/\n  .debug_aranges  0 : { *(.debug_aranges) }\n  .debug_pubnames 0 : { *(.debug_pubnames) }\n  /* DWARF 2 */\n  .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }\n  .debug_abbrev   0 : { *(.debug_abbrev) }\n  .debug_line     0 : { *(.debug_line .debug_line.* .debug_line_end ) }\n  .debug_frame    0 : { *(.debug_frame) }\n  .debug_str      0 : { *(.debug_str) }\n  .debug_loc      0 : { *(.debug_loc) }\n  .debug_macinfo  0 : { *(.debug_macinfo) }\n  /* SGI/MIPS DWARF 2 extensions */\n  .debug_weaknames 0 : { *(.debug_weaknames) }\n  .debug_funcnames 0 : { *(.debug_funcnames) }\n  .debug_typenames 0 : { *(.debug_typenames) }\n  .debug_varnames  0 : { *(.debug_varnames) }\n  /* DWARF 3 */\n  .debug_pubtypes 0 : { *(.debug_pubtypes) }\n  .debug_ranges   0 : { *(.debug_ranges) }\n  /* DWARF Extension.  */\n  .debug_macro    0 : { *(.debug_macro) }\n  .debug_addr     0 : { *(.debug_addr) }\n  .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) }\n  /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) }\n}\n\n"\n                               );" (assignment_expression "iVar17 = bfd_make_section_anyway_with_flags\n                               (puVar7,".buildid",\n                                "*/\n  .debug_aranges  0 : { *(.debug_aranges) }\n  .debug_pubnames 0 : { *(.debug_pubnames) }\n  /* DWARF 2 */\n  .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }\n  .debug_abbrev   0 : { *(.debug_abbrev) }\n  .debug_line     0 : { *(.debug_line .debug_line.* .debug_line_end ) }\n  .debug_frame    0 : { *(.debug_frame) }\n  .debug_str      0 : { *(.debug_str) }\n  .debug_loc      0 : { *(.debug_loc) }\n  .debug_macinfo  0 : { *(.debug_macinfo) }\n  /* SGI/MIPS DWARF 2 extensions */\n  .debug_weaknames 0 : { *(.debug_weaknames) }\n  .debug_funcnames 0 : { *(.debug_funcnames) }\n  .debug_typenames 0 : { *(.debug_typenames) }\n  .debug_varnames  0 : { *(.debug_varnames) }\n  /* DWARF 3 */\n  .debug_pubtypes 0 : { *(.debug_pubtypes) }\n  .debug_ranges   0 : { *(.debug_ranges) }\n  /* DWARF Extension.  */\n  .debug_macro    0 : { *(.debug_macro) }\n  .debug_addr     0 : { *(.debug_addr) }\n  .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) }\n  /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) }\n}\n\n"\n                               )" identifier = (call_expression "bfd_make_section_anyway_with_flags\n                               (puVar7,".buildid",\n                                "*/\n  .debug_aranges  0 : { *(.debug_aranges) }\n  .debug_pubnames 0 : { *(.debug_pubnames) }\n  /* DWARF 2 */\n  .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }\n  .debug_abbrev   0 : { *(.debug_abbrev) }\n  .debug_line     0 : { *(.debug_line .debug_line.* .debug_line_end ) }\n  .debug_frame    0 : { *(.debug_frame) }\n  .debug_str      0 : { *(.debug_str) }\n  .debug_loc      0 : { *(.debug_loc) }\n  .debug_macinfo  0 : { *(.debug_macinfo) }\n  /* SGI/MIPS DWARF 2 extensions */\n  .debug_weaknames 0 : { *(.debug_weaknames) }\n  .debug_funcnames 0 : { *(.debug_funcnames) }\n  .debug_typenames 0 : { *(.debug_typenames) }\n  .debug_varnames  0 : { *(.debug_varnames) }\n  /* DWARF 3 */\n  .debug_pubtypes 0 : { *(.debug_pubtypes) }\n  .debug_ranges   0 : { *(.debug_ranges) }\n  /* DWARF Extension.  */\n  .debug_macro    0 : { *(.debug_macro) }\n  .debug_addr     0 : { *(.debug_addr) }\n  .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) }\n  /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) }\n}\n\n"\n                               )" identifier (argument_list "(puVar7,".buildid",\n                                "*/\n  .debug_aranges  0 : { *(.debug_aranges) }\n  .debug_pubnames 0 : { *(.debug_pubnames) }\n  /* DWARF 2 */\n  .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }\n  .debug_abbrev   0 : { *(.debug_abbrev) }\n  .debug_line     0 : { *(.debug_line .debug_line.* .debug_line_end ) }\n  .debug_frame    0 : { *(.debug_frame) }\n  .debug_str      0 : { *(.debug_str) }\n  .debug_loc      0 : { *(.debug_loc) }\n  .debug_macinfo  0 : { *(.debug_macinfo) }\n  /* SGI/MIPS DWARF 2 extensions */\n  .debug_weaknames 0 : { *(.debug_weaknames) }\n  .debug_funcnames 0 : { *(.debug_funcnames) }\n  .debug_typenames 0 : { *(.debug_typenames) }\n  .debug_varnames  0 : { *(.debug_varnames) }\n  /* DWARF 3 */\n  .debug_pubtypes 0 : { *(.debug_pubtypes) }\n  .debug_ranges   0 : { *(.debug_ranges) }\n  /* DWARF Extension.  */\n  .debug_macro    0 : { *(.debug_macro) }\n  .debug_addr     0 : { *(.debug_addr) }\n  .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) }\n  /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) }\n}\n\n"\n                               )" ( identifier , (string_literal "".buildid"" " string_content ") , (string_literal ""*/\n  .debug_aranges  0 : { *(.debug_aranges) }\n  .debug_pubnames 0 : { *(.debug_pubnames) }\n  /* DWARF 2 */\n  .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }\n  .debug_abbrev   0 : { *(.debug_abbrev) }\n  .debug_line     0 : { *(.debug_line .debug_line.* .debug_line_end ) }\n  .debug_frame    0 : { *(.debug_frame) }\n  .debug_str      0 : { *(.debug_str) }\n  .debug_loc      0 : { *(.debug_loc) }\n  .debug_macinfo  0 : { *(.debug_macinfo) }\n  /* SGI/MIPS DWARF 2 extensions */\n  .debug_weaknames 0 : { *(.debug_weaknames) }\n  .debug_funcnames 0 : { *(.debug_funcnames) }\n  .debug_typenames 0 : { *(.debug_typenames) }\n  .debug_varnames  0 : { *(.debug_varnames) }\n  /* DWARF 3 */\n  .debug_pubtypes 0 : { *(.debug_pubtypes) }\n  .debug_ranges   0 : { *(.debug_ranges) }\n  /* DWARF Extension.  */\n  .debug_macro    0 : { *(.debug_macro) }\n  .debug_addr     0 : { *(.debug_addr) }\n  .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) }\n  /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) }\n}\n\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence escape_sequence ") )))) ;) (expression_statement "iVar6 = DAT_001d0414;" (assignment_expression "iVar6 = DAT_001d0414" identifier = identifier) ;) (if_statement "if (iVar17 != 0) {\n              iVar15 = *(int *)(DAT_001d0414 + 0xa0);\n              *(code **)(iVar15 + 0x1dc) = FUN_00055c40;\n              pvVar4 = DAT_001cff9c;\n              iVar13 = *(int *)(iVar15 + 0x58);\n              *(int *)(iVar15 + 0x1e4) = iVar17;\n              *(void **)(iVar15 + 0x1e0) = pvVar4;\n              *(undefined4 *)(iVar17 + 0x2c) = 0x35;\n              *(undefined4 *)(iVar17 + 0x30) = 0;\n              goto joined_r0x00056729;\n            }" if (parenthesized_expression "(iVar17 != 0)" ( (binary_expression "iVar17 != 0" identifier != number_literal) )) (compound_statement "{\n              iVar15 = *(int *)(DAT_001d0414 + 0xa0);\n              *(code **)(iVar15 + 0x1dc) = FUN_00055c40;\n              pvVar4 = DAT_001cff9c;\n              iVar13 = *(int *)(iVar15 + 0x58);\n              *(int *)(iVar15 + 0x1e4) = iVar17;\n              *(void **)(iVar15 + 0x1e0) = pvVar4;\n              *(undefined4 *)(iVar17 + 0x2c) = 0x35;\n              *(undefined4 *)(iVar17 + 0x30) = 0;\n              goto joined_r0x00056729;\n            }" { (expression_statement "iVar15 = *(int *)(DAT_001d0414 + 0xa0);" (assignment_expression "iVar15 = *(int *)(DAT_001d0414 + 0xa0)" identifier = (pointer_expression "*(int *)(DAT_001d0414 + 0xa0)" * (cast_expression "(int *)(DAT_001d0414 + 0xa0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_001d0414 + 0xa0)" ( (binary_expression "DAT_001d0414 + 0xa0" identifier + number_literal) ))))) ;) (expression_statement "*(code **)(iVar15 + 0x1dc) = FUN_00055c40;" (assignment_expression "*(code **)(iVar15 + 0x1dc) = FUN_00055c40" (pointer_expression "*(code **)(iVar15 + 0x1dc)" * (cast_expression "(code **)(iVar15 + 0x1dc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar15 + 0x1dc)" ( (binary_expression "iVar15 + 0x1dc" identifier + number_literal) )))) = identifier) ;) (expression_statement "pvVar4 = DAT_001cff9c;" (assignment_expression "pvVar4 = DAT_001cff9c" identifier = identifier) ;) (expression_statement "iVar13 = *(int *)(iVar15 + 0x58);" (assignment_expression "iVar13 = *(int *)(iVar15 + 0x58)" identifier = (pointer_expression "*(int *)(iVar15 + 0x58)" * (cast_expression "(int *)(iVar15 + 0x58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x58)" ( (binary_expression "iVar15 + 0x58" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(iVar15 + 0x1e4) = iVar17;" (assignment_expression "*(int *)(iVar15 + 0x1e4) = iVar17" (pointer_expression "*(int *)(iVar15 + 0x1e4)" * (cast_expression "(int *)(iVar15 + 0x1e4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x1e4)" ( (binary_expression "iVar15 + 0x1e4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(void **)(iVar15 + 0x1e0) = pvVar4;" (assignment_expression "*(void **)(iVar15 + 0x1e0) = pvVar4" (pointer_expression "*(void **)(iVar15 + 0x1e0)" * (cast_expression "(void **)(iVar15 + 0x1e0)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar15 + 0x1e0)" ( (binary_expression "iVar15 + 0x1e0" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(iVar17 + 0x2c) = 0x35;" (assignment_expression "*(undefined4 *)(iVar17 + 0x2c) = 0x35" (pointer_expression "*(undefined4 *)(iVar17 + 0x2c)" * (cast_expression "(undefined4 *)(iVar17 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x2c)" ( (binary_expression "iVar17 + 0x2c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar17 + 0x30) = 0;" (assignment_expression "*(undefined4 *)(iVar17 + 0x30) = 0" (pointer_expression "*(undefined4 *)(iVar17 + 0x30)" * (cast_expression "(undefined4 *)(iVar17 + 0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x30)" ( (binary_expression "iVar17 + 0x30" identifier + number_literal) )))) = number_literal) ;) (goto_statement "goto joined_r0x00056729;" goto statement_identifier ;) })) (expression_statement "pcVar12 = "%P: warning: cannot create .buildid section, --build-id ignored\n";" (assignment_expression "pcVar12 = "%P: warning: cannot create .buildid section, --build-id ignored\n"" identifier = (string_literal ""%P: warning: cannot create .buildid section, --build-id ignored\n"" " string_content escape_sequence ")) ;) }))) (expression_statement "uVar11 = dcgettext(0,pcVar12,5);" (assignment_expression "uVar11 = dcgettext(0,pcVar12,5)" identifier = (call_expression "dcgettext(0,pcVar12,5)" identifier (argument_list "(0,pcVar12,5)" ( number_literal , identifier , number_literal )))) ;) (expression_statement "FUN_00034d20(uVar11);" (call_expression "FUN_00034d20(uVar11)" identifier (argument_list "(uVar11)" ( identifier ))) ;) (break_statement "break;" break ;) })) })) (labeled_statement "LAB_00056a59:\n      free(DAT_001cff9c);" statement_identifier : (expression_statement "free(DAT_001cff9c);" (call_expression "free(DAT_001cff9c)" identifier (argument_list "(DAT_001cff9c)" ( identifier ))) ;)) (expression_statement "DAT_001cff9c = (void *)0x0;" (assignment_expression "DAT_001cff9c = (void *)0x0" identifier = (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) }) (else_clause "else {\n    printf("%s()\n","gld_i386pe_after_open");\n    for (iVar6 = *(int *)(DAT_001d0400 + 0x1c); iVar6 != 0; iVar6 = *(int *)(iVar6 + 0x10)) {\n      printf("-%s\n",*(undefined4 *)(iVar6 + 4));\n    }\n    bfd_hash_traverse(DAT_001d0400,FUN_00055b20,0);\n    puVar7 = DAT_001d041c;\n    if (DAT_001d041c != (undefined4 *)0x0) {\n      do {\n        printf("*%s\n",*puVar7);\n        puVar18 = puVar7 + 0x27;\n        puVar7 = (undefined4 *)*puVar18;\n      } while ((undefined4 *)*puVar18 != (undefined4 *)0x0);\n      goto LAB_00056682;\n    }\n    if (DAT_001cff9c != (void *)0x0) goto LAB_00056a59;\n  }" else (compound_statement "{\n    printf("%s()\n","gld_i386pe_after_open");\n    for (iVar6 = *(int *)(DAT_001d0400 + 0x1c); iVar6 != 0; iVar6 = *(int *)(iVar6 + 0x10)) {\n      printf("-%s\n",*(undefined4 *)(iVar6 + 4));\n    }\n    bfd_hash_traverse(DAT_001d0400,FUN_00055b20,0);\n    puVar7 = DAT_001d041c;\n    if (DAT_001d041c != (undefined4 *)0x0) {\n      do {\n        printf("*%s\n",*puVar7);\n        puVar18 = puVar7 + 0x27;\n        puVar7 = (undefined4 *)*puVar18;\n      } while ((undefined4 *)*puVar18 != (undefined4 *)0x0);\n      goto LAB_00056682;\n    }\n    if (DAT_001cff9c != (void *)0x0) goto LAB_00056a59;\n  }" { (expression_statement "printf("%s()\n","gld_i386pe_after_open");" (call_expression "printf("%s()\n","gld_i386pe_after_open")" identifier (argument_list "("%s()\n","gld_i386pe_after_open")" ( (string_literal ""%s()\n"" " string_content escape_sequence ") , (string_literal ""gld_i386pe_after_open"" " string_content ") ))) ;) (for_statement "for (iVar6 = *(int *)(DAT_001d0400 + 0x1c); iVar6 != 0; iVar6 = *(int *)(iVar6 + 0x10)) {\n      printf("-%s\n",*(undefined4 *)(iVar6 + 4));\n    }" for ( (assignment_expression "iVar6 = *(int *)(DAT_001d0400 + 0x1c)" identifier = (pointer_expression "*(int *)(DAT_001d0400 + 0x1c)" * (cast_expression "(int *)(DAT_001d0400 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_001d0400 + 0x1c)" ( (binary_expression "DAT_001d0400 + 0x1c" identifier + number_literal) ))))) ; (binary_expression "iVar6 != 0" identifier != number_literal) ; (assignment_expression "iVar6 = *(int *)(iVar6 + 0x10)" identifier = (pointer_expression "*(int *)(iVar6 + 0x10)" * (cast_expression "(int *)(iVar6 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x10)" ( (binary_expression "iVar6 + 0x10" identifier + number_literal) ))))) ) (compound_statement "{\n      printf("-%s\n",*(undefined4 *)(iVar6 + 4));\n    }" { (expression_statement "printf("-%s\n",*(undefined4 *)(iVar6 + 4));" (call_expression "printf("-%s\n",*(undefined4 *)(iVar6 + 4))" identifier (argument_list "("-%s\n",*(undefined4 *)(iVar6 + 4))" ( (string_literal ""-%s\n"" " string_content escape_sequence ") , (pointer_expression "*(undefined4 *)(iVar6 + 4)" * (cast_expression "(undefined4 *)(iVar6 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 4)" ( (binary_expression "iVar6 + 4" identifier + number_literal) )))) ))) ;) })) (expression_statement "bfd_hash_traverse(DAT_001d0400,FUN_00055b20,0);" (call_expression "bfd_hash_traverse(DAT_001d0400,FUN_00055b20,0)" identifier (argument_list "(DAT_001d0400,FUN_00055b20,0)" ( identifier , identifier , number_literal ))) ;) (expression_statement "puVar7 = DAT_001d041c;" (assignment_expression "puVar7 = DAT_001d041c" identifier = identifier) ;) (if_statement "if (DAT_001d041c != (undefined4 *)0x0) {\n      do {\n        printf("*%s\n",*puVar7);\n        puVar18 = puVar7 + 0x27;\n        puVar7 = (undefined4 *)*puVar18;\n      } while ((undefined4 *)*puVar18 != (undefined4 *)0x0);\n      goto LAB_00056682;\n    }" if (parenthesized_expression "(DAT_001d041c != (undefined4 *)0x0)" ( (binary_expression "DAT_001d041c != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      do {\n        printf("*%s\n",*puVar7);\n        puVar18 = puVar7 + 0x27;\n        puVar7 = (undefined4 *)*puVar18;\n      } while ((undefined4 *)*puVar18 != (undefined4 *)0x0);\n      goto LAB_00056682;\n    }" { (do_statement "do {\n        printf("*%s\n",*puVar7);\n        puVar18 = puVar7 + 0x27;\n        puVar7 = (undefined4 *)*puVar18;\n      } while ((undefined4 *)*puVar18 != (undefined4 *)0x0);" do (compound_statement "{\n        printf("*%s\n",*puVar7);\n        puVar18 = puVar7 + 0x27;\n        puVar7 = (undefined4 *)*puVar18;\n      }" { (expression_statement "printf("*%s\n",*puVar7);" (call_expression "printf("*%s\n",*puVar7)" identifier (argument_list "("*%s\n",*puVar7)" ( (string_literal ""*%s\n"" " string_content escape_sequence ") , (pointer_expression "*puVar7" * identifier) ))) ;) (expression_statement "puVar18 = puVar7 + 0x27;" (assignment_expression "puVar18 = puVar7 + 0x27" identifier = (binary_expression "puVar7 + 0x27" identifier + number_literal)) ;) (expression_statement "puVar7 = (undefined4 *)*puVar18;" (assignment_expression "puVar7 = (undefined4 *)*puVar18" identifier = (cast_expression "(undefined4 *)*puVar18" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar18" * identifier))) ;) }) while (parenthesized_expression "((undefined4 *)*puVar18 != (undefined4 *)0x0)" ( (binary_expression "(undefined4 *)*puVar18 != (undefined4 *)0x0" (cast_expression "(undefined4 *)*puVar18" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar18" * identifier)) != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (goto_statement "goto LAB_00056682;" goto statement_identifier ;) })) (if_statement "if (DAT_001cff9c != (void *)0x0) goto LAB_00056a59;" if (parenthesized_expression "(DAT_001cff9c != (void *)0x0)" ( (binary_expression "DAT_001cff9c != (void *)0x0" identifier != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00056a59;" goto statement_identifier ;)) }))) (expression_statement "iVar6 = DAT_001d0414;" (assignment_expression "iVar6 = DAT_001d0414" identifier = identifier) ;) (if_statement "if (*(int *)(DAT_001d0414 + 0xa0) != 0) {\n    iVar13 = *(int *)(*(int *)(DAT_001d0414 + 0xa0) + 0x58);\njoined_r0x00056729:\n    if (iVar13 != 0) goto LAB_00056730;\n  }" if (parenthesized_expression "(*(int *)(DAT_001d0414 + 0xa0) != 0)" ( (binary_expression "*(int *)(DAT_001d0414 + 0xa0) != 0" (pointer_expression "*(int *)(DAT_001d0414 + 0xa0)" * (cast_expression "(int *)(DAT_001d0414 + 0xa0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_001d0414 + 0xa0)" ( (binary_expression "DAT_001d0414 + 0xa0" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    iVar13 = *(int *)(*(int *)(DAT_001d0414 + 0xa0) + 0x58);\njoined_r0x00056729:\n    if (iVar13 != 0) goto LAB_00056730;\n  }" { (expression_statement "iVar13 = *(int *)(*(int *)(DAT_001d0414 + 0xa0) + 0x58);" (assignment_expression "iVar13 = *(int *)(*(int *)(DAT_001d0414 + 0xa0) + 0x58)" identifier = (pointer_expression "*(int *)(*(int *)(DAT_001d0414 + 0xa0) + 0x58)" * (cast_expression "(int *)(*(int *)(DAT_001d0414 + 0xa0) + 0x58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(DAT_001d0414 + 0xa0) + 0x58)" ( (binary_expression "*(int *)(DAT_001d0414 + 0xa0) + 0x58" (pointer_expression "*(int *)(DAT_001d0414 + 0xa0)" * (cast_expression "(int *)(DAT_001d0414 + 0xa0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_001d0414 + 0xa0)" ( (binary_expression "DAT_001d0414 + 0xa0" identifier + number_literal) )))) + number_literal) ))))) ;) (labeled_statement "joined_r0x00056729:\n    if (iVar13 != 0) goto LAB_00056730;" statement_identifier : (if_statement "if (iVar13 != 0) goto LAB_00056730;" if (parenthesized_expression "(iVar13 != 0)" ( (binary_expression "iVar13 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00056730;" goto statement_identifier ;))) })) (expression_statement "uVar11 = dcgettext(0,"%F%P: cannot perform PE operations on non PE output file \'%pB\'\n",5);" (assignment_expression "uVar11 = dcgettext(0,"%F%P: cannot perform PE operations on non PE output file \'%pB\'\n",5)" identifier = (call_expression "dcgettext(0,"%F%P: cannot perform PE operations on non PE output file \'%pB\'\n",5)" identifier (argument_list "(0,"%F%P: cannot perform PE operations on non PE output file \'%pB\'\n",5)" ( number_literal , (string_literal ""%F%P: cannot perform PE operations on non PE output file \'%pB\'\n"" " string_content escape_sequence string_content escape_sequence escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_00034d20(uVar11,iVar6);" (call_expression "FUN_00034d20(uVar11,iVar6)" identifier (argument_list "(uVar11,iVar6)" ( identifier , identifier ))) ;) (labeled_statement "LAB_00056730:\n  iVar17 = DAT_001d0414;" statement_identifier : (expression_statement "iVar17 = DAT_001d0414;" (assignment_expression "iVar17 = DAT_001d0414" identifier = identifier) ;)) (expression_statement "iVar6 = *(int *)(DAT_001d0414 + 0xa0);" (assignment_expression "iVar6 = *(int *)(DAT_001d0414 + 0xa0)" identifier = (pointer_expression "*(int *)(DAT_001d0414 + 0xa0)" * (cast_expression "(int *)(DAT_001d0414 + 0xa0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_001d0414 + 0xa0)" ( (binary_expression "DAT_001d0414 + 0xa0" identifier + number_literal) ))))) ;) (expression_statement "puVar7 = &DAT_001cffc0;" (assignment_expression "puVar7 = &DAT_001cffc0" identifier = (pointer_expression "&DAT_001cffc0" & identifier)) ;) (expression_statement "puVar18 = (undefined4 *)(iVar6 + 0x7c);" (assignment_expression "puVar18 = (undefined4 *)(iVar6 + 0x7c)" identifier = (cast_expression "(undefined4 *)(iVar6 + 0x7c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x7c)" ( (binary_expression "iVar6 + 0x7c" identifier + number_literal) )))) ;) (for_statement "for (iVar15 = 0x52; iVar15 != 0; iVar15 = iVar15 + -1) {\n    *puVar18 = *puVar7;\n    puVar7 = puVar7 + (uint)bVar25 * -2 + 1;\n    puVar18 = puVar18 + (uint)bVar25 * -2 + 1;\n  }" for ( (assignment_expression "iVar15 = 0x52" identifier = number_literal) ; (binary_expression "iVar15 != 0" identifier != number_literal) ; (assignment_expression "iVar15 = iVar15 + -1" identifier = (binary_expression "iVar15 + -1" identifier + number_literal)) ) (compound_statement "{\n    *puVar18 = *puVar7;\n    puVar7 = puVar7 + (uint)bVar25 * -2 + 1;\n    puVar18 = puVar18 + (uint)bVar25 * -2 + 1;\n  }" { (expression_statement "*puVar18 = *puVar7;" (assignment_expression "*puVar18 = *puVar7" (pointer_expression "*puVar18" * identifier) = (pointer_expression "*puVar7" * identifier)) ;) (expression_statement "puVar7 = puVar7 + (uint)bVar25 * -2 + 1;" (assignment_expression "puVar7 = puVar7 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "puVar7 + (uint)bVar25 * -2 + 1" (binary_expression "puVar7 + (uint)bVar25 * -2" identifier + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "puVar18 = puVar18 + (uint)bVar25 * -2 + 1;" (assignment_expression "puVar18 = puVar18 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "puVar18 + (uint)bVar25 * -2 + 1" (binary_expression "puVar18 + (uint)bVar25 * -2" identifier + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) })) (expression_statement "*(undefined4 *)(iVar6 + 0x1c4) = DAT_001cf040;" (assignment_expression "*(undefined4 *)(iVar6 + 0x1c4) = DAT_001cf040" (pointer_expression "*(undefined4 *)(iVar6 + 0x1c4)" * (cast_expression "(undefined4 *)(iVar6 + 0x1c4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x1c4)" ( (binary_expression "iVar6 + 0x1c4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(iVar6 + 0x1d8) = *(uint *)(iVar6 + 0x1d8) | DAT_001cffa8;" (assignment_expression "*(uint *)(iVar6 + 0x1d8) = *(uint *)(iVar6 + 0x1d8) | DAT_001cffa8" (pointer_expression "*(uint *)(iVar6 + 0x1d8)" * (cast_expression "(uint *)(iVar6 + 0x1d8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x1d8)" ( (binary_expression "iVar6 + 0x1d8" identifier + number_literal) )))) = (binary_expression "*(uint *)(iVar6 + 0x1d8) | DAT_001cffa8" (pointer_expression "*(uint *)(iVar6 + 0x1d8)" * (cast_expression "(uint *)(iVar6 + 0x1d8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x1d8)" ( (binary_expression "iVar6 + 0x1d8" identifier + number_literal) )))) | identifier)) ;) (expression_statement "*(undefined4 *)(iVar6 + 0x1d0) = DAT_001cef94;" (assignment_expression "*(undefined4 *)(iVar6 + 0x1d0) = DAT_001cef94" (pointer_expression "*(undefined4 *)(iVar6 + 0x1d0)" * (cast_expression "(undefined4 *)(iVar6 + 0x1d0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x1d0)" ( (binary_expression "iVar6 + 0x1d0" identifier + number_literal) )))) = identifier) ;) (if_statement "if ((DAT_001cf388 < 0) && ((DAT_001d03e1 & 0x60) == 0)) {\n    if ((DAT_001d03e0 & 3) == 2) {\n      DAT_001cf388 = 1;\n    }\n    else if (DAT_001cf6bc != 0) {\n      iVar6 = DAT_001cf6bc;\n      do {\n        local_20[0] = 0;\n        bfd_map_over_sections(*(undefined4 *)(iVar6 + 0x10),FUN_000554f0,local_20);\n        iVar17 = DAT_001d0414;\n        if (local_20[0] != 0) {\n          DAT_001cf388 = 1;\n          break;\n        }\n        iVar6 = *(int *)(iVar6 + 0x18);\n      } while (iVar6 != 0);\n    }\n  }" if (parenthesized_expression "((DAT_001cf388 < 0) && ((DAT_001d03e1 & 0x60) == 0))" ( (binary_expression "(DAT_001cf388 < 0) && ((DAT_001d03e1 & 0x60) == 0)" (parenthesized_expression "(DAT_001cf388 < 0)" ( (binary_expression "DAT_001cf388 < 0" identifier < number_literal) )) && (parenthesized_expression "((DAT_001d03e1 & 0x60) == 0)" ( (binary_expression "(DAT_001d03e1 & 0x60) == 0" (parenthesized_expression "(DAT_001d03e1 & 0x60)" ( (binary_expression "DAT_001d03e1 & 0x60" identifier & number_literal) )) == number_literal) ))) )) (compound_statement "{\n    if ((DAT_001d03e0 & 3) == 2) {\n      DAT_001cf388 = 1;\n    }\n    else if (DAT_001cf6bc != 0) {\n      iVar6 = DAT_001cf6bc;\n      do {\n        local_20[0] = 0;\n        bfd_map_over_sections(*(undefined4 *)(iVar6 + 0x10),FUN_000554f0,local_20);\n        iVar17 = DAT_001d0414;\n        if (local_20[0] != 0) {\n          DAT_001cf388 = 1;\n          break;\n        }\n        iVar6 = *(int *)(iVar6 + 0x18);\n      } while (iVar6 != 0);\n    }\n  }" { (if_statement "if ((DAT_001d03e0 & 3) == 2) {\n      DAT_001cf388 = 1;\n    }\n    else if (DAT_001cf6bc != 0) {\n      iVar6 = DAT_001cf6bc;\n      do {\n        local_20[0] = 0;\n        bfd_map_over_sections(*(undefined4 *)(iVar6 + 0x10),FUN_000554f0,local_20);\n        iVar17 = DAT_001d0414;\n        if (local_20[0] != 0) {\n          DAT_001cf388 = 1;\n          break;\n        }\n        iVar6 = *(int *)(iVar6 + 0x18);\n      } while (iVar6 != 0);\n    }" if (parenthesized_expression "((DAT_001d03e0 & 3) == 2)" ( (binary_expression "(DAT_001d03e0 & 3) == 2" (parenthesized_expression "(DAT_001d03e0 & 3)" ( (binary_expression "DAT_001d03e0 & 3" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      DAT_001cf388 = 1;\n    }" { (expression_statement "DAT_001cf388 = 1;" (assignment_expression "DAT_001cf388 = 1" identifier = number_literal) ;) }) (else_clause "else if (DAT_001cf6bc != 0) {\n      iVar6 = DAT_001cf6bc;\n      do {\n        local_20[0] = 0;\n        bfd_map_over_sections(*(undefined4 *)(iVar6 + 0x10),FUN_000554f0,local_20);\n        iVar17 = DAT_001d0414;\n        if (local_20[0] != 0) {\n          DAT_001cf388 = 1;\n          break;\n        }\n        iVar6 = *(int *)(iVar6 + 0x18);\n      } while (iVar6 != 0);\n    }" else (if_statement "if (DAT_001cf6bc != 0) {\n      iVar6 = DAT_001cf6bc;\n      do {\n        local_20[0] = 0;\n        bfd_map_over_sections(*(undefined4 *)(iVar6 + 0x10),FUN_000554f0,local_20);\n        iVar17 = DAT_001d0414;\n        if (local_20[0] != 0) {\n          DAT_001cf388 = 1;\n          break;\n        }\n        iVar6 = *(int *)(iVar6 + 0x18);\n      } while (iVar6 != 0);\n    }" if (parenthesized_expression "(DAT_001cf6bc != 0)" ( (binary_expression "DAT_001cf6bc != 0" identifier != number_literal) )) (compound_statement "{\n      iVar6 = DAT_001cf6bc;\n      do {\n        local_20[0] = 0;\n        bfd_map_over_sections(*(undefined4 *)(iVar6 + 0x10),FUN_000554f0,local_20);\n        iVar17 = DAT_001d0414;\n        if (local_20[0] != 0) {\n          DAT_001cf388 = 1;\n          break;\n        }\n        iVar6 = *(int *)(iVar6 + 0x18);\n      } while (iVar6 != 0);\n    }" { (expression_statement "iVar6 = DAT_001cf6bc;" (assignment_expression "iVar6 = DAT_001cf6bc" identifier = identifier) ;) (do_statement "do {\n        local_20[0] = 0;\n        bfd_map_over_sections(*(undefined4 *)(iVar6 + 0x10),FUN_000554f0,local_20);\n        iVar17 = DAT_001d0414;\n        if (local_20[0] != 0) {\n          DAT_001cf388 = 1;\n          break;\n        }\n        iVar6 = *(int *)(iVar6 + 0x18);\n      } while (iVar6 != 0);" do (compound_statement "{\n        local_20[0] = 0;\n        bfd_map_over_sections(*(undefined4 *)(iVar6 + 0x10),FUN_000554f0,local_20);\n        iVar17 = DAT_001d0414;\n        if (local_20[0] != 0) {\n          DAT_001cf388 = 1;\n          break;\n        }\n        iVar6 = *(int *)(iVar6 + 0x18);\n      }" { (expression_statement "local_20[0] = 0;" (assignment_expression "local_20[0] = 0" (subscript_expression "local_20[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "bfd_map_over_sections(*(undefined4 *)(iVar6 + 0x10),FUN_000554f0,local_20);" (call_expression "bfd_map_over_sections(*(undefined4 *)(iVar6 + 0x10),FUN_000554f0,local_20)" identifier (argument_list "(*(undefined4 *)(iVar6 + 0x10),FUN_000554f0,local_20)" ( (pointer_expression "*(undefined4 *)(iVar6 + 0x10)" * (cast_expression "(undefined4 *)(iVar6 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x10)" ( (binary_expression "iVar6 + 0x10" identifier + number_literal) )))) , identifier , identifier ))) ;) (expression_statement "iVar17 = DAT_001d0414;" (assignment_expression "iVar17 = DAT_001d0414" identifier = identifier) ;) (if_statement "if (local_20[0] != 0) {\n          DAT_001cf388 = 1;\n          break;\n        }" if (parenthesized_expression "(local_20[0] != 0)" ( (binary_expression "local_20[0] != 0" (subscript_expression "local_20[0]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n          DAT_001cf388 = 1;\n          break;\n        }" { (expression_statement "DAT_001cf388 = 1;" (assignment_expression "DAT_001cf388 = 1" identifier = number_literal) ;) (break_statement "break;" break ;) })) (expression_statement "iVar6 = *(int *)(iVar6 + 0x18);" (assignment_expression "iVar6 = *(int *)(iVar6 + 0x18)" identifier = (pointer_expression "*(int *)(iVar6 + 0x18)" * (cast_expression "(int *)(iVar6 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x18)" ( (binary_expression "iVar6 + 0x18" identifier + number_literal) ))))) ;) }) while (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) ;) })))) })) (expression_statement "FUN_00066c30(iVar17);" (call_expression "FUN_00066c30(iVar17)" identifier (argument_list "(iVar17)" ( identifier ))) ;) (expression_statement "FUN_000656c0(DAT_001d0414,&DAT_001d03e0);" (call_expression "FUN_000656c0(DAT_001d0414,&DAT_001d03e0)" identifier (argument_list "(DAT_001d0414,&DAT_001d03e0)" ( identifier , (pointer_expression "&DAT_001d03e0" & identifier) ))) ;) (if_statement "if (DAT_001d0448 != 0) {\n    iVar6 = FUN_000561f0();\n    pcVar12 = "_head_";\n    if (iVar6 != 0) {\n      pcVar12 = "__head_";\n    }\n    FUN_00063bc0(pcVar12,FUN_00055b50);\n  }" if (parenthesized_expression "(DAT_001d0448 != 0)" ( (binary_expression "DAT_001d0448 != 0" identifier != number_literal) )) (compound_statement "{\n    iVar6 = FUN_000561f0();\n    pcVar12 = "_head_";\n    if (iVar6 != 0) {\n      pcVar12 = "__head_";\n    }\n    FUN_00063bc0(pcVar12,FUN_00055b50);\n  }" { (expression_statement "iVar6 = FUN_000561f0();" (assignment_expression "iVar6 = FUN_000561f0()" identifier = (call_expression "FUN_000561f0()" identifier (argument_list "()" ( )))) ;) (expression_statement "pcVar12 = "_head_";" (assignment_expression "pcVar12 = "_head_"" identifier = (string_literal ""_head_"" " string_content ")) ;) (if_statement "if (iVar6 != 0) {\n      pcVar12 = "__head_";\n    }" if (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) (compound_statement "{\n      pcVar12 = "__head_";\n    }" { (expression_statement "pcVar12 = "__head_";" (assignment_expression "pcVar12 = "__head_"" identifier = (string_literal ""__head_"" " string_content ")) ;) })) (expression_statement "FUN_00063bc0(pcVar12,FUN_00055b50);" (call_expression "FUN_00063bc0(pcVar12,FUN_00055b50)" identifier (argument_list "(pcVar12,FUN_00055b50)" ( identifier , identifier ))) ;) })) (if_statement "if (DAT_001cef90 != 0) {\n    if (DAT_001d01fc != 0) {\n      puts("pe_fixup_stdcalls");\n    }\n    for (iVar6 = *(int *)(DAT_001d0400 + 0x1c); iVar6 != 0; iVar6 = *(int *)(iVar6 + 0x10)) {\n      if (*(char *)(iVar6 + 0xc) == '\x01') {\n        pcVar12 = *(char **)(iVar6 + 4);\n        if (*pcVar12 == '@') {\n          pcVar10 = strchr(pcVar12 + 1,0x40);\n          pcVar12 = (char *)xstrdup(pcVar12);\n          *pcVar12 = '_';\n          if (pcVar10 != (char *)0x0) goto LAB_00057061;\n        }\n        else {\n          pcVar10 = strchr(pcVar12,0x40);\n          if (pcVar10 == (char *)0x0) {\n            DAT_001cff8c = 0;\n            bfd_link_hash_traverse(DAT_001d0400,FUN_00055530,pcVar12);\n            if (DAT_001cff8c != 0) {\n              FUN_00056030();\n            }\n            goto LAB_00056fa8;\n          }\n          pcVar12 = (char *)xstrdup(pcVar12);\nLAB_00057061:\n          pcVar10 = strchr(pcVar12,0x40);\n          *pcVar10 = '\0';\n        }\n        iVar17 = bfd_link_hash_lookup(DAT_001d0400,pcVar12,0,0,1);\n        if ((iVar17 != 0) && (*(char *)(iVar17 + 0xc) == '\x03')) {\n          FUN_00056030();\n        }\n      }\nLAB_00056fa8:\n    }\n  }" if (parenthesized_expression "(DAT_001cef90 != 0)" ( (binary_expression "DAT_001cef90 != 0" identifier != number_literal) )) (compound_statement "{\n    if (DAT_001d01fc != 0) {\n      puts("pe_fixup_stdcalls");\n    }\n    for (iVar6 = *(int *)(DAT_001d0400 + 0x1c); iVar6 != 0; iVar6 = *(int *)(iVar6 + 0x10)) {\n      if (*(char *)(iVar6 + 0xc) == '\x01') {\n        pcVar12 = *(char **)(iVar6 + 4);\n        if (*pcVar12 == '@') {\n          pcVar10 = strchr(pcVar12 + 1,0x40);\n          pcVar12 = (char *)xstrdup(pcVar12);\n          *pcVar12 = '_';\n          if (pcVar10 != (char *)0x0) goto LAB_00057061;\n        }\n        else {\n          pcVar10 = strchr(pcVar12,0x40);\n          if (pcVar10 == (char *)0x0) {\n            DAT_001cff8c = 0;\n            bfd_link_hash_traverse(DAT_001d0400,FUN_00055530,pcVar12);\n            if (DAT_001cff8c != 0) {\n              FUN_00056030();\n            }\n            goto LAB_00056fa8;\n          }\n          pcVar12 = (char *)xstrdup(pcVar12);\nLAB_00057061:\n          pcVar10 = strchr(pcVar12,0x40);\n          *pcVar10 = '\0';\n        }\n        iVar17 = bfd_link_hash_lookup(DAT_001d0400,pcVar12,0,0,1);\n        if ((iVar17 != 0) && (*(char *)(iVar17 + 0xc) == '\x03')) {\n          FUN_00056030();\n        }\n      }\nLAB_00056fa8:\n    }\n  }" { (if_statement "if (DAT_001d01fc != 0) {\n      puts("pe_fixup_stdcalls");\n    }" if (parenthesized_expression "(DAT_001d01fc != 0)" ( (binary_expression "DAT_001d01fc != 0" identifier != number_literal) )) (compound_statement "{\n      puts("pe_fixup_stdcalls");\n    }" { (expression_statement "puts("pe_fixup_stdcalls");" (call_expression "puts("pe_fixup_stdcalls")" identifier (argument_list "("pe_fixup_stdcalls")" ( (string_literal ""pe_fixup_stdcalls"" " string_content ") ))) ;) })) (for_statement "for (iVar6 = *(int *)(DAT_001d0400 + 0x1c); iVar6 != 0; iVar6 = *(int *)(iVar6 + 0x10)) {\n      if (*(char *)(iVar6 + 0xc) == '\x01') {\n        pcVar12 = *(char **)(iVar6 + 4);\n        if (*pcVar12 == '@') {\n          pcVar10 = strchr(pcVar12 + 1,0x40);\n          pcVar12 = (char *)xstrdup(pcVar12);\n          *pcVar12 = '_';\n          if (pcVar10 != (char *)0x0) goto LAB_00057061;\n        }\n        else {\n          pcVar10 = strchr(pcVar12,0x40);\n          if (pcVar10 == (char *)0x0) {\n            DAT_001cff8c = 0;\n            bfd_link_hash_traverse(DAT_001d0400,FUN_00055530,pcVar12);\n            if (DAT_001cff8c != 0) {\n              FUN_00056030();\n            }\n            goto LAB_00056fa8;\n          }\n          pcVar12 = (char *)xstrdup(pcVar12);\nLAB_00057061:\n          pcVar10 = strchr(pcVar12,0x40);\n          *pcVar10 = '\0';\n        }\n        iVar17 = bfd_link_hash_lookup(DAT_001d0400,pcVar12,0,0,1);\n        if ((iVar17 != 0) && (*(char *)(iVar17 + 0xc) == '\x03')) {\n          FUN_00056030();\n        }\n      }\nLAB_00056fa8:\n    }" for ( (assignment_expression "iVar6 = *(int *)(DAT_001d0400 + 0x1c)" identifier = (pointer_expression "*(int *)(DAT_001d0400 + 0x1c)" * (cast_expression "(int *)(DAT_001d0400 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_001d0400 + 0x1c)" ( (binary_expression "DAT_001d0400 + 0x1c" identifier + number_literal) ))))) ; (binary_expression "iVar6 != 0" identifier != number_literal) ; (assignment_expression "iVar6 = *(int *)(iVar6 + 0x10)" identifier = (pointer_expression "*(int *)(iVar6 + 0x10)" * (cast_expression "(int *)(iVar6 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x10)" ( (binary_expression "iVar6 + 0x10" identifier + number_literal) ))))) ) (compound_statement "{\n      if (*(char *)(iVar6 + 0xc) == '\x01') {\n        pcVar12 = *(char **)(iVar6 + 4);\n        if (*pcVar12 == '@') {\n          pcVar10 = strchr(pcVar12 + 1,0x40);\n          pcVar12 = (char *)xstrdup(pcVar12);\n          *pcVar12 = '_';\n          if (pcVar10 != (char *)0x0) goto LAB_00057061;\n        }\n        else {\n          pcVar10 = strchr(pcVar12,0x40);\n          if (pcVar10 == (char *)0x0) {\n            DAT_001cff8c = 0;\n            bfd_link_hash_traverse(DAT_001d0400,FUN_00055530,pcVar12);\n            if (DAT_001cff8c != 0) {\n              FUN_00056030();\n            }\n            goto LAB_00056fa8;\n          }\n          pcVar12 = (char *)xstrdup(pcVar12);\nLAB_00057061:\n          pcVar10 = strchr(pcVar12,0x40);\n          *pcVar10 = '\0';\n        }\n        iVar17 = bfd_link_hash_lookup(DAT_001d0400,pcVar12,0,0,1);\n        if ((iVar17 != 0) && (*(char *)(iVar17 + 0xc) == '\x03')) {\n          FUN_00056030();\n        }\n      }\nLAB_00056fa8:\n    }" { (if_statement "if (*(char *)(iVar6 + 0xc) == '\x01') {\n        pcVar12 = *(char **)(iVar6 + 4);\n        if (*pcVar12 == '@') {\n          pcVar10 = strchr(pcVar12 + 1,0x40);\n          pcVar12 = (char *)xstrdup(pcVar12);\n          *pcVar12 = '_';\n          if (pcVar10 != (char *)0x0) goto LAB_00057061;\n        }\n        else {\n          pcVar10 = strchr(pcVar12,0x40);\n          if (pcVar10 == (char *)0x0) {\n            DAT_001cff8c = 0;\n            bfd_link_hash_traverse(DAT_001d0400,FUN_00055530,pcVar12);\n            if (DAT_001cff8c != 0) {\n              FUN_00056030();\n            }\n            goto LAB_00056fa8;\n          }\n          pcVar12 = (char *)xstrdup(pcVar12);\nLAB_00057061:\n          pcVar10 = strchr(pcVar12,0x40);\n          *pcVar10 = '\0';\n        }\n        iVar17 = bfd_link_hash_lookup(DAT_001d0400,pcVar12,0,0,1);\n        if ((iVar17 != 0) && (*(char *)(iVar17 + 0xc) == '\x03')) {\n          FUN_00056030();\n        }\n      }" if (parenthesized_expression "(*(char *)(iVar6 + 0xc) == '\x01')" ( (binary_expression "*(char *)(iVar6 + 0xc) == '\x01'" (pointer_expression "*(char *)(iVar6 + 0xc)" * (cast_expression "(char *)(iVar6 + 0xc)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0xc)" ( (binary_expression "iVar6 + 0xc" identifier + number_literal) )))) == (char_literal "'\x01'" ' escape_sequence ')) )) (compound_statement "{\n        pcVar12 = *(char **)(iVar6 + 4);\n        if (*pcVar12 == '@') {\n          pcVar10 = strchr(pcVar12 + 1,0x40);\n          pcVar12 = (char *)xstrdup(pcVar12);\n          *pcVar12 = '_';\n          if (pcVar10 != (char *)0x0) goto LAB_00057061;\n        }\n        else {\n          pcVar10 = strchr(pcVar12,0x40);\n          if (pcVar10 == (char *)0x0) {\n            DAT_001cff8c = 0;\n            bfd_link_hash_traverse(DAT_001d0400,FUN_00055530,pcVar12);\n            if (DAT_001cff8c != 0) {\n              FUN_00056030();\n            }\n            goto LAB_00056fa8;\n          }\n          pcVar12 = (char *)xstrdup(pcVar12);\nLAB_00057061:\n          pcVar10 = strchr(pcVar12,0x40);\n          *pcVar10 = '\0';\n        }\n        iVar17 = bfd_link_hash_lookup(DAT_001d0400,pcVar12,0,0,1);\n        if ((iVar17 != 0) && (*(char *)(iVar17 + 0xc) == '\x03')) {\n          FUN_00056030();\n        }\n      }" { (expression_statement "pcVar12 = *(char **)(iVar6 + 4);" (assignment_expression "pcVar12 = *(char **)(iVar6 + 4)" identifier = (pointer_expression "*(char **)(iVar6 + 4)" * (cast_expression "(char **)(iVar6 + 4)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar6 + 4)" ( (binary_expression "iVar6 + 4" identifier + number_literal) ))))) ;) (if_statement "if (*pcVar12 == '@') {\n          pcVar10 = strchr(pcVar12 + 1,0x40);\n          pcVar12 = (char *)xstrdup(pcVar12);\n          *pcVar12 = '_';\n          if (pcVar10 != (char *)0x0) goto LAB_00057061;\n        }\n        else {\n          pcVar10 = strchr(pcVar12,0x40);\n          if (pcVar10 == (char *)0x0) {\n            DAT_001cff8c = 0;\n            bfd_link_hash_traverse(DAT_001d0400,FUN_00055530,pcVar12);\n            if (DAT_001cff8c != 0) {\n              FUN_00056030();\n            }\n            goto LAB_00056fa8;\n          }\n          pcVar12 = (char *)xstrdup(pcVar12);\nLAB_00057061:\n          pcVar10 = strchr(pcVar12,0x40);\n          *pcVar10 = '\0';\n        }" if (parenthesized_expression "(*pcVar12 == '@')" ( (binary_expression "*pcVar12 == '@'" (pointer_expression "*pcVar12" * identifier) == (char_literal "'@'" ' character ')) )) (compound_statement "{\n          pcVar10 = strchr(pcVar12 + 1,0x40);\n          pcVar12 = (char *)xstrdup(pcVar12);\n          *pcVar12 = '_';\n          if (pcVar10 != (char *)0x0) goto LAB_00057061;\n        }" { (expression_statement "pcVar10 = strchr(pcVar12 + 1,0x40);" (assignment_expression "pcVar10 = strchr(pcVar12 + 1,0x40)" identifier = (call_expression "strchr(pcVar12 + 1,0x40)" identifier (argument_list "(pcVar12 + 1,0x40)" ( (binary_expression "pcVar12 + 1" identifier + number_literal) , number_literal )))) ;) (expression_statement "pcVar12 = (char *)xstrdup(pcVar12);" (assignment_expression "pcVar12 = (char *)xstrdup(pcVar12)" identifier = (cast_expression "(char *)xstrdup(pcVar12)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xstrdup(pcVar12)" identifier (argument_list "(pcVar12)" ( identifier ))))) ;) (expression_statement "*pcVar12 = '_';" (assignment_expression "*pcVar12 = '_'" (pointer_expression "*pcVar12" * identifier) = (char_literal "'_'" ' character ')) ;) (if_statement "if (pcVar10 != (char *)0x0) goto LAB_00057061;" if (parenthesized_expression "(pcVar10 != (char *)0x0)" ( (binary_expression "pcVar10 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00057061;" goto statement_identifier ;)) }) (else_clause "else {\n          pcVar10 = strchr(pcVar12,0x40);\n          if (pcVar10 == (char *)0x0) {\n            DAT_001cff8c = 0;\n            bfd_link_hash_traverse(DAT_001d0400,FUN_00055530,pcVar12);\n            if (DAT_001cff8c != 0) {\n              FUN_00056030();\n            }\n            goto LAB_00056fa8;\n          }\n          pcVar12 = (char *)xstrdup(pcVar12);\nLAB_00057061:\n          pcVar10 = strchr(pcVar12,0x40);\n          *pcVar10 = '\0';\n        }" else (compound_statement "{\n          pcVar10 = strchr(pcVar12,0x40);\n          if (pcVar10 == (char *)0x0) {\n            DAT_001cff8c = 0;\n            bfd_link_hash_traverse(DAT_001d0400,FUN_00055530,pcVar12);\n            if (DAT_001cff8c != 0) {\n              FUN_00056030();\n            }\n            goto LAB_00056fa8;\n          }\n          pcVar12 = (char *)xstrdup(pcVar12);\nLAB_00057061:\n          pcVar10 = strchr(pcVar12,0x40);\n          *pcVar10 = '\0';\n        }" { (expression_statement "pcVar10 = strchr(pcVar12,0x40);" (assignment_expression "pcVar10 = strchr(pcVar12,0x40)" identifier = (call_expression "strchr(pcVar12,0x40)" identifier (argument_list "(pcVar12,0x40)" ( identifier , number_literal )))) ;) (if_statement "if (pcVar10 == (char *)0x0) {\n            DAT_001cff8c = 0;\n            bfd_link_hash_traverse(DAT_001d0400,FUN_00055530,pcVar12);\n            if (DAT_001cff8c != 0) {\n              FUN_00056030();\n            }\n            goto LAB_00056fa8;\n          }" if (parenthesized_expression "(pcVar10 == (char *)0x0)" ( (binary_expression "pcVar10 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            DAT_001cff8c = 0;\n            bfd_link_hash_traverse(DAT_001d0400,FUN_00055530,pcVar12);\n            if (DAT_001cff8c != 0) {\n              FUN_00056030();\n            }\n            goto LAB_00056fa8;\n          }" { (expression_statement "DAT_001cff8c = 0;" (assignment_expression "DAT_001cff8c = 0" identifier = number_literal) ;) (expression_statement "bfd_link_hash_traverse(DAT_001d0400,FUN_00055530,pcVar12);" (call_expression "bfd_link_hash_traverse(DAT_001d0400,FUN_00055530,pcVar12)" identifier (argument_list "(DAT_001d0400,FUN_00055530,pcVar12)" ( identifier , identifier , identifier ))) ;) (if_statement "if (DAT_001cff8c != 0) {\n              FUN_00056030();\n            }" if (parenthesized_expression "(DAT_001cff8c != 0)" ( (binary_expression "DAT_001cff8c != 0" identifier != number_literal) )) (compound_statement "{\n              FUN_00056030();\n            }" { (expression_statement "FUN_00056030();" (call_expression "FUN_00056030()" identifier (argument_list "()" ( ))) ;) })) (goto_statement "goto LAB_00056fa8;" goto statement_identifier ;) })) (expression_statement "pcVar12 = (char *)xstrdup(pcVar12);" (assignment_expression "pcVar12 = (char *)xstrdup(pcVar12)" identifier = (cast_expression "(char *)xstrdup(pcVar12)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xstrdup(pcVar12)" identifier (argument_list "(pcVar12)" ( identifier ))))) ;) (labeled_statement "LAB_00057061:\n          pcVar10 = strchr(pcVar12,0x40);" statement_identifier : (expression_statement "pcVar10 = strchr(pcVar12,0x40);" (assignment_expression "pcVar10 = strchr(pcVar12,0x40)" identifier = (call_expression "strchr(pcVar12,0x40)" identifier (argument_list "(pcVar12,0x40)" ( identifier , number_literal )))) ;)) (expression_statement "*pcVar10 = '\0';" (assignment_expression "*pcVar10 = '\0'" (pointer_expression "*pcVar10" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) }))) (expression_statement "iVar17 = bfd_link_hash_lookup(DAT_001d0400,pcVar12,0,0,1);" (assignment_expression "iVar17 = bfd_link_hash_lookup(DAT_001d0400,pcVar12,0,0,1)" identifier = (call_expression "bfd_link_hash_lookup(DAT_001d0400,pcVar12,0,0,1)" identifier (argument_list "(DAT_001d0400,pcVar12,0,0,1)" ( identifier , identifier , number_literal , number_literal , number_literal )))) ;) (if_statement "if ((iVar17 != 0) && (*(char *)(iVar17 + 0xc) == '\x03')) {\n          FUN_00056030();\n        }" if (parenthesized_expression "((iVar17 != 0) && (*(char *)(iVar17 + 0xc) == '\x03'))" ( (binary_expression "(iVar17 != 0) && (*(char *)(iVar17 + 0xc) == '\x03')" (parenthesized_expression "(iVar17 != 0)" ( (binary_expression "iVar17 != 0" identifier != number_literal) )) && (parenthesized_expression "(*(char *)(iVar17 + 0xc) == '\x03')" ( (binary_expression "*(char *)(iVar17 + 0xc) == '\x03'" (pointer_expression "*(char *)(iVar17 + 0xc)" * (cast_expression "(char *)(iVar17 + 0xc)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0xc)" ( (binary_expression "iVar17 + 0xc" identifier + number_literal) )))) == (char_literal "'\x03'" ' escape_sequence ')) ))) )) (compound_statement "{\n          FUN_00056030();\n        }" { (expression_statement "FUN_00056030();" (call_expression "FUN_00056030()" identifier (argument_list "()" ( ))) ;) })) })) (labeled_statement "LAB_00056fa8:" statement_identifier : (expression_statement "" ;)) })) })) (if_statement "if ((DAT_001d03e0 & 3) != 2) {\n    FUN_00066ca0(DAT_001d0414,&DAT_001d03e0);\n  }" if (parenthesized_expression "((DAT_001d03e0 & 3) != 2)" ( (binary_expression "(DAT_001d03e0 & 3) != 2" (parenthesized_expression "(DAT_001d03e0 & 3)" ( (binary_expression "DAT_001d03e0 & 3" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n    FUN_00066ca0(DAT_001d0414,&DAT_001d03e0);\n  }" { (expression_statement "FUN_00066ca0(DAT_001d0414,&DAT_001d03e0);" (call_expression "FUN_00066ca0(DAT_001d0414,&DAT_001d03e0)" identifier (argument_list "(DAT_001d0414,&DAT_001d03e0)" ( identifier , (pointer_expression "&DAT_001d03e0" & identifier) ))) ;) })) (expression_statement "local_40 = DAT_001cf6bc;" (assignment_expression "local_40 = DAT_001cf6bc" identifier = identifier) ;) (if_statement "if (DAT_001cf6bc != 0) {\n    do {\n      iVar6 = *(int *)(local_40 + 0x10);\n      if ((*(int *)(iVar6 + 0x8c) != 0) &&\n         (local_38 = *(undefined4 **)(iVar6 + 0x60), local_38 != (undefined4 *)0x0)) {\n        iVar17 = 0;\n        bVar24 = true;\n        puVar7 = local_38;\n        bVar3 = 0;\n        bVar16 = false;\n        do {\n          bVar22 = false;\n          iVar15 = 9;\n          pbVar19 = (byte *)*puVar7;\n          pbVar21 = (byte *)".idata$2";\n          do {\n            if (iVar15 == 0) break;\n            iVar15 = iVar15 + -1;\n            bVar22 = *pbVar19 < *pbVar21;\n            bVar24 = *pbVar19 == *pbVar21;\n            pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n            pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n          } while (bVar24);\n          bVar23 = false;\n          bVar24 = (!bVar22 && !bVar24) == bVar22;\n          bVar22 = true;\n          if (!bVar24) {\n            bVar22 = bVar16;\n          }\n          iVar15 = 7;\n          pbVar19 = (byte *)*puVar7;\n          pbVar21 = (byte *)".idata$";\n          do {\n            if (iVar15 == 0) break;\n            iVar15 = iVar15 + -1;\n            bVar23 = *pbVar19 < *pbVar21;\n            bVar24 = *pbVar19 == *pbVar21;\n            pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n            pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n          } while (bVar24);\n          bVar5 = 1;\n          if ((!bVar23 && !bVar24) != bVar23) {\n            bVar5 = bVar3;\n          }\n          iVar17 = iVar17 + puVar7[0x19];\n          puVar7 = (undefined4 *)puVar7[3];\n          bVar24 = puVar7 == (undefined4 *)0x0;\n          bVar3 = bVar5;\n          bVar16 = bVar22;\n        } while (!bVar24);\n        if (((bool)(bVar5 & iVar17 != 0)) && (!bVar22)) {\n          while (iVar6 = bfd_get_reloc_upper_bound(iVar6,local_38), 0 < iVar6) {\n            iVar17 = bfd_generic_link_read_symbols(*(undefined4 *)(local_40 + 0x10));\n            local_4c = local_40;\n            if (iVar17 == 0) goto LAB_000570af;\n            uVar11 = *(undefined4 *)(*(int *)(local_40 + 0x10) + 0x78);\n            puVar7 = (undefined4 *)xmalloc(iVar6);\n            iVar6 = bfd_canonicalize_reloc(*(undefined4 *)(local_40 + 0x10),local_38,puVar7,uVar11);\n            if (iVar6 < 0) {\n              free(puVar7);\n              uVar11 = dcgettext(0,"%X%P: unable to process relocs: %E\n",5);\n              FUN_00034d20(uVar11);\n              return;\n            }\n            puVar18 = puVar7;\n            if (iVar6 != 0) {\n              do {\n                if ((((*(byte *)(**(int **)*puVar18 + 0x10) & 1) == 0) &&\n                    (iVar17 = bfd_link_hash_lookup\n                                        (DAT_001d0400,*(undefined4 *)(**(int **)*puVar18 + 4),0,0,1)\n                    , iVar17 != 0)) && (*(char *)(iVar17 + 0xc) == '\x03')) {\n                  puVar2 = *(undefined4 **)(*(int *)(iVar17 + 0x14) + 0xac);\n                  puVar8 = (undefined4 *)puVar2[0x23];\n                  if (puVar8 == (undefined4 *)0x0) {\n                    puVar8 = puVar2;\n                  }\n                  pcVar12 = (char *)*puVar8;\n                  iVar17 = filename_cmp(**(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c),pcVar12)\n                  ;\n                  if (iVar17 != 0) {\n                    sVar9 = strlen(pcVar12);\n                    pcVar10 = (char *)xmalloc(sVar9 + 1);\n                    strcpy(pcVar10,pcVar12);\n                    **(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c) = pcVar10;\n                  }\n                }\n                puVar18 = puVar18 + 1;\n              } while (puVar7 + iVar6 != puVar18);\n            }\n            free(puVar7);\n            local_38 = (undefined4 *)local_38[3];\n            if (local_38 == (undefined4 *)0x0) break;\n            iVar6 = *(int *)(local_40 + 0x10);\n          }\n        }\n      }\n      local_40 = *(int *)(local_40 + 0x18);\n    } while (local_40 != 0);\n    local_50 = DAT_001cf6bc;\n    if (DAT_001cf6bc != 0) {\n      bVar16 = false;\n      local_40 = 0;\n      do {\n        iVar6 = (*(undefined4 **)(local_50 + 0x10))[0x23];\n        if (iVar6 != 0) {\n          pcVar12 = strrchr((char *)**(undefined4 **)(local_50 + 0x10),0x2e);\n          iVar17 = local_50;\n          if (iVar6 == local_40) {\n            if (!bVar16) goto LAB_00056b08;\n          }\n          else {\n            while ((iVar15 = local_50, local_40 = iVar6, pcVar12 == (char *)0x0 ||\n                   (iVar13 = filename_cmp(pcVar12,".dll"), iVar13 != 0))) {\n              iVar17 = *(int *)(iVar17 + 0x18);\n              if (iVar17 == 0) {\n                local_50 = *(int *)(local_50 + 0x18);\n                bVar16 = false;\n                goto joined_r0x00056b15;\n              }\n              if (iVar6 != (*(undefined4 **)(iVar17 + 0x10))[0x23]) break;\n              pcVar12 = strrchr((char *)**(undefined4 **)(iVar17 + 0x10),0x2e);\n            }\n            do {\n              if (iVar6 != (*(undefined4 **)(iVar15 + 0x10))[0x23]) break;\n              pcVar12 = (char *)**(undefined4 **)(iVar15 + 0x10);\n              pcVar10 = strrchr(pcVar12,0x2e);\n              if (pcVar10 == (char *)0x0) {\nLAB_00056d20:\n                iVar13 = filename_cmp(**(undefined4 **)(iVar17 + 0x10),pcVar12);\n                if (iVar13 != 0) {\n                  bVar16 = false;\n                  goto LAB_00056b08;\n                }\n              }\n              else {\n                iVar13 = filename_cmp(pcVar10,&DAT_00192ed1);\n                if (iVar13 != 0) {\n                  pcVar12 = (char *)**(undefined4 **)(iVar15 + 0x10);\n                  goto LAB_00056d20;\n                }\n              }\n              piVar20 = (int *)(iVar15 + 0x18);\n              iVar15 = *piVar20;\n            } while (*piVar20 != 0);\n            pcVar12 = strrchr((char *)**(undefined4 **)(local_50 + 0x10),0x2e);\n          }\n          bVar16 = true;\n          iVar6 = filename_cmp(pcVar12,".dll");\n          if (iVar6 == 0) {\n            puVar7 = (undefined4 *)(*(undefined4 **)(local_50 + 0x10))[0x18];\n            if (puVar7 == (undefined4 *)0x0) {\n              iVar6 = 99;\n            }\n            else {\n              iVar17 = 0;\n              bVar24 = true;\n              bVar16 = false;\n              do {\n                bVar22 = false;\n                iVar6 = 9;\n                pbVar19 = (byte *)*puVar7;\n                pbVar21 = (byte *)".idata$2";\n                do {\n                  if (iVar6 == 0) break;\n                  iVar6 = iVar6 + -1;\n                  bVar22 = *pbVar19 < *pbVar21;\n                  bVar24 = *pbVar19 == *pbVar21;\n                  pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n                  pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n                } while (bVar24);\n                if ((!bVar22 && !bVar24) == bVar22) {\n                  bVar16 = true;\n                }\n                iVar17 = iVar17 + puVar7[0x19];\n                puVar7 = (undefined4 *)puVar7[3];\n                bVar24 = puVar7 == (undefined4 *)0x0;\n              } while (!bVar24);\n              iVar6 = 0x61;\n              if (!bVar16) {\n                iVar6 = (iVar17 < 1) + 0x62;\n              }\n            }\n            sVar9 = strlen((char *)**(undefined4 **)(local_50 + 0x10));\n            pcVar12 = (char *)xmalloc(sVar9 + 3);\n            sprintf(pcVar12,"%s.%c",**(undefined4 **)(local_50 + 0x10),iVar6);\n            **(undefined4 **)(local_50 + 0x10) = pcVar12;\n            sVar9 = strlen(*(char **)(local_50 + 8));\n            pcVar12 = (char *)xmalloc(sVar9 + 3);\n            sprintf(pcVar12,"%s.%c",*(undefined4 *)(local_50 + 8),iVar6);\n            *(char **)(local_50 + 8) = pcVar12;\n            bVar16 = true;\n          }\n        }\nLAB_00056b08:\n        local_50 = *(int *)(local_50 + 0x18);\njoined_r0x00056b15:\n      } while (local_50 != 0);\n      local_4c = DAT_001cf6bc;\n      if (DAT_001cf6bc != 0) {\n        do {\n          iVar6 = *(int *)(local_4c + 0x10);\n          if ((*(int *)(iVar6 + 0x8c) != 0) &&\n             (puVar7 = *(undefined4 **)(iVar6 + 0x60), puVar7 != (undefined4 *)0x0)) {\n            puVar18 = (undefined4 *)0x0;\n            bVar16 = false;\n            bVar24 = true;\n            do {\n              bVar22 = false;\n              iVar17 = 7;\n              pbVar19 = (byte *)*puVar7;\n              pbVar21 = (byte *)".idata$";\n              do {\n                if (iVar17 == 0) break;\n                iVar17 = iVar17 + -1;\n                bVar22 = *pbVar19 < *pbVar21;\n                bVar24 = *pbVar19 == *pbVar21;\n                pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n                pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n              } while (bVar24);\n              if ((!bVar22 && !bVar24) == bVar22) {\n                bVar16 = true;\n              }\n              if (((*(byte *)(puVar7 + 5) & 0x10) != 0) && (puVar7[0x19] != 0)) {\n                puVar18 = puVar7;\n              }\n              puVar7 = (undefined4 *)puVar7[3];\n              bVar24 = puVar7 == (undefined4 *)0x0;\n            } while (!bVar24);\n            if ((puVar18 != (undefined4 *)0x0) && (bVar16)) {\n              iVar6 = bfd_generic_link_read_symbols(iVar6);\n              if (iVar6 == 0) {\nLAB_000570af:\n                uVar11 = *(undefined4 *)(local_4c + 0x10);\n                uVar14 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n                FUN_00034d20(uVar14,uVar11);\n                return;\n              }\n              piVar20 = *(int **)(*(int *)(local_4c + 0x10) + 0x78);\n              iVar6 = *(int *)(*(int *)(local_4c + 0x10) + 0x7c);\n              if (0 < iVar6) {\n                piVar1 = piVar20 + iVar6;\n                do {\n                  if ((((*(int *)(*(int *)(*piVar20 + 0x14) + 4) == puVar18[1]) &&\n                       (iVar6 = bfd_link_hash_lookup\n                                          (DAT_001d0400,*(undefined4 *)(*piVar20 + 4),0,0,1),\n                       iVar6 != 0)) && (*(char *)(iVar6 + 0xc) == '\x03')) &&\n                     ((*(int *)(iVar6 + 0x10) == 0 && (*(int *)(DAT_001d0400 + 0x20) != iVar6)))) {\n                    puVar18[5] = puVar18[5] | 0x8000;\n                  }\n                  piVar20 = piVar20 + 1;\n                } while (piVar1 != piVar20);\n              }\n            }\n          }\n          local_4c = *(int *)(local_4c + 0x18);\n        } while (local_4c != 0);\n      }\n    }\n  }\n  return;\n}" if (parenthesized_expression "(DAT_001cf6bc != 0)" ( (binary_expression "DAT_001cf6bc != 0" identifier != number_literal) )) (compound_statement "{\n    do {\n      iVar6 = *(int *)(local_40 + 0x10);\n      if ((*(int *)(iVar6 + 0x8c) != 0) &&\n         (local_38 = *(undefined4 **)(iVar6 + 0x60), local_38 != (undefined4 *)0x0)) {\n        iVar17 = 0;\n        bVar24 = true;\n        puVar7 = local_38;\n        bVar3 = 0;\n        bVar16 = false;\n        do {\n          bVar22 = false;\n          iVar15 = 9;\n          pbVar19 = (byte *)*puVar7;\n          pbVar21 = (byte *)".idata$2";\n          do {\n            if (iVar15 == 0) break;\n            iVar15 = iVar15 + -1;\n            bVar22 = *pbVar19 < *pbVar21;\n            bVar24 = *pbVar19 == *pbVar21;\n            pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n            pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n          } while (bVar24);\n          bVar23 = false;\n          bVar24 = (!bVar22 && !bVar24) == bVar22;\n          bVar22 = true;\n          if (!bVar24) {\n            bVar22 = bVar16;\n          }\n          iVar15 = 7;\n          pbVar19 = (byte *)*puVar7;\n          pbVar21 = (byte *)".idata$";\n          do {\n            if (iVar15 == 0) break;\n            iVar15 = iVar15 + -1;\n            bVar23 = *pbVar19 < *pbVar21;\n            bVar24 = *pbVar19 == *pbVar21;\n            pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n            pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n          } while (bVar24);\n          bVar5 = 1;\n          if ((!bVar23 && !bVar24) != bVar23) {\n            bVar5 = bVar3;\n          }\n          iVar17 = iVar17 + puVar7[0x19];\n          puVar7 = (undefined4 *)puVar7[3];\n          bVar24 = puVar7 == (undefined4 *)0x0;\n          bVar3 = bVar5;\n          bVar16 = bVar22;\n        } while (!bVar24);\n        if (((bool)(bVar5 & iVar17 != 0)) && (!bVar22)) {\n          while (iVar6 = bfd_get_reloc_upper_bound(iVar6,local_38), 0 < iVar6) {\n            iVar17 = bfd_generic_link_read_symbols(*(undefined4 *)(local_40 + 0x10));\n            local_4c = local_40;\n            if (iVar17 == 0) goto LAB_000570af;\n            uVar11 = *(undefined4 *)(*(int *)(local_40 + 0x10) + 0x78);\n            puVar7 = (undefined4 *)xmalloc(iVar6);\n            iVar6 = bfd_canonicalize_reloc(*(undefined4 *)(local_40 + 0x10),local_38,puVar7,uVar11);\n            if (iVar6 < 0) {\n              free(puVar7);\n              uVar11 = dcgettext(0,"%X%P: unable to process relocs: %E\n",5);\n              FUN_00034d20(uVar11);\n              return;\n            }\n            puVar18 = puVar7;\n            if (iVar6 != 0) {\n              do {\n                if ((((*(byte *)(**(int **)*puVar18 + 0x10) & 1) == 0) &&\n                    (iVar17 = bfd_link_hash_lookup\n                                        (DAT_001d0400,*(undefined4 *)(**(int **)*puVar18 + 4),0,0,1)\n                    , iVar17 != 0)) && (*(char *)(iVar17 + 0xc) == '\x03')) {\n                  puVar2 = *(undefined4 **)(*(int *)(iVar17 + 0x14) + 0xac);\n                  puVar8 = (undefined4 *)puVar2[0x23];\n                  if (puVar8 == (undefined4 *)0x0) {\n                    puVar8 = puVar2;\n                  }\n                  pcVar12 = (char *)*puVar8;\n                  iVar17 = filename_cmp(**(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c),pcVar12)\n                  ;\n                  if (iVar17 != 0) {\n                    sVar9 = strlen(pcVar12);\n                    pcVar10 = (char *)xmalloc(sVar9 + 1);\n                    strcpy(pcVar10,pcVar12);\n                    **(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c) = pcVar10;\n                  }\n                }\n                puVar18 = puVar18 + 1;\n              } while (puVar7 + iVar6 != puVar18);\n            }\n            free(puVar7);\n            local_38 = (undefined4 *)local_38[3];\n            if (local_38 == (undefined4 *)0x0) break;\n            iVar6 = *(int *)(local_40 + 0x10);\n          }\n        }\n      }\n      local_40 = *(int *)(local_40 + 0x18);\n    } while (local_40 != 0);\n    local_50 = DAT_001cf6bc;\n    if (DAT_001cf6bc != 0) {\n      bVar16 = false;\n      local_40 = 0;\n      do {\n        iVar6 = (*(undefined4 **)(local_50 + 0x10))[0x23];\n        if (iVar6 != 0) {\n          pcVar12 = strrchr((char *)**(undefined4 **)(local_50 + 0x10),0x2e);\n          iVar17 = local_50;\n          if (iVar6 == local_40) {\n            if (!bVar16) goto LAB_00056b08;\n          }\n          else {\n            while ((iVar15 = local_50, local_40 = iVar6, pcVar12 == (char *)0x0 ||\n                   (iVar13 = filename_cmp(pcVar12,".dll"), iVar13 != 0))) {\n              iVar17 = *(int *)(iVar17 + 0x18);\n              if (iVar17 == 0) {\n                local_50 = *(int *)(local_50 + 0x18);\n                bVar16 = false;\n                goto joined_r0x00056b15;\n              }\n              if (iVar6 != (*(undefined4 **)(iVar17 + 0x10))[0x23]) break;\n              pcVar12 = strrchr((char *)**(undefined4 **)(iVar17 + 0x10),0x2e);\n            }\n            do {\n              if (iVar6 != (*(undefined4 **)(iVar15 + 0x10))[0x23]) break;\n              pcVar12 = (char *)**(undefined4 **)(iVar15 + 0x10);\n              pcVar10 = strrchr(pcVar12,0x2e);\n              if (pcVar10 == (char *)0x0) {\nLAB_00056d20:\n                iVar13 = filename_cmp(**(undefined4 **)(iVar17 + 0x10),pcVar12);\n                if (iVar13 != 0) {\n                  bVar16 = false;\n                  goto LAB_00056b08;\n                }\n              }\n              else {\n                iVar13 = filename_cmp(pcVar10,&DAT_00192ed1);\n                if (iVar13 != 0) {\n                  pcVar12 = (char *)**(undefined4 **)(iVar15 + 0x10);\n                  goto LAB_00056d20;\n                }\n              }\n              piVar20 = (int *)(iVar15 + 0x18);\n              iVar15 = *piVar20;\n            } while (*piVar20 != 0);\n            pcVar12 = strrchr((char *)**(undefined4 **)(local_50 + 0x10),0x2e);\n          }\n          bVar16 = true;\n          iVar6 = filename_cmp(pcVar12,".dll");\n          if (iVar6 == 0) {\n            puVar7 = (undefined4 *)(*(undefined4 **)(local_50 + 0x10))[0x18];\n            if (puVar7 == (undefined4 *)0x0) {\n              iVar6 = 99;\n            }\n            else {\n              iVar17 = 0;\n              bVar24 = true;\n              bVar16 = false;\n              do {\n                bVar22 = false;\n                iVar6 = 9;\n                pbVar19 = (byte *)*puVar7;\n                pbVar21 = (byte *)".idata$2";\n                do {\n                  if (iVar6 == 0) break;\n                  iVar6 = iVar6 + -1;\n                  bVar22 = *pbVar19 < *pbVar21;\n                  bVar24 = *pbVar19 == *pbVar21;\n                  pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n                  pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n                } while (bVar24);\n                if ((!bVar22 && !bVar24) == bVar22) {\n                  bVar16 = true;\n                }\n                iVar17 = iVar17 + puVar7[0x19];\n                puVar7 = (undefined4 *)puVar7[3];\n                bVar24 = puVar7 == (undefined4 *)0x0;\n              } while (!bVar24);\n              iVar6 = 0x61;\n              if (!bVar16) {\n                iVar6 = (iVar17 < 1) + 0x62;\n              }\n            }\n            sVar9 = strlen((char *)**(undefined4 **)(local_50 + 0x10));\n            pcVar12 = (char *)xmalloc(sVar9 + 3);\n            sprintf(pcVar12,"%s.%c",**(undefined4 **)(local_50 + 0x10),iVar6);\n            **(undefined4 **)(local_50 + 0x10) = pcVar12;\n            sVar9 = strlen(*(char **)(local_50 + 8));\n            pcVar12 = (char *)xmalloc(sVar9 + 3);\n            sprintf(pcVar12,"%s.%c",*(undefined4 *)(local_50 + 8),iVar6);\n            *(char **)(local_50 + 8) = pcVar12;\n            bVar16 = true;\n          }\n        }\nLAB_00056b08:\n        local_50 = *(int *)(local_50 + 0x18);\njoined_r0x00056b15:\n      } while (local_50 != 0);\n      local_4c = DAT_001cf6bc;\n      if (DAT_001cf6bc != 0) {\n        do {\n          iVar6 = *(int *)(local_4c + 0x10);\n          if ((*(int *)(iVar6 + 0x8c) != 0) &&\n             (puVar7 = *(undefined4 **)(iVar6 + 0x60), puVar7 != (undefined4 *)0x0)) {\n            puVar18 = (undefined4 *)0x0;\n            bVar16 = false;\n            bVar24 = true;\n            do {\n              bVar22 = false;\n              iVar17 = 7;\n              pbVar19 = (byte *)*puVar7;\n              pbVar21 = (byte *)".idata$";\n              do {\n                if (iVar17 == 0) break;\n                iVar17 = iVar17 + -1;\n                bVar22 = *pbVar19 < *pbVar21;\n                bVar24 = *pbVar19 == *pbVar21;\n                pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n                pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n              } while (bVar24);\n              if ((!bVar22 && !bVar24) == bVar22) {\n                bVar16 = true;\n              }\n              if (((*(byte *)(puVar7 + 5) & 0x10) != 0) && (puVar7[0x19] != 0)) {\n                puVar18 = puVar7;\n              }\n              puVar7 = (undefined4 *)puVar7[3];\n              bVar24 = puVar7 == (undefined4 *)0x0;\n            } while (!bVar24);\n            if ((puVar18 != (undefined4 *)0x0) && (bVar16)) {\n              iVar6 = bfd_generic_link_read_symbols(iVar6);\n              if (iVar6 == 0) {\nLAB_000570af:\n                uVar11 = *(undefined4 *)(local_4c + 0x10);\n                uVar14 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n                FUN_00034d20(uVar14,uVar11);\n                return;\n              }\n              piVar20 = *(int **)(*(int *)(local_4c + 0x10) + 0x78);\n              iVar6 = *(int *)(*(int *)(local_4c + 0x10) + 0x7c);\n              if (0 < iVar6) {\n                piVar1 = piVar20 + iVar6;\n                do {\n                  if ((((*(int *)(*(int *)(*piVar20 + 0x14) + 4) == puVar18[1]) &&\n                       (iVar6 = bfd_link_hash_lookup\n                                          (DAT_001d0400,*(undefined4 *)(*piVar20 + 4),0,0,1),\n                       iVar6 != 0)) && (*(char *)(iVar6 + 0xc) == '\x03')) &&\n                     ((*(int *)(iVar6 + 0x10) == 0 && (*(int *)(DAT_001d0400 + 0x20) != iVar6)))) {\n                    puVar18[5] = puVar18[5] | 0x8000;\n                  }\n                  piVar20 = piVar20 + 1;\n                } while (piVar1 != piVar20);\n              }\n            }\n          }\n          local_4c = *(int *)(local_4c + 0x18);\n        } while (local_4c != 0);\n      }\n    }\n  }\n  return;\n}" { (do_statement "do {\n      iVar6 = *(int *)(local_40 + 0x10);\n      if ((*(int *)(iVar6 + 0x8c) != 0) &&\n         (local_38 = *(undefined4 **)(iVar6 + 0x60), local_38 != (undefined4 *)0x0)) {\n        iVar17 = 0;\n        bVar24 = true;\n        puVar7 = local_38;\n        bVar3 = 0;\n        bVar16 = false;\n        do {\n          bVar22 = false;\n          iVar15 = 9;\n          pbVar19 = (byte *)*puVar7;\n          pbVar21 = (byte *)".idata$2";\n          do {\n            if (iVar15 == 0) break;\n            iVar15 = iVar15 + -1;\n            bVar22 = *pbVar19 < *pbVar21;\n            bVar24 = *pbVar19 == *pbVar21;\n            pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n            pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n          } while (bVar24);\n          bVar23 = false;\n          bVar24 = (!bVar22 && !bVar24) == bVar22;\n          bVar22 = true;\n          if (!bVar24) {\n            bVar22 = bVar16;\n          }\n          iVar15 = 7;\n          pbVar19 = (byte *)*puVar7;\n          pbVar21 = (byte *)".idata$";\n          do {\n            if (iVar15 == 0) break;\n            iVar15 = iVar15 + -1;\n            bVar23 = *pbVar19 < *pbVar21;\n            bVar24 = *pbVar19 == *pbVar21;\n            pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n            pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n          } while (bVar24);\n          bVar5 = 1;\n          if ((!bVar23 && !bVar24) != bVar23) {\n            bVar5 = bVar3;\n          }\n          iVar17 = iVar17 + puVar7[0x19];\n          puVar7 = (undefined4 *)puVar7[3];\n          bVar24 = puVar7 == (undefined4 *)0x0;\n          bVar3 = bVar5;\n          bVar16 = bVar22;\n        } while (!bVar24);\n        if (((bool)(bVar5 & iVar17 != 0)) && (!bVar22)) {\n          while (iVar6 = bfd_get_reloc_upper_bound(iVar6,local_38), 0 < iVar6) {\n            iVar17 = bfd_generic_link_read_symbols(*(undefined4 *)(local_40 + 0x10));\n            local_4c = local_40;\n            if (iVar17 == 0) goto LAB_000570af;\n            uVar11 = *(undefined4 *)(*(int *)(local_40 + 0x10) + 0x78);\n            puVar7 = (undefined4 *)xmalloc(iVar6);\n            iVar6 = bfd_canonicalize_reloc(*(undefined4 *)(local_40 + 0x10),local_38,puVar7,uVar11);\n            if (iVar6 < 0) {\n              free(puVar7);\n              uVar11 = dcgettext(0,"%X%P: unable to process relocs: %E\n",5);\n              FUN_00034d20(uVar11);\n              return;\n            }\n            puVar18 = puVar7;\n            if (iVar6 != 0) {\n              do {\n                if ((((*(byte *)(**(int **)*puVar18 + 0x10) & 1) == 0) &&\n                    (iVar17 = bfd_link_hash_lookup\n                                        (DAT_001d0400,*(undefined4 *)(**(int **)*puVar18 + 4),0,0,1)\n                    , iVar17 != 0)) && (*(char *)(iVar17 + 0xc) == '\x03')) {\n                  puVar2 = *(undefined4 **)(*(int *)(iVar17 + 0x14) + 0xac);\n                  puVar8 = (undefined4 *)puVar2[0x23];\n                  if (puVar8 == (undefined4 *)0x0) {\n                    puVar8 = puVar2;\n                  }\n                  pcVar12 = (char *)*puVar8;\n                  iVar17 = filename_cmp(**(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c),pcVar12)\n                  ;\n                  if (iVar17 != 0) {\n                    sVar9 = strlen(pcVar12);\n                    pcVar10 = (char *)xmalloc(sVar9 + 1);\n                    strcpy(pcVar10,pcVar12);\n                    **(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c) = pcVar10;\n                  }\n                }\n                puVar18 = puVar18 + 1;\n              } while (puVar7 + iVar6 != puVar18);\n            }\n            free(puVar7);\n            local_38 = (undefined4 *)local_38[3];\n            if (local_38 == (undefined4 *)0x0) break;\n            iVar6 = *(int *)(local_40 + 0x10);\n          }\n        }\n      }\n      local_40 = *(int *)(local_40 + 0x18);\n    } while (local_40 != 0);" do (compound_statement "{\n      iVar6 = *(int *)(local_40 + 0x10);\n      if ((*(int *)(iVar6 + 0x8c) != 0) &&\n         (local_38 = *(undefined4 **)(iVar6 + 0x60), local_38 != (undefined4 *)0x0)) {\n        iVar17 = 0;\n        bVar24 = true;\n        puVar7 = local_38;\n        bVar3 = 0;\n        bVar16 = false;\n        do {\n          bVar22 = false;\n          iVar15 = 9;\n          pbVar19 = (byte *)*puVar7;\n          pbVar21 = (byte *)".idata$2";\n          do {\n            if (iVar15 == 0) break;\n            iVar15 = iVar15 + -1;\n            bVar22 = *pbVar19 < *pbVar21;\n            bVar24 = *pbVar19 == *pbVar21;\n            pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n            pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n          } while (bVar24);\n          bVar23 = false;\n          bVar24 = (!bVar22 && !bVar24) == bVar22;\n          bVar22 = true;\n          if (!bVar24) {\n            bVar22 = bVar16;\n          }\n          iVar15 = 7;\n          pbVar19 = (byte *)*puVar7;\n          pbVar21 = (byte *)".idata$";\n          do {\n            if (iVar15 == 0) break;\n            iVar15 = iVar15 + -1;\n            bVar23 = *pbVar19 < *pbVar21;\n            bVar24 = *pbVar19 == *pbVar21;\n            pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n            pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n          } while (bVar24);\n          bVar5 = 1;\n          if ((!bVar23 && !bVar24) != bVar23) {\n            bVar5 = bVar3;\n          }\n          iVar17 = iVar17 + puVar7[0x19];\n          puVar7 = (undefined4 *)puVar7[3];\n          bVar24 = puVar7 == (undefined4 *)0x0;\n          bVar3 = bVar5;\n          bVar16 = bVar22;\n        } while (!bVar24);\n        if (((bool)(bVar5 & iVar17 != 0)) && (!bVar22)) {\n          while (iVar6 = bfd_get_reloc_upper_bound(iVar6,local_38), 0 < iVar6) {\n            iVar17 = bfd_generic_link_read_symbols(*(undefined4 *)(local_40 + 0x10));\n            local_4c = local_40;\n            if (iVar17 == 0) goto LAB_000570af;\n            uVar11 = *(undefined4 *)(*(int *)(local_40 + 0x10) + 0x78);\n            puVar7 = (undefined4 *)xmalloc(iVar6);\n            iVar6 = bfd_canonicalize_reloc(*(undefined4 *)(local_40 + 0x10),local_38,puVar7,uVar11);\n            if (iVar6 < 0) {\n              free(puVar7);\n              uVar11 = dcgettext(0,"%X%P: unable to process relocs: %E\n",5);\n              FUN_00034d20(uVar11);\n              return;\n            }\n            puVar18 = puVar7;\n            if (iVar6 != 0) {\n              do {\n                if ((((*(byte *)(**(int **)*puVar18 + 0x10) & 1) == 0) &&\n                    (iVar17 = bfd_link_hash_lookup\n                                        (DAT_001d0400,*(undefined4 *)(**(int **)*puVar18 + 4),0,0,1)\n                    , iVar17 != 0)) && (*(char *)(iVar17 + 0xc) == '\x03')) {\n                  puVar2 = *(undefined4 **)(*(int *)(iVar17 + 0x14) + 0xac);\n                  puVar8 = (undefined4 *)puVar2[0x23];\n                  if (puVar8 == (undefined4 *)0x0) {\n                    puVar8 = puVar2;\n                  }\n                  pcVar12 = (char *)*puVar8;\n                  iVar17 = filename_cmp(**(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c),pcVar12)\n                  ;\n                  if (iVar17 != 0) {\n                    sVar9 = strlen(pcVar12);\n                    pcVar10 = (char *)xmalloc(sVar9 + 1);\n                    strcpy(pcVar10,pcVar12);\n                    **(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c) = pcVar10;\n                  }\n                }\n                puVar18 = puVar18 + 1;\n              } while (puVar7 + iVar6 != puVar18);\n            }\n            free(puVar7);\n            local_38 = (undefined4 *)local_38[3];\n            if (local_38 == (undefined4 *)0x0) break;\n            iVar6 = *(int *)(local_40 + 0x10);\n          }\n        }\n      }\n      local_40 = *(int *)(local_40 + 0x18);\n    }" { (expression_statement "iVar6 = *(int *)(local_40 + 0x10);" (assignment_expression "iVar6 = *(int *)(local_40 + 0x10)" identifier = (pointer_expression "*(int *)(local_40 + 0x10)" * (cast_expression "(int *)(local_40 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_40 + 0x10)" ( (binary_expression "local_40 + 0x10" identifier + number_literal) ))))) ;) (if_statement "if ((*(int *)(iVar6 + 0x8c) != 0) &&\n         (local_38 = *(undefined4 **)(iVar6 + 0x60), local_38 != (undefined4 *)0x0)) {\n        iVar17 = 0;\n        bVar24 = true;\n        puVar7 = local_38;\n        bVar3 = 0;\n        bVar16 = false;\n        do {\n          bVar22 = false;\n          iVar15 = 9;\n          pbVar19 = (byte *)*puVar7;\n          pbVar21 = (byte *)".idata$2";\n          do {\n            if (iVar15 == 0) break;\n            iVar15 = iVar15 + -1;\n            bVar22 = *pbVar19 < *pbVar21;\n            bVar24 = *pbVar19 == *pbVar21;\n            pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n            pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n          } while (bVar24);\n          bVar23 = false;\n          bVar24 = (!bVar22 && !bVar24) == bVar22;\n          bVar22 = true;\n          if (!bVar24) {\n            bVar22 = bVar16;\n          }\n          iVar15 = 7;\n          pbVar19 = (byte *)*puVar7;\n          pbVar21 = (byte *)".idata$";\n          do {\n            if (iVar15 == 0) break;\n            iVar15 = iVar15 + -1;\n            bVar23 = *pbVar19 < *pbVar21;\n            bVar24 = *pbVar19 == *pbVar21;\n            pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n            pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n          } while (bVar24);\n          bVar5 = 1;\n          if ((!bVar23 && !bVar24) != bVar23) {\n            bVar5 = bVar3;\n          }\n          iVar17 = iVar17 + puVar7[0x19];\n          puVar7 = (undefined4 *)puVar7[3];\n          bVar24 = puVar7 == (undefined4 *)0x0;\n          bVar3 = bVar5;\n          bVar16 = bVar22;\n        } while (!bVar24);\n        if (((bool)(bVar5 & iVar17 != 0)) && (!bVar22)) {\n          while (iVar6 = bfd_get_reloc_upper_bound(iVar6,local_38), 0 < iVar6) {\n            iVar17 = bfd_generic_link_read_symbols(*(undefined4 *)(local_40 + 0x10));\n            local_4c = local_40;\n            if (iVar17 == 0) goto LAB_000570af;\n            uVar11 = *(undefined4 *)(*(int *)(local_40 + 0x10) + 0x78);\n            puVar7 = (undefined4 *)xmalloc(iVar6);\n            iVar6 = bfd_canonicalize_reloc(*(undefined4 *)(local_40 + 0x10),local_38,puVar7,uVar11);\n            if (iVar6 < 0) {\n              free(puVar7);\n              uVar11 = dcgettext(0,"%X%P: unable to process relocs: %E\n",5);\n              FUN_00034d20(uVar11);\n              return;\n            }\n            puVar18 = puVar7;\n            if (iVar6 != 0) {\n              do {\n                if ((((*(byte *)(**(int **)*puVar18 + 0x10) & 1) == 0) &&\n                    (iVar17 = bfd_link_hash_lookup\n                                        (DAT_001d0400,*(undefined4 *)(**(int **)*puVar18 + 4),0,0,1)\n                    , iVar17 != 0)) && (*(char *)(iVar17 + 0xc) == '\x03')) {\n                  puVar2 = *(undefined4 **)(*(int *)(iVar17 + 0x14) + 0xac);\n                  puVar8 = (undefined4 *)puVar2[0x23];\n                  if (puVar8 == (undefined4 *)0x0) {\n                    puVar8 = puVar2;\n                  }\n                  pcVar12 = (char *)*puVar8;\n                  iVar17 = filename_cmp(**(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c),pcVar12)\n                  ;\n                  if (iVar17 != 0) {\n                    sVar9 = strlen(pcVar12);\n                    pcVar10 = (char *)xmalloc(sVar9 + 1);\n                    strcpy(pcVar10,pcVar12);\n                    **(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c) = pcVar10;\n                  }\n                }\n                puVar18 = puVar18 + 1;\n              } while (puVar7 + iVar6 != puVar18);\n            }\n            free(puVar7);\n            local_38 = (undefined4 *)local_38[3];\n            if (local_38 == (undefined4 *)0x0) break;\n            iVar6 = *(int *)(local_40 + 0x10);\n          }\n        }\n      }" if (parenthesized_expression "((*(int *)(iVar6 + 0x8c) != 0) &&\n         (local_38 = *(undefined4 **)(iVar6 + 0x60), local_38 != (undefined4 *)0x0))" ( (binary_expression "(*(int *)(iVar6 + 0x8c) != 0) &&\n         (local_38 = *(undefined4 **)(iVar6 + 0x60), local_38 != (undefined4 *)0x0)" (parenthesized_expression "(*(int *)(iVar6 + 0x8c) != 0)" ( (binary_expression "*(int *)(iVar6 + 0x8c) != 0" (pointer_expression "*(int *)(iVar6 + 0x8c)" * (cast_expression "(int *)(iVar6 + 0x8c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x8c)" ( (binary_expression "iVar6 + 0x8c" identifier + number_literal) )))) != number_literal) )) && (parenthesized_expression "(local_38 = *(undefined4 **)(iVar6 + 0x60), local_38 != (undefined4 *)0x0)" ( (comma_expression "local_38 = *(undefined4 **)(iVar6 + 0x60), local_38 != (undefined4 *)0x0" (assignment_expression "local_38 = *(undefined4 **)(iVar6 + 0x60)" identifier = (pointer_expression "*(undefined4 **)(iVar6 + 0x60)" * (cast_expression "(undefined4 **)(iVar6 + 0x60)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar6 + 0x60)" ( (binary_expression "iVar6 + 0x60" identifier + number_literal) ))))) , (binary_expression "local_38 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n        iVar17 = 0;\n        bVar24 = true;\n        puVar7 = local_38;\n        bVar3 = 0;\n        bVar16 = false;\n        do {\n          bVar22 = false;\n          iVar15 = 9;\n          pbVar19 = (byte *)*puVar7;\n          pbVar21 = (byte *)".idata$2";\n          do {\n            if (iVar15 == 0) break;\n            iVar15 = iVar15 + -1;\n            bVar22 = *pbVar19 < *pbVar21;\n            bVar24 = *pbVar19 == *pbVar21;\n            pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n            pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n          } while (bVar24);\n          bVar23 = false;\n          bVar24 = (!bVar22 && !bVar24) == bVar22;\n          bVar22 = true;\n          if (!bVar24) {\n            bVar22 = bVar16;\n          }\n          iVar15 = 7;\n          pbVar19 = (byte *)*puVar7;\n          pbVar21 = (byte *)".idata$";\n          do {\n            if (iVar15 == 0) break;\n            iVar15 = iVar15 + -1;\n            bVar23 = *pbVar19 < *pbVar21;\n            bVar24 = *pbVar19 == *pbVar21;\n            pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n            pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n          } while (bVar24);\n          bVar5 = 1;\n          if ((!bVar23 && !bVar24) != bVar23) {\n            bVar5 = bVar3;\n          }\n          iVar17 = iVar17 + puVar7[0x19];\n          puVar7 = (undefined4 *)puVar7[3];\n          bVar24 = puVar7 == (undefined4 *)0x0;\n          bVar3 = bVar5;\n          bVar16 = bVar22;\n        } while (!bVar24);\n        if (((bool)(bVar5 & iVar17 != 0)) && (!bVar22)) {\n          while (iVar6 = bfd_get_reloc_upper_bound(iVar6,local_38), 0 < iVar6) {\n            iVar17 = bfd_generic_link_read_symbols(*(undefined4 *)(local_40 + 0x10));\n            local_4c = local_40;\n            if (iVar17 == 0) goto LAB_000570af;\n            uVar11 = *(undefined4 *)(*(int *)(local_40 + 0x10) + 0x78);\n            puVar7 = (undefined4 *)xmalloc(iVar6);\n            iVar6 = bfd_canonicalize_reloc(*(undefined4 *)(local_40 + 0x10),local_38,puVar7,uVar11);\n            if (iVar6 < 0) {\n              free(puVar7);\n              uVar11 = dcgettext(0,"%X%P: unable to process relocs: %E\n",5);\n              FUN_00034d20(uVar11);\n              return;\n            }\n            puVar18 = puVar7;\n            if (iVar6 != 0) {\n              do {\n                if ((((*(byte *)(**(int **)*puVar18 + 0x10) & 1) == 0) &&\n                    (iVar17 = bfd_link_hash_lookup\n                                        (DAT_001d0400,*(undefined4 *)(**(int **)*puVar18 + 4),0,0,1)\n                    , iVar17 != 0)) && (*(char *)(iVar17 + 0xc) == '\x03')) {\n                  puVar2 = *(undefined4 **)(*(int *)(iVar17 + 0x14) + 0xac);\n                  puVar8 = (undefined4 *)puVar2[0x23];\n                  if (puVar8 == (undefined4 *)0x0) {\n                    puVar8 = puVar2;\n                  }\n                  pcVar12 = (char *)*puVar8;\n                  iVar17 = filename_cmp(**(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c),pcVar12)\n                  ;\n                  if (iVar17 != 0) {\n                    sVar9 = strlen(pcVar12);\n                    pcVar10 = (char *)xmalloc(sVar9 + 1);\n                    strcpy(pcVar10,pcVar12);\n                    **(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c) = pcVar10;\n                  }\n                }\n                puVar18 = puVar18 + 1;\n              } while (puVar7 + iVar6 != puVar18);\n            }\n            free(puVar7);\n            local_38 = (undefined4 *)local_38[3];\n            if (local_38 == (undefined4 *)0x0) break;\n            iVar6 = *(int *)(local_40 + 0x10);\n          }\n        }\n      }" { (expression_statement "iVar17 = 0;" (assignment_expression "iVar17 = 0" identifier = number_literal) ;) (expression_statement "bVar24 = true;" (assignment_expression "bVar24 = true" identifier = true) ;) (expression_statement "puVar7 = local_38;" (assignment_expression "puVar7 = local_38" identifier = identifier) ;) (expression_statement "bVar3 = 0;" (assignment_expression "bVar3 = 0" identifier = number_literal) ;) (expression_statement "bVar16 = false;" (assignment_expression "bVar16 = false" identifier = false) ;) (do_statement "do {\n          bVar22 = false;\n          iVar15 = 9;\n          pbVar19 = (byte *)*puVar7;\n          pbVar21 = (byte *)".idata$2";\n          do {\n            if (iVar15 == 0) break;\n            iVar15 = iVar15 + -1;\n            bVar22 = *pbVar19 < *pbVar21;\n            bVar24 = *pbVar19 == *pbVar21;\n            pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n            pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n          } while (bVar24);\n          bVar23 = false;\n          bVar24 = (!bVar22 && !bVar24) == bVar22;\n          bVar22 = true;\n          if (!bVar24) {\n            bVar22 = bVar16;\n          }\n          iVar15 = 7;\n          pbVar19 = (byte *)*puVar7;\n          pbVar21 = (byte *)".idata$";\n          do {\n            if (iVar15 == 0) break;\n            iVar15 = iVar15 + -1;\n            bVar23 = *pbVar19 < *pbVar21;\n            bVar24 = *pbVar19 == *pbVar21;\n            pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n            pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n          } while (bVar24);\n          bVar5 = 1;\n          if ((!bVar23 && !bVar24) != bVar23) {\n            bVar5 = bVar3;\n          }\n          iVar17 = iVar17 + puVar7[0x19];\n          puVar7 = (undefined4 *)puVar7[3];\n          bVar24 = puVar7 == (undefined4 *)0x0;\n          bVar3 = bVar5;\n          bVar16 = bVar22;\n        } while (!bVar24);" do (compound_statement "{\n          bVar22 = false;\n          iVar15 = 9;\n          pbVar19 = (byte *)*puVar7;\n          pbVar21 = (byte *)".idata$2";\n          do {\n            if (iVar15 == 0) break;\n            iVar15 = iVar15 + -1;\n            bVar22 = *pbVar19 < *pbVar21;\n            bVar24 = *pbVar19 == *pbVar21;\n            pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n            pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n          } while (bVar24);\n          bVar23 = false;\n          bVar24 = (!bVar22 && !bVar24) == bVar22;\n          bVar22 = true;\n          if (!bVar24) {\n            bVar22 = bVar16;\n          }\n          iVar15 = 7;\n          pbVar19 = (byte *)*puVar7;\n          pbVar21 = (byte *)".idata$";\n          do {\n            if (iVar15 == 0) break;\n            iVar15 = iVar15 + -1;\n            bVar23 = *pbVar19 < *pbVar21;\n            bVar24 = *pbVar19 == *pbVar21;\n            pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n            pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n          } while (bVar24);\n          bVar5 = 1;\n          if ((!bVar23 && !bVar24) != bVar23) {\n            bVar5 = bVar3;\n          }\n          iVar17 = iVar17 + puVar7[0x19];\n          puVar7 = (undefined4 *)puVar7[3];\n          bVar24 = puVar7 == (undefined4 *)0x0;\n          bVar3 = bVar5;\n          bVar16 = bVar22;\n        }" { (expression_statement "bVar22 = false;" (assignment_expression "bVar22 = false" identifier = false) ;) (expression_statement "iVar15 = 9;" (assignment_expression "iVar15 = 9" identifier = number_literal) ;) (expression_statement "pbVar19 = (byte *)*puVar7;" (assignment_expression "pbVar19 = (byte *)*puVar7" identifier = (cast_expression "(byte *)*puVar7" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar7" * identifier))) ;) (expression_statement "pbVar21 = (byte *)".idata$2";" (assignment_expression "pbVar21 = (byte *)".idata$2"" identifier = (cast_expression "(byte *)".idata$2"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".idata$2"" " string_content "))) ;) (do_statement "do {\n            if (iVar15 == 0) break;\n            iVar15 = iVar15 + -1;\n            bVar22 = *pbVar19 < *pbVar21;\n            bVar24 = *pbVar19 == *pbVar21;\n            pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n            pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n          } while (bVar24);" do (compound_statement "{\n            if (iVar15 == 0) break;\n            iVar15 = iVar15 + -1;\n            bVar22 = *pbVar19 < *pbVar21;\n            bVar24 = *pbVar19 == *pbVar21;\n            pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n            pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n          }" { (if_statement "if (iVar15 == 0) break;" if (parenthesized_expression "(iVar15 == 0)" ( (binary_expression "iVar15 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar15 = iVar15 + -1;" (assignment_expression "iVar15 = iVar15 + -1" identifier = (binary_expression "iVar15 + -1" identifier + number_literal)) ;) (expression_statement "bVar22 = *pbVar19 < *pbVar21;" (assignment_expression "bVar22 = *pbVar19 < *pbVar21" identifier = (binary_expression "*pbVar19 < *pbVar21" (pointer_expression "*pbVar19" * identifier) < (pointer_expression "*pbVar21" * identifier))) ;) (expression_statement "bVar24 = *pbVar19 == *pbVar21;" (assignment_expression "bVar24 = *pbVar19 == *pbVar21" identifier = (binary_expression "*pbVar19 == *pbVar21" (pointer_expression "*pbVar19" * identifier) == (pointer_expression "*pbVar21" * identifier))) ;) (expression_statement "pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pbVar19 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar19 + (uint)bVar25 * -2" identifier + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pbVar21 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar21 + (uint)bVar25 * -2" identifier + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar24)" ( identifier )) ;) (expression_statement "bVar23 = false;" (assignment_expression "bVar23 = false" identifier = false) ;) (expression_statement "bVar24 = (!bVar22 && !bVar24) == bVar22;" (assignment_expression "bVar24 = (!bVar22 && !bVar24) == bVar22" identifier = (binary_expression "(!bVar22 && !bVar24) == bVar22" (parenthesized_expression "(!bVar22 && !bVar24)" ( (binary_expression "!bVar22 && !bVar24" (unary_expression "!bVar22" ! identifier) && (unary_expression "!bVar24" ! identifier)) )) == identifier)) ;) (expression_statement "bVar22 = true;" (assignment_expression "bVar22 = true" identifier = true) ;) (if_statement "if (!bVar24) {\n            bVar22 = bVar16;\n          }" if (parenthesized_expression "(!bVar24)" ( (unary_expression "!bVar24" ! identifier) )) (compound_statement "{\n            bVar22 = bVar16;\n          }" { (expression_statement "bVar22 = bVar16;" (assignment_expression "bVar22 = bVar16" identifier = identifier) ;) })) (expression_statement "iVar15 = 7;" (assignment_expression "iVar15 = 7" identifier = number_literal) ;) (expression_statement "pbVar19 = (byte *)*puVar7;" (assignment_expression "pbVar19 = (byte *)*puVar7" identifier = (cast_expression "(byte *)*puVar7" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar7" * identifier))) ;) (expression_statement "pbVar21 = (byte *)".idata$";" (assignment_expression "pbVar21 = (byte *)".idata$"" identifier = (cast_expression "(byte *)".idata$"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".idata$"" " string_content "))) ;) (do_statement "do {\n            if (iVar15 == 0) break;\n            iVar15 = iVar15 + -1;\n            bVar23 = *pbVar19 < *pbVar21;\n            bVar24 = *pbVar19 == *pbVar21;\n            pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n            pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n          } while (bVar24);" do (compound_statement "{\n            if (iVar15 == 0) break;\n            iVar15 = iVar15 + -1;\n            bVar23 = *pbVar19 < *pbVar21;\n            bVar24 = *pbVar19 == *pbVar21;\n            pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n            pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n          }" { (if_statement "if (iVar15 == 0) break;" if (parenthesized_expression "(iVar15 == 0)" ( (binary_expression "iVar15 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar15 = iVar15 + -1;" (assignment_expression "iVar15 = iVar15 + -1" identifier = (binary_expression "iVar15 + -1" identifier + number_literal)) ;) (expression_statement "bVar23 = *pbVar19 < *pbVar21;" (assignment_expression "bVar23 = *pbVar19 < *pbVar21" identifier = (binary_expression "*pbVar19 < *pbVar21" (pointer_expression "*pbVar19" * identifier) < (pointer_expression "*pbVar21" * identifier))) ;) (expression_statement "bVar24 = *pbVar19 == *pbVar21;" (assignment_expression "bVar24 = *pbVar19 == *pbVar21" identifier = (binary_expression "*pbVar19 == *pbVar21" (pointer_expression "*pbVar19" * identifier) == (pointer_expression "*pbVar21" * identifier))) ;) (expression_statement "pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pbVar19 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar19 + (uint)bVar25 * -2" identifier + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pbVar21 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar21 + (uint)bVar25 * -2" identifier + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar24)" ( identifier )) ;) (expression_statement "bVar5 = 1;" (assignment_expression "bVar5 = 1" identifier = number_literal) ;) (if_statement "if ((!bVar23 && !bVar24) != bVar23) {\n            bVar5 = bVar3;\n          }" if (parenthesized_expression "((!bVar23 && !bVar24) != bVar23)" ( (binary_expression "(!bVar23 && !bVar24) != bVar23" (parenthesized_expression "(!bVar23 && !bVar24)" ( (binary_expression "!bVar23 && !bVar24" (unary_expression "!bVar23" ! identifier) && (unary_expression "!bVar24" ! identifier)) )) != identifier) )) (compound_statement "{\n            bVar5 = bVar3;\n          }" { (expression_statement "bVar5 = bVar3;" (assignment_expression "bVar5 = bVar3" identifier = identifier) ;) })) (expression_statement "iVar17 = iVar17 + puVar7[0x19];" (assignment_expression "iVar17 = iVar17 + puVar7[0x19]" identifier = (binary_expression "iVar17 + puVar7[0x19]" identifier + (subscript_expression "puVar7[0x19]" identifier [ number_literal ]))) ;) (expression_statement "puVar7 = (undefined4 *)puVar7[3];" (assignment_expression "puVar7 = (undefined4 *)puVar7[3]" identifier = (cast_expression "(undefined4 *)puVar7[3]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar7[3]" identifier [ number_literal ]))) ;) (expression_statement "bVar24 = puVar7 == (undefined4 *)0x0;" (assignment_expression "bVar24 = puVar7 == (undefined4 *)0x0" identifier = (binary_expression "puVar7 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "bVar3 = bVar5;" (assignment_expression "bVar3 = bVar5" identifier = identifier) ;) (expression_statement "bVar16 = bVar22;" (assignment_expression "bVar16 = bVar22" identifier = identifier) ;) }) while (parenthesized_expression "(!bVar24)" ( (unary_expression "!bVar24" ! identifier) )) ;) (if_statement "if (((bool)(bVar5 & iVar17 != 0)) && (!bVar22)) {\n          while (iVar6 = bfd_get_reloc_upper_bound(iVar6,local_38), 0 < iVar6) {\n            iVar17 = bfd_generic_link_read_symbols(*(undefined4 *)(local_40 + 0x10));\n            local_4c = local_40;\n            if (iVar17 == 0) goto LAB_000570af;\n            uVar11 = *(undefined4 *)(*(int *)(local_40 + 0x10) + 0x78);\n            puVar7 = (undefined4 *)xmalloc(iVar6);\n            iVar6 = bfd_canonicalize_reloc(*(undefined4 *)(local_40 + 0x10),local_38,puVar7,uVar11);\n            if (iVar6 < 0) {\n              free(puVar7);\n              uVar11 = dcgettext(0,"%X%P: unable to process relocs: %E\n",5);\n              FUN_00034d20(uVar11);\n              return;\n            }\n            puVar18 = puVar7;\n            if (iVar6 != 0) {\n              do {\n                if ((((*(byte *)(**(int **)*puVar18 + 0x10) & 1) == 0) &&\n                    (iVar17 = bfd_link_hash_lookup\n                                        (DAT_001d0400,*(undefined4 *)(**(int **)*puVar18 + 4),0,0,1)\n                    , iVar17 != 0)) && (*(char *)(iVar17 + 0xc) == '\x03')) {\n                  puVar2 = *(undefined4 **)(*(int *)(iVar17 + 0x14) + 0xac);\n                  puVar8 = (undefined4 *)puVar2[0x23];\n                  if (puVar8 == (undefined4 *)0x0) {\n                    puVar8 = puVar2;\n                  }\n                  pcVar12 = (char *)*puVar8;\n                  iVar17 = filename_cmp(**(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c),pcVar12)\n                  ;\n                  if (iVar17 != 0) {\n                    sVar9 = strlen(pcVar12);\n                    pcVar10 = (char *)xmalloc(sVar9 + 1);\n                    strcpy(pcVar10,pcVar12);\n                    **(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c) = pcVar10;\n                  }\n                }\n                puVar18 = puVar18 + 1;\n              } while (puVar7 + iVar6 != puVar18);\n            }\n            free(puVar7);\n            local_38 = (undefined4 *)local_38[3];\n            if (local_38 == (undefined4 *)0x0) break;\n            iVar6 = *(int *)(local_40 + 0x10);\n          }\n        }" if (parenthesized_expression "(((bool)(bVar5 & iVar17 != 0)) && (!bVar22))" ( (binary_expression "((bool)(bVar5 & iVar17 != 0)) && (!bVar22)" (parenthesized_expression "((bool)(bVar5 & iVar17 != 0))" ( (cast_expression "(bool)(bVar5 & iVar17 != 0)" ( (type_descriptor "bool" primitive_type) ) (parenthesized_expression "(bVar5 & iVar17 != 0)" ( (binary_expression "bVar5 & iVar17 != 0" identifier & (binary_expression "iVar17 != 0" identifier != number_literal)) ))) )) && (parenthesized_expression "(!bVar22)" ( (unary_expression "!bVar22" ! identifier) ))) )) (compound_statement "{\n          while (iVar6 = bfd_get_reloc_upper_bound(iVar6,local_38), 0 < iVar6) {\n            iVar17 = bfd_generic_link_read_symbols(*(undefined4 *)(local_40 + 0x10));\n            local_4c = local_40;\n            if (iVar17 == 0) goto LAB_000570af;\n            uVar11 = *(undefined4 *)(*(int *)(local_40 + 0x10) + 0x78);\n            puVar7 = (undefined4 *)xmalloc(iVar6);\n            iVar6 = bfd_canonicalize_reloc(*(undefined4 *)(local_40 + 0x10),local_38,puVar7,uVar11);\n            if (iVar6 < 0) {\n              free(puVar7);\n              uVar11 = dcgettext(0,"%X%P: unable to process relocs: %E\n",5);\n              FUN_00034d20(uVar11);\n              return;\n            }\n            puVar18 = puVar7;\n            if (iVar6 != 0) {\n              do {\n                if ((((*(byte *)(**(int **)*puVar18 + 0x10) & 1) == 0) &&\n                    (iVar17 = bfd_link_hash_lookup\n                                        (DAT_001d0400,*(undefined4 *)(**(int **)*puVar18 + 4),0,0,1)\n                    , iVar17 != 0)) && (*(char *)(iVar17 + 0xc) == '\x03')) {\n                  puVar2 = *(undefined4 **)(*(int *)(iVar17 + 0x14) + 0xac);\n                  puVar8 = (undefined4 *)puVar2[0x23];\n                  if (puVar8 == (undefined4 *)0x0) {\n                    puVar8 = puVar2;\n                  }\n                  pcVar12 = (char *)*puVar8;\n                  iVar17 = filename_cmp(**(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c),pcVar12)\n                  ;\n                  if (iVar17 != 0) {\n                    sVar9 = strlen(pcVar12);\n                    pcVar10 = (char *)xmalloc(sVar9 + 1);\n                    strcpy(pcVar10,pcVar12);\n                    **(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c) = pcVar10;\n                  }\n                }\n                puVar18 = puVar18 + 1;\n              } while (puVar7 + iVar6 != puVar18);\n            }\n            free(puVar7);\n            local_38 = (undefined4 *)local_38[3];\n            if (local_38 == (undefined4 *)0x0) break;\n            iVar6 = *(int *)(local_40 + 0x10);\n          }\n        }" { (while_statement "while (iVar6 = bfd_get_reloc_upper_bound(iVar6,local_38), 0 < iVar6) {\n            iVar17 = bfd_generic_link_read_symbols(*(undefined4 *)(local_40 + 0x10));\n            local_4c = local_40;\n            if (iVar17 == 0) goto LAB_000570af;\n            uVar11 = *(undefined4 *)(*(int *)(local_40 + 0x10) + 0x78);\n            puVar7 = (undefined4 *)xmalloc(iVar6);\n            iVar6 = bfd_canonicalize_reloc(*(undefined4 *)(local_40 + 0x10),local_38,puVar7,uVar11);\n            if (iVar6 < 0) {\n              free(puVar7);\n              uVar11 = dcgettext(0,"%X%P: unable to process relocs: %E\n",5);\n              FUN_00034d20(uVar11);\n              return;\n            }\n            puVar18 = puVar7;\n            if (iVar6 != 0) {\n              do {\n                if ((((*(byte *)(**(int **)*puVar18 + 0x10) & 1) == 0) &&\n                    (iVar17 = bfd_link_hash_lookup\n                                        (DAT_001d0400,*(undefined4 *)(**(int **)*puVar18 + 4),0,0,1)\n                    , iVar17 != 0)) && (*(char *)(iVar17 + 0xc) == '\x03')) {\n                  puVar2 = *(undefined4 **)(*(int *)(iVar17 + 0x14) + 0xac);\n                  puVar8 = (undefined4 *)puVar2[0x23];\n                  if (puVar8 == (undefined4 *)0x0) {\n                    puVar8 = puVar2;\n                  }\n                  pcVar12 = (char *)*puVar8;\n                  iVar17 = filename_cmp(**(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c),pcVar12)\n                  ;\n                  if (iVar17 != 0) {\n                    sVar9 = strlen(pcVar12);\n                    pcVar10 = (char *)xmalloc(sVar9 + 1);\n                    strcpy(pcVar10,pcVar12);\n                    **(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c) = pcVar10;\n                  }\n                }\n                puVar18 = puVar18 + 1;\n              } while (puVar7 + iVar6 != puVar18);\n            }\n            free(puVar7);\n            local_38 = (undefined4 *)local_38[3];\n            if (local_38 == (undefined4 *)0x0) break;\n            iVar6 = *(int *)(local_40 + 0x10);\n          }" while (parenthesized_expression "(iVar6 = bfd_get_reloc_upper_bound(iVar6,local_38), 0 < iVar6)" ( (comma_expression "iVar6 = bfd_get_reloc_upper_bound(iVar6,local_38), 0 < iVar6" (assignment_expression "iVar6 = bfd_get_reloc_upper_bound(iVar6,local_38)" identifier = (call_expression "bfd_get_reloc_upper_bound(iVar6,local_38)" identifier (argument_list "(iVar6,local_38)" ( identifier , identifier )))) , (binary_expression "0 < iVar6" number_literal < identifier)) )) (compound_statement "{\n            iVar17 = bfd_generic_link_read_symbols(*(undefined4 *)(local_40 + 0x10));\n            local_4c = local_40;\n            if (iVar17 == 0) goto LAB_000570af;\n            uVar11 = *(undefined4 *)(*(int *)(local_40 + 0x10) + 0x78);\n            puVar7 = (undefined4 *)xmalloc(iVar6);\n            iVar6 = bfd_canonicalize_reloc(*(undefined4 *)(local_40 + 0x10),local_38,puVar7,uVar11);\n            if (iVar6 < 0) {\n              free(puVar7);\n              uVar11 = dcgettext(0,"%X%P: unable to process relocs: %E\n",5);\n              FUN_00034d20(uVar11);\n              return;\n            }\n            puVar18 = puVar7;\n            if (iVar6 != 0) {\n              do {\n                if ((((*(byte *)(**(int **)*puVar18 + 0x10) & 1) == 0) &&\n                    (iVar17 = bfd_link_hash_lookup\n                                        (DAT_001d0400,*(undefined4 *)(**(int **)*puVar18 + 4),0,0,1)\n                    , iVar17 != 0)) && (*(char *)(iVar17 + 0xc) == '\x03')) {\n                  puVar2 = *(undefined4 **)(*(int *)(iVar17 + 0x14) + 0xac);\n                  puVar8 = (undefined4 *)puVar2[0x23];\n                  if (puVar8 == (undefined4 *)0x0) {\n                    puVar8 = puVar2;\n                  }\n                  pcVar12 = (char *)*puVar8;\n                  iVar17 = filename_cmp(**(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c),pcVar12)\n                  ;\n                  if (iVar17 != 0) {\n                    sVar9 = strlen(pcVar12);\n                    pcVar10 = (char *)xmalloc(sVar9 + 1);\n                    strcpy(pcVar10,pcVar12);\n                    **(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c) = pcVar10;\n                  }\n                }\n                puVar18 = puVar18 + 1;\n              } while (puVar7 + iVar6 != puVar18);\n            }\n            free(puVar7);\n            local_38 = (undefined4 *)local_38[3];\n            if (local_38 == (undefined4 *)0x0) break;\n            iVar6 = *(int *)(local_40 + 0x10);\n          }" { (expression_statement "iVar17 = bfd_generic_link_read_symbols(*(undefined4 *)(local_40 + 0x10));" (assignment_expression "iVar17 = bfd_generic_link_read_symbols(*(undefined4 *)(local_40 + 0x10))" identifier = (call_expression "bfd_generic_link_read_symbols(*(undefined4 *)(local_40 + 0x10))" identifier (argument_list "(*(undefined4 *)(local_40 + 0x10))" ( (pointer_expression "*(undefined4 *)(local_40 + 0x10)" * (cast_expression "(undefined4 *)(local_40 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_40 + 0x10)" ( (binary_expression "local_40 + 0x10" identifier + number_literal) )))) )))) ;) (expression_statement "local_4c = local_40;" (assignment_expression "local_4c = local_40" identifier = identifier) ;) (if_statement "if (iVar17 == 0) goto LAB_000570af;" if (parenthesized_expression "(iVar17 == 0)" ( (binary_expression "iVar17 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000570af;" goto statement_identifier ;)) (expression_statement "uVar11 = *(undefined4 *)(*(int *)(local_40 + 0x10) + 0x78);" (assignment_expression "uVar11 = *(undefined4 *)(*(int *)(local_40 + 0x10) + 0x78)" identifier = (pointer_expression "*(undefined4 *)(*(int *)(local_40 + 0x10) + 0x78)" * (cast_expression "(undefined4 *)(*(int *)(local_40 + 0x10) + 0x78)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(local_40 + 0x10) + 0x78)" ( (binary_expression "*(int *)(local_40 + 0x10) + 0x78" (pointer_expression "*(int *)(local_40 + 0x10)" * (cast_expression "(int *)(local_40 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_40 + 0x10)" ( (binary_expression "local_40 + 0x10" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "puVar7 = (undefined4 *)xmalloc(iVar6);" (assignment_expression "puVar7 = (undefined4 *)xmalloc(iVar6)" identifier = (cast_expression "(undefined4 *)xmalloc(iVar6)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(iVar6)" identifier (argument_list "(iVar6)" ( identifier ))))) ;) (expression_statement "iVar6 = bfd_canonicalize_reloc(*(undefined4 *)(local_40 + 0x10),local_38,puVar7,uVar11);" (assignment_expression "iVar6 = bfd_canonicalize_reloc(*(undefined4 *)(local_40 + 0x10),local_38,puVar7,uVar11)" identifier = (call_expression "bfd_canonicalize_reloc(*(undefined4 *)(local_40 + 0x10),local_38,puVar7,uVar11)" identifier (argument_list "(*(undefined4 *)(local_40 + 0x10),local_38,puVar7,uVar11)" ( (pointer_expression "*(undefined4 *)(local_40 + 0x10)" * (cast_expression "(undefined4 *)(local_40 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_40 + 0x10)" ( (binary_expression "local_40 + 0x10" identifier + number_literal) )))) , identifier , identifier , identifier )))) ;) (if_statement "if (iVar6 < 0) {\n              free(puVar7);\n              uVar11 = dcgettext(0,"%X%P: unable to process relocs: %E\n",5);\n              FUN_00034d20(uVar11);\n              return;\n            }" if (parenthesized_expression "(iVar6 < 0)" ( (binary_expression "iVar6 < 0" identifier < number_literal) )) (compound_statement "{\n              free(puVar7);\n              uVar11 = dcgettext(0,"%X%P: unable to process relocs: %E\n",5);\n              FUN_00034d20(uVar11);\n              return;\n            }" { (expression_statement "free(puVar7);" (call_expression "free(puVar7)" identifier (argument_list "(puVar7)" ( identifier ))) ;) (expression_statement "uVar11 = dcgettext(0,"%X%P: unable to process relocs: %E\n",5);" (assignment_expression "uVar11 = dcgettext(0,"%X%P: unable to process relocs: %E\n",5)" identifier = (call_expression "dcgettext(0,"%X%P: unable to process relocs: %E\n",5)" identifier (argument_list "(0,"%X%P: unable to process relocs: %E\n",5)" ( number_literal , (string_literal ""%X%P: unable to process relocs: %E\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_00034d20(uVar11);" (call_expression "FUN_00034d20(uVar11)" identifier (argument_list "(uVar11)" ( identifier ))) ;) (return_statement "return;" return ;) })) (expression_statement "puVar18 = puVar7;" (assignment_expression "puVar18 = puVar7" identifier = identifier) ;) (if_statement "if (iVar6 != 0) {\n              do {\n                if ((((*(byte *)(**(int **)*puVar18 + 0x10) & 1) == 0) &&\n                    (iVar17 = bfd_link_hash_lookup\n                                        (DAT_001d0400,*(undefined4 *)(**(int **)*puVar18 + 4),0,0,1)\n                    , iVar17 != 0)) && (*(char *)(iVar17 + 0xc) == '\x03')) {\n                  puVar2 = *(undefined4 **)(*(int *)(iVar17 + 0x14) + 0xac);\n                  puVar8 = (undefined4 *)puVar2[0x23];\n                  if (puVar8 == (undefined4 *)0x0) {\n                    puVar8 = puVar2;\n                  }\n                  pcVar12 = (char *)*puVar8;\n                  iVar17 = filename_cmp(**(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c),pcVar12)\n                  ;\n                  if (iVar17 != 0) {\n                    sVar9 = strlen(pcVar12);\n                    pcVar10 = (char *)xmalloc(sVar9 + 1);\n                    strcpy(pcVar10,pcVar12);\n                    **(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c) = pcVar10;\n                  }\n                }\n                puVar18 = puVar18 + 1;\n              } while (puVar7 + iVar6 != puVar18);\n            }" if (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) (compound_statement "{\n              do {\n                if ((((*(byte *)(**(int **)*puVar18 + 0x10) & 1) == 0) &&\n                    (iVar17 = bfd_link_hash_lookup\n                                        (DAT_001d0400,*(undefined4 *)(**(int **)*puVar18 + 4),0,0,1)\n                    , iVar17 != 0)) && (*(char *)(iVar17 + 0xc) == '\x03')) {\n                  puVar2 = *(undefined4 **)(*(int *)(iVar17 + 0x14) + 0xac);\n                  puVar8 = (undefined4 *)puVar2[0x23];\n                  if (puVar8 == (undefined4 *)0x0) {\n                    puVar8 = puVar2;\n                  }\n                  pcVar12 = (char *)*puVar8;\n                  iVar17 = filename_cmp(**(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c),pcVar12)\n                  ;\n                  if (iVar17 != 0) {\n                    sVar9 = strlen(pcVar12);\n                    pcVar10 = (char *)xmalloc(sVar9 + 1);\n                    strcpy(pcVar10,pcVar12);\n                    **(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c) = pcVar10;\n                  }\n                }\n                puVar18 = puVar18 + 1;\n              } while (puVar7 + iVar6 != puVar18);\n            }" { (do_statement "do {\n                if ((((*(byte *)(**(int **)*puVar18 + 0x10) & 1) == 0) &&\n                    (iVar17 = bfd_link_hash_lookup\n                                        (DAT_001d0400,*(undefined4 *)(**(int **)*puVar18 + 4),0,0,1)\n                    , iVar17 != 0)) && (*(char *)(iVar17 + 0xc) == '\x03')) {\n                  puVar2 = *(undefined4 **)(*(int *)(iVar17 + 0x14) + 0xac);\n                  puVar8 = (undefined4 *)puVar2[0x23];\n                  if (puVar8 == (undefined4 *)0x0) {\n                    puVar8 = puVar2;\n                  }\n                  pcVar12 = (char *)*puVar8;\n                  iVar17 = filename_cmp(**(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c),pcVar12)\n                  ;\n                  if (iVar17 != 0) {\n                    sVar9 = strlen(pcVar12);\n                    pcVar10 = (char *)xmalloc(sVar9 + 1);\n                    strcpy(pcVar10,pcVar12);\n                    **(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c) = pcVar10;\n                  }\n                }\n                puVar18 = puVar18 + 1;\n              } while (puVar7 + iVar6 != puVar18);" do (compound_statement "{\n                if ((((*(byte *)(**(int **)*puVar18 + 0x10) & 1) == 0) &&\n                    (iVar17 = bfd_link_hash_lookup\n                                        (DAT_001d0400,*(undefined4 *)(**(int **)*puVar18 + 4),0,0,1)\n                    , iVar17 != 0)) && (*(char *)(iVar17 + 0xc) == '\x03')) {\n                  puVar2 = *(undefined4 **)(*(int *)(iVar17 + 0x14) + 0xac);\n                  puVar8 = (undefined4 *)puVar2[0x23];\n                  if (puVar8 == (undefined4 *)0x0) {\n                    puVar8 = puVar2;\n                  }\n                  pcVar12 = (char *)*puVar8;\n                  iVar17 = filename_cmp(**(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c),pcVar12)\n                  ;\n                  if (iVar17 != 0) {\n                    sVar9 = strlen(pcVar12);\n                    pcVar10 = (char *)xmalloc(sVar9 + 1);\n                    strcpy(pcVar10,pcVar12);\n                    **(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c) = pcVar10;\n                  }\n                }\n                puVar18 = puVar18 + 1;\n              }" { (if_statement "if ((((*(byte *)(**(int **)*puVar18 + 0x10) & 1) == 0) &&\n                    (iVar17 = bfd_link_hash_lookup\n                                        (DAT_001d0400,*(undefined4 *)(**(int **)*puVar18 + 4),0,0,1)\n                    , iVar17 != 0)) && (*(char *)(iVar17 + 0xc) == '\x03')) {\n                  puVar2 = *(undefined4 **)(*(int *)(iVar17 + 0x14) + 0xac);\n                  puVar8 = (undefined4 *)puVar2[0x23];\n                  if (puVar8 == (undefined4 *)0x0) {\n                    puVar8 = puVar2;\n                  }\n                  pcVar12 = (char *)*puVar8;\n                  iVar17 = filename_cmp(**(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c),pcVar12)\n                  ;\n                  if (iVar17 != 0) {\n                    sVar9 = strlen(pcVar12);\n                    pcVar10 = (char *)xmalloc(sVar9 + 1);\n                    strcpy(pcVar10,pcVar12);\n                    **(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c) = pcVar10;\n                  }\n                }" if (parenthesized_expression "((((*(byte *)(**(int **)*puVar18 + 0x10) & 1) == 0) &&\n                    (iVar17 = bfd_link_hash_lookup\n                                        (DAT_001d0400,*(undefined4 *)(**(int **)*puVar18 + 4),0,0,1)\n                    , iVar17 != 0)) && (*(char *)(iVar17 + 0xc) == '\x03'))" ( (binary_expression "(((*(byte *)(**(int **)*puVar18 + 0x10) & 1) == 0) &&\n                    (iVar17 = bfd_link_hash_lookup\n                                        (DAT_001d0400,*(undefined4 *)(**(int **)*puVar18 + 4),0,0,1)\n                    , iVar17 != 0)) && (*(char *)(iVar17 + 0xc) == '\x03')" (parenthesized_expression "(((*(byte *)(**(int **)*puVar18 + 0x10) & 1) == 0) &&\n                    (iVar17 = bfd_link_hash_lookup\n                                        (DAT_001d0400,*(undefined4 *)(**(int **)*puVar18 + 4),0,0,1)\n                    , iVar17 != 0))" ( (binary_expression "((*(byte *)(**(int **)*puVar18 + 0x10) & 1) == 0) &&\n                    (iVar17 = bfd_link_hash_lookup\n                                        (DAT_001d0400,*(undefined4 *)(**(int **)*puVar18 + 4),0,0,1)\n                    , iVar17 != 0)" (parenthesized_expression "((*(byte *)(**(int **)*puVar18 + 0x10) & 1) == 0)" ( (binary_expression "(*(byte *)(**(int **)*puVar18 + 0x10) & 1) == 0" (parenthesized_expression "(*(byte *)(**(int **)*puVar18 + 0x10) & 1)" ( (binary_expression "*(byte *)(**(int **)*puVar18 + 0x10) & 1" (pointer_expression "*(byte *)(**(int **)*puVar18 + 0x10)" * (cast_expression "(byte *)(**(int **)*puVar18 + 0x10)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(**(int **)*puVar18 + 0x10)" ( (binary_expression "**(int **)*puVar18 + 0x10" (pointer_expression "**(int **)*puVar18" * (pointer_expression "*(int **)*puVar18" * (cast_expression "(int **)*puVar18" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "*puVar18" * identifier)))) + number_literal) )))) & number_literal) )) == number_literal) )) && (parenthesized_expression "(iVar17 = bfd_link_hash_lookup\n                                        (DAT_001d0400,*(undefined4 *)(**(int **)*puVar18 + 4),0,0,1)\n                    , iVar17 != 0)" ( (comma_expression "iVar17 = bfd_link_hash_lookup\n                                        (DAT_001d0400,*(undefined4 *)(**(int **)*puVar18 + 4),0,0,1)\n                    , iVar17 != 0" (assignment_expression "iVar17 = bfd_link_hash_lookup\n                                        (DAT_001d0400,*(undefined4 *)(**(int **)*puVar18 + 4),0,0,1)" identifier = (call_expression "bfd_link_hash_lookup\n                                        (DAT_001d0400,*(undefined4 *)(**(int **)*puVar18 + 4),0,0,1)" identifier (argument_list "(DAT_001d0400,*(undefined4 *)(**(int **)*puVar18 + 4),0,0,1)" ( identifier , (pointer_expression "*(undefined4 *)(**(int **)*puVar18 + 4)" * (cast_expression "(undefined4 *)(**(int **)*puVar18 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(**(int **)*puVar18 + 4)" ( (binary_expression "**(int **)*puVar18 + 4" (pointer_expression "**(int **)*puVar18" * (pointer_expression "*(int **)*puVar18" * (cast_expression "(int **)*puVar18" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "*puVar18" * identifier)))) + number_literal) )))) , number_literal , number_literal , number_literal )))) , (binary_expression "iVar17 != 0" identifier != number_literal)) ))) )) && (parenthesized_expression "(*(char *)(iVar17 + 0xc) == '\x03')" ( (binary_expression "*(char *)(iVar17 + 0xc) == '\x03'" (pointer_expression "*(char *)(iVar17 + 0xc)" * (cast_expression "(char *)(iVar17 + 0xc)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0xc)" ( (binary_expression "iVar17 + 0xc" identifier + number_literal) )))) == (char_literal "'\x03'" ' escape_sequence ')) ))) )) (compound_statement "{\n                  puVar2 = *(undefined4 **)(*(int *)(iVar17 + 0x14) + 0xac);\n                  puVar8 = (undefined4 *)puVar2[0x23];\n                  if (puVar8 == (undefined4 *)0x0) {\n                    puVar8 = puVar2;\n                  }\n                  pcVar12 = (char *)*puVar8;\n                  iVar17 = filename_cmp(**(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c),pcVar12)\n                  ;\n                  if (iVar17 != 0) {\n                    sVar9 = strlen(pcVar12);\n                    pcVar10 = (char *)xmalloc(sVar9 + 1);\n                    strcpy(pcVar10,pcVar12);\n                    **(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c) = pcVar10;\n                  }\n                }" { (expression_statement "puVar2 = *(undefined4 **)(*(int *)(iVar17 + 0x14) + 0xac);" (assignment_expression "puVar2 = *(undefined4 **)(*(int *)(iVar17 + 0x14) + 0xac)" identifier = (pointer_expression "*(undefined4 **)(*(int *)(iVar17 + 0x14) + 0xac)" * (cast_expression "(undefined4 **)(*(int *)(iVar17 + 0x14) + 0xac)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(iVar17 + 0x14) + 0xac)" ( (binary_expression "*(int *)(iVar17 + 0x14) + 0xac" (pointer_expression "*(int *)(iVar17 + 0x14)" * (cast_expression "(int *)(iVar17 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x14)" ( (binary_expression "iVar17 + 0x14" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "puVar8 = (undefined4 *)puVar2[0x23];" (assignment_expression "puVar8 = (undefined4 *)puVar2[0x23]" identifier = (cast_expression "(undefined4 *)puVar2[0x23]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar2[0x23]" identifier [ number_literal ]))) ;) (if_statement "if (puVar8 == (undefined4 *)0x0) {\n                    puVar8 = puVar2;\n                  }" if (parenthesized_expression "(puVar8 == (undefined4 *)0x0)" ( (binary_expression "puVar8 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    puVar8 = puVar2;\n                  }" { (expression_statement "puVar8 = puVar2;" (assignment_expression "puVar8 = puVar2" identifier = identifier) ;) })) (expression_statement "pcVar12 = (char *)*puVar8;" (assignment_expression "pcVar12 = (char *)*puVar8" identifier = (cast_expression "(char *)*puVar8" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar8" * identifier))) ;) (expression_statement "iVar17 = filename_cmp(**(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c),pcVar12)\n                  ;" (assignment_expression "iVar17 = filename_cmp(**(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c),pcVar12)" identifier = (call_expression "filename_cmp(**(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c),pcVar12)" identifier (argument_list "(**(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c),pcVar12)" ( (pointer_expression "**(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c)" * (pointer_expression "*(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c)" * (cast_expression "(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(local_40 + 0x10) + 0x8c)" ( (binary_expression "*(int *)(local_40 + 0x10) + 0x8c" (pointer_expression "*(int *)(local_40 + 0x10)" * (cast_expression "(int *)(local_40 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_40 + 0x10)" ( (binary_expression "local_40 + 0x10" identifier + number_literal) )))) + number_literal) ))))) , identifier )))) ;) (if_statement "if (iVar17 != 0) {\n                    sVar9 = strlen(pcVar12);\n                    pcVar10 = (char *)xmalloc(sVar9 + 1);\n                    strcpy(pcVar10,pcVar12);\n                    **(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c) = pcVar10;\n                  }" if (parenthesized_expression "(iVar17 != 0)" ( (binary_expression "iVar17 != 0" identifier != number_literal) )) (compound_statement "{\n                    sVar9 = strlen(pcVar12);\n                    pcVar10 = (char *)xmalloc(sVar9 + 1);\n                    strcpy(pcVar10,pcVar12);\n                    **(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c) = pcVar10;\n                  }" { (expression_statement "sVar9 = strlen(pcVar12);" (assignment_expression "sVar9 = strlen(pcVar12)" identifier = (call_expression "strlen(pcVar12)" identifier (argument_list "(pcVar12)" ( identifier )))) ;) (expression_statement "pcVar10 = (char *)xmalloc(sVar9 + 1);" (assignment_expression "pcVar10 = (char *)xmalloc(sVar9 + 1)" identifier = (cast_expression "(char *)xmalloc(sVar9 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(sVar9 + 1)" identifier (argument_list "(sVar9 + 1)" ( (binary_expression "sVar9 + 1" identifier + number_literal) ))))) ;) (expression_statement "strcpy(pcVar10,pcVar12);" (call_expression "strcpy(pcVar10,pcVar12)" identifier (argument_list "(pcVar10,pcVar12)" ( identifier , identifier ))) ;) (expression_statement "**(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c) = pcVar10;" (assignment_expression "**(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c) = pcVar10" (pointer_expression "**(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c)" * (pointer_expression "*(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c)" * (cast_expression "(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(local_40 + 0x10) + 0x8c)" ( (binary_expression "*(int *)(local_40 + 0x10) + 0x8c" (pointer_expression "*(int *)(local_40 + 0x10)" * (cast_expression "(int *)(local_40 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_40 + 0x10)" ( (binary_expression "local_40 + 0x10" identifier + number_literal) )))) + number_literal) ))))) = identifier) ;) })) })) (expression_statement "puVar18 = puVar18 + 1;" (assignment_expression "puVar18 = puVar18 + 1" identifier = (binary_expression "puVar18 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar7 + iVar6 != puVar18)" ( (binary_expression "puVar7 + iVar6 != puVar18" (binary_expression "puVar7 + iVar6" identifier + identifier) != identifier) )) ;) })) (expression_statement "free(puVar7);" (call_expression "free(puVar7)" identifier (argument_list "(puVar7)" ( identifier ))) ;) (expression_statement "local_38 = (undefined4 *)local_38[3];" (assignment_expression "local_38 = (undefined4 *)local_38[3]" identifier = (cast_expression "(undefined4 *)local_38[3]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_38[3]" identifier [ number_literal ]))) ;) (if_statement "if (local_38 == (undefined4 *)0x0) break;" if (parenthesized_expression "(local_38 == (undefined4 *)0x0)" ( (binary_expression "local_38 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "iVar6 = *(int *)(local_40 + 0x10);" (assignment_expression "iVar6 = *(int *)(local_40 + 0x10)" identifier = (pointer_expression "*(int *)(local_40 + 0x10)" * (cast_expression "(int *)(local_40 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_40 + 0x10)" ( (binary_expression "local_40 + 0x10" identifier + number_literal) ))))) ;) })) })) })) (expression_statement "local_40 = *(int *)(local_40 + 0x18);" (assignment_expression "local_40 = *(int *)(local_40 + 0x18)" identifier = (pointer_expression "*(int *)(local_40 + 0x18)" * (cast_expression "(int *)(local_40 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_40 + 0x18)" ( (binary_expression "local_40 + 0x18" identifier + number_literal) ))))) ;) }) while (parenthesized_expression "(local_40 != 0)" ( (binary_expression "local_40 != 0" identifier != number_literal) )) ;) (expression_statement "local_50 = DAT_001cf6bc;" (assignment_expression "local_50 = DAT_001cf6bc" identifier = identifier) ;) (if_statement "if (DAT_001cf6bc != 0) {\n      bVar16 = false;\n      local_40 = 0;\n      do {\n        iVar6 = (*(undefined4 **)(local_50 + 0x10))[0x23];\n        if (iVar6 != 0) {\n          pcVar12 = strrchr((char *)**(undefined4 **)(local_50 + 0x10),0x2e);\n          iVar17 = local_50;\n          if (iVar6 == local_40) {\n            if (!bVar16) goto LAB_00056b08;\n          }\n          else {\n            while ((iVar15 = local_50, local_40 = iVar6, pcVar12 == (char *)0x0 ||\n                   (iVar13 = filename_cmp(pcVar12,".dll"), iVar13 != 0))) {\n              iVar17 = *(int *)(iVar17 + 0x18);\n              if (iVar17 == 0) {\n                local_50 = *(int *)(local_50 + 0x18);\n                bVar16 = false;\n                goto joined_r0x00056b15;\n              }\n              if (iVar6 != (*(undefined4 **)(iVar17 + 0x10))[0x23]) break;\n              pcVar12 = strrchr((char *)**(undefined4 **)(iVar17 + 0x10),0x2e);\n            }\n            do {\n              if (iVar6 != (*(undefined4 **)(iVar15 + 0x10))[0x23]) break;\n              pcVar12 = (char *)**(undefined4 **)(iVar15 + 0x10);\n              pcVar10 = strrchr(pcVar12,0x2e);\n              if (pcVar10 == (char *)0x0) {\nLAB_00056d20:\n                iVar13 = filename_cmp(**(undefined4 **)(iVar17 + 0x10),pcVar12);\n                if (iVar13 != 0) {\n                  bVar16 = false;\n                  goto LAB_00056b08;\n                }\n              }\n              else {\n                iVar13 = filename_cmp(pcVar10,&DAT_00192ed1);\n                if (iVar13 != 0) {\n                  pcVar12 = (char *)**(undefined4 **)(iVar15 + 0x10);\n                  goto LAB_00056d20;\n                }\n              }\n              piVar20 = (int *)(iVar15 + 0x18);\n              iVar15 = *piVar20;\n            } while (*piVar20 != 0);\n            pcVar12 = strrchr((char *)**(undefined4 **)(local_50 + 0x10),0x2e);\n          }\n          bVar16 = true;\n          iVar6 = filename_cmp(pcVar12,".dll");\n          if (iVar6 == 0) {\n            puVar7 = (undefined4 *)(*(undefined4 **)(local_50 + 0x10))[0x18];\n            if (puVar7 == (undefined4 *)0x0) {\n              iVar6 = 99;\n            }\n            else {\n              iVar17 = 0;\n              bVar24 = true;\n              bVar16 = false;\n              do {\n                bVar22 = false;\n                iVar6 = 9;\n                pbVar19 = (byte *)*puVar7;\n                pbVar21 = (byte *)".idata$2";\n                do {\n                  if (iVar6 == 0) break;\n                  iVar6 = iVar6 + -1;\n                  bVar22 = *pbVar19 < *pbVar21;\n                  bVar24 = *pbVar19 == *pbVar21;\n                  pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n                  pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n                } while (bVar24);\n                if ((!bVar22 && !bVar24) == bVar22) {\n                  bVar16 = true;\n                }\n                iVar17 = iVar17 + puVar7[0x19];\n                puVar7 = (undefined4 *)puVar7[3];\n                bVar24 = puVar7 == (undefined4 *)0x0;\n              } while (!bVar24);\n              iVar6 = 0x61;\n              if (!bVar16) {\n                iVar6 = (iVar17 < 1) + 0x62;\n              }\n            }\n            sVar9 = strlen((char *)**(undefined4 **)(local_50 + 0x10));\n            pcVar12 = (char *)xmalloc(sVar9 + 3);\n            sprintf(pcVar12,"%s.%c",**(undefined4 **)(local_50 + 0x10),iVar6);\n            **(undefined4 **)(local_50 + 0x10) = pcVar12;\n            sVar9 = strlen(*(char **)(local_50 + 8));\n            pcVar12 = (char *)xmalloc(sVar9 + 3);\n            sprintf(pcVar12,"%s.%c",*(undefined4 *)(local_50 + 8),iVar6);\n            *(char **)(local_50 + 8) = pcVar12;\n            bVar16 = true;\n          }\n        }\nLAB_00056b08:\n        local_50 = *(int *)(local_50 + 0x18);\njoined_r0x00056b15:\n      } while (local_50 != 0);\n      local_4c = DAT_001cf6bc;\n      if (DAT_001cf6bc != 0) {\n        do {\n          iVar6 = *(int *)(local_4c + 0x10);\n          if ((*(int *)(iVar6 + 0x8c) != 0) &&\n             (puVar7 = *(undefined4 **)(iVar6 + 0x60), puVar7 != (undefined4 *)0x0)) {\n            puVar18 = (undefined4 *)0x0;\n            bVar16 = false;\n            bVar24 = true;\n            do {\n              bVar22 = false;\n              iVar17 = 7;\n              pbVar19 = (byte *)*puVar7;\n              pbVar21 = (byte *)".idata$";\n              do {\n                if (iVar17 == 0) break;\n                iVar17 = iVar17 + -1;\n                bVar22 = *pbVar19 < *pbVar21;\n                bVar24 = *pbVar19 == *pbVar21;\n                pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n                pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n              } while (bVar24);\n              if ((!bVar22 && !bVar24) == bVar22) {\n                bVar16 = true;\n              }\n              if (((*(byte *)(puVar7 + 5) & 0x10) != 0) && (puVar7[0x19] != 0)) {\n                puVar18 = puVar7;\n              }\n              puVar7 = (undefined4 *)puVar7[3];\n              bVar24 = puVar7 == (undefined4 *)0x0;\n            } while (!bVar24);\n            if ((puVar18 != (undefined4 *)0x0) && (bVar16)) {\n              iVar6 = bfd_generic_link_read_symbols(iVar6);\n              if (iVar6 == 0) {\nLAB_000570af:\n                uVar11 = *(undefined4 *)(local_4c + 0x10);\n                uVar14 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n                FUN_00034d20(uVar14,uVar11);\n                return;\n              }\n              piVar20 = *(int **)(*(int *)(local_4c + 0x10) + 0x78);\n              iVar6 = *(int *)(*(int *)(local_4c + 0x10) + 0x7c);\n              if (0 < iVar6) {\n                piVar1 = piVar20 + iVar6;\n                do {\n                  if ((((*(int *)(*(int *)(*piVar20 + 0x14) + 4) == puVar18[1]) &&\n                       (iVar6 = bfd_link_hash_lookup\n                                          (DAT_001d0400,*(undefined4 *)(*piVar20 + 4),0,0,1),\n                       iVar6 != 0)) && (*(char *)(iVar6 + 0xc) == '\x03')) &&\n                     ((*(int *)(iVar6 + 0x10) == 0 && (*(int *)(DAT_001d0400 + 0x20) != iVar6)))) {\n                    puVar18[5] = puVar18[5] | 0x8000;\n                  }\n                  piVar20 = piVar20 + 1;\n                } while (piVar1 != piVar20);\n              }\n            }\n          }\n          local_4c = *(int *)(local_4c + 0x18);\n        } while (local_4c != 0);\n      }\n    }\n  }" if (parenthesized_expression "(DAT_001cf6bc != 0)" ( (binary_expression "DAT_001cf6bc != 0" identifier != number_literal) )) (compound_statement "{\n      bVar16 = false;\n      local_40 = 0;\n      do {\n        iVar6 = (*(undefined4 **)(local_50 + 0x10))[0x23];\n        if (iVar6 != 0) {\n          pcVar12 = strrchr((char *)**(undefined4 **)(local_50 + 0x10),0x2e);\n          iVar17 = local_50;\n          if (iVar6 == local_40) {\n            if (!bVar16) goto LAB_00056b08;\n          }\n          else {\n            while ((iVar15 = local_50, local_40 = iVar6, pcVar12 == (char *)0x0 ||\n                   (iVar13 = filename_cmp(pcVar12,".dll"), iVar13 != 0))) {\n              iVar17 = *(int *)(iVar17 + 0x18);\n              if (iVar17 == 0) {\n                local_50 = *(int *)(local_50 + 0x18);\n                bVar16 = false;\n                goto joined_r0x00056b15;\n              }\n              if (iVar6 != (*(undefined4 **)(iVar17 + 0x10))[0x23]) break;\n              pcVar12 = strrchr((char *)**(undefined4 **)(iVar17 + 0x10),0x2e);\n            }\n            do {\n              if (iVar6 != (*(undefined4 **)(iVar15 + 0x10))[0x23]) break;\n              pcVar12 = (char *)**(undefined4 **)(iVar15 + 0x10);\n              pcVar10 = strrchr(pcVar12,0x2e);\n              if (pcVar10 == (char *)0x0) {\nLAB_00056d20:\n                iVar13 = filename_cmp(**(undefined4 **)(iVar17 + 0x10),pcVar12);\n                if (iVar13 != 0) {\n                  bVar16 = false;\n                  goto LAB_00056b08;\n                }\n              }\n              else {\n                iVar13 = filename_cmp(pcVar10,&DAT_00192ed1);\n                if (iVar13 != 0) {\n                  pcVar12 = (char *)**(undefined4 **)(iVar15 + 0x10);\n                  goto LAB_00056d20;\n                }\n              }\n              piVar20 = (int *)(iVar15 + 0x18);\n              iVar15 = *piVar20;\n            } while (*piVar20 != 0);\n            pcVar12 = strrchr((char *)**(undefined4 **)(local_50 + 0x10),0x2e);\n          }\n          bVar16 = true;\n          iVar6 = filename_cmp(pcVar12,".dll");\n          if (iVar6 == 0) {\n            puVar7 = (undefined4 *)(*(undefined4 **)(local_50 + 0x10))[0x18];\n            if (puVar7 == (undefined4 *)0x0) {\n              iVar6 = 99;\n            }\n            else {\n              iVar17 = 0;\n              bVar24 = true;\n              bVar16 = false;\n              do {\n                bVar22 = false;\n                iVar6 = 9;\n                pbVar19 = (byte *)*puVar7;\n                pbVar21 = (byte *)".idata$2";\n                do {\n                  if (iVar6 == 0) break;\n                  iVar6 = iVar6 + -1;\n                  bVar22 = *pbVar19 < *pbVar21;\n                  bVar24 = *pbVar19 == *pbVar21;\n                  pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n                  pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n                } while (bVar24);\n                if ((!bVar22 && !bVar24) == bVar22) {\n                  bVar16 = true;\n                }\n                iVar17 = iVar17 + puVar7[0x19];\n                puVar7 = (undefined4 *)puVar7[3];\n                bVar24 = puVar7 == (undefined4 *)0x0;\n              } while (!bVar24);\n              iVar6 = 0x61;\n              if (!bVar16) {\n                iVar6 = (iVar17 < 1) + 0x62;\n              }\n            }\n            sVar9 = strlen((char *)**(undefined4 **)(local_50 + 0x10));\n            pcVar12 = (char *)xmalloc(sVar9 + 3);\n            sprintf(pcVar12,"%s.%c",**(undefined4 **)(local_50 + 0x10),iVar6);\n            **(undefined4 **)(local_50 + 0x10) = pcVar12;\n            sVar9 = strlen(*(char **)(local_50 + 8));\n            pcVar12 = (char *)xmalloc(sVar9 + 3);\n            sprintf(pcVar12,"%s.%c",*(undefined4 *)(local_50 + 8),iVar6);\n            *(char **)(local_50 + 8) = pcVar12;\n            bVar16 = true;\n          }\n        }\nLAB_00056b08:\n        local_50 = *(int *)(local_50 + 0x18);\njoined_r0x00056b15:\n      } while (local_50 != 0);\n      local_4c = DAT_001cf6bc;\n      if (DAT_001cf6bc != 0) {\n        do {\n          iVar6 = *(int *)(local_4c + 0x10);\n          if ((*(int *)(iVar6 + 0x8c) != 0) &&\n             (puVar7 = *(undefined4 **)(iVar6 + 0x60), puVar7 != (undefined4 *)0x0)) {\n            puVar18 = (undefined4 *)0x0;\n            bVar16 = false;\n            bVar24 = true;\n            do {\n              bVar22 = false;\n              iVar17 = 7;\n              pbVar19 = (byte *)*puVar7;\n              pbVar21 = (byte *)".idata$";\n              do {\n                if (iVar17 == 0) break;\n                iVar17 = iVar17 + -1;\n                bVar22 = *pbVar19 < *pbVar21;\n                bVar24 = *pbVar19 == *pbVar21;\n                pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n                pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n              } while (bVar24);\n              if ((!bVar22 && !bVar24) == bVar22) {\n                bVar16 = true;\n              }\n              if (((*(byte *)(puVar7 + 5) & 0x10) != 0) && (puVar7[0x19] != 0)) {\n                puVar18 = puVar7;\n              }\n              puVar7 = (undefined4 *)puVar7[3];\n              bVar24 = puVar7 == (undefined4 *)0x0;\n            } while (!bVar24);\n            if ((puVar18 != (undefined4 *)0x0) && (bVar16)) {\n              iVar6 = bfd_generic_link_read_symbols(iVar6);\n              if (iVar6 == 0) {\nLAB_000570af:\n                uVar11 = *(undefined4 *)(local_4c + 0x10);\n                uVar14 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n                FUN_00034d20(uVar14,uVar11);\n                return;\n              }\n              piVar20 = *(int **)(*(int *)(local_4c + 0x10) + 0x78);\n              iVar6 = *(int *)(*(int *)(local_4c + 0x10) + 0x7c);\n              if (0 < iVar6) {\n                piVar1 = piVar20 + iVar6;\n                do {\n                  if ((((*(int *)(*(int *)(*piVar20 + 0x14) + 4) == puVar18[1]) &&\n                       (iVar6 = bfd_link_hash_lookup\n                                          (DAT_001d0400,*(undefined4 *)(*piVar20 + 4),0,0,1),\n                       iVar6 != 0)) && (*(char *)(iVar6 + 0xc) == '\x03')) &&\n                     ((*(int *)(iVar6 + 0x10) == 0 && (*(int *)(DAT_001d0400 + 0x20) != iVar6)))) {\n                    puVar18[5] = puVar18[5] | 0x8000;\n                  }\n                  piVar20 = piVar20 + 1;\n                } while (piVar1 != piVar20);\n              }\n            }\n          }\n          local_4c = *(int *)(local_4c + 0x18);\n        } while (local_4c != 0);\n      }\n    }\n  }" { (expression_statement "bVar16 = false;" (assignment_expression "bVar16 = false" identifier = false) ;) (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" identifier = number_literal) ;) (ERROR "do {\n        iVar6 = (*(undefined4 **)(local_50 + 0x10))[0x23];\n        if (iVar6 != 0) {\n          pcVar12 = strrchr((char *)**(undefined4 **)(local_50 + 0x10),0x2e);\n          iVar17 = local_50;\n          if (iVar6 == local_40) {\n            if (!bVar16) goto LAB_00056b08;\n          }\n          else {\n            while ((iVar15 = local_50, local_40 = iVar6, pcVar12 == (char *)0x0 ||\n                   (iVar13 = filename_cmp(pcVar12,".dll"), iVar13 != 0))) {\n              iVar17 = *(int *)(iVar17 + 0x18);\n              if (iVar17 == 0) {\n                local_50 = *(int *)(local_50 + 0x18);\n                bVar16 = false;\n                goto joined_r0x00056b15;\n              }\n              if (iVar6 != (*(undefined4 **)(iVar17 + 0x10))[0x23]) break;\n              pcVar12 = strrchr((char *)**(undefined4 **)(iVar17 + 0x10),0x2e);\n            }\n            do {\n              if (iVar6 != (*(undefined4 **)(iVar15 + 0x10))[0x23]) break;\n              pcVar12 = (char *)**(undefined4 **)(iVar15 + 0x10);\n              pcVar10 = strrchr(pcVar12,0x2e);\n              if (pcVar10 == (char *)0x0) {\nLAB_00056d20:\n                iVar13 = filename_cmp(**(undefined4 **)(iVar17 + 0x10),pcVar12);\n                if (iVar13 != 0) {\n                  bVar16 = false;\n                  goto LAB_00056b08;\n                }\n              }\n              else {\n                iVar13 = filename_cmp(pcVar10,&DAT_00192ed1);\n                if (iVar13 != 0) {\n                  pcVar12 = (char *)**(undefined4 **)(iVar15 + 0x10);\n                  goto LAB_00056d20;\n                }\n              }\n              piVar20 = (int *)(iVar15 + 0x18);\n              iVar15 = *piVar20;\n            } while (*piVar20 != 0);\n            pcVar12 = strrchr((char *)**(undefined4 **)(local_50 + 0x10),0x2e);\n          }\n          bVar16 = true;\n          iVar6 = filename_cmp(pcVar12,".dll");\n          if (iVar6 == 0) {\n            puVar7 = (undefined4 *)(*(undefined4 **)(local_50 + 0x10))[0x18];\n            if (puVar7 == (undefined4 *)0x0) {\n              iVar6 = 99;\n            }\n            else {\n              iVar17 = 0;\n              bVar24 = true;\n              bVar16 = false;\n              do {\n                bVar22 = false;\n                iVar6 = 9;\n                pbVar19 = (byte *)*puVar7;\n                pbVar21 = (byte *)".idata$2";\n                do {\n                  if (iVar6 == 0) break;\n                  iVar6 = iVar6 + -1;\n                  bVar22 = *pbVar19 < *pbVar21;\n                  bVar24 = *pbVar19 == *pbVar21;\n                  pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n                  pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n                } while (bVar24);\n                if ((!bVar22 && !bVar24) == bVar22) {\n                  bVar16 = true;\n                }\n                iVar17 = iVar17 + puVar7[0x19];\n                puVar7 = (undefined4 *)puVar7[3];\n                bVar24 = puVar7 == (undefined4 *)0x0;\n              } while (!bVar24);\n              iVar6 = 0x61;\n              if (!bVar16) {\n                iVar6 = (iVar17 < 1) + 0x62;\n              }\n            }\n            sVar9 = strlen((char *)**(undefined4 **)(local_50 + 0x10));\n            pcVar12 = (char *)xmalloc(sVar9 + 3);\n            sprintf(pcVar12,"%s.%c",**(undefined4 **)(local_50 + 0x10),iVar6);\n            **(undefined4 **)(local_50 + 0x10) = pcVar12;\n            sVar9 = strlen(*(char **)(local_50 + 8));\n            pcVar12 = (char *)xmalloc(sVar9 + 3);\n            sprintf(pcVar12,"%s.%c",*(undefined4 *)(local_50 + 8),iVar6);\n            *(char **)(local_50 + 8) = pcVar12;\n            bVar16 = true;\n          }\n        }\nLAB_00056b08:\n        local_50 = *(int *)(local_50 + 0x18);\njoined_r0x00056b15:\n      } while (local_50 != 0);\n      local_4c = DAT_001cf6bc;\n      if (DAT_001cf6bc != 0) {\n        do {\n          iVar6 = *(int *)(local_4c + 0x10);\n          if ((*(int *)(iVar6 + 0x8c) != 0) &&\n             (puVar7 = *(undefined4 **)(iVar6 + 0x60), puVar7 != (undefined4 *)0x0)) {\n            puVar18 = (undefined4 *)0x0;\n            bVar16 = false;\n            bVar24 = true;\n            do {\n              bVar22 = false;\n              iVar17 = 7;\n              pbVar19 = (byte *)*puVar7;\n              pbVar21 = (byte *)".idata$";\n              do {\n                if (iVar17 == 0) break;\n                iVar17 = iVar17 + -1;\n                bVar22 = *pbVar19 < *pbVar21;\n                bVar24 = *pbVar19 == *pbVar21;\n                pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n                pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n              } while (bVar24);\n              if ((!bVar22 && !bVar24) == bVar22) {\n                bVar16 = true;\n              }\n              if (((*(byte *)(puVar7 + 5) & 0x10) != 0) && (puVar7[0x19] != 0)) {\n                puVar18 = puVar7;\n              }\n              puVar7 = (undefined4 *)puVar7[3];\n              bVar24 = puVar7 == (undefined4 *)0x0;\n            } while (!bVar24);\n            if ((puVar18 != (undefined4 *)0x0) && (bVar16)) {\n              iVar6 = bfd_generic_link_read_symbols(iVar6);\n              if (iVar6 == 0) {\nLAB_000570af:\n                uVar11 = *(undefined4 *)(local_4c + 0x10);\n                uVar14 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n                FUN_00034d20(uVar14,uVar11);\n                return;\n              }\n              piVar20 = *(int **)(*(int *)(local_4c + 0x10) + 0x78);\n              iVar6 = *(int *)(*(int *)(local_4c + 0x10) + 0x7c);\n              if (0 < iVar6) {\n                piVar1 = piVar20 + iVar6;\n                do {\n                  if ((((*(int *)(*(int *)(*piVar20 + 0x14) + 4) == puVar18[1]) &&\n                       (iVar6 = bfd_link_hash_lookup\n                                          (DAT_001d0400,*(undefined4 *)(*piVar20 + 4),0,0,1),\n                       iVar6 != 0)) && (*(char *)(iVar6 + 0xc) == '\x03')) &&\n                     ((*(int *)(iVar6 + 0x10) == 0 && (*(int *)(DAT_001d0400 + 0x20) != iVar6)))) {\n                    puVar18[5] = puVar18[5] | 0x8000;\n                  }\n                  piVar20 = piVar20 + 1;\n                } while (piVar1 != piVar20);\n              }\n            }\n          }\n          local_4c = *(int *)(local_4c + 0x18);\n        } while (local_4c != 0);\n      }\n    }" do (compound_statement "{\n        iVar6 = (*(undefined4 **)(local_50 + 0x10))[0x23];\n        if (iVar6 != 0) {\n          pcVar12 = strrchr((char *)**(undefined4 **)(local_50 + 0x10),0x2e);\n          iVar17 = local_50;\n          if (iVar6 == local_40) {\n            if (!bVar16) goto LAB_00056b08;\n          }\n          else {\n            while ((iVar15 = local_50, local_40 = iVar6, pcVar12 == (char *)0x0 ||\n                   (iVar13 = filename_cmp(pcVar12,".dll"), iVar13 != 0))) {\n              iVar17 = *(int *)(iVar17 + 0x18);\n              if (iVar17 == 0) {\n                local_50 = *(int *)(local_50 + 0x18);\n                bVar16 = false;\n                goto joined_r0x00056b15;\n              }\n              if (iVar6 != (*(undefined4 **)(iVar17 + 0x10))[0x23]) break;\n              pcVar12 = strrchr((char *)**(undefined4 **)(iVar17 + 0x10),0x2e);\n            }\n            do {\n              if (iVar6 != (*(undefined4 **)(iVar15 + 0x10))[0x23]) break;\n              pcVar12 = (char *)**(undefined4 **)(iVar15 + 0x10);\n              pcVar10 = strrchr(pcVar12,0x2e);\n              if (pcVar10 == (char *)0x0) {\nLAB_00056d20:\n                iVar13 = filename_cmp(**(undefined4 **)(iVar17 + 0x10),pcVar12);\n                if (iVar13 != 0) {\n                  bVar16 = false;\n                  goto LAB_00056b08;\n                }\n              }\n              else {\n                iVar13 = filename_cmp(pcVar10,&DAT_00192ed1);\n                if (iVar13 != 0) {\n                  pcVar12 = (char *)**(undefined4 **)(iVar15 + 0x10);\n                  goto LAB_00056d20;\n                }\n              }\n              piVar20 = (int *)(iVar15 + 0x18);\n              iVar15 = *piVar20;\n            } while (*piVar20 != 0);\n            pcVar12 = strrchr((char *)**(undefined4 **)(local_50 + 0x10),0x2e);\n          }\n          bVar16 = true;\n          iVar6 = filename_cmp(pcVar12,".dll");\n          if (iVar6 == 0) {\n            puVar7 = (undefined4 *)(*(undefined4 **)(local_50 + 0x10))[0x18];\n            if (puVar7 == (undefined4 *)0x0) {\n              iVar6 = 99;\n            }\n            else {\n              iVar17 = 0;\n              bVar24 = true;\n              bVar16 = false;\n              do {\n                bVar22 = false;\n                iVar6 = 9;\n                pbVar19 = (byte *)*puVar7;\n                pbVar21 = (byte *)".idata$2";\n                do {\n                  if (iVar6 == 0) break;\n                  iVar6 = iVar6 + -1;\n                  bVar22 = *pbVar19 < *pbVar21;\n                  bVar24 = *pbVar19 == *pbVar21;\n                  pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n                  pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n                } while (bVar24);\n                if ((!bVar22 && !bVar24) == bVar22) {\n                  bVar16 = true;\n                }\n                iVar17 = iVar17 + puVar7[0x19];\n                puVar7 = (undefined4 *)puVar7[3];\n                bVar24 = puVar7 == (undefined4 *)0x0;\n              } while (!bVar24);\n              iVar6 = 0x61;\n              if (!bVar16) {\n                iVar6 = (iVar17 < 1) + 0x62;\n              }\n            }\n            sVar9 = strlen((char *)**(undefined4 **)(local_50 + 0x10));\n            pcVar12 = (char *)xmalloc(sVar9 + 3);\n            sprintf(pcVar12,"%s.%c",**(undefined4 **)(local_50 + 0x10),iVar6);\n            **(undefined4 **)(local_50 + 0x10) = pcVar12;\n            sVar9 = strlen(*(char **)(local_50 + 8));\n            pcVar12 = (char *)xmalloc(sVar9 + 3);\n            sprintf(pcVar12,"%s.%c",*(undefined4 *)(local_50 + 8),iVar6);\n            *(char **)(local_50 + 8) = pcVar12;\n            bVar16 = true;\n          }\n        }\nLAB_00056b08:\n        local_50 = *(int *)(local_50 + 0x18);\njoined_r0x00056b15:\n      } while (local_50 != 0);\n      local_4c = DAT_001cf6bc;\n      if (DAT_001cf6bc != 0) {\n        do {\n          iVar6 = *(int *)(local_4c + 0x10);\n          if ((*(int *)(iVar6 + 0x8c) != 0) &&\n             (puVar7 = *(undefined4 **)(iVar6 + 0x60), puVar7 != (undefined4 *)0x0)) {\n            puVar18 = (undefined4 *)0x0;\n            bVar16 = false;\n            bVar24 = true;\n            do {\n              bVar22 = false;\n              iVar17 = 7;\n              pbVar19 = (byte *)*puVar7;\n              pbVar21 = (byte *)".idata$";\n              do {\n                if (iVar17 == 0) break;\n                iVar17 = iVar17 + -1;\n                bVar22 = *pbVar19 < *pbVar21;\n                bVar24 = *pbVar19 == *pbVar21;\n                pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n                pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n              } while (bVar24);\n              if ((!bVar22 && !bVar24) == bVar22) {\n                bVar16 = true;\n              }\n              if (((*(byte *)(puVar7 + 5) & 0x10) != 0) && (puVar7[0x19] != 0)) {\n                puVar18 = puVar7;\n              }\n              puVar7 = (undefined4 *)puVar7[3];\n              bVar24 = puVar7 == (undefined4 *)0x0;\n            } while (!bVar24);\n            if ((puVar18 != (undefined4 *)0x0) && (bVar16)) {\n              iVar6 = bfd_generic_link_read_symbols(iVar6);\n              if (iVar6 == 0) {\nLAB_000570af:\n                uVar11 = *(undefined4 *)(local_4c + 0x10);\n                uVar14 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n                FUN_00034d20(uVar14,uVar11);\n                return;\n              }\n              piVar20 = *(int **)(*(int *)(local_4c + 0x10) + 0x78);\n              iVar6 = *(int *)(*(int *)(local_4c + 0x10) + 0x7c);\n              if (0 < iVar6) {\n                piVar1 = piVar20 + iVar6;\n                do {\n                  if ((((*(int *)(*(int *)(*piVar20 + 0x14) + 4) == puVar18[1]) &&\n                       (iVar6 = bfd_link_hash_lookup\n                                          (DAT_001d0400,*(undefined4 *)(*piVar20 + 4),0,0,1),\n                       iVar6 != 0)) && (*(char *)(iVar6 + 0xc) == '\x03')) &&\n                     ((*(int *)(iVar6 + 0x10) == 0 && (*(int *)(DAT_001d0400 + 0x20) != iVar6)))) {\n                    puVar18[5] = puVar18[5] | 0x8000;\n                  }\n                  piVar20 = piVar20 + 1;\n                } while (piVar1 != piVar20);\n              }\n            }\n          }\n          local_4c = *(int *)(local_4c + 0x18);\n        } while (local_4c != 0);\n      }\n    }" { (expression_statement "iVar6 = (*(undefined4 **)(local_50 + 0x10))[0x23];" (assignment_expression "iVar6 = (*(undefined4 **)(local_50 + 0x10))[0x23]" identifier = (subscript_expression "(*(undefined4 **)(local_50 + 0x10))[0x23]" (parenthesized_expression "(*(undefined4 **)(local_50 + 0x10))" ( (pointer_expression "*(undefined4 **)(local_50 + 0x10)" * (cast_expression "(undefined4 **)(local_50 + 0x10)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_50 + 0x10)" ( (binary_expression "local_50 + 0x10" identifier + number_literal) )))) )) [ number_literal ])) ;) (if_statement "if (iVar6 != 0) {\n          pcVar12 = strrchr((char *)**(undefined4 **)(local_50 + 0x10),0x2e);\n          iVar17 = local_50;\n          if (iVar6 == local_40) {\n            if (!bVar16) goto LAB_00056b08;\n          }\n          else {\n            while ((iVar15 = local_50, local_40 = iVar6, pcVar12 == (char *)0x0 ||\n                   (iVar13 = filename_cmp(pcVar12,".dll"), iVar13 != 0))) {\n              iVar17 = *(int *)(iVar17 + 0x18);\n              if (iVar17 == 0) {\n                local_50 = *(int *)(local_50 + 0x18);\n                bVar16 = false;\n                goto joined_r0x00056b15;\n              }\n              if (iVar6 != (*(undefined4 **)(iVar17 + 0x10))[0x23]) break;\n              pcVar12 = strrchr((char *)**(undefined4 **)(iVar17 + 0x10),0x2e);\n            }\n            do {\n              if (iVar6 != (*(undefined4 **)(iVar15 + 0x10))[0x23]) break;\n              pcVar12 = (char *)**(undefined4 **)(iVar15 + 0x10);\n              pcVar10 = strrchr(pcVar12,0x2e);\n              if (pcVar10 == (char *)0x0) {\nLAB_00056d20:\n                iVar13 = filename_cmp(**(undefined4 **)(iVar17 + 0x10),pcVar12);\n                if (iVar13 != 0) {\n                  bVar16 = false;\n                  goto LAB_00056b08;\n                }\n              }\n              else {\n                iVar13 = filename_cmp(pcVar10,&DAT_00192ed1);\n                if (iVar13 != 0) {\n                  pcVar12 = (char *)**(undefined4 **)(iVar15 + 0x10);\n                  goto LAB_00056d20;\n                }\n              }\n              piVar20 = (int *)(iVar15 + 0x18);\n              iVar15 = *piVar20;\n            } while (*piVar20 != 0);\n            pcVar12 = strrchr((char *)**(undefined4 **)(local_50 + 0x10),0x2e);\n          }\n          bVar16 = true;\n          iVar6 = filename_cmp(pcVar12,".dll");\n          if (iVar6 == 0) {\n            puVar7 = (undefined4 *)(*(undefined4 **)(local_50 + 0x10))[0x18];\n            if (puVar7 == (undefined4 *)0x0) {\n              iVar6 = 99;\n            }\n            else {\n              iVar17 = 0;\n              bVar24 = true;\n              bVar16 = false;\n              do {\n                bVar22 = false;\n                iVar6 = 9;\n                pbVar19 = (byte *)*puVar7;\n                pbVar21 = (byte *)".idata$2";\n                do {\n                  if (iVar6 == 0) break;\n                  iVar6 = iVar6 + -1;\n                  bVar22 = *pbVar19 < *pbVar21;\n                  bVar24 = *pbVar19 == *pbVar21;\n                  pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n                  pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n                } while (bVar24);\n                if ((!bVar22 && !bVar24) == bVar22) {\n                  bVar16 = true;\n                }\n                iVar17 = iVar17 + puVar7[0x19];\n                puVar7 = (undefined4 *)puVar7[3];\n                bVar24 = puVar7 == (undefined4 *)0x0;\n              } while (!bVar24);\n              iVar6 = 0x61;\n              if (!bVar16) {\n                iVar6 = (iVar17 < 1) + 0x62;\n              }\n            }\n            sVar9 = strlen((char *)**(undefined4 **)(local_50 + 0x10));\n            pcVar12 = (char *)xmalloc(sVar9 + 3);\n            sprintf(pcVar12,"%s.%c",**(undefined4 **)(local_50 + 0x10),iVar6);\n            **(undefined4 **)(local_50 + 0x10) = pcVar12;\n            sVar9 = strlen(*(char **)(local_50 + 8));\n            pcVar12 = (char *)xmalloc(sVar9 + 3);\n            sprintf(pcVar12,"%s.%c",*(undefined4 *)(local_50 + 8),iVar6);\n            *(char **)(local_50 + 8) = pcVar12;\n            bVar16 = true;\n          }\n        }" if (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) (compound_statement "{\n          pcVar12 = strrchr((char *)**(undefined4 **)(local_50 + 0x10),0x2e);\n          iVar17 = local_50;\n          if (iVar6 == local_40) {\n            if (!bVar16) goto LAB_00056b08;\n          }\n          else {\n            while ((iVar15 = local_50, local_40 = iVar6, pcVar12 == (char *)0x0 ||\n                   (iVar13 = filename_cmp(pcVar12,".dll"), iVar13 != 0))) {\n              iVar17 = *(int *)(iVar17 + 0x18);\n              if (iVar17 == 0) {\n                local_50 = *(int *)(local_50 + 0x18);\n                bVar16 = false;\n                goto joined_r0x00056b15;\n              }\n              if (iVar6 != (*(undefined4 **)(iVar17 + 0x10))[0x23]) break;\n              pcVar12 = strrchr((char *)**(undefined4 **)(iVar17 + 0x10),0x2e);\n            }\n            do {\n              if (iVar6 != (*(undefined4 **)(iVar15 + 0x10))[0x23]) break;\n              pcVar12 = (char *)**(undefined4 **)(iVar15 + 0x10);\n              pcVar10 = strrchr(pcVar12,0x2e);\n              if (pcVar10 == (char *)0x0) {\nLAB_00056d20:\n                iVar13 = filename_cmp(**(undefined4 **)(iVar17 + 0x10),pcVar12);\n                if (iVar13 != 0) {\n                  bVar16 = false;\n                  goto LAB_00056b08;\n                }\n              }\n              else {\n                iVar13 = filename_cmp(pcVar10,&DAT_00192ed1);\n                if (iVar13 != 0) {\n                  pcVar12 = (char *)**(undefined4 **)(iVar15 + 0x10);\n                  goto LAB_00056d20;\n                }\n              }\n              piVar20 = (int *)(iVar15 + 0x18);\n              iVar15 = *piVar20;\n            } while (*piVar20 != 0);\n            pcVar12 = strrchr((char *)**(undefined4 **)(local_50 + 0x10),0x2e);\n          }\n          bVar16 = true;\n          iVar6 = filename_cmp(pcVar12,".dll");\n          if (iVar6 == 0) {\n            puVar7 = (undefined4 *)(*(undefined4 **)(local_50 + 0x10))[0x18];\n            if (puVar7 == (undefined4 *)0x0) {\n              iVar6 = 99;\n            }\n            else {\n              iVar17 = 0;\n              bVar24 = true;\n              bVar16 = false;\n              do {\n                bVar22 = false;\n                iVar6 = 9;\n                pbVar19 = (byte *)*puVar7;\n                pbVar21 = (byte *)".idata$2";\n                do {\n                  if (iVar6 == 0) break;\n                  iVar6 = iVar6 + -1;\n                  bVar22 = *pbVar19 < *pbVar21;\n                  bVar24 = *pbVar19 == *pbVar21;\n                  pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n                  pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n                } while (bVar24);\n                if ((!bVar22 && !bVar24) == bVar22) {\n                  bVar16 = true;\n                }\n                iVar17 = iVar17 + puVar7[0x19];\n                puVar7 = (undefined4 *)puVar7[3];\n                bVar24 = puVar7 == (undefined4 *)0x0;\n              } while (!bVar24);\n              iVar6 = 0x61;\n              if (!bVar16) {\n                iVar6 = (iVar17 < 1) + 0x62;\n              }\n            }\n            sVar9 = strlen((char *)**(undefined4 **)(local_50 + 0x10));\n            pcVar12 = (char *)xmalloc(sVar9 + 3);\n            sprintf(pcVar12,"%s.%c",**(undefined4 **)(local_50 + 0x10),iVar6);\n            **(undefined4 **)(local_50 + 0x10) = pcVar12;\n            sVar9 = strlen(*(char **)(local_50 + 8));\n            pcVar12 = (char *)xmalloc(sVar9 + 3);\n            sprintf(pcVar12,"%s.%c",*(undefined4 *)(local_50 + 8),iVar6);\n            *(char **)(local_50 + 8) = pcVar12;\n            bVar16 = true;\n          }\n        }" { (expression_statement "pcVar12 = strrchr((char *)**(undefined4 **)(local_50 + 0x10),0x2e);" (assignment_expression "pcVar12 = strrchr((char *)**(undefined4 **)(local_50 + 0x10),0x2e)" identifier = (call_expression "strrchr((char *)**(undefined4 **)(local_50 + 0x10),0x2e)" identifier (argument_list "((char *)**(undefined4 **)(local_50 + 0x10),0x2e)" ( (cast_expression "(char *)**(undefined4 **)(local_50 + 0x10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(local_50 + 0x10)" * (pointer_expression "*(undefined4 **)(local_50 + 0x10)" * (cast_expression "(undefined4 **)(local_50 + 0x10)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_50 + 0x10)" ( (binary_expression "local_50 + 0x10" identifier + number_literal) )))))) , number_literal )))) ;) (expression_statement "iVar17 = local_50;" (assignment_expression "iVar17 = local_50" identifier = identifier) ;) (if_statement "if (iVar6 == local_40) {\n            if (!bVar16) goto LAB_00056b08;\n          }\n          else {\n            while ((iVar15 = local_50, local_40 = iVar6, pcVar12 == (char *)0x0 ||\n                   (iVar13 = filename_cmp(pcVar12,".dll"), iVar13 != 0))) {\n              iVar17 = *(int *)(iVar17 + 0x18);\n              if (iVar17 == 0) {\n                local_50 = *(int *)(local_50 + 0x18);\n                bVar16 = false;\n                goto joined_r0x00056b15;\n              }\n              if (iVar6 != (*(undefined4 **)(iVar17 + 0x10))[0x23]) break;\n              pcVar12 = strrchr((char *)**(undefined4 **)(iVar17 + 0x10),0x2e);\n            }\n            do {\n              if (iVar6 != (*(undefined4 **)(iVar15 + 0x10))[0x23]) break;\n              pcVar12 = (char *)**(undefined4 **)(iVar15 + 0x10);\n              pcVar10 = strrchr(pcVar12,0x2e);\n              if (pcVar10 == (char *)0x0) {\nLAB_00056d20:\n                iVar13 = filename_cmp(**(undefined4 **)(iVar17 + 0x10),pcVar12);\n                if (iVar13 != 0) {\n                  bVar16 = false;\n                  goto LAB_00056b08;\n                }\n              }\n              else {\n                iVar13 = filename_cmp(pcVar10,&DAT_00192ed1);\n                if (iVar13 != 0) {\n                  pcVar12 = (char *)**(undefined4 **)(iVar15 + 0x10);\n                  goto LAB_00056d20;\n                }\n              }\n              piVar20 = (int *)(iVar15 + 0x18);\n              iVar15 = *piVar20;\n            } while (*piVar20 != 0);\n            pcVar12 = strrchr((char *)**(undefined4 **)(local_50 + 0x10),0x2e);\n          }" if (parenthesized_expression "(iVar6 == local_40)" ( (binary_expression "iVar6 == local_40" identifier == identifier) )) (compound_statement "{\n            if (!bVar16) goto LAB_00056b08;\n          }" { (if_statement "if (!bVar16) goto LAB_00056b08;" if (parenthesized_expression "(!bVar16)" ( (unary_expression "!bVar16" ! identifier) )) (goto_statement "goto LAB_00056b08;" goto statement_identifier ;)) }) (else_clause "else {\n            while ((iVar15 = local_50, local_40 = iVar6, pcVar12 == (char *)0x0 ||\n                   (iVar13 = filename_cmp(pcVar12,".dll"), iVar13 != 0))) {\n              iVar17 = *(int *)(iVar17 + 0x18);\n              if (iVar17 == 0) {\n                local_50 = *(int *)(local_50 + 0x18);\n                bVar16 = false;\n                goto joined_r0x00056b15;\n              }\n              if (iVar6 != (*(undefined4 **)(iVar17 + 0x10))[0x23]) break;\n              pcVar12 = strrchr((char *)**(undefined4 **)(iVar17 + 0x10),0x2e);\n            }\n            do {\n              if (iVar6 != (*(undefined4 **)(iVar15 + 0x10))[0x23]) break;\n              pcVar12 = (char *)**(undefined4 **)(iVar15 + 0x10);\n              pcVar10 = strrchr(pcVar12,0x2e);\n              if (pcVar10 == (char *)0x0) {\nLAB_00056d20:\n                iVar13 = filename_cmp(**(undefined4 **)(iVar17 + 0x10),pcVar12);\n                if (iVar13 != 0) {\n                  bVar16 = false;\n                  goto LAB_00056b08;\n                }\n              }\n              else {\n                iVar13 = filename_cmp(pcVar10,&DAT_00192ed1);\n                if (iVar13 != 0) {\n                  pcVar12 = (char *)**(undefined4 **)(iVar15 + 0x10);\n                  goto LAB_00056d20;\n                }\n              }\n              piVar20 = (int *)(iVar15 + 0x18);\n              iVar15 = *piVar20;\n            } while (*piVar20 != 0);\n            pcVar12 = strrchr((char *)**(undefined4 **)(local_50 + 0x10),0x2e);\n          }" else (compound_statement "{\n            while ((iVar15 = local_50, local_40 = iVar6, pcVar12 == (char *)0x0 ||\n                   (iVar13 = filename_cmp(pcVar12,".dll"), iVar13 != 0))) {\n              iVar17 = *(int *)(iVar17 + 0x18);\n              if (iVar17 == 0) {\n                local_50 = *(int *)(local_50 + 0x18);\n                bVar16 = false;\n                goto joined_r0x00056b15;\n              }\n              if (iVar6 != (*(undefined4 **)(iVar17 + 0x10))[0x23]) break;\n              pcVar12 = strrchr((char *)**(undefined4 **)(iVar17 + 0x10),0x2e);\n            }\n            do {\n              if (iVar6 != (*(undefined4 **)(iVar15 + 0x10))[0x23]) break;\n              pcVar12 = (char *)**(undefined4 **)(iVar15 + 0x10);\n              pcVar10 = strrchr(pcVar12,0x2e);\n              if (pcVar10 == (char *)0x0) {\nLAB_00056d20:\n                iVar13 = filename_cmp(**(undefined4 **)(iVar17 + 0x10),pcVar12);\n                if (iVar13 != 0) {\n                  bVar16 = false;\n                  goto LAB_00056b08;\n                }\n              }\n              else {\n                iVar13 = filename_cmp(pcVar10,&DAT_00192ed1);\n                if (iVar13 != 0) {\n                  pcVar12 = (char *)**(undefined4 **)(iVar15 + 0x10);\n                  goto LAB_00056d20;\n                }\n              }\n              piVar20 = (int *)(iVar15 + 0x18);\n              iVar15 = *piVar20;\n            } while (*piVar20 != 0);\n            pcVar12 = strrchr((char *)**(undefined4 **)(local_50 + 0x10),0x2e);\n          }" { (while_statement "while ((iVar15 = local_50, local_40 = iVar6, pcVar12 == (char *)0x0 ||\n                   (iVar13 = filename_cmp(pcVar12,".dll"), iVar13 != 0))) {\n              iVar17 = *(int *)(iVar17 + 0x18);\n              if (iVar17 == 0) {\n                local_50 = *(int *)(local_50 + 0x18);\n                bVar16 = false;\n                goto joined_r0x00056b15;\n              }\n              if (iVar6 != (*(undefined4 **)(iVar17 + 0x10))[0x23]) break;\n              pcVar12 = strrchr((char *)**(undefined4 **)(iVar17 + 0x10),0x2e);\n            }" while (parenthesized_expression "((iVar15 = local_50, local_40 = iVar6, pcVar12 == (char *)0x0 ||\n                   (iVar13 = filename_cmp(pcVar12,".dll"), iVar13 != 0)))" ( (parenthesized_expression "(iVar15 = local_50, local_40 = iVar6, pcVar12 == (char *)0x0 ||\n                   (iVar13 = filename_cmp(pcVar12,".dll"), iVar13 != 0))" ( (comma_expression "iVar15 = local_50, local_40 = iVar6, pcVar12 == (char *)0x0 ||\n                   (iVar13 = filename_cmp(pcVar12,".dll"), iVar13 != 0)" (assignment_expression "iVar15 = local_50" identifier = identifier) , (comma_expression "local_40 = iVar6, pcVar12 == (char *)0x0 ||\n                   (iVar13 = filename_cmp(pcVar12,".dll"), iVar13 != 0)" (assignment_expression "local_40 = iVar6" identifier = identifier) , (binary_expression "pcVar12 == (char *)0x0 ||\n                   (iVar13 = filename_cmp(pcVar12,".dll"), iVar13 != 0)" (binary_expression "pcVar12 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) || (parenthesized_expression "(iVar13 = filename_cmp(pcVar12,".dll"), iVar13 != 0)" ( (comma_expression "iVar13 = filename_cmp(pcVar12,".dll"), iVar13 != 0" (assignment_expression "iVar13 = filename_cmp(pcVar12,".dll")" identifier = (call_expression "filename_cmp(pcVar12,".dll")" identifier (argument_list "(pcVar12,".dll")" ( identifier , (string_literal "".dll"" " string_content ") )))) , (binary_expression "iVar13 != 0" identifier != number_literal)) ))))) )) )) (compound_statement "{\n              iVar17 = *(int *)(iVar17 + 0x18);\n              if (iVar17 == 0) {\n                local_50 = *(int *)(local_50 + 0x18);\n                bVar16 = false;\n                goto joined_r0x00056b15;\n              }\n              if (iVar6 != (*(undefined4 **)(iVar17 + 0x10))[0x23]) break;\n              pcVar12 = strrchr((char *)**(undefined4 **)(iVar17 + 0x10),0x2e);\n            }" { (expression_statement "iVar17 = *(int *)(iVar17 + 0x18);" (assignment_expression "iVar17 = *(int *)(iVar17 + 0x18)" identifier = (pointer_expression "*(int *)(iVar17 + 0x18)" * (cast_expression "(int *)(iVar17 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x18)" ( (binary_expression "iVar17 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if (iVar17 == 0) {\n                local_50 = *(int *)(local_50 + 0x18);\n                bVar16 = false;\n                goto joined_r0x00056b15;\n              }" if (parenthesized_expression "(iVar17 == 0)" ( (binary_expression "iVar17 == 0" identifier == number_literal) )) (compound_statement "{\n                local_50 = *(int *)(local_50 + 0x18);\n                bVar16 = false;\n                goto joined_r0x00056b15;\n              }" { (expression_statement "local_50 = *(int *)(local_50 + 0x18);" (assignment_expression "local_50 = *(int *)(local_50 + 0x18)" identifier = (pointer_expression "*(int *)(local_50 + 0x18)" * (cast_expression "(int *)(local_50 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_50 + 0x18)" ( (binary_expression "local_50 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "bVar16 = false;" (assignment_expression "bVar16 = false" identifier = false) ;) (goto_statement "goto joined_r0x00056b15;" goto statement_identifier ;) })) (if_statement "if (iVar6 != (*(undefined4 **)(iVar17 + 0x10))[0x23]) break;" if (parenthesized_expression "(iVar6 != (*(undefined4 **)(iVar17 + 0x10))[0x23])" ( (binary_expression "iVar6 != (*(undefined4 **)(iVar17 + 0x10))[0x23]" identifier != (subscript_expression "(*(undefined4 **)(iVar17 + 0x10))[0x23]" (parenthesized_expression "(*(undefined4 **)(iVar17 + 0x10))" ( (pointer_expression "*(undefined4 **)(iVar17 + 0x10)" * (cast_expression "(undefined4 **)(iVar17 + 0x10)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar17 + 0x10)" ( (binary_expression "iVar17 + 0x10" identifier + number_literal) )))) )) [ number_literal ])) )) (break_statement "break;" break ;)) (expression_statement "pcVar12 = strrchr((char *)**(undefined4 **)(iVar17 + 0x10),0x2e);" (assignment_expression "pcVar12 = strrchr((char *)**(undefined4 **)(iVar17 + 0x10),0x2e)" identifier = (call_expression "strrchr((char *)**(undefined4 **)(iVar17 + 0x10),0x2e)" identifier (argument_list "((char *)**(undefined4 **)(iVar17 + 0x10),0x2e)" ( (cast_expression "(char *)**(undefined4 **)(iVar17 + 0x10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(iVar17 + 0x10)" * (pointer_expression "*(undefined4 **)(iVar17 + 0x10)" * (cast_expression "(undefined4 **)(iVar17 + 0x10)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar17 + 0x10)" ( (binary_expression "iVar17 + 0x10" identifier + number_literal) )))))) , number_literal )))) ;) })) (do_statement "do {\n              if (iVar6 != (*(undefined4 **)(iVar15 + 0x10))[0x23]) break;\n              pcVar12 = (char *)**(undefined4 **)(iVar15 + 0x10);\n              pcVar10 = strrchr(pcVar12,0x2e);\n              if (pcVar10 == (char *)0x0) {\nLAB_00056d20:\n                iVar13 = filename_cmp(**(undefined4 **)(iVar17 + 0x10),pcVar12);\n                if (iVar13 != 0) {\n                  bVar16 = false;\n                  goto LAB_00056b08;\n                }\n              }\n              else {\n                iVar13 = filename_cmp(pcVar10,&DAT_00192ed1);\n                if (iVar13 != 0) {\n                  pcVar12 = (char *)**(undefined4 **)(iVar15 + 0x10);\n                  goto LAB_00056d20;\n                }\n              }\n              piVar20 = (int *)(iVar15 + 0x18);\n              iVar15 = *piVar20;\n            } while (*piVar20 != 0);" do (compound_statement "{\n              if (iVar6 != (*(undefined4 **)(iVar15 + 0x10))[0x23]) break;\n              pcVar12 = (char *)**(undefined4 **)(iVar15 + 0x10);\n              pcVar10 = strrchr(pcVar12,0x2e);\n              if (pcVar10 == (char *)0x0) {\nLAB_00056d20:\n                iVar13 = filename_cmp(**(undefined4 **)(iVar17 + 0x10),pcVar12);\n                if (iVar13 != 0) {\n                  bVar16 = false;\n                  goto LAB_00056b08;\n                }\n              }\n              else {\n                iVar13 = filename_cmp(pcVar10,&DAT_00192ed1);\n                if (iVar13 != 0) {\n                  pcVar12 = (char *)**(undefined4 **)(iVar15 + 0x10);\n                  goto LAB_00056d20;\n                }\n              }\n              piVar20 = (int *)(iVar15 + 0x18);\n              iVar15 = *piVar20;\n            }" { (if_statement "if (iVar6 != (*(undefined4 **)(iVar15 + 0x10))[0x23]) break;" if (parenthesized_expression "(iVar6 != (*(undefined4 **)(iVar15 + 0x10))[0x23])" ( (binary_expression "iVar6 != (*(undefined4 **)(iVar15 + 0x10))[0x23]" identifier != (subscript_expression "(*(undefined4 **)(iVar15 + 0x10))[0x23]" (parenthesized_expression "(*(undefined4 **)(iVar15 + 0x10))" ( (pointer_expression "*(undefined4 **)(iVar15 + 0x10)" * (cast_expression "(undefined4 **)(iVar15 + 0x10)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar15 + 0x10)" ( (binary_expression "iVar15 + 0x10" identifier + number_literal) )))) )) [ number_literal ])) )) (break_statement "break;" break ;)) (expression_statement "pcVar12 = (char *)**(undefined4 **)(iVar15 + 0x10);" (assignment_expression "pcVar12 = (char *)**(undefined4 **)(iVar15 + 0x10)" identifier = (cast_expression "(char *)**(undefined4 **)(iVar15 + 0x10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(iVar15 + 0x10)" * (pointer_expression "*(undefined4 **)(iVar15 + 0x10)" * (cast_expression "(undefined4 **)(iVar15 + 0x10)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar15 + 0x10)" ( (binary_expression "iVar15 + 0x10" identifier + number_literal) ))))))) ;) (expression_statement "pcVar10 = strrchr(pcVar12,0x2e);" (assignment_expression "pcVar10 = strrchr(pcVar12,0x2e)" identifier = (call_expression "strrchr(pcVar12,0x2e)" identifier (argument_list "(pcVar12,0x2e)" ( identifier , number_literal )))) ;) (if_statement "if (pcVar10 == (char *)0x0) {\nLAB_00056d20:\n                iVar13 = filename_cmp(**(undefined4 **)(iVar17 + 0x10),pcVar12);\n                if (iVar13 != 0) {\n                  bVar16 = false;\n                  goto LAB_00056b08;\n                }\n              }\n              else {\n                iVar13 = filename_cmp(pcVar10,&DAT_00192ed1);\n                if (iVar13 != 0) {\n                  pcVar12 = (char *)**(undefined4 **)(iVar15 + 0x10);\n                  goto LAB_00056d20;\n                }\n              }" if (parenthesized_expression "(pcVar10 == (char *)0x0)" ( (binary_expression "pcVar10 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_00056d20:\n                iVar13 = filename_cmp(**(undefined4 **)(iVar17 + 0x10),pcVar12);\n                if (iVar13 != 0) {\n                  bVar16 = false;\n                  goto LAB_00056b08;\n                }\n              }" { (labeled_statement "LAB_00056d20:\n                iVar13 = filename_cmp(**(undefined4 **)(iVar17 + 0x10),pcVar12);" statement_identifier : (expression_statement "iVar13 = filename_cmp(**(undefined4 **)(iVar17 + 0x10),pcVar12);" (assignment_expression "iVar13 = filename_cmp(**(undefined4 **)(iVar17 + 0x10),pcVar12)" identifier = (call_expression "filename_cmp(**(undefined4 **)(iVar17 + 0x10),pcVar12)" identifier (argument_list "(**(undefined4 **)(iVar17 + 0x10),pcVar12)" ( (pointer_expression "**(undefined4 **)(iVar17 + 0x10)" * (pointer_expression "*(undefined4 **)(iVar17 + 0x10)" * (cast_expression "(undefined4 **)(iVar17 + 0x10)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar17 + 0x10)" ( (binary_expression "iVar17 + 0x10" identifier + number_literal) ))))) , identifier )))) ;)) (if_statement "if (iVar13 != 0) {\n                  bVar16 = false;\n                  goto LAB_00056b08;\n                }" if (parenthesized_expression "(iVar13 != 0)" ( (binary_expression "iVar13 != 0" identifier != number_literal) )) (compound_statement "{\n                  bVar16 = false;\n                  goto LAB_00056b08;\n                }" { (expression_statement "bVar16 = false;" (assignment_expression "bVar16 = false" identifier = false) ;) (goto_statement "goto LAB_00056b08;" goto statement_identifier ;) })) }) (else_clause "else {\n                iVar13 = filename_cmp(pcVar10,&DAT_00192ed1);\n                if (iVar13 != 0) {\n                  pcVar12 = (char *)**(undefined4 **)(iVar15 + 0x10);\n                  goto LAB_00056d20;\n                }\n              }" else (compound_statement "{\n                iVar13 = filename_cmp(pcVar10,&DAT_00192ed1);\n                if (iVar13 != 0) {\n                  pcVar12 = (char *)**(undefined4 **)(iVar15 + 0x10);\n                  goto LAB_00056d20;\n                }\n              }" { (expression_statement "iVar13 = filename_cmp(pcVar10,&DAT_00192ed1);" (assignment_expression "iVar13 = filename_cmp(pcVar10,&DAT_00192ed1)" identifier = (call_expression "filename_cmp(pcVar10,&DAT_00192ed1)" identifier (argument_list "(pcVar10,&DAT_00192ed1)" ( identifier , (pointer_expression "&DAT_00192ed1" & identifier) )))) ;) (if_statement "if (iVar13 != 0) {\n                  pcVar12 = (char *)**(undefined4 **)(iVar15 + 0x10);\n                  goto LAB_00056d20;\n                }" if (parenthesized_expression "(iVar13 != 0)" ( (binary_expression "iVar13 != 0" identifier != number_literal) )) (compound_statement "{\n                  pcVar12 = (char *)**(undefined4 **)(iVar15 + 0x10);\n                  goto LAB_00056d20;\n                }" { (expression_statement "pcVar12 = (char *)**(undefined4 **)(iVar15 + 0x10);" (assignment_expression "pcVar12 = (char *)**(undefined4 **)(iVar15 + 0x10)" identifier = (cast_expression "(char *)**(undefined4 **)(iVar15 + 0x10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(iVar15 + 0x10)" * (pointer_expression "*(undefined4 **)(iVar15 + 0x10)" * (cast_expression "(undefined4 **)(iVar15 + 0x10)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar15 + 0x10)" ( (binary_expression "iVar15 + 0x10" identifier + number_literal) ))))))) ;) (goto_statement "goto LAB_00056d20;" goto statement_identifier ;) })) }))) (expression_statement "piVar20 = (int *)(iVar15 + 0x18);" (assignment_expression "piVar20 = (int *)(iVar15 + 0x18)" identifier = (cast_expression "(int *)(iVar15 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x18)" ( (binary_expression "iVar15 + 0x18" identifier + number_literal) )))) ;) (expression_statement "iVar15 = *piVar20;" (assignment_expression "iVar15 = *piVar20" identifier = (pointer_expression "*piVar20" * identifier)) ;) }) while (parenthesized_expression "(*piVar20 != 0)" ( (binary_expression "*piVar20 != 0" (pointer_expression "*piVar20" * identifier) != number_literal) )) ;) (expression_statement "pcVar12 = strrchr((char *)**(undefined4 **)(local_50 + 0x10),0x2e);" (assignment_expression "pcVar12 = strrchr((char *)**(undefined4 **)(local_50 + 0x10),0x2e)" identifier = (call_expression "strrchr((char *)**(undefined4 **)(local_50 + 0x10),0x2e)" identifier (argument_list "((char *)**(undefined4 **)(local_50 + 0x10),0x2e)" ( (cast_expression "(char *)**(undefined4 **)(local_50 + 0x10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(local_50 + 0x10)" * (pointer_expression "*(undefined4 **)(local_50 + 0x10)" * (cast_expression "(undefined4 **)(local_50 + 0x10)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_50 + 0x10)" ( (binary_expression "local_50 + 0x10" identifier + number_literal) )))))) , number_literal )))) ;) }))) (expression_statement "bVar16 = true;" (assignment_expression "bVar16 = true" identifier = true) ;) (expression_statement "iVar6 = filename_cmp(pcVar12,".dll");" (assignment_expression "iVar6 = filename_cmp(pcVar12,".dll")" identifier = (call_expression "filename_cmp(pcVar12,".dll")" identifier (argument_list "(pcVar12,".dll")" ( identifier , (string_literal "".dll"" " string_content ") )))) ;) (if_statement "if (iVar6 == 0) {\n            puVar7 = (undefined4 *)(*(undefined4 **)(local_50 + 0x10))[0x18];\n            if (puVar7 == (undefined4 *)0x0) {\n              iVar6 = 99;\n            }\n            else {\n              iVar17 = 0;\n              bVar24 = true;\n              bVar16 = false;\n              do {\n                bVar22 = false;\n                iVar6 = 9;\n                pbVar19 = (byte *)*puVar7;\n                pbVar21 = (byte *)".idata$2";\n                do {\n                  if (iVar6 == 0) break;\n                  iVar6 = iVar6 + -1;\n                  bVar22 = *pbVar19 < *pbVar21;\n                  bVar24 = *pbVar19 == *pbVar21;\n                  pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n                  pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n                } while (bVar24);\n                if ((!bVar22 && !bVar24) == bVar22) {\n                  bVar16 = true;\n                }\n                iVar17 = iVar17 + puVar7[0x19];\n                puVar7 = (undefined4 *)puVar7[3];\n                bVar24 = puVar7 == (undefined4 *)0x0;\n              } while (!bVar24);\n              iVar6 = 0x61;\n              if (!bVar16) {\n                iVar6 = (iVar17 < 1) + 0x62;\n              }\n            }\n            sVar9 = strlen((char *)**(undefined4 **)(local_50 + 0x10));\n            pcVar12 = (char *)xmalloc(sVar9 + 3);\n            sprintf(pcVar12,"%s.%c",**(undefined4 **)(local_50 + 0x10),iVar6);\n            **(undefined4 **)(local_50 + 0x10) = pcVar12;\n            sVar9 = strlen(*(char **)(local_50 + 8));\n            pcVar12 = (char *)xmalloc(sVar9 + 3);\n            sprintf(pcVar12,"%s.%c",*(undefined4 *)(local_50 + 8),iVar6);\n            *(char **)(local_50 + 8) = pcVar12;\n            bVar16 = true;\n          }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n            puVar7 = (undefined4 *)(*(undefined4 **)(local_50 + 0x10))[0x18];\n            if (puVar7 == (undefined4 *)0x0) {\n              iVar6 = 99;\n            }\n            else {\n              iVar17 = 0;\n              bVar24 = true;\n              bVar16 = false;\n              do {\n                bVar22 = false;\n                iVar6 = 9;\n                pbVar19 = (byte *)*puVar7;\n                pbVar21 = (byte *)".idata$2";\n                do {\n                  if (iVar6 == 0) break;\n                  iVar6 = iVar6 + -1;\n                  bVar22 = *pbVar19 < *pbVar21;\n                  bVar24 = *pbVar19 == *pbVar21;\n                  pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n                  pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n                } while (bVar24);\n                if ((!bVar22 && !bVar24) == bVar22) {\n                  bVar16 = true;\n                }\n                iVar17 = iVar17 + puVar7[0x19];\n                puVar7 = (undefined4 *)puVar7[3];\n                bVar24 = puVar7 == (undefined4 *)0x0;\n              } while (!bVar24);\n              iVar6 = 0x61;\n              if (!bVar16) {\n                iVar6 = (iVar17 < 1) + 0x62;\n              }\n            }\n            sVar9 = strlen((char *)**(undefined4 **)(local_50 + 0x10));\n            pcVar12 = (char *)xmalloc(sVar9 + 3);\n            sprintf(pcVar12,"%s.%c",**(undefined4 **)(local_50 + 0x10),iVar6);\n            **(undefined4 **)(local_50 + 0x10) = pcVar12;\n            sVar9 = strlen(*(char **)(local_50 + 8));\n            pcVar12 = (char *)xmalloc(sVar9 + 3);\n            sprintf(pcVar12,"%s.%c",*(undefined4 *)(local_50 + 8),iVar6);\n            *(char **)(local_50 + 8) = pcVar12;\n            bVar16 = true;\n          }" { (expression_statement "puVar7 = (undefined4 *)(*(undefined4 **)(local_50 + 0x10))[0x18];" (assignment_expression "puVar7 = (undefined4 *)(*(undefined4 **)(local_50 + 0x10))[0x18]" identifier = (cast_expression "(undefined4 *)(*(undefined4 **)(local_50 + 0x10))[0x18]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "(*(undefined4 **)(local_50 + 0x10))[0x18]" (parenthesized_expression "(*(undefined4 **)(local_50 + 0x10))" ( (pointer_expression "*(undefined4 **)(local_50 + 0x10)" * (cast_expression "(undefined4 **)(local_50 + 0x10)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_50 + 0x10)" ( (binary_expression "local_50 + 0x10" identifier + number_literal) )))) )) [ number_literal ]))) ;) (if_statement "if (puVar7 == (undefined4 *)0x0) {\n              iVar6 = 99;\n            }\n            else {\n              iVar17 = 0;\n              bVar24 = true;\n              bVar16 = false;\n              do {\n                bVar22 = false;\n                iVar6 = 9;\n                pbVar19 = (byte *)*puVar7;\n                pbVar21 = (byte *)".idata$2";\n                do {\n                  if (iVar6 == 0) break;\n                  iVar6 = iVar6 + -1;\n                  bVar22 = *pbVar19 < *pbVar21;\n                  bVar24 = *pbVar19 == *pbVar21;\n                  pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n                  pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n                } while (bVar24);\n                if ((!bVar22 && !bVar24) == bVar22) {\n                  bVar16 = true;\n                }\n                iVar17 = iVar17 + puVar7[0x19];\n                puVar7 = (undefined4 *)puVar7[3];\n                bVar24 = puVar7 == (undefined4 *)0x0;\n              } while (!bVar24);\n              iVar6 = 0x61;\n              if (!bVar16) {\n                iVar6 = (iVar17 < 1) + 0x62;\n              }\n            }" if (parenthesized_expression "(puVar7 == (undefined4 *)0x0)" ( (binary_expression "puVar7 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              iVar6 = 99;\n            }" { (expression_statement "iVar6 = 99;" (assignment_expression "iVar6 = 99" identifier = number_literal) ;) }) (else_clause "else {\n              iVar17 = 0;\n              bVar24 = true;\n              bVar16 = false;\n              do {\n                bVar22 = false;\n                iVar6 = 9;\n                pbVar19 = (byte *)*puVar7;\n                pbVar21 = (byte *)".idata$2";\n                do {\n                  if (iVar6 == 0) break;\n                  iVar6 = iVar6 + -1;\n                  bVar22 = *pbVar19 < *pbVar21;\n                  bVar24 = *pbVar19 == *pbVar21;\n                  pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n                  pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n                } while (bVar24);\n                if ((!bVar22 && !bVar24) == bVar22) {\n                  bVar16 = true;\n                }\n                iVar17 = iVar17 + puVar7[0x19];\n                puVar7 = (undefined4 *)puVar7[3];\n                bVar24 = puVar7 == (undefined4 *)0x0;\n              } while (!bVar24);\n              iVar6 = 0x61;\n              if (!bVar16) {\n                iVar6 = (iVar17 < 1) + 0x62;\n              }\n            }" else (compound_statement "{\n              iVar17 = 0;\n              bVar24 = true;\n              bVar16 = false;\n              do {\n                bVar22 = false;\n                iVar6 = 9;\n                pbVar19 = (byte *)*puVar7;\n                pbVar21 = (byte *)".idata$2";\n                do {\n                  if (iVar6 == 0) break;\n                  iVar6 = iVar6 + -1;\n                  bVar22 = *pbVar19 < *pbVar21;\n                  bVar24 = *pbVar19 == *pbVar21;\n                  pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n                  pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n                } while (bVar24);\n                if ((!bVar22 && !bVar24) == bVar22) {\n                  bVar16 = true;\n                }\n                iVar17 = iVar17 + puVar7[0x19];\n                puVar7 = (undefined4 *)puVar7[3];\n                bVar24 = puVar7 == (undefined4 *)0x0;\n              } while (!bVar24);\n              iVar6 = 0x61;\n              if (!bVar16) {\n                iVar6 = (iVar17 < 1) + 0x62;\n              }\n            }" { (expression_statement "iVar17 = 0;" (assignment_expression "iVar17 = 0" identifier = number_literal) ;) (expression_statement "bVar24 = true;" (assignment_expression "bVar24 = true" identifier = true) ;) (expression_statement "bVar16 = false;" (assignment_expression "bVar16 = false" identifier = false) ;) (do_statement "do {\n                bVar22 = false;\n                iVar6 = 9;\n                pbVar19 = (byte *)*puVar7;\n                pbVar21 = (byte *)".idata$2";\n                do {\n                  if (iVar6 == 0) break;\n                  iVar6 = iVar6 + -1;\n                  bVar22 = *pbVar19 < *pbVar21;\n                  bVar24 = *pbVar19 == *pbVar21;\n                  pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n                  pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n                } while (bVar24);\n                if ((!bVar22 && !bVar24) == bVar22) {\n                  bVar16 = true;\n                }\n                iVar17 = iVar17 + puVar7[0x19];\n                puVar7 = (undefined4 *)puVar7[3];\n                bVar24 = puVar7 == (undefined4 *)0x0;\n              } while (!bVar24);" do (compound_statement "{\n                bVar22 = false;\n                iVar6 = 9;\n                pbVar19 = (byte *)*puVar7;\n                pbVar21 = (byte *)".idata$2";\n                do {\n                  if (iVar6 == 0) break;\n                  iVar6 = iVar6 + -1;\n                  bVar22 = *pbVar19 < *pbVar21;\n                  bVar24 = *pbVar19 == *pbVar21;\n                  pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n                  pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n                } while (bVar24);\n                if ((!bVar22 && !bVar24) == bVar22) {\n                  bVar16 = true;\n                }\n                iVar17 = iVar17 + puVar7[0x19];\n                puVar7 = (undefined4 *)puVar7[3];\n                bVar24 = puVar7 == (undefined4 *)0x0;\n              }" { (expression_statement "bVar22 = false;" (assignment_expression "bVar22 = false" identifier = false) ;) (expression_statement "iVar6 = 9;" (assignment_expression "iVar6 = 9" identifier = number_literal) ;) (expression_statement "pbVar19 = (byte *)*puVar7;" (assignment_expression "pbVar19 = (byte *)*puVar7" identifier = (cast_expression "(byte *)*puVar7" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar7" * identifier))) ;) (expression_statement "pbVar21 = (byte *)".idata$2";" (assignment_expression "pbVar21 = (byte *)".idata$2"" identifier = (cast_expression "(byte *)".idata$2"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".idata$2"" " string_content "))) ;) (do_statement "do {\n                  if (iVar6 == 0) break;\n                  iVar6 = iVar6 + -1;\n                  bVar22 = *pbVar19 < *pbVar21;\n                  bVar24 = *pbVar19 == *pbVar21;\n                  pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n                  pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n                } while (bVar24);" do (compound_statement "{\n                  if (iVar6 == 0) break;\n                  iVar6 = iVar6 + -1;\n                  bVar22 = *pbVar19 < *pbVar21;\n                  bVar24 = *pbVar19 == *pbVar21;\n                  pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n                  pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n                }" { (if_statement "if (iVar6 == 0) break;" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar6 = iVar6 + -1;" (assignment_expression "iVar6 = iVar6 + -1" identifier = (binary_expression "iVar6 + -1" identifier + number_literal)) ;) (expression_statement "bVar22 = *pbVar19 < *pbVar21;" (assignment_expression "bVar22 = *pbVar19 < *pbVar21" identifier = (binary_expression "*pbVar19 < *pbVar21" (pointer_expression "*pbVar19" * identifier) < (pointer_expression "*pbVar21" * identifier))) ;) (expression_statement "bVar24 = *pbVar19 == *pbVar21;" (assignment_expression "bVar24 = *pbVar19 == *pbVar21" identifier = (binary_expression "*pbVar19 == *pbVar21" (pointer_expression "*pbVar19" * identifier) == (pointer_expression "*pbVar21" * identifier))) ;) (expression_statement "pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pbVar19 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar19 + (uint)bVar25 * -2" identifier + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pbVar21 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar21 + (uint)bVar25 * -2" identifier + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar24)" ( identifier )) ;) (if_statement "if ((!bVar22 && !bVar24) == bVar22) {\n                  bVar16 = true;\n                }" if (parenthesized_expression "((!bVar22 && !bVar24) == bVar22)" ( (binary_expression "(!bVar22 && !bVar24) == bVar22" (parenthesized_expression "(!bVar22 && !bVar24)" ( (binary_expression "!bVar22 && !bVar24" (unary_expression "!bVar22" ! identifier) && (unary_expression "!bVar24" ! identifier)) )) == identifier) )) (compound_statement "{\n                  bVar16 = true;\n                }" { (expression_statement "bVar16 = true;" (assignment_expression "bVar16 = true" identifier = true) ;) })) (expression_statement "iVar17 = iVar17 + puVar7[0x19];" (assignment_expression "iVar17 = iVar17 + puVar7[0x19]" identifier = (binary_expression "iVar17 + puVar7[0x19]" identifier + (subscript_expression "puVar7[0x19]" identifier [ number_literal ]))) ;) (expression_statement "puVar7 = (undefined4 *)puVar7[3];" (assignment_expression "puVar7 = (undefined4 *)puVar7[3]" identifier = (cast_expression "(undefined4 *)puVar7[3]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar7[3]" identifier [ number_literal ]))) ;) (expression_statement "bVar24 = puVar7 == (undefined4 *)0x0;" (assignment_expression "bVar24 = puVar7 == (undefined4 *)0x0" identifier = (binary_expression "puVar7 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) }) while (parenthesized_expression "(!bVar24)" ( (unary_expression "!bVar24" ! identifier) )) ;) (expression_statement "iVar6 = 0x61;" (assignment_expression "iVar6 = 0x61" identifier = number_literal) ;) (if_statement "if (!bVar16) {\n                iVar6 = (iVar17 < 1) + 0x62;\n              }" if (parenthesized_expression "(!bVar16)" ( (unary_expression "!bVar16" ! identifier) )) (compound_statement "{\n                iVar6 = (iVar17 < 1) + 0x62;\n              }" { (expression_statement "iVar6 = (iVar17 < 1) + 0x62;" (assignment_expression "iVar6 = (iVar17 < 1) + 0x62" identifier = (binary_expression "(iVar17 < 1) + 0x62" (parenthesized_expression "(iVar17 < 1)" ( (binary_expression "iVar17 < 1" identifier < number_literal) )) + number_literal)) ;) })) }))) (expression_statement "sVar9 = strlen((char *)**(undefined4 **)(local_50 + 0x10));" (assignment_expression "sVar9 = strlen((char *)**(undefined4 **)(local_50 + 0x10))" identifier = (call_expression "strlen((char *)**(undefined4 **)(local_50 + 0x10))" identifier (argument_list "((char *)**(undefined4 **)(local_50 + 0x10))" ( (cast_expression "(char *)**(undefined4 **)(local_50 + 0x10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(local_50 + 0x10)" * (pointer_expression "*(undefined4 **)(local_50 + 0x10)" * (cast_expression "(undefined4 **)(local_50 + 0x10)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_50 + 0x10)" ( (binary_expression "local_50 + 0x10" identifier + number_literal) )))))) )))) ;) (expression_statement "pcVar12 = (char *)xmalloc(sVar9 + 3);" (assignment_expression "pcVar12 = (char *)xmalloc(sVar9 + 3)" identifier = (cast_expression "(char *)xmalloc(sVar9 + 3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(sVar9 + 3)" identifier (argument_list "(sVar9 + 3)" ( (binary_expression "sVar9 + 3" identifier + number_literal) ))))) ;) (expression_statement "sprintf(pcVar12,"%s.%c",**(undefined4 **)(local_50 + 0x10),iVar6);" (call_expression "sprintf(pcVar12,"%s.%c",**(undefined4 **)(local_50 + 0x10),iVar6)" identifier (argument_list "(pcVar12,"%s.%c",**(undefined4 **)(local_50 + 0x10),iVar6)" ( identifier , (string_literal ""%s.%c"" " string_content ") , (pointer_expression "**(undefined4 **)(local_50 + 0x10)" * (pointer_expression "*(undefined4 **)(local_50 + 0x10)" * (cast_expression "(undefined4 **)(local_50 + 0x10)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_50 + 0x10)" ( (binary_expression "local_50 + 0x10" identifier + number_literal) ))))) , identifier ))) ;) (expression_statement "**(undefined4 **)(local_50 + 0x10) = pcVar12;" (assignment_expression "**(undefined4 **)(local_50 + 0x10) = pcVar12" (pointer_expression "**(undefined4 **)(local_50 + 0x10)" * (pointer_expression "*(undefined4 **)(local_50 + 0x10)" * (cast_expression "(undefined4 **)(local_50 + 0x10)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_50 + 0x10)" ( (binary_expression "local_50 + 0x10" identifier + number_literal) ))))) = identifier) ;) (expression_statement "sVar9 = strlen(*(char **)(local_50 + 8));" (assignment_expression "sVar9 = strlen(*(char **)(local_50 + 8))" identifier = (call_expression "strlen(*(char **)(local_50 + 8))" identifier (argument_list "(*(char **)(local_50 + 8))" ( (pointer_expression "*(char **)(local_50 + 8)" * (cast_expression "(char **)(local_50 + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_50 + 8)" ( (binary_expression "local_50 + 8" identifier + number_literal) )))) )))) ;) (expression_statement "pcVar12 = (char *)xmalloc(sVar9 + 3);" (assignment_expression "pcVar12 = (char *)xmalloc(sVar9 + 3)" identifier = (cast_expression "(char *)xmalloc(sVar9 + 3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(sVar9 + 3)" identifier (argument_list "(sVar9 + 3)" ( (binary_expression "sVar9 + 3" identifier + number_literal) ))))) ;) (expression_statement "sprintf(pcVar12,"%s.%c",*(undefined4 *)(local_50 + 8),iVar6);" (call_expression "sprintf(pcVar12,"%s.%c",*(undefined4 *)(local_50 + 8),iVar6)" identifier (argument_list "(pcVar12,"%s.%c",*(undefined4 *)(local_50 + 8),iVar6)" ( identifier , (string_literal ""%s.%c"" " string_content ") , (pointer_expression "*(undefined4 *)(local_50 + 8)" * (cast_expression "(undefined4 *)(local_50 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_50 + 8)" ( (binary_expression "local_50 + 8" identifier + number_literal) )))) , identifier ))) ;) (expression_statement "*(char **)(local_50 + 8) = pcVar12;" (assignment_expression "*(char **)(local_50 + 8) = pcVar12" (pointer_expression "*(char **)(local_50 + 8)" * (cast_expression "(char **)(local_50 + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_50 + 8)" ( (binary_expression "local_50 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "bVar16 = true;" (assignment_expression "bVar16 = true" identifier = true) ;) })) })) (labeled_statement "LAB_00056b08:\n        local_50 = *(int *)(local_50 + 0x18);" statement_identifier : (expression_statement "local_50 = *(int *)(local_50 + 0x18);" (assignment_expression "local_50 = *(int *)(local_50 + 0x18)" identifier = (pointer_expression "*(int *)(local_50 + 0x18)" * (cast_expression "(int *)(local_50 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_50 + 0x18)" ( (binary_expression "local_50 + 0x18" identifier + number_literal) ))))) ;)) (labeled_statement "joined_r0x00056b15:\n      } while (local_50 != 0);" statement_identifier : (ERROR "}" }) (while_statement "while (local_50 != 0);" while (parenthesized_expression "(local_50 != 0)" ( (binary_expression "local_50 != 0" identifier != number_literal) )) (expression_statement ";" ;))) (expression_statement "local_4c = DAT_001cf6bc;" (assignment_expression "local_4c = DAT_001cf6bc" identifier = identifier) ;) (if_statement "if (DAT_001cf6bc != 0) {\n        do {\n          iVar6 = *(int *)(local_4c + 0x10);\n          if ((*(int *)(iVar6 + 0x8c) != 0) &&\n             (puVar7 = *(undefined4 **)(iVar6 + 0x60), puVar7 != (undefined4 *)0x0)) {\n            puVar18 = (undefined4 *)0x0;\n            bVar16 = false;\n            bVar24 = true;\n            do {\n              bVar22 = false;\n              iVar17 = 7;\n              pbVar19 = (byte *)*puVar7;\n              pbVar21 = (byte *)".idata$";\n              do {\n                if (iVar17 == 0) break;\n                iVar17 = iVar17 + -1;\n                bVar22 = *pbVar19 < *pbVar21;\n                bVar24 = *pbVar19 == *pbVar21;\n                pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n                pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n              } while (bVar24);\n              if ((!bVar22 && !bVar24) == bVar22) {\n                bVar16 = true;\n              }\n              if (((*(byte *)(puVar7 + 5) & 0x10) != 0) && (puVar7[0x19] != 0)) {\n                puVar18 = puVar7;\n              }\n              puVar7 = (undefined4 *)puVar7[3];\n              bVar24 = puVar7 == (undefined4 *)0x0;\n            } while (!bVar24);\n            if ((puVar18 != (undefined4 *)0x0) && (bVar16)) {\n              iVar6 = bfd_generic_link_read_symbols(iVar6);\n              if (iVar6 == 0) {\nLAB_000570af:\n                uVar11 = *(undefined4 *)(local_4c + 0x10);\n                uVar14 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n                FUN_00034d20(uVar14,uVar11);\n                return;\n              }\n              piVar20 = *(int **)(*(int *)(local_4c + 0x10) + 0x78);\n              iVar6 = *(int *)(*(int *)(local_4c + 0x10) + 0x7c);\n              if (0 < iVar6) {\n                piVar1 = piVar20 + iVar6;\n                do {\n                  if ((((*(int *)(*(int *)(*piVar20 + 0x14) + 4) == puVar18[1]) &&\n                       (iVar6 = bfd_link_hash_lookup\n                                          (DAT_001d0400,*(undefined4 *)(*piVar20 + 4),0,0,1),\n                       iVar6 != 0)) && (*(char *)(iVar6 + 0xc) == '\x03')) &&\n                     ((*(int *)(iVar6 + 0x10) == 0 && (*(int *)(DAT_001d0400 + 0x20) != iVar6)))) {\n                    puVar18[5] = puVar18[5] | 0x8000;\n                  }\n                  piVar20 = piVar20 + 1;\n                } while (piVar1 != piVar20);\n              }\n            }\n          }\n          local_4c = *(int *)(local_4c + 0x18);\n        } while (local_4c != 0);\n      }" if (parenthesized_expression "(DAT_001cf6bc != 0)" ( (binary_expression "DAT_001cf6bc != 0" identifier != number_literal) )) (compound_statement "{\n        do {\n          iVar6 = *(int *)(local_4c + 0x10);\n          if ((*(int *)(iVar6 + 0x8c) != 0) &&\n             (puVar7 = *(undefined4 **)(iVar6 + 0x60), puVar7 != (undefined4 *)0x0)) {\n            puVar18 = (undefined4 *)0x0;\n            bVar16 = false;\n            bVar24 = true;\n            do {\n              bVar22 = false;\n              iVar17 = 7;\n              pbVar19 = (byte *)*puVar7;\n              pbVar21 = (byte *)".idata$";\n              do {\n                if (iVar17 == 0) break;\n                iVar17 = iVar17 + -1;\n                bVar22 = *pbVar19 < *pbVar21;\n                bVar24 = *pbVar19 == *pbVar21;\n                pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n                pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n              } while (bVar24);\n              if ((!bVar22 && !bVar24) == bVar22) {\n                bVar16 = true;\n              }\n              if (((*(byte *)(puVar7 + 5) & 0x10) != 0) && (puVar7[0x19] != 0)) {\n                puVar18 = puVar7;\n              }\n              puVar7 = (undefined4 *)puVar7[3];\n              bVar24 = puVar7 == (undefined4 *)0x0;\n            } while (!bVar24);\n            if ((puVar18 != (undefined4 *)0x0) && (bVar16)) {\n              iVar6 = bfd_generic_link_read_symbols(iVar6);\n              if (iVar6 == 0) {\nLAB_000570af:\n                uVar11 = *(undefined4 *)(local_4c + 0x10);\n                uVar14 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n                FUN_00034d20(uVar14,uVar11);\n                return;\n              }\n              piVar20 = *(int **)(*(int *)(local_4c + 0x10) + 0x78);\n              iVar6 = *(int *)(*(int *)(local_4c + 0x10) + 0x7c);\n              if (0 < iVar6) {\n                piVar1 = piVar20 + iVar6;\n                do {\n                  if ((((*(int *)(*(int *)(*piVar20 + 0x14) + 4) == puVar18[1]) &&\n                       (iVar6 = bfd_link_hash_lookup\n                                          (DAT_001d0400,*(undefined4 *)(*piVar20 + 4),0,0,1),\n                       iVar6 != 0)) && (*(char *)(iVar6 + 0xc) == '\x03')) &&\n                     ((*(int *)(iVar6 + 0x10) == 0 && (*(int *)(DAT_001d0400 + 0x20) != iVar6)))) {\n                    puVar18[5] = puVar18[5] | 0x8000;\n                  }\n                  piVar20 = piVar20 + 1;\n                } while (piVar1 != piVar20);\n              }\n            }\n          }\n          local_4c = *(int *)(local_4c + 0x18);\n        } while (local_4c != 0);\n      }" { (do_statement "do {\n          iVar6 = *(int *)(local_4c + 0x10);\n          if ((*(int *)(iVar6 + 0x8c) != 0) &&\n             (puVar7 = *(undefined4 **)(iVar6 + 0x60), puVar7 != (undefined4 *)0x0)) {\n            puVar18 = (undefined4 *)0x0;\n            bVar16 = false;\n            bVar24 = true;\n            do {\n              bVar22 = false;\n              iVar17 = 7;\n              pbVar19 = (byte *)*puVar7;\n              pbVar21 = (byte *)".idata$";\n              do {\n                if (iVar17 == 0) break;\n                iVar17 = iVar17 + -1;\n                bVar22 = *pbVar19 < *pbVar21;\n                bVar24 = *pbVar19 == *pbVar21;\n                pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n                pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n              } while (bVar24);\n              if ((!bVar22 && !bVar24) == bVar22) {\n                bVar16 = true;\n              }\n              if (((*(byte *)(puVar7 + 5) & 0x10) != 0) && (puVar7[0x19] != 0)) {\n                puVar18 = puVar7;\n              }\n              puVar7 = (undefined4 *)puVar7[3];\n              bVar24 = puVar7 == (undefined4 *)0x0;\n            } while (!bVar24);\n            if ((puVar18 != (undefined4 *)0x0) && (bVar16)) {\n              iVar6 = bfd_generic_link_read_symbols(iVar6);\n              if (iVar6 == 0) {\nLAB_000570af:\n                uVar11 = *(undefined4 *)(local_4c + 0x10);\n                uVar14 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n                FUN_00034d20(uVar14,uVar11);\n                return;\n              }\n              piVar20 = *(int **)(*(int *)(local_4c + 0x10) + 0x78);\n              iVar6 = *(int *)(*(int *)(local_4c + 0x10) + 0x7c);\n              if (0 < iVar6) {\n                piVar1 = piVar20 + iVar6;\n                do {\n                  if ((((*(int *)(*(int *)(*piVar20 + 0x14) + 4) == puVar18[1]) &&\n                       (iVar6 = bfd_link_hash_lookup\n                                          (DAT_001d0400,*(undefined4 *)(*piVar20 + 4),0,0,1),\n                       iVar6 != 0)) && (*(char *)(iVar6 + 0xc) == '\x03')) &&\n                     ((*(int *)(iVar6 + 0x10) == 0 && (*(int *)(DAT_001d0400 + 0x20) != iVar6)))) {\n                    puVar18[5] = puVar18[5] | 0x8000;\n                  }\n                  piVar20 = piVar20 + 1;\n                } while (piVar1 != piVar20);\n              }\n            }\n          }\n          local_4c = *(int *)(local_4c + 0x18);\n        } while (local_4c != 0);" do (compound_statement "{\n          iVar6 = *(int *)(local_4c + 0x10);\n          if ((*(int *)(iVar6 + 0x8c) != 0) &&\n             (puVar7 = *(undefined4 **)(iVar6 + 0x60), puVar7 != (undefined4 *)0x0)) {\n            puVar18 = (undefined4 *)0x0;\n            bVar16 = false;\n            bVar24 = true;\n            do {\n              bVar22 = false;\n              iVar17 = 7;\n              pbVar19 = (byte *)*puVar7;\n              pbVar21 = (byte *)".idata$";\n              do {\n                if (iVar17 == 0) break;\n                iVar17 = iVar17 + -1;\n                bVar22 = *pbVar19 < *pbVar21;\n                bVar24 = *pbVar19 == *pbVar21;\n                pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n                pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n              } while (bVar24);\n              if ((!bVar22 && !bVar24) == bVar22) {\n                bVar16 = true;\n              }\n              if (((*(byte *)(puVar7 + 5) & 0x10) != 0) && (puVar7[0x19] != 0)) {\n                puVar18 = puVar7;\n              }\n              puVar7 = (undefined4 *)puVar7[3];\n              bVar24 = puVar7 == (undefined4 *)0x0;\n            } while (!bVar24);\n            if ((puVar18 != (undefined4 *)0x0) && (bVar16)) {\n              iVar6 = bfd_generic_link_read_symbols(iVar6);\n              if (iVar6 == 0) {\nLAB_000570af:\n                uVar11 = *(undefined4 *)(local_4c + 0x10);\n                uVar14 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n                FUN_00034d20(uVar14,uVar11);\n                return;\n              }\n              piVar20 = *(int **)(*(int *)(local_4c + 0x10) + 0x78);\n              iVar6 = *(int *)(*(int *)(local_4c + 0x10) + 0x7c);\n              if (0 < iVar6) {\n                piVar1 = piVar20 + iVar6;\n                do {\n                  if ((((*(int *)(*(int *)(*piVar20 + 0x14) + 4) == puVar18[1]) &&\n                       (iVar6 = bfd_link_hash_lookup\n                                          (DAT_001d0400,*(undefined4 *)(*piVar20 + 4),0,0,1),\n                       iVar6 != 0)) && (*(char *)(iVar6 + 0xc) == '\x03')) &&\n                     ((*(int *)(iVar6 + 0x10) == 0 && (*(int *)(DAT_001d0400 + 0x20) != iVar6)))) {\n                    puVar18[5] = puVar18[5] | 0x8000;\n                  }\n                  piVar20 = piVar20 + 1;\n                } while (piVar1 != piVar20);\n              }\n            }\n          }\n          local_4c = *(int *)(local_4c + 0x18);\n        }" { (expression_statement "iVar6 = *(int *)(local_4c + 0x10);" (assignment_expression "iVar6 = *(int *)(local_4c + 0x10)" identifier = (pointer_expression "*(int *)(local_4c + 0x10)" * (cast_expression "(int *)(local_4c + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_4c + 0x10)" ( (binary_expression "local_4c + 0x10" identifier + number_literal) ))))) ;) (if_statement "if ((*(int *)(iVar6 + 0x8c) != 0) &&\n             (puVar7 = *(undefined4 **)(iVar6 + 0x60), puVar7 != (undefined4 *)0x0)) {\n            puVar18 = (undefined4 *)0x0;\n            bVar16 = false;\n            bVar24 = true;\n            do {\n              bVar22 = false;\n              iVar17 = 7;\n              pbVar19 = (byte *)*puVar7;\n              pbVar21 = (byte *)".idata$";\n              do {\n                if (iVar17 == 0) break;\n                iVar17 = iVar17 + -1;\n                bVar22 = *pbVar19 < *pbVar21;\n                bVar24 = *pbVar19 == *pbVar21;\n                pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n                pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n              } while (bVar24);\n              if ((!bVar22 && !bVar24) == bVar22) {\n                bVar16 = true;\n              }\n              if (((*(byte *)(puVar7 + 5) & 0x10) != 0) && (puVar7[0x19] != 0)) {\n                puVar18 = puVar7;\n              }\n              puVar7 = (undefined4 *)puVar7[3];\n              bVar24 = puVar7 == (undefined4 *)0x0;\n            } while (!bVar24);\n            if ((puVar18 != (undefined4 *)0x0) && (bVar16)) {\n              iVar6 = bfd_generic_link_read_symbols(iVar6);\n              if (iVar6 == 0) {\nLAB_000570af:\n                uVar11 = *(undefined4 *)(local_4c + 0x10);\n                uVar14 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n                FUN_00034d20(uVar14,uVar11);\n                return;\n              }\n              piVar20 = *(int **)(*(int *)(local_4c + 0x10) + 0x78);\n              iVar6 = *(int *)(*(int *)(local_4c + 0x10) + 0x7c);\n              if (0 < iVar6) {\n                piVar1 = piVar20 + iVar6;\n                do {\n                  if ((((*(int *)(*(int *)(*piVar20 + 0x14) + 4) == puVar18[1]) &&\n                       (iVar6 = bfd_link_hash_lookup\n                                          (DAT_001d0400,*(undefined4 *)(*piVar20 + 4),0,0,1),\n                       iVar6 != 0)) && (*(char *)(iVar6 + 0xc) == '\x03')) &&\n                     ((*(int *)(iVar6 + 0x10) == 0 && (*(int *)(DAT_001d0400 + 0x20) != iVar6)))) {\n                    puVar18[5] = puVar18[5] | 0x8000;\n                  }\n                  piVar20 = piVar20 + 1;\n                } while (piVar1 != piVar20);\n              }\n            }\n          }" if (parenthesized_expression "((*(int *)(iVar6 + 0x8c) != 0) &&\n             (puVar7 = *(undefined4 **)(iVar6 + 0x60), puVar7 != (undefined4 *)0x0))" ( (binary_expression "(*(int *)(iVar6 + 0x8c) != 0) &&\n             (puVar7 = *(undefined4 **)(iVar6 + 0x60), puVar7 != (undefined4 *)0x0)" (parenthesized_expression "(*(int *)(iVar6 + 0x8c) != 0)" ( (binary_expression "*(int *)(iVar6 + 0x8c) != 0" (pointer_expression "*(int *)(iVar6 + 0x8c)" * (cast_expression "(int *)(iVar6 + 0x8c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x8c)" ( (binary_expression "iVar6 + 0x8c" identifier + number_literal) )))) != number_literal) )) && (parenthesized_expression "(puVar7 = *(undefined4 **)(iVar6 + 0x60), puVar7 != (undefined4 *)0x0)" ( (comma_expression "puVar7 = *(undefined4 **)(iVar6 + 0x60), puVar7 != (undefined4 *)0x0" (assignment_expression "puVar7 = *(undefined4 **)(iVar6 + 0x60)" identifier = (pointer_expression "*(undefined4 **)(iVar6 + 0x60)" * (cast_expression "(undefined4 **)(iVar6 + 0x60)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar6 + 0x60)" ( (binary_expression "iVar6 + 0x60" identifier + number_literal) ))))) , (binary_expression "puVar7 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n            puVar18 = (undefined4 *)0x0;\n            bVar16 = false;\n            bVar24 = true;\n            do {\n              bVar22 = false;\n              iVar17 = 7;\n              pbVar19 = (byte *)*puVar7;\n              pbVar21 = (byte *)".idata$";\n              do {\n                if (iVar17 == 0) break;\n                iVar17 = iVar17 + -1;\n                bVar22 = *pbVar19 < *pbVar21;\n                bVar24 = *pbVar19 == *pbVar21;\n                pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n                pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n              } while (bVar24);\n              if ((!bVar22 && !bVar24) == bVar22) {\n                bVar16 = true;\n              }\n              if (((*(byte *)(puVar7 + 5) & 0x10) != 0) && (puVar7[0x19] != 0)) {\n                puVar18 = puVar7;\n              }\n              puVar7 = (undefined4 *)puVar7[3];\n              bVar24 = puVar7 == (undefined4 *)0x0;\n            } while (!bVar24);\n            if ((puVar18 != (undefined4 *)0x0) && (bVar16)) {\n              iVar6 = bfd_generic_link_read_symbols(iVar6);\n              if (iVar6 == 0) {\nLAB_000570af:\n                uVar11 = *(undefined4 *)(local_4c + 0x10);\n                uVar14 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n                FUN_00034d20(uVar14,uVar11);\n                return;\n              }\n              piVar20 = *(int **)(*(int *)(local_4c + 0x10) + 0x78);\n              iVar6 = *(int *)(*(int *)(local_4c + 0x10) + 0x7c);\n              if (0 < iVar6) {\n                piVar1 = piVar20 + iVar6;\n                do {\n                  if ((((*(int *)(*(int *)(*piVar20 + 0x14) + 4) == puVar18[1]) &&\n                       (iVar6 = bfd_link_hash_lookup\n                                          (DAT_001d0400,*(undefined4 *)(*piVar20 + 4),0,0,1),\n                       iVar6 != 0)) && (*(char *)(iVar6 + 0xc) == '\x03')) &&\n                     ((*(int *)(iVar6 + 0x10) == 0 && (*(int *)(DAT_001d0400 + 0x20) != iVar6)))) {\n                    puVar18[5] = puVar18[5] | 0x8000;\n                  }\n                  piVar20 = piVar20 + 1;\n                } while (piVar1 != piVar20);\n              }\n            }\n          }" { (expression_statement "puVar18 = (undefined4 *)0x0;" (assignment_expression "puVar18 = (undefined4 *)0x0" identifier = (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "bVar16 = false;" (assignment_expression "bVar16 = false" identifier = false) ;) (expression_statement "bVar24 = true;" (assignment_expression "bVar24 = true" identifier = true) ;) (do_statement "do {\n              bVar22 = false;\n              iVar17 = 7;\n              pbVar19 = (byte *)*puVar7;\n              pbVar21 = (byte *)".idata$";\n              do {\n                if (iVar17 == 0) break;\n                iVar17 = iVar17 + -1;\n                bVar22 = *pbVar19 < *pbVar21;\n                bVar24 = *pbVar19 == *pbVar21;\n                pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n                pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n              } while (bVar24);\n              if ((!bVar22 && !bVar24) == bVar22) {\n                bVar16 = true;\n              }\n              if (((*(byte *)(puVar7 + 5) & 0x10) != 0) && (puVar7[0x19] != 0)) {\n                puVar18 = puVar7;\n              }\n              puVar7 = (undefined4 *)puVar7[3];\n              bVar24 = puVar7 == (undefined4 *)0x0;\n            } while (!bVar24);" do (compound_statement "{\n              bVar22 = false;\n              iVar17 = 7;\n              pbVar19 = (byte *)*puVar7;\n              pbVar21 = (byte *)".idata$";\n              do {\n                if (iVar17 == 0) break;\n                iVar17 = iVar17 + -1;\n                bVar22 = *pbVar19 < *pbVar21;\n                bVar24 = *pbVar19 == *pbVar21;\n                pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n                pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n              } while (bVar24);\n              if ((!bVar22 && !bVar24) == bVar22) {\n                bVar16 = true;\n              }\n              if (((*(byte *)(puVar7 + 5) & 0x10) != 0) && (puVar7[0x19] != 0)) {\n                puVar18 = puVar7;\n              }\n              puVar7 = (undefined4 *)puVar7[3];\n              bVar24 = puVar7 == (undefined4 *)0x0;\n            }" { (expression_statement "bVar22 = false;" (assignment_expression "bVar22 = false" identifier = false) ;) (expression_statement "iVar17 = 7;" (assignment_expression "iVar17 = 7" identifier = number_literal) ;) (expression_statement "pbVar19 = (byte *)*puVar7;" (assignment_expression "pbVar19 = (byte *)*puVar7" identifier = (cast_expression "(byte *)*puVar7" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar7" * identifier))) ;) (expression_statement "pbVar21 = (byte *)".idata$";" (assignment_expression "pbVar21 = (byte *)".idata$"" identifier = (cast_expression "(byte *)".idata$"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".idata$"" " string_content "))) ;) (do_statement "do {\n                if (iVar17 == 0) break;\n                iVar17 = iVar17 + -1;\n                bVar22 = *pbVar19 < *pbVar21;\n                bVar24 = *pbVar19 == *pbVar21;\n                pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n                pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n              } while (bVar24);" do (compound_statement "{\n                if (iVar17 == 0) break;\n                iVar17 = iVar17 + -1;\n                bVar22 = *pbVar19 < *pbVar21;\n                bVar24 = *pbVar19 == *pbVar21;\n                pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n                pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n              }" { (if_statement "if (iVar17 == 0) break;" if (parenthesized_expression "(iVar17 == 0)" ( (binary_expression "iVar17 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar17 = iVar17 + -1;" (assignment_expression "iVar17 = iVar17 + -1" identifier = (binary_expression "iVar17 + -1" identifier + number_literal)) ;) (expression_statement "bVar22 = *pbVar19 < *pbVar21;" (assignment_expression "bVar22 = *pbVar19 < *pbVar21" identifier = (binary_expression "*pbVar19 < *pbVar21" (pointer_expression "*pbVar19" * identifier) < (pointer_expression "*pbVar21" * identifier))) ;) (expression_statement "bVar24 = *pbVar19 == *pbVar21;" (assignment_expression "bVar24 = *pbVar19 == *pbVar21" identifier = (binary_expression "*pbVar19 == *pbVar21" (pointer_expression "*pbVar19" * identifier) == (pointer_expression "*pbVar21" * identifier))) ;) (expression_statement "pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pbVar19 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar19 + (uint)bVar25 * -2" identifier + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pbVar21 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar21 + (uint)bVar25 * -2" identifier + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar24)" ( identifier )) ;) (if_statement "if ((!bVar22 && !bVar24) == bVar22) {\n                bVar16 = true;\n              }" if (parenthesized_expression "((!bVar22 && !bVar24) == bVar22)" ( (binary_expression "(!bVar22 && !bVar24) == bVar22" (parenthesized_expression "(!bVar22 && !bVar24)" ( (binary_expression "!bVar22 && !bVar24" (unary_expression "!bVar22" ! identifier) && (unary_expression "!bVar24" ! identifier)) )) == identifier) )) (compound_statement "{\n                bVar16 = true;\n              }" { (expression_statement "bVar16 = true;" (assignment_expression "bVar16 = true" identifier = true) ;) })) (if_statement "if (((*(byte *)(puVar7 + 5) & 0x10) != 0) && (puVar7[0x19] != 0)) {\n                puVar18 = puVar7;\n              }" if (parenthesized_expression "(((*(byte *)(puVar7 + 5) & 0x10) != 0) && (puVar7[0x19] != 0))" ( (binary_expression "((*(byte *)(puVar7 + 5) & 0x10) != 0) && (puVar7[0x19] != 0)" (parenthesized_expression "((*(byte *)(puVar7 + 5) & 0x10) != 0)" ( (binary_expression "(*(byte *)(puVar7 + 5) & 0x10) != 0" (parenthesized_expression "(*(byte *)(puVar7 + 5) & 0x10)" ( (binary_expression "*(byte *)(puVar7 + 5) & 0x10" (pointer_expression "*(byte *)(puVar7 + 5)" * (cast_expression "(byte *)(puVar7 + 5)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 5)" ( (binary_expression "puVar7 + 5" identifier + number_literal) )))) & number_literal) )) != number_literal) )) && (parenthesized_expression "(puVar7[0x19] != 0)" ( (binary_expression "puVar7[0x19] != 0" (subscript_expression "puVar7[0x19]" identifier [ number_literal ]) != number_literal) ))) )) (compound_statement "{\n                puVar18 = puVar7;\n              }" { (expression_statement "puVar18 = puVar7;" (assignment_expression "puVar18 = puVar7" identifier = identifier) ;) })) (expression_statement "puVar7 = (undefined4 *)puVar7[3];" (assignment_expression "puVar7 = (undefined4 *)puVar7[3]" identifier = (cast_expression "(undefined4 *)puVar7[3]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar7[3]" identifier [ number_literal ]))) ;) (expression_statement "bVar24 = puVar7 == (undefined4 *)0x0;" (assignment_expression "bVar24 = puVar7 == (undefined4 *)0x0" identifier = (binary_expression "puVar7 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) }) while (parenthesized_expression "(!bVar24)" ( (unary_expression "!bVar24" ! identifier) )) ;) (if_statement "if ((puVar18 != (undefined4 *)0x0) && (bVar16)) {\n              iVar6 = bfd_generic_link_read_symbols(iVar6);\n              if (iVar6 == 0) {\nLAB_000570af:\n                uVar11 = *(undefined4 *)(local_4c + 0x10);\n                uVar14 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n                FUN_00034d20(uVar14,uVar11);\n                return;\n              }\n              piVar20 = *(int **)(*(int *)(local_4c + 0x10) + 0x78);\n              iVar6 = *(int *)(*(int *)(local_4c + 0x10) + 0x7c);\n              if (0 < iVar6) {\n                piVar1 = piVar20 + iVar6;\n                do {\n                  if ((((*(int *)(*(int *)(*piVar20 + 0x14) + 4) == puVar18[1]) &&\n                       (iVar6 = bfd_link_hash_lookup\n                                          (DAT_001d0400,*(undefined4 *)(*piVar20 + 4),0,0,1),\n                       iVar6 != 0)) && (*(char *)(iVar6 + 0xc) == '\x03')) &&\n                     ((*(int *)(iVar6 + 0x10) == 0 && (*(int *)(DAT_001d0400 + 0x20) != iVar6)))) {\n                    puVar18[5] = puVar18[5] | 0x8000;\n                  }\n                  piVar20 = piVar20 + 1;\n                } while (piVar1 != piVar20);\n              }\n            }" if (parenthesized_expression "((puVar18 != (undefined4 *)0x0) && (bVar16))" ( (binary_expression "(puVar18 != (undefined4 *)0x0) && (bVar16)" (parenthesized_expression "(puVar18 != (undefined4 *)0x0)" ( (binary_expression "puVar18 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(bVar16)" ( identifier ))) )) (compound_statement "{\n              iVar6 = bfd_generic_link_read_symbols(iVar6);\n              if (iVar6 == 0) {\nLAB_000570af:\n                uVar11 = *(undefined4 *)(local_4c + 0x10);\n                uVar14 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n                FUN_00034d20(uVar14,uVar11);\n                return;\n              }\n              piVar20 = *(int **)(*(int *)(local_4c + 0x10) + 0x78);\n              iVar6 = *(int *)(*(int *)(local_4c + 0x10) + 0x7c);\n              if (0 < iVar6) {\n                piVar1 = piVar20 + iVar6;\n                do {\n                  if ((((*(int *)(*(int *)(*piVar20 + 0x14) + 4) == puVar18[1]) &&\n                       (iVar6 = bfd_link_hash_lookup\n                                          (DAT_001d0400,*(undefined4 *)(*piVar20 + 4),0,0,1),\n                       iVar6 != 0)) && (*(char *)(iVar6 + 0xc) == '\x03')) &&\n                     ((*(int *)(iVar6 + 0x10) == 0 && (*(int *)(DAT_001d0400 + 0x20) != iVar6)))) {\n                    puVar18[5] = puVar18[5] | 0x8000;\n                  }\n                  piVar20 = piVar20 + 1;\n                } while (piVar1 != piVar20);\n              }\n            }" { (expression_statement "iVar6 = bfd_generic_link_read_symbols(iVar6);" (assignment_expression "iVar6 = bfd_generic_link_read_symbols(iVar6)" identifier = (call_expression "bfd_generic_link_read_symbols(iVar6)" identifier (argument_list "(iVar6)" ( identifier )))) ;) (if_statement "if (iVar6 == 0) {\nLAB_000570af:\n                uVar11 = *(undefined4 *)(local_4c + 0x10);\n                uVar14 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n                FUN_00034d20(uVar14,uVar11);\n                return;\n              }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_000570af:\n                uVar11 = *(undefined4 *)(local_4c + 0x10);\n                uVar14 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n                FUN_00034d20(uVar14,uVar11);\n                return;\n              }" { (labeled_statement "LAB_000570af:\n                uVar11 = *(undefined4 *)(local_4c + 0x10);" statement_identifier : (expression_statement "uVar11 = *(undefined4 *)(local_4c + 0x10);" (assignment_expression "uVar11 = *(undefined4 *)(local_4c + 0x10)" identifier = (pointer_expression "*(undefined4 *)(local_4c + 0x10)" * (cast_expression "(undefined4 *)(local_4c + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_4c + 0x10)" ( (binary_expression "local_4c + 0x10" identifier + number_literal) ))))) ;)) (expression_statement "uVar14 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);" (assignment_expression "uVar14 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5)" identifier = (call_expression "dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5)" identifier (argument_list "(0,"%F%P: %pB: could not read symbols: %E\n",5)" ( number_literal , (string_literal ""%F%P: %pB: could not read symbols: %E\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_00034d20(uVar14,uVar11);" (call_expression "FUN_00034d20(uVar14,uVar11)" identifier (argument_list "(uVar14,uVar11)" ( identifier , identifier ))) ;) (return_statement "return;" return ;) })) (expression_statement "piVar20 = *(int **)(*(int *)(local_4c + 0x10) + 0x78);" (assignment_expression "piVar20 = *(int **)(*(int *)(local_4c + 0x10) + 0x78)" identifier = (pointer_expression "*(int **)(*(int *)(local_4c + 0x10) + 0x78)" * (cast_expression "(int **)(*(int *)(local_4c + 0x10) + 0x78)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(local_4c + 0x10) + 0x78)" ( (binary_expression "*(int *)(local_4c + 0x10) + 0x78" (pointer_expression "*(int *)(local_4c + 0x10)" * (cast_expression "(int *)(local_4c + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_4c + 0x10)" ( (binary_expression "local_4c + 0x10" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "iVar6 = *(int *)(*(int *)(local_4c + 0x10) + 0x7c);" (assignment_expression "iVar6 = *(int *)(*(int *)(local_4c + 0x10) + 0x7c)" identifier = (pointer_expression "*(int *)(*(int *)(local_4c + 0x10) + 0x7c)" * (cast_expression "(int *)(*(int *)(local_4c + 0x10) + 0x7c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(local_4c + 0x10) + 0x7c)" ( (binary_expression "*(int *)(local_4c + 0x10) + 0x7c" (pointer_expression "*(int *)(local_4c + 0x10)" * (cast_expression "(int *)(local_4c + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_4c + 0x10)" ( (binary_expression "local_4c + 0x10" identifier + number_literal) )))) + number_literal) ))))) ;) (if_statement "if (0 < iVar6) {\n                piVar1 = piVar20 + iVar6;\n                do {\n                  if ((((*(int *)(*(int *)(*piVar20 + 0x14) + 4) == puVar18[1]) &&\n                       (iVar6 = bfd_link_hash_lookup\n                                          (DAT_001d0400,*(undefined4 *)(*piVar20 + 4),0,0,1),\n                       iVar6 != 0)) && (*(char *)(iVar6 + 0xc) == '\x03')) &&\n                     ((*(int *)(iVar6 + 0x10) == 0 && (*(int *)(DAT_001d0400 + 0x20) != iVar6)))) {\n                    puVar18[5] = puVar18[5] | 0x8000;\n                  }\n                  piVar20 = piVar20 + 1;\n                } while (piVar1 != piVar20);\n              }" if (parenthesized_expression "(0 < iVar6)" ( (binary_expression "0 < iVar6" number_literal < identifier) )) (compound_statement "{\n                piVar1 = piVar20 + iVar6;\n                do {\n                  if ((((*(int *)(*(int *)(*piVar20 + 0x14) + 4) == puVar18[1]) &&\n                       (iVar6 = bfd_link_hash_lookup\n                                          (DAT_001d0400,*(undefined4 *)(*piVar20 + 4),0,0,1),\n                       iVar6 != 0)) && (*(char *)(iVar6 + 0xc) == '\x03')) &&\n                     ((*(int *)(iVar6 + 0x10) == 0 && (*(int *)(DAT_001d0400 + 0x20) != iVar6)))) {\n                    puVar18[5] = puVar18[5] | 0x8000;\n                  }\n                  piVar20 = piVar20 + 1;\n                } while (piVar1 != piVar20);\n              }" { (expression_statement "piVar1 = piVar20 + iVar6;" (assignment_expression "piVar1 = piVar20 + iVar6" identifier = (binary_expression "piVar20 + iVar6" identifier + identifier)) ;) (do_statement "do {\n                  if ((((*(int *)(*(int *)(*piVar20 + 0x14) + 4) == puVar18[1]) &&\n                       (iVar6 = bfd_link_hash_lookup\n                                          (DAT_001d0400,*(undefined4 *)(*piVar20 + 4),0,0,1),\n                       iVar6 != 0)) && (*(char *)(iVar6 + 0xc) == '\x03')) &&\n                     ((*(int *)(iVar6 + 0x10) == 0 && (*(int *)(DAT_001d0400 + 0x20) != iVar6)))) {\n                    puVar18[5] = puVar18[5] | 0x8000;\n                  }\n                  piVar20 = piVar20 + 1;\n                } while (piVar1 != piVar20);" do (compound_statement "{\n                  if ((((*(int *)(*(int *)(*piVar20 + 0x14) + 4) == puVar18[1]) &&\n                       (iVar6 = bfd_link_hash_lookup\n                                          (DAT_001d0400,*(undefined4 *)(*piVar20 + 4),0,0,1),\n                       iVar6 != 0)) && (*(char *)(iVar6 + 0xc) == '\x03')) &&\n                     ((*(int *)(iVar6 + 0x10) == 0 && (*(int *)(DAT_001d0400 + 0x20) != iVar6)))) {\n                    puVar18[5] = puVar18[5] | 0x8000;\n                  }\n                  piVar20 = piVar20 + 1;\n                }" { (if_statement "if ((((*(int *)(*(int *)(*piVar20 + 0x14) + 4) == puVar18[1]) &&\n                       (iVar6 = bfd_link_hash_lookup\n                                          (DAT_001d0400,*(undefined4 *)(*piVar20 + 4),0,0,1),\n                       iVar6 != 0)) && (*(char *)(iVar6 + 0xc) == '\x03')) &&\n                     ((*(int *)(iVar6 + 0x10) == 0 && (*(int *)(DAT_001d0400 + 0x20) != iVar6)))) {\n                    puVar18[5] = puVar18[5] | 0x8000;\n                  }" if (parenthesized_expression "((((*(int *)(*(int *)(*piVar20 + 0x14) + 4) == puVar18[1]) &&\n                       (iVar6 = bfd_link_hash_lookup\n                                          (DAT_001d0400,*(undefined4 *)(*piVar20 + 4),0,0,1),\n                       iVar6 != 0)) && (*(char *)(iVar6 + 0xc) == '\x03')) &&\n                     ((*(int *)(iVar6 + 0x10) == 0 && (*(int *)(DAT_001d0400 + 0x20) != iVar6))))" ( (binary_expression "(((*(int *)(*(int *)(*piVar20 + 0x14) + 4) == puVar18[1]) &&\n                       (iVar6 = bfd_link_hash_lookup\n                                          (DAT_001d0400,*(undefined4 *)(*piVar20 + 4),0,0,1),\n                       iVar6 != 0)) && (*(char *)(iVar6 + 0xc) == '\x03')) &&\n                     ((*(int *)(iVar6 + 0x10) == 0 && (*(int *)(DAT_001d0400 + 0x20) != iVar6)))" (parenthesized_expression "(((*(int *)(*(int *)(*piVar20 + 0x14) + 4) == puVar18[1]) &&\n                       (iVar6 = bfd_link_hash_lookup\n                                          (DAT_001d0400,*(undefined4 *)(*piVar20 + 4),0,0,1),\n                       iVar6 != 0)) && (*(char *)(iVar6 + 0xc) == '\x03'))" ( (binary_expression "((*(int *)(*(int *)(*piVar20 + 0x14) + 4) == puVar18[1]) &&\n                       (iVar6 = bfd_link_hash_lookup\n                                          (DAT_001d0400,*(undefined4 *)(*piVar20 + 4),0,0,1),\n                       iVar6 != 0)) && (*(char *)(iVar6 + 0xc) == '\x03')" (parenthesized_expression "((*(int *)(*(int *)(*piVar20 + 0x14) + 4) == puVar18[1]) &&\n                       (iVar6 = bfd_link_hash_lookup\n                                          (DAT_001d0400,*(undefined4 *)(*piVar20 + 4),0,0,1),\n                       iVar6 != 0))" ( (binary_expression "(*(int *)(*(int *)(*piVar20 + 0x14) + 4) == puVar18[1]) &&\n                       (iVar6 = bfd_link_hash_lookup\n                                          (DAT_001d0400,*(undefined4 *)(*piVar20 + 4),0,0,1),\n                       iVar6 != 0)" (parenthesized_expression "(*(int *)(*(int *)(*piVar20 + 0x14) + 4) == puVar18[1])" ( (binary_expression "*(int *)(*(int *)(*piVar20 + 0x14) + 4) == puVar18[1]" (pointer_expression "*(int *)(*(int *)(*piVar20 + 0x14) + 4)" * (cast_expression "(int *)(*(int *)(*piVar20 + 0x14) + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*piVar20 + 0x14) + 4)" ( (binary_expression "*(int *)(*piVar20 + 0x14) + 4" (pointer_expression "*(int *)(*piVar20 + 0x14)" * (cast_expression "(int *)(*piVar20 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar20 + 0x14)" ( (binary_expression "*piVar20 + 0x14" (pointer_expression "*piVar20" * identifier) + number_literal) )))) + number_literal) )))) == (subscript_expression "puVar18[1]" identifier [ number_literal ])) )) && (parenthesized_expression "(iVar6 = bfd_link_hash_lookup\n                                          (DAT_001d0400,*(undefined4 *)(*piVar20 + 4),0,0,1),\n                       iVar6 != 0)" ( (comma_expression "iVar6 = bfd_link_hash_lookup\n                                          (DAT_001d0400,*(undefined4 *)(*piVar20 + 4),0,0,1),\n                       iVar6 != 0" (assignment_expression "iVar6 = bfd_link_hash_lookup\n                                          (DAT_001d0400,*(undefined4 *)(*piVar20 + 4),0,0,1)" identifier = (call_expression "bfd_link_hash_lookup\n                                          (DAT_001d0400,*(undefined4 *)(*piVar20 + 4),0,0,1)" identifier (argument_list "(DAT_001d0400,*(undefined4 *)(*piVar20 + 4),0,0,1)" ( identifier , (pointer_expression "*(undefined4 *)(*piVar20 + 4)" * (cast_expression "(undefined4 *)(*piVar20 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar20 + 4)" ( (binary_expression "*piVar20 + 4" (pointer_expression "*piVar20" * identifier) + number_literal) )))) , number_literal , number_literal , number_literal )))) , (binary_expression "iVar6 != 0" identifier != number_literal)) ))) )) && (parenthesized_expression "(*(char *)(iVar6 + 0xc) == '\x03')" ( (binary_expression "*(char *)(iVar6 + 0xc) == '\x03'" (pointer_expression "*(char *)(iVar6 + 0xc)" * (cast_expression "(char *)(iVar6 + 0xc)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0xc)" ( (binary_expression "iVar6 + 0xc" identifier + number_literal) )))) == (char_literal "'\x03'" ' escape_sequence ')) ))) )) && (parenthesized_expression "((*(int *)(iVar6 + 0x10) == 0 && (*(int *)(DAT_001d0400 + 0x20) != iVar6)))" ( (parenthesized_expression "(*(int *)(iVar6 + 0x10) == 0 && (*(int *)(DAT_001d0400 + 0x20) != iVar6))" ( (binary_expression "*(int *)(iVar6 + 0x10) == 0 && (*(int *)(DAT_001d0400 + 0x20) != iVar6)" (binary_expression "*(int *)(iVar6 + 0x10) == 0" (pointer_expression "*(int *)(iVar6 + 0x10)" * (cast_expression "(int *)(iVar6 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x10)" ( (binary_expression "iVar6 + 0x10" identifier + number_literal) )))) == number_literal) && (parenthesized_expression "(*(int *)(DAT_001d0400 + 0x20) != iVar6)" ( (binary_expression "*(int *)(DAT_001d0400 + 0x20) != iVar6" (pointer_expression "*(int *)(DAT_001d0400 + 0x20)" * (cast_expression "(int *)(DAT_001d0400 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_001d0400 + 0x20)" ( (binary_expression "DAT_001d0400 + 0x20" identifier + number_literal) )))) != identifier) ))) )) ))) )) (compound_statement "{\n                    puVar18[5] = puVar18[5] | 0x8000;\n                  }" { (expression_statement "puVar18[5] = puVar18[5] | 0x8000;" (assignment_expression "puVar18[5] = puVar18[5] | 0x8000" (subscript_expression "puVar18[5]" identifier [ number_literal ]) = (binary_expression "puVar18[5] | 0x8000" (subscript_expression "puVar18[5]" identifier [ number_literal ]) | number_literal)) ;) })) (expression_statement "piVar20 = piVar20 + 1;" (assignment_expression "piVar20 = piVar20 + 1" identifier = (binary_expression "piVar20 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(piVar1 != piVar20)" ( (binary_expression "piVar1 != piVar20" identifier != identifier) )) ;) })) })) })) (expression_statement "local_4c = *(int *)(local_4c + 0x18);" (assignment_expression "local_4c = *(int *)(local_4c + 0x18)" identifier = (pointer_expression "*(int *)(local_4c + 0x18)" * (cast_expression "(int *)(local_4c + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_4c + 0x18)" ( (binary_expression "local_4c + 0x18" identifier + number_literal) ))))) ;) }) while (parenthesized_expression "(local_4c != 0)" ( (binary_expression "local_4c != 0" identifier != number_literal) )) ;) })) })) })) (return_statement "return;" return ;) })) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Unknown calling convention -- yet parameter storage is locked */\n\nvoid gld_i386pe_after_open(void)\n\n{\n  anon_union_4_2_31908b46_for_link *paVar1;\n  bfd_symbol **ppbVar2;\n  pe_tdata *ppVar3;\n  undefined4 *puVar4;\n  uint uVar5;\n  byte bVar6;\n  char cVar7;\n  char cVar8;\n  byte bVar9;\n  bfd_boolean bVar10;\n  asection *paVar11;\n  bfd *pbVar12;\n  undefined4 *__ptr;\n  undefined4 *puVar13;\n  size_t sVar14;\n  char *pcVar15;\n  char *pcVar16;\n  bfd_section *pbVar17;\n  bfd_link_hash_entry *pbVar18;\n  bfd_link_hash_entry *sym;\n  int iVar19;\n  int iVar20;\n  bool bVar21;\n  bfd_section *pbVar22;\n  lang_statement_union *plVar23;\n  internal_extra_pe_aouthdr *piVar24;\n  undefined4 *puVar25;\n  lang_statement_union *plVar26;\n  byte *pbVar27;\n  bfd_symbol **ppbVar28;\n  internal_extra_pe_aouthdr *piVar29;\n  byte *pbVar30;\n  wildcard_list *pwVar31;\n  bool bVar32;\n  bool bVar33;\n  bool bVar34;\n  byte bVar35;\n  lang_statement_union *local_50;\n  lang_statement_union *local_4c;\n  lang_statement_union *local_40;\n  bfd_section *local_38;\n  int found_debug;\n  undefined4 uStack_14;\n  \n  bVar35 = 0;\n  uStack_14 = 0x56659;\n  after_open_default();\n  if (pe_dll_extra_pe_debug == 0) {\nLAB_00056682:\n    pbVar12 = link_info.input_bfds;\n    if (emit_build_id != (char *)0x0) {\n      for (; pbVar12 != (bfd *)0x0; pbVar12 = (pbVar12->link).next) {\n        if (pbVar12->xvec->flavour == bfd_target_coff_flavour) {\n          bVar10 = validate_build_id_style(emit_build_id);\n          if (bVar10 == 0) {\n            pcVar16 = "%P: warning: unrecognized --build-id style ignored\n";\n          }\n          else {\n            paVar11 = (asection *)\n                      bfd_make_section_anyway_with_flags\n                                (pbVar12,".buildid",\n                                 "*/\n  .debug_aranges  0 : { *(.debug_aranges) }\n  .debug_pubnames 0 : { *(.debug_pubnames) }\n  /* DWARF 2 */\n  .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }\n  .debug_abbrev   0 : { *(.debug_abbrev) }\n  .debug_line     0 : { *(.debug_line .debug_line.* .debug_line_end ) }\n  .debug_frame    0 : { *(.debug_frame) }\n  .debug_str      0 : { *(.debug_str) }\n  .debug_loc      0 : { *(.debug_loc) }\n  .debug_macinfo  0 : { *(.debug_macinfo) }\n  /* SGI/MIPS DWARF 2 extensions */\n  .debug_weaknames 0 : { *(.debug_weaknames) }\n  .debug_funcnames 0 : { *(.debug_funcnames) }\n  .debug_typenames 0 : { *(.debug_typenames) }\n  .debug_varnames  0 : { *(.debug_varnames) }\n  /* DWARF 3 */\n  .debug_pubtypes 0 : { *(.debug_pubtypes) }\n  .debug_ranges   0 : { *(.debug_ranges) }\n  /* DWARF Extension.  */\n  .debug_macro    0 : { *(.debug_macro) }\n  .debug_addr     0 : { *(.debug_addr) }\n  .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) }\n  /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) }\n}\n\n"\n                                );\n            pbVar12 = link_info.output_bfd;\n            if (paVar11 != (asection *)0x0) {\n              ppVar3 = ((link_info.output_bfd)->tdata).pe_obj_data;\n              (ppVar3->build_id).after_write_object_contents = write_build_id;\n              pcVar16 = emit_build_id;\n              iVar19 = (ppVar3->coff).pe;\n              (ppVar3->build_id).sec = paVar11;\n              (ppVar3->build_id).style = pcVar16;\n              *(undefined4 *)&paVar11->size = 0x35;\n              *(undefined4 *)((int)&paVar11->size + 4) = 0;\n              goto joined_r0x00056729;\n            }\n            pcVar16 = "%P: warning: cannot create .buildid section, --build-id ignored\n";\n          }\n          pcVar16 = (char *)dcgettext(0,pcVar16,5);\n          einfo(pcVar16);\n          break;\n        }\n      }\nLAB_00056a59:\n      free(emit_build_id);\n      emit_build_id = (char *)0x0;\n    }\n  }\n  else {\n    printf("%s()\n","gld_i386pe_after_open");\n    for (pbVar18 = (link_info.hash)->undefs; pbVar18 != (bfd_link_hash_entry *)0x0;\n        pbVar18 = (pbVar18->u).undef.next) {\n      printf("-%s\n",(pbVar18->root).string);\n    }\n    bfd_hash_traverse(link_info.hash,pr_sym,0);\n    pbVar12 = link_info.input_bfds;\n    if (link_info.input_bfds != (bfd *)0x0) {\n      do {\n        printf("*%s\n",pbVar12->filename);\n        paVar1 = &pbVar12->link;\n        pbVar12 = paVar1->next;\n      } while (paVar1->next != (bfd *)0x0);\n      goto LAB_00056682;\n    }\n    if (emit_build_id != (char *)0x0) goto LAB_00056a59;\n  }\n  pbVar12 = link_info.output_bfd;\n  if (((link_info.output_bfd)->tdata).coff_obj_data != (coff_tdata *)0x0) {\n    iVar19 = (((link_info.output_bfd)->tdata).coff_obj_data)->pe;\njoined_r0x00056729:\n    if (iVar19 != 0) goto LAB_00056730;\n  }\n  pcVar16 = (char *)dcgettext(0,"%F%P: cannot perform PE operations on non PE output file \'%pB\'\n"\n                              ,5);\n  einfo(pcVar16,pbVar12);\nLAB_00056730:\n  pbVar12 = link_info.output_bfd;\n  ppVar3 = ((link_info.output_bfd)->tdata).pe_obj_data;\n  piVar24 = &pe;\n  piVar29 = &ppVar3->pe_opthdr;\n  for (iVar19 = 0x52; iVar19 != 0; iVar19 = iVar19 + -1) {\n    cVar7 = piVar24->MajorLinkerVersion;\n    cVar8 = piVar24->MinorLinkerVersion;\n    piVar29->Magic = piVar24->Magic;\n    piVar29->MajorLinkerVersion = cVar7;\n    piVar29->MinorLinkerVersion = cVar8;\n    piVar24 = (internal_extra_pe_aouthdr *)((int)piVar24 + ((uint)bVar35 * -2 + 1) * 4);\n    piVar29 = (internal_extra_pe_aouthdr *)((int)piVar29 + (uint)bVar35 * -8 + 4);\n  }\n  ppVar3->dll = init[1].value;\n  ppVar3->real_flags = ppVar3->real_flags | real_flags;\n  ppVar3->insert_timestamp = insert_timestamp;\n  if ((pe_use_coff_long_section_names < 0) && ((link_info._1_1_ & 0x60) == 0)) {\n    if ((link_info._0_1_ & 3) == 2) {\n      pe_use_coff_long_section_names = 1;\n    }\n    else if (file_chain.head != (lang_statement_union *)0x0) {\n      plVar26 = file_chain.head;\n      do {\n        found_debug = 0;\n        bfd_map_over_sections((plVar26->wild_statement).section_list,debug_section_p,&found_debug);\n        pbVar12 = link_info.output_bfd;\n        if (found_debug != 0) {\n          pe_use_coff_long_section_names = 1;\n          break;\n        }\n        plVar26 = (plVar26->wild_statement).children.head;\n      } while (plVar26 != (lang_statement_union *)0x0);\n    }\n  }\n  pe_output_file_set_long_section_names(pbVar12);\n  pe_process_import_defs(link_info.output_bfd,&link_info);\n  if (link_info.pei386_auto_import != 0) {\n    iVar19 = is_underscoring();\n    pcVar16 = "_head_";\n    if (iVar19 != 0) {\n      pcVar16 = "__head_";\n    }\n    pe_find_data_imports(pcVar16,make_import_fixup);\n  }\n  if (pe_enable_stdcall_fixup != 0) {\n    if (pe_dll_extra_pe_debug != 0) {\n      puts("pe_fixup_stdcalls");\n    }\n    for (pbVar18 = (link_info.hash)->undefs; pbVar18 != (bfd_link_hash_entry *)0x0;\n        pbVar18 = (pbVar18->u).undef.next) {\n      if (pbVar18->field_0xc == '\x01') {\n        pcVar16 = (pbVar18->root).string;\n        if (*pcVar16 == '@') {\n          pcVar15 = strchr(pcVar16 + 1,0x40);\n          pcVar16 = (char *)xstrdup(pcVar16);\n          *pcVar16 = '_';\n          if (pcVar15 != (char *)0x0) goto LAB_00057061;\n        }\n        else {\n          pcVar15 = strchr(pcVar16,0x40);\n          if (pcVar15 == (char *)0x0) {\n            pe_undef_found_sym = (bfd_link_hash_entry *)0x0;\n            bfd_link_hash_traverse(link_info.hash,pe_undef_cdecl_match,pcVar16);\n            if (pe_undef_found_sym != (bfd_link_hash_entry *)0x0) {\n              change_undef(pbVar18,pe_undef_found_sym);\n            }\n            goto LAB_00056fa8;\n          }\n          pcVar16 = (char *)xstrdup(pcVar16);\nLAB_00057061:\n          pcVar15 = strchr(pcVar16,0x40);\n          *pcVar15 = '\0';\n        }\n        sym = (bfd_link_hash_entry *)bfd_link_hash_lookup(link_info.hash,pcVar16,0,0,1);\n        if ((sym != (bfd_link_hash_entry *)0x0) && (sym->field_0xc == '\x03')) {\n          change_undef(pbVar18,sym);\n        }\n      }\nLAB_00056fa8:\n    }\n  }\n  if ((link_info._0_1_ & 3) != 2) {\n    pe_dll_build_sections(link_info.output_bfd,&link_info);\n  }\n  local_40 = file_chain.head;\n  if (file_chain.head != (lang_statement_union *)0x0) {\n    do {\n      pbVar12 = (local_40->input_statement).the_bfd;\n      if ((pbVar12->my_archive != (bfd *)0x0) &&\n         (local_38 = pbVar12->sections, local_38 != (bfd_section *)0x0)) {\n        iVar19 = 0;\n        bVar34 = true;\n        pbVar17 = local_38;\n        bVar6 = 0;\n        bVar21 = false;\n        do {\n          bVar32 = false;\n          iVar20 = 9;\n          pbVar27 = (byte *)pbVar17->name;\n          pbVar30 = (byte *)".idata$2";\n          do {\n            if (iVar20 == 0) break;\n            iVar20 = iVar20 + -1;\n            bVar32 = *pbVar27 < *pbVar30;\n            bVar34 = *pbVar27 == *pbVar30;\n            pbVar27 = pbVar27 + (uint)bVar35 * -2 + 1;\n            pbVar30 = pbVar30 + (uint)bVar35 * -2 + 1;\n          } while (bVar34);\n          bVar33 = false;\n          bVar34 = (!bVar32 && !bVar34) == bVar32;\n          bVar32 = true;\n          if (!bVar34) {\n            bVar32 = bVar21;\n          }\n          iVar20 = 7;\n          pbVar27 = (byte *)pbVar17->name;\n          pbVar30 = (byte *)".idata$";\n          do {\n            if (iVar20 == 0) break;\n            iVar20 = iVar20 + -1;\n            bVar33 = *pbVar27 < *pbVar30;\n            bVar34 = *pbVar27 == *pbVar30;\n            pbVar27 = pbVar27 + (uint)bVar35 * -2 + 1;\n            pbVar30 = pbVar30 + (uint)bVar35 * -2 + 1;\n          } while (bVar34);\n          bVar9 = 1;\n          if ((!bVar33 && !bVar34) != bVar33) {\n            bVar9 = bVar6;\n          }\n          iVar19 = iVar19 + pbVar17->reloc_count;\n          pbVar17 = pbVar17->next;\n          bVar34 = pbVar17 == (bfd_section *)0x0;\n          bVar6 = bVar9;\n          bVar21 = bVar32;\n        } while (!bVar34);\n        if (((bool)(bVar9 & iVar19 != 0)) && (!bVar32)) {\n          while (iVar19 = bfd_get_reloc_upper_bound(pbVar12,local_38), 0 < iVar19) {\n            iVar20 = bfd_generic_link_read_symbols((local_40->wild_statement).section_list);\n            local_4c = local_40;\n            if (iVar20 == 0) goto LAB_000570af;\n            ppbVar28 = ((local_40->input_statement).the_bfd)->outsymbols;\n            __ptr = (undefined4 *)xmalloc(iVar19);\n            iVar19 = bfd_canonicalize_reloc\n                               ((local_40->wild_statement).section_list,local_38,__ptr,ppbVar28);\n            if (iVar19 < 0) {\n              free(__ptr);\n              pcVar16 = (char *)dcgettext(0,"%X%P: unable to process relocs: %E\n",5);\n              einfo(pcVar16);\n              return;\n            }\n            puVar25 = __ptr;\n            if (iVar19 != 0) {\n              do {\n                if ((((*(byte *)(**(int **)*puVar25 + 0x10) & 1) == 0) &&\n                    (iVar20 = bfd_link_hash_lookup\n                                        (link_info.hash,*(undefined4 *)(**(int **)*puVar25 + 4),0,0,\n                                         1), iVar20 != 0)) && (*(char *)(iVar20 + 0xc) == '\x03')) {\n                  puVar4 = *(undefined4 **)(*(int *)(iVar20 + 0x14) + 0xac);\n                  puVar13 = (undefined4 *)puVar4[0x23];\n                  if (puVar13 == (undefined4 *)0x0) {\n                    puVar13 = puVar4;\n                  }\n                  pcVar16 = (char *)*puVar13;\n                  iVar20 = filename_cmp(((local_40->input_statement).the_bfd)->my_archive->filename,\n                                        pcVar16);\n                  if (iVar20 != 0) {\n                    sVar14 = strlen(pcVar16);\n                    pcVar15 = (char *)xmalloc(sVar14 + 1);\n                    strcpy(pcVar15,pcVar16);\n                    ((local_40->input_statement).the_bfd)->my_archive->filename = pcVar15;\n                  }\n                }\n                puVar25 = puVar25 + 1;\n              } while (__ptr + iVar19 != puVar25);\n            }\n            free(__ptr);\n            local_38 = local_38->next;\n            if (local_38 == (bfd_section *)0x0) break;\n            pbVar12 = (bfd *)(local_40->wild_statement).section_list;\n          }\n        }\n      }\n      local_40 = (local_40->wild_statement).children.head;\n    } while (local_40 != (lang_statement_union *)0x0);\n    local_50 = file_chain.head;\n    if (file_chain.head != (lang_statement_union *)0x0) {\n      bVar21 = false;\n      local_40 = (lang_statement_union *)0x0;\n      do {\n        uVar5 = ((local_50->reloc_statement).section)->lineno_count;\n        if (uVar5 != 0) {\n          pcVar16 = strrchr(((local_50->reloc_statement).section)->name,0x2e);\n          plVar26 = local_50;\n          if ((lang_statement_union *)uVar5 == local_40) {\n            if (!bVar21) goto LAB_00056b08;\n          }\n          else {\n            while ((plVar23 = local_50, local_40 = (lang_statement_union *)uVar5,\n                   pcVar16 == (char *)0x0 || (iVar19 = filename_cmp(pcVar16,".dll"), iVar19 != 0)))\n            {\n              plVar26 = (lang_statement_union *)(plVar26->data_statement).output_section;\n              if (plVar26 == (lang_statement_union *)0x0) {\n                local_50 = (local_50->wild_statement).children.head;\n                bVar21 = false;\n                goto joined_r0x00056b15;\n              }\n              if (uVar5 != ((plVar26->reloc_statement).section)->lineno_count) break;\n              pcVar16 = strrchr(((plVar26->reloc_statement).section)->name,0x2e);\n            }\n            do {\n              if (uVar5 != ((plVar23->reloc_statement).section)->lineno_count) break;\n              pwVar31 = (wildcard_list *)((plVar23->reloc_statement).section)->name;\n              pcVar16 = strrchr((char *)pwVar31,0x2e);\n              if (pcVar16 == (char *)0x0) {\nLAB_00056d20:\n                iVar19 = filename_cmp(((plVar26->wild_statement).section_list)->next,pwVar31);\n                if (iVar19 != 0) {\n                  bVar21 = false;\n                  goto LAB_00056b08;\n                }\n              }\n              else {\n                iVar19 = filename_cmp(pcVar16,&DAT_00192ed1);\n                if (iVar19 != 0) {\n                  pwVar31 = ((plVar23->wild_statement).section_list)->next;\n                  goto LAB_00056d20;\n                }\n              }\n              plVar23 = (plVar23->wild_statement).children.head;\n            } while (plVar23 != (lang_statement_union *)0x0);\n            pcVar16 = strrchr(((local_50->reloc_statement).section)->name,0x2e);\n          }\n          bVar21 = true;\n          iVar19 = filename_cmp(pcVar16,".dll");\n          if (iVar19 == 0) {\n            pbVar17 = ((local_50->input_statement).the_bfd)->sections;\n            if (pbVar17 == (bfd_section *)0x0) {\n              iVar19 = 99;\n            }\n            else {\n              iVar20 = 0;\n              bVar34 = true;\n              bVar21 = false;\n              do {\n                bVar32 = false;\n                iVar19 = 9;\n                pbVar27 = (byte *)pbVar17->name;\n                pbVar30 = (byte *)".idata$2";\n                do {\n                  if (iVar19 == 0) break;\n                  iVar19 = iVar19 + -1;\n                  bVar32 = *pbVar27 < *pbVar30;\n                  bVar34 = *pbVar27 == *pbVar30;\n                  pbVar27 = pbVar27 + (uint)bVar35 * -2 + 1;\n                  pbVar30 = pbVar30 + (uint)bVar35 * -2 + 1;\n                } while (bVar34);\n                if ((!bVar32 && !bVar34) == bVar32) {\n                  bVar21 = true;\n                }\n                iVar20 = iVar20 + pbVar17->reloc_count;\n                pbVar17 = pbVar17->next;\n                bVar34 = pbVar17 == (bfd_section *)0x0;\n              } while (!bVar34);\n              iVar19 = 0x61;\n              if (!bVar21) {\n                iVar19 = (iVar20 < 1) + 0x62;\n              }\n            }\n            sVar14 = strlen(((local_50->input_statement).the_bfd)->filename);\n            pcVar16 = (char *)xmalloc(sVar14 + 3);\n            sprintf(pcVar16,"%s.%c",((local_50->wild_statement).section_list)->next,iVar19);\n            ((local_50->reloc_statement).section)->name = pcVar16;\n            sVar14 = strlen((local_50->wild_statement).filename);\n            pcVar16 = (char *)xmalloc(sVar14 + 3);\n            sprintf(pcVar16,"%s.%c",(local_50->wild_statement).filename,iVar19);\n            (local_50->wild_statement).filename = pcVar16;\n            bVar21 = true;\n          }\n        }\nLAB_00056b08:\n        local_50 = (local_50->wild_statement).children.head;\njoined_r0x00056b15:\n      } while (local_50 != (lang_statement_union *)0x0);\n      local_4c = file_chain.head;\n      if (file_chain.head != (lang_statement_union *)0x0) {\n        do {\n          pbVar12 = (local_4c->input_statement).the_bfd;\n          if ((pbVar12->my_archive != (bfd *)0x0) &&\n             (pbVar17 = pbVar12->sections, pbVar17 != (bfd_section *)0x0)) {\n            pbVar22 = (bfd_section *)0x0;\n            bVar21 = false;\n            bVar34 = true;\n            do {\n              bVar32 = false;\n              iVar19 = 7;\n              pbVar27 = (byte *)pbVar17->name;\n              pbVar30 = (byte *)".idata$";\n              do {\n                if (iVar19 == 0) break;\n                iVar19 = iVar19 + -1;\n                bVar32 = *pbVar27 < *pbVar30;\n                bVar34 = *pbVar27 == *pbVar30;\n                pbVar27 = pbVar27 + (uint)bVar35 * -2 + 1;\n                pbVar30 = pbVar30 + (uint)bVar35 * -2 + 1;\n              } while (bVar34);\n              if ((!bVar32 && !bVar34) == bVar32) {\n                bVar21 = true;\n              }\n              if (((pbVar17->flags & 0x10) != 0) && (pbVar17->reloc_count != 0)) {\n                pbVar22 = pbVar17;\n              }\n              pbVar17 = pbVar17->next;\n              bVar34 = pbVar17 == (bfd_section *)0x0;\n            } while (!bVar34);\n            if ((pbVar22 != (bfd_section *)0x0) && (bVar21)) {\n              iVar19 = bfd_generic_link_read_symbols(pbVar12);\n              if (iVar19 == 0) {\nLAB_000570af:\n                pwVar31 = (local_4c->wild_statement).section_list;\n                pcVar16 = (char *)dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n                einfo(pcVar16,pwVar31);\n                return;\n              }\n              ppbVar28 = ((local_4c->input_statement).the_bfd)->outsymbols;\n              uVar5 = ((local_4c->input_statement).the_bfd)->symcount;\n              if (0 < (int)uVar5) {\n                ppbVar2 = ppbVar28 + uVar5;\n                do {\n                  if (((((*ppbVar28)->section->id == pbVar22->id) &&\n                       (pbVar18 = (bfd_link_hash_entry *)\n                                  bfd_link_hash_lookup(link_info.hash,(*ppbVar28)->name,0,0,1),\n                       pbVar18 != (bfd_link_hash_entry *)0x0)) && (pbVar18->field_0xc == '\x03')) &&\n                     (((pbVar18->u).undef.next == (bfd_link_hash_entry *)0x0 &&\n                      ((link_info.hash)->undefs_tail != pbVar18)))) {\n                    pbVar22->flags = pbVar22->flags | 0x8000;\n                  }\n                  ppbVar28 = ppbVar28 + 1;\n                } while (ppbVar2 != ppbVar28);\n              }\n            }\n          }\n          local_4c = (local_4c->wild_statement).children.head;\n        } while (local_4c != (lang_statement_union *)0x0);\n      }\n    }\n  }\n  return;\n}\n\n" comment comment (function_definition "void gld_i386pe_after_open(void)\n\n{\n  anon_union_4_2_31908b46_for_link *paVar1;\n  bfd_symbol **ppbVar2;\n  pe_tdata *ppVar3;\n  undefined4 *puVar4;\n  uint uVar5;\n  byte bVar6;\n  char cVar7;\n  char cVar8;\n  byte bVar9;\n  bfd_boolean bVar10;\n  asection *paVar11;\n  bfd *pbVar12;\n  undefined4 *__ptr;\n  undefined4 *puVar13;\n  size_t sVar14;\n  char *pcVar15;\n  char *pcVar16;\n  bfd_section *pbVar17;\n  bfd_link_hash_entry *pbVar18;\n  bfd_link_hash_entry *sym;\n  int iVar19;\n  int iVar20;\n  bool bVar21;\n  bfd_section *pbVar22;\n  lang_statement_union *plVar23;\n  internal_extra_pe_aouthdr *piVar24;\n  undefined4 *puVar25;\n  lang_statement_union *plVar26;\n  byte *pbVar27;\n  bfd_symbol **ppbVar28;\n  internal_extra_pe_aouthdr *piVar29;\n  byte *pbVar30;\n  wildcard_list *pwVar31;\n  bool bVar32;\n  bool bVar33;\n  bool bVar34;\n  byte bVar35;\n  lang_statement_union *local_50;\n  lang_statement_union *local_4c;\n  lang_statement_union *local_40;\n  bfd_section *local_38;\n  int found_debug;\n  undefined4 uStack_14;\n  \n  bVar35 = 0;\n  uStack_14 = 0x56659;\n  after_open_default();\n  if (pe_dll_extra_pe_debug == 0) {\nLAB_00056682:\n    pbVar12 = link_info.input_bfds;\n    if (emit_build_id != (char *)0x0) {\n      for (; pbVar12 != (bfd *)0x0; pbVar12 = (pbVar12->link).next) {\n        if (pbVar12->xvec->flavour == bfd_target_coff_flavour) {\n          bVar10 = validate_build_id_style(emit_build_id);\n          if (bVar10 == 0) {\n            pcVar16 = "%P: warning: unrecognized --build-id style ignored\n";\n          }\n          else {\n            paVar11 = (asection *)\n                      bfd_make_section_anyway_with_flags\n                                (pbVar12,".buildid",\n                                 "*/\n  .debug_aranges  0 : { *(.debug_aranges) }\n  .debug_pubnames 0 : { *(.debug_pubnames) }\n  /* DWARF 2 */\n  .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }\n  .debug_abbrev   0 : { *(.debug_abbrev) }\n  .debug_line     0 : { *(.debug_line .debug_line.* .debug_line_end ) }\n  .debug_frame    0 : { *(.debug_frame) }\n  .debug_str      0 : { *(.debug_str) }\n  .debug_loc      0 : { *(.debug_loc) }\n  .debug_macinfo  0 : { *(.debug_macinfo) }\n  /* SGI/MIPS DWARF 2 extensions */\n  .debug_weaknames 0 : { *(.debug_weaknames) }\n  .debug_funcnames 0 : { *(.debug_funcnames) }\n  .debug_typenames 0 : { *(.debug_typenames) }\n  .debug_varnames  0 : { *(.debug_varnames) }\n  /* DWARF 3 */\n  .debug_pubtypes 0 : { *(.debug_pubtypes) }\n  .debug_ranges   0 : { *(.debug_ranges) }\n  /* DWARF Extension.  */\n  .debug_macro    0 : { *(.debug_macro) }\n  .debug_addr     0 : { *(.debug_addr) }\n  .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) }\n  /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) }\n}\n\n"\n                                );\n            pbVar12 = link_info.output_bfd;\n            if (paVar11 != (asection *)0x0) {\n              ppVar3 = ((link_info.output_bfd)->tdata).pe_obj_data;\n              (ppVar3->build_id).after_write_object_contents = write_build_id;\n              pcVar16 = emit_build_id;\n              iVar19 = (ppVar3->coff).pe;\n              (ppVar3->build_id).sec = paVar11;\n              (ppVar3->build_id).style = pcVar16;\n              *(undefined4 *)&paVar11->size = 0x35;\n              *(undefined4 *)((int)&paVar11->size + 4) = 0;\n              goto joined_r0x00056729;\n            }\n            pcVar16 = "%P: warning: cannot create .buildid section, --build-id ignored\n";\n          }\n          pcVar16 = (char *)dcgettext(0,pcVar16,5);\n          einfo(pcVar16);\n          break;\n        }\n      }\nLAB_00056a59:\n      free(emit_build_id);\n      emit_build_id = (char *)0x0;\n    }\n  }\n  else {\n    printf("%s()\n","gld_i386pe_after_open");\n    for (pbVar18 = (link_info.hash)->undefs; pbVar18 != (bfd_link_hash_entry *)0x0;\n        pbVar18 = (pbVar18->u).undef.next) {\n      printf("-%s\n",(pbVar18->root).string);\n    }\n    bfd_hash_traverse(link_info.hash,pr_sym,0);\n    pbVar12 = link_info.input_bfds;\n    if (link_info.input_bfds != (bfd *)0x0) {\n      do {\n        printf("*%s\n",pbVar12->filename);\n        paVar1 = &pbVar12->link;\n        pbVar12 = paVar1->next;\n      } while (paVar1->next != (bfd *)0x0);\n      goto LAB_00056682;\n    }\n    if (emit_build_id != (char *)0x0) goto LAB_00056a59;\n  }\n  pbVar12 = link_info.output_bfd;\n  if (((link_info.output_bfd)->tdata).coff_obj_data != (coff_tdata *)0x0) {\n    iVar19 = (((link_info.output_bfd)->tdata).coff_obj_data)->pe;\njoined_r0x00056729:\n    if (iVar19 != 0) goto LAB_00056730;\n  }\n  pcVar16 = (char *)dcgettext(0,"%F%P: cannot perform PE operations on non PE output file \'%pB\'\n"\n                              ,5);\n  einfo(pcVar16,pbVar12);\nLAB_00056730:\n  pbVar12 = link_info.output_bfd;\n  ppVar3 = ((link_info.output_bfd)->tdata).pe_obj_data;\n  piVar24 = &pe;\n  piVar29 = &ppVar3->pe_opthdr;\n  for (iVar19 = 0x52; iVar19 != 0; iVar19 = iVar19 + -1) {\n    cVar7 = piVar24->MajorLinkerVersion;\n    cVar8 = piVar24->MinorLinkerVersion;\n    piVar29->Magic = piVar24->Magic;\n    piVar29->MajorLinkerVersion = cVar7;\n    piVar29->MinorLinkerVersion = cVar8;\n    piVar24 = (internal_extra_pe_aouthdr *)((int)piVar24 + ((uint)bVar35 * -2 + 1) * 4);\n    piVar29 = (internal_extra_pe_aouthdr *)((int)piVar29 + (uint)bVar35 * -8 + 4);\n  }\n  ppVar3->dll = init[1].value;\n  ppVar3->real_flags = ppVar3->real_flags | real_flags;\n  ppVar3->insert_timestamp = insert_timestamp;\n  if ((pe_use_coff_long_section_names < 0) && ((link_info._1_1_ & 0x60) == 0)) {\n    if ((link_info._0_1_ & 3) == 2) {\n      pe_use_coff_long_section_names = 1;\n    }\n    else if (file_chain.head != (lang_statement_union *)0x0) {\n      plVar26 = file_chain.head;\n      do {\n        found_debug = 0;\n        bfd_map_over_sections((plVar26->wild_statement).section_list,debug_section_p,&found_debug);\n        pbVar12 = link_info.output_bfd;\n        if (found_debug != 0) {\n          pe_use_coff_long_section_names = 1;\n          break;\n        }\n        plVar26 = (plVar26->wild_statement).children.head;\n      } while (plVar26 != (lang_statement_union *)0x0);\n    }\n  }\n  pe_output_file_set_long_section_names(pbVar12);\n  pe_process_import_defs(link_info.output_bfd,&link_info);\n  if (link_info.pei386_auto_import != 0) {\n    iVar19 = is_underscoring();\n    pcVar16 = "_head_";\n    if (iVar19 != 0) {\n      pcVar16 = "__head_";\n    }\n    pe_find_data_imports(pcVar16,make_import_fixup);\n  }\n  if (pe_enable_stdcall_fixup != 0) {\n    if (pe_dll_extra_pe_debug != 0) {\n      puts("pe_fixup_stdcalls");\n    }\n    for (pbVar18 = (link_info.hash)->undefs; pbVar18 != (bfd_link_hash_entry *)0x0;\n        pbVar18 = (pbVar18->u).undef.next) {\n      if (pbVar18->field_0xc == '\x01') {\n        pcVar16 = (pbVar18->root).string;\n        if (*pcVar16 == '@') {\n          pcVar15 = strchr(pcVar16 + 1,0x40);\n          pcVar16 = (char *)xstrdup(pcVar16);\n          *pcVar16 = '_';\n          if (pcVar15 != (char *)0x0) goto LAB_00057061;\n        }\n        else {\n          pcVar15 = strchr(pcVar16,0x40);\n          if (pcVar15 == (char *)0x0) {\n            pe_undef_found_sym = (bfd_link_hash_entry *)0x0;\n            bfd_link_hash_traverse(link_info.hash,pe_undef_cdecl_match,pcVar16);\n            if (pe_undef_found_sym != (bfd_link_hash_entry *)0x0) {\n              change_undef(pbVar18,pe_undef_found_sym);\n            }\n            goto LAB_00056fa8;\n          }\n          pcVar16 = (char *)xstrdup(pcVar16);\nLAB_00057061:\n          pcVar15 = strchr(pcVar16,0x40);\n          *pcVar15 = '\0';\n        }\n        sym = (bfd_link_hash_entry *)bfd_link_hash_lookup(link_info.hash,pcVar16,0,0,1);\n        if ((sym != (bfd_link_hash_entry *)0x0) && (sym->field_0xc == '\x03')) {\n          change_undef(pbVar18,sym);\n        }\n      }\nLAB_00056fa8:\n    }\n  }\n  if ((link_info._0_1_ & 3) != 2) {\n    pe_dll_build_sections(link_info.output_bfd,&link_info);\n  }\n  local_40 = file_chain.head;\n  if (file_chain.head != (lang_statement_union *)0x0) {\n    do {\n      pbVar12 = (local_40->input_statement).the_bfd;\n      if ((pbVar12->my_archive != (bfd *)0x0) &&\n         (local_38 = pbVar12->sections, local_38 != (bfd_section *)0x0)) {\n        iVar19 = 0;\n        bVar34 = true;\n        pbVar17 = local_38;\n        bVar6 = 0;\n        bVar21 = false;\n        do {\n          bVar32 = false;\n          iVar20 = 9;\n          pbVar27 = (byte *)pbVar17->name;\n          pbVar30 = (byte *)".idata$2";\n          do {\n            if (iVar20 == 0) break;\n            iVar20 = iVar20 + -1;\n            bVar32 = *pbVar27 < *pbVar30;\n            bVar34 = *pbVar27 == *pbVar30;\n            pbVar27 = pbVar27 + (uint)bVar35 * -2 + 1;\n            pbVar30 = pbVar30 + (uint)bVar35 * -2 + 1;\n          } while (bVar34);\n          bVar33 = false;\n          bVar34 = (!bVar32 && !bVar34) == bVar32;\n          bVar32 = true;\n          if (!bVar34) {\n            bVar32 = bVar21;\n          }\n          iVar20 = 7;\n          pbVar27 = (byte *)pbVar17->name;\n          pbVar30 = (byte *)".idata$";\n          do {\n            if (iVar20 == 0) break;\n            iVar20 = iVar20 + -1;\n            bVar33 = *pbVar27 < *pbVar30;\n            bVar34 = *pbVar27 == *pbVar30;\n            pbVar27 = pbVar27 + (uint)bVar35 * -2 + 1;\n            pbVar30 = pbVar30 + (uint)bVar35 * -2 + 1;\n          } while (bVar34);\n          bVar9 = 1;\n          if ((!bVar33 && !bVar34) != bVar33) {\n            bVar9 = bVar6;\n          }\n          iVar19 = iVar19 + pbVar17->reloc_count;\n          pbVar17 = pbVar17->next;\n          bVar34 = pbVar17 == (bfd_section *)0x0;\n          bVar6 = bVar9;\n          bVar21 = bVar32;\n        } while (!bVar34);\n        if (((bool)(bVar9 & iVar19 != 0)) && (!bVar32)) {\n          while (iVar19 = bfd_get_reloc_upper_bound(pbVar12,local_38), 0 < iVar19) {\n            iVar20 = bfd_generic_link_read_symbols((local_40->wild_statement).section_list);\n            local_4c = local_40;\n            if (iVar20 == 0) goto LAB_000570af;\n            ppbVar28 = ((local_40->input_statement).the_bfd)->outsymbols;\n            __ptr = (undefined4 *)xmalloc(iVar19);\n            iVar19 = bfd_canonicalize_reloc\n                               ((local_40->wild_statement).section_list,local_38,__ptr,ppbVar28);\n            if (iVar19 < 0) {\n              free(__ptr);\n              pcVar16 = (char *)dcgettext(0,"%X%P: unable to process relocs: %E\n",5);\n              einfo(pcVar16);\n              return;\n            }\n            puVar25 = __ptr;\n            if (iVar19 != 0) {\n              do {\n                if ((((*(byte *)(**(int **)*puVar25 + 0x10) & 1) == 0) &&\n                    (iVar20 = bfd_link_hash_lookup\n                                        (link_info.hash,*(undefined4 *)(**(int **)*puVar25 + 4),0,0,\n                                         1), iVar20 != 0)) && (*(char *)(iVar20 + 0xc) == '\x03')) {\n                  puVar4 = *(undefined4 **)(*(int *)(iVar20 + 0x14) + 0xac);\n                  puVar13 = (undefined4 *)puVar4[0x23];\n                  if (puVar13 == (undefined4 *)0x0) {\n                    puVar13 = puVar4;\n                  }\n                  pcVar16 = (char *)*puVar13;\n                  iVar20 = filename_cmp(((local_40->input_statement).the_bfd)->my_archive->filename,\n                                        pcVar16);\n                  if (iVar20 != 0) {\n                    sVar14 = strlen(pcVar16);\n                    pcVar15 = (char *)xmalloc(sVar14 + 1);\n                    strcpy(pcVar15,pcVar16);\n                    ((local_40->input_statement).the_bfd)->my_archive->filename = pcVar15;\n                  }\n                }\n                puVar25 = puVar25 + 1;\n              } while (__ptr + iVar19 != puVar25);\n            }\n            free(__ptr);\n            local_38 = local_38->next;\n            if (local_38 == (bfd_section *)0x0) break;\n            pbVar12 = (bfd *)(local_40->wild_statement).section_list;\n          }\n        }\n      }\n      local_40 = (local_40->wild_statement).children.head;\n    } while (local_40 != (lang_statement_union *)0x0);\n    local_50 = file_chain.head;\n    if (file_chain.head != (lang_statement_union *)0x0) {\n      bVar21 = false;\n      local_40 = (lang_statement_union *)0x0;\n      do {\n        uVar5 = ((local_50->reloc_statement).section)->lineno_count;\n        if (uVar5 != 0) {\n          pcVar16 = strrchr(((local_50->reloc_statement).section)->name,0x2e);\n          plVar26 = local_50;\n          if ((lang_statement_union *)uVar5 == local_40) {\n            if (!bVar21) goto LAB_00056b08;\n          }\n          else {\n            while ((plVar23 = local_50, local_40 = (lang_statement_union *)uVar5,\n                   pcVar16 == (char *)0x0 || (iVar19 = filename_cmp(pcVar16,".dll"), iVar19 != 0)))\n            {\n              plVar26 = (lang_statement_union *)(plVar26->data_statement).output_section;\n              if (plVar26 == (lang_statement_union *)0x0) {\n                local_50 = (local_50->wild_statement).children.head;\n                bVar21 = false;\n                goto joined_r0x00056b15;\n              }\n              if (uVar5 != ((plVar26->reloc_statement).section)->lineno_count) break;\n              pcVar16 = strrchr(((plVar26->reloc_statement).section)->name,0x2e);\n            }\n            do {\n              if (uVar5 != ((plVar23->reloc_statement).section)->lineno_count) break;\n              pwVar31 = (wildcard_list *)((plVar23->reloc_statement).section)->name;\n              pcVar16 = strrchr((char *)pwVar31,0x2e);\n              if (pcVar16 == (char *)0x0) {\nLAB_00056d20:\n                iVar19 = filename_cmp(((plVar26->wild_statement).section_list)->next,pwVar31);\n                if (iVar19 != 0) {\n                  bVar21 = false;\n                  goto LAB_00056b08;\n                }\n              }\n              else {\n                iVar19 = filename_cmp(pcVar16,&DAT_00192ed1);\n                if (iVar19 != 0) {\n                  pwVar31 = ((plVar23->wild_statement).section_list)->next;\n                  goto LAB_00056d20;\n                }\n              }\n              plVar23 = (plVar23->wild_statement).children.head;\n            } while (plVar23 != (lang_statement_union *)0x0);\n            pcVar16 = strrchr(((local_50->reloc_statement).section)->name,0x2e);\n          }\n          bVar21 = true;\n          iVar19 = filename_cmp(pcVar16,".dll");\n          if (iVar19 == 0) {\n            pbVar17 = ((local_50->input_statement).the_bfd)->sections;\n            if (pbVar17 == (bfd_section *)0x0) {\n              iVar19 = 99;\n            }\n            else {\n              iVar20 = 0;\n              bVar34 = true;\n              bVar21 = false;\n              do {\n                bVar32 = false;\n                iVar19 = 9;\n                pbVar27 = (byte *)pbVar17->name;\n                pbVar30 = (byte *)".idata$2";\n                do {\n                  if (iVar19 == 0) break;\n                  iVar19 = iVar19 + -1;\n                  bVar32 = *pbVar27 < *pbVar30;\n                  bVar34 = *pbVar27 == *pbVar30;\n                  pbVar27 = pbVar27 + (uint)bVar35 * -2 + 1;\n                  pbVar30 = pbVar30 + (uint)bVar35 * -2 + 1;\n                } while (bVar34);\n                if ((!bVar32 && !bVar34) == bVar32) {\n                  bVar21 = true;\n                }\n                iVar20 = iVar20 + pbVar17->reloc_count;\n                pbVar17 = pbVar17->next;\n                bVar34 = pbVar17 == (bfd_section *)0x0;\n              } while (!bVar34);\n              iVar19 = 0x61;\n              if (!bVar21) {\n                iVar19 = (iVar20 < 1) + 0x62;\n              }\n            }\n            sVar14 = strlen(((local_50->input_statement).the_bfd)->filename);\n            pcVar16 = (char *)xmalloc(sVar14 + 3);\n            sprintf(pcVar16,"%s.%c",((local_50->wild_statement).section_list)->next,iVar19);\n            ((local_50->reloc_statement).section)->name = pcVar16;\n            sVar14 = strlen((local_50->wild_statement).filename);\n            pcVar16 = (char *)xmalloc(sVar14 + 3);\n            sprintf(pcVar16,"%s.%c",(local_50->wild_statement).filename,iVar19);\n            (local_50->wild_statement).filename = pcVar16;\n            bVar21 = true;\n          }\n        }\nLAB_00056b08:\n        local_50 = (local_50->wild_statement).children.head;\njoined_r0x00056b15:\n      } while (local_50 != (lang_statement_union *)0x0);\n      local_4c = file_chain.head;\n      if (file_chain.head != (lang_statement_union *)0x0) {\n        do {\n          pbVar12 = (local_4c->input_statement).the_bfd;\n          if ((pbVar12->my_archive != (bfd *)0x0) &&\n             (pbVar17 = pbVar12->sections, pbVar17 != (bfd_section *)0x0)) {\n            pbVar22 = (bfd_section *)0x0;\n            bVar21 = false;\n            bVar34 = true;\n            do {\n              bVar32 = false;\n              iVar19 = 7;\n              pbVar27 = (byte *)pbVar17->name;\n              pbVar30 = (byte *)".idata$";\n              do {\n                if (iVar19 == 0) break;\n                iVar19 = iVar19 + -1;\n                bVar32 = *pbVar27 < *pbVar30;\n                bVar34 = *pbVar27 == *pbVar30;\n                pbVar27 = pbVar27 + (uint)bVar35 * -2 + 1;\n                pbVar30 = pbVar30 + (uint)bVar35 * -2 + 1;\n              } while (bVar34);\n              if ((!bVar32 && !bVar34) == bVar32) {\n                bVar21 = true;\n              }\n              if (((pbVar17->flags & 0x10) != 0) && (pbVar17->reloc_count != 0)) {\n                pbVar22 = pbVar17;\n              }\n              pbVar17 = pbVar17->next;\n              bVar34 = pbVar17 == (bfd_section *)0x0;\n            } while (!bVar34);\n            if ((pbVar22 != (bfd_section *)0x0) && (bVar21)) {\n              iVar19 = bfd_generic_link_read_symbols(pbVar12);\n              if (iVar19 == 0) {\nLAB_000570af:\n                pwVar31 = (local_4c->wild_statement).section_list;\n                pcVar16 = (char *)dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n                einfo(pcVar16,pwVar31);\n                return;\n              }\n              ppbVar28 = ((local_4c->input_statement).the_bfd)->outsymbols;\n              uVar5 = ((local_4c->input_statement).the_bfd)->symcount;\n              if (0 < (int)uVar5) {\n                ppbVar2 = ppbVar28 + uVar5;\n                do {\n                  if (((((*ppbVar28)->section->id == pbVar22->id) &&\n                       (pbVar18 = (bfd_link_hash_entry *)\n                                  bfd_link_hash_lookup(link_info.hash,(*ppbVar28)->name,0,0,1),\n                       pbVar18 != (bfd_link_hash_entry *)0x0)) && (pbVar18->field_0xc == '\x03')) &&\n                     (((pbVar18->u).undef.next == (bfd_link_hash_entry *)0x0 &&\n                      ((link_info.hash)->undefs_tail != pbVar18)))) {\n                    pbVar22->flags = pbVar22->flags | 0x8000;\n                  }\n                  ppbVar28 = ppbVar28 + 1;\n                } while (ppbVar2 != ppbVar28);\n              }\n            }\n          }\n          local_4c = (local_4c->wild_statement).children.head;\n        } while (local_4c != (lang_statement_union *)0x0);\n      }\n    }\n  }\n  return;\n}" primitive_type (function_declarator "gld_i386pe_after_open(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  anon_union_4_2_31908b46_for_link *paVar1;\n  bfd_symbol **ppbVar2;\n  pe_tdata *ppVar3;\n  undefined4 *puVar4;\n  uint uVar5;\n  byte bVar6;\n  char cVar7;\n  char cVar8;\n  byte bVar9;\n  bfd_boolean bVar10;\n  asection *paVar11;\n  bfd *pbVar12;\n  undefined4 *__ptr;\n  undefined4 *puVar13;\n  size_t sVar14;\n  char *pcVar15;\n  char *pcVar16;\n  bfd_section *pbVar17;\n  bfd_link_hash_entry *pbVar18;\n  bfd_link_hash_entry *sym;\n  int iVar19;\n  int iVar20;\n  bool bVar21;\n  bfd_section *pbVar22;\n  lang_statement_union *plVar23;\n  internal_extra_pe_aouthdr *piVar24;\n  undefined4 *puVar25;\n  lang_statement_union *plVar26;\n  byte *pbVar27;\n  bfd_symbol **ppbVar28;\n  internal_extra_pe_aouthdr *piVar29;\n  byte *pbVar30;\n  wildcard_list *pwVar31;\n  bool bVar32;\n  bool bVar33;\n  bool bVar34;\n  byte bVar35;\n  lang_statement_union *local_50;\n  lang_statement_union *local_4c;\n  lang_statement_union *local_40;\n  bfd_section *local_38;\n  int found_debug;\n  undefined4 uStack_14;\n  \n  bVar35 = 0;\n  uStack_14 = 0x56659;\n  after_open_default();\n  if (pe_dll_extra_pe_debug == 0) {\nLAB_00056682:\n    pbVar12 = link_info.input_bfds;\n    if (emit_build_id != (char *)0x0) {\n      for (; pbVar12 != (bfd *)0x0; pbVar12 = (pbVar12->link).next) {\n        if (pbVar12->xvec->flavour == bfd_target_coff_flavour) {\n          bVar10 = validate_build_id_style(emit_build_id);\n          if (bVar10 == 0) {\n            pcVar16 = "%P: warning: unrecognized --build-id style ignored\n";\n          }\n          else {\n            paVar11 = (asection *)\n                      bfd_make_section_anyway_with_flags\n                                (pbVar12,".buildid",\n                                 "*/\n  .debug_aranges  0 : { *(.debug_aranges) }\n  .debug_pubnames 0 : { *(.debug_pubnames) }\n  /* DWARF 2 */\n  .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }\n  .debug_abbrev   0 : { *(.debug_abbrev) }\n  .debug_line     0 : { *(.debug_line .debug_line.* .debug_line_end ) }\n  .debug_frame    0 : { *(.debug_frame) }\n  .debug_str      0 : { *(.debug_str) }\n  .debug_loc      0 : { *(.debug_loc) }\n  .debug_macinfo  0 : { *(.debug_macinfo) }\n  /* SGI/MIPS DWARF 2 extensions */\n  .debug_weaknames 0 : { *(.debug_weaknames) }\n  .debug_funcnames 0 : { *(.debug_funcnames) }\n  .debug_typenames 0 : { *(.debug_typenames) }\n  .debug_varnames  0 : { *(.debug_varnames) }\n  /* DWARF 3 */\n  .debug_pubtypes 0 : { *(.debug_pubtypes) }\n  .debug_ranges   0 : { *(.debug_ranges) }\n  /* DWARF Extension.  */\n  .debug_macro    0 : { *(.debug_macro) }\n  .debug_addr     0 : { *(.debug_addr) }\n  .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) }\n  /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) }\n}\n\n"\n                                );\n            pbVar12 = link_info.output_bfd;\n            if (paVar11 != (asection *)0x0) {\n              ppVar3 = ((link_info.output_bfd)->tdata).pe_obj_data;\n              (ppVar3->build_id).after_write_object_contents = write_build_id;\n              pcVar16 = emit_build_id;\n              iVar19 = (ppVar3->coff).pe;\n              (ppVar3->build_id).sec = paVar11;\n              (ppVar3->build_id).style = pcVar16;\n              *(undefined4 *)&paVar11->size = 0x35;\n              *(undefined4 *)((int)&paVar11->size + 4) = 0;\n              goto joined_r0x00056729;\n            }\n            pcVar16 = "%P: warning: cannot create .buildid section, --build-id ignored\n";\n          }\n          pcVar16 = (char *)dcgettext(0,pcVar16,5);\n          einfo(pcVar16);\n          break;\n        }\n      }\nLAB_00056a59:\n      free(emit_build_id);\n      emit_build_id = (char *)0x0;\n    }\n  }\n  else {\n    printf("%s()\n","gld_i386pe_after_open");\n    for (pbVar18 = (link_info.hash)->undefs; pbVar18 != (bfd_link_hash_entry *)0x0;\n        pbVar18 = (pbVar18->u).undef.next) {\n      printf("-%s\n",(pbVar18->root).string);\n    }\n    bfd_hash_traverse(link_info.hash,pr_sym,0);\n    pbVar12 = link_info.input_bfds;\n    if (link_info.input_bfds != (bfd *)0x0) {\n      do {\n        printf("*%s\n",pbVar12->filename);\n        paVar1 = &pbVar12->link;\n        pbVar12 = paVar1->next;\n      } while (paVar1->next != (bfd *)0x0);\n      goto LAB_00056682;\n    }\n    if (emit_build_id != (char *)0x0) goto LAB_00056a59;\n  }\n  pbVar12 = link_info.output_bfd;\n  if (((link_info.output_bfd)->tdata).coff_obj_data != (coff_tdata *)0x0) {\n    iVar19 = (((link_info.output_bfd)->tdata).coff_obj_data)->pe;\njoined_r0x00056729:\n    if (iVar19 != 0) goto LAB_00056730;\n  }\n  pcVar16 = (char *)dcgettext(0,"%F%P: cannot perform PE operations on non PE output file \'%pB\'\n"\n                              ,5);\n  einfo(pcVar16,pbVar12);\nLAB_00056730:\n  pbVar12 = link_info.output_bfd;\n  ppVar3 = ((link_info.output_bfd)->tdata).pe_obj_data;\n  piVar24 = &pe;\n  piVar29 = &ppVar3->pe_opthdr;\n  for (iVar19 = 0x52; iVar19 != 0; iVar19 = iVar19 + -1) {\n    cVar7 = piVar24->MajorLinkerVersion;\n    cVar8 = piVar24->MinorLinkerVersion;\n    piVar29->Magic = piVar24->Magic;\n    piVar29->MajorLinkerVersion = cVar7;\n    piVar29->MinorLinkerVersion = cVar8;\n    piVar24 = (internal_extra_pe_aouthdr *)((int)piVar24 + ((uint)bVar35 * -2 + 1) * 4);\n    piVar29 = (internal_extra_pe_aouthdr *)((int)piVar29 + (uint)bVar35 * -8 + 4);\n  }\n  ppVar3->dll = init[1].value;\n  ppVar3->real_flags = ppVar3->real_flags | real_flags;\n  ppVar3->insert_timestamp = insert_timestamp;\n  if ((pe_use_coff_long_section_names < 0) && ((link_info._1_1_ & 0x60) == 0)) {\n    if ((link_info._0_1_ & 3) == 2) {\n      pe_use_coff_long_section_names = 1;\n    }\n    else if (file_chain.head != (lang_statement_union *)0x0) {\n      plVar26 = file_chain.head;\n      do {\n        found_debug = 0;\n        bfd_map_over_sections((plVar26->wild_statement).section_list,debug_section_p,&found_debug);\n        pbVar12 = link_info.output_bfd;\n        if (found_debug != 0) {\n          pe_use_coff_long_section_names = 1;\n          break;\n        }\n        plVar26 = (plVar26->wild_statement).children.head;\n      } while (plVar26 != (lang_statement_union *)0x0);\n    }\n  }\n  pe_output_file_set_long_section_names(pbVar12);\n  pe_process_import_defs(link_info.output_bfd,&link_info);\n  if (link_info.pei386_auto_import != 0) {\n    iVar19 = is_underscoring();\n    pcVar16 = "_head_";\n    if (iVar19 != 0) {\n      pcVar16 = "__head_";\n    }\n    pe_find_data_imports(pcVar16,make_import_fixup);\n  }\n  if (pe_enable_stdcall_fixup != 0) {\n    if (pe_dll_extra_pe_debug != 0) {\n      puts("pe_fixup_stdcalls");\n    }\n    for (pbVar18 = (link_info.hash)->undefs; pbVar18 != (bfd_link_hash_entry *)0x0;\n        pbVar18 = (pbVar18->u).undef.next) {\n      if (pbVar18->field_0xc == '\x01') {\n        pcVar16 = (pbVar18->root).string;\n        if (*pcVar16 == '@') {\n          pcVar15 = strchr(pcVar16 + 1,0x40);\n          pcVar16 = (char *)xstrdup(pcVar16);\n          *pcVar16 = '_';\n          if (pcVar15 != (char *)0x0) goto LAB_00057061;\n        }\n        else {\n          pcVar15 = strchr(pcVar16,0x40);\n          if (pcVar15 == (char *)0x0) {\n            pe_undef_found_sym = (bfd_link_hash_entry *)0x0;\n            bfd_link_hash_traverse(link_info.hash,pe_undef_cdecl_match,pcVar16);\n            if (pe_undef_found_sym != (bfd_link_hash_entry *)0x0) {\n              change_undef(pbVar18,pe_undef_found_sym);\n            }\n            goto LAB_00056fa8;\n          }\n          pcVar16 = (char *)xstrdup(pcVar16);\nLAB_00057061:\n          pcVar15 = strchr(pcVar16,0x40);\n          *pcVar15 = '\0';\n        }\n        sym = (bfd_link_hash_entry *)bfd_link_hash_lookup(link_info.hash,pcVar16,0,0,1);\n        if ((sym != (bfd_link_hash_entry *)0x0) && (sym->field_0xc == '\x03')) {\n          change_undef(pbVar18,sym);\n        }\n      }\nLAB_00056fa8:\n    }\n  }\n  if ((link_info._0_1_ & 3) != 2) {\n    pe_dll_build_sections(link_info.output_bfd,&link_info);\n  }\n  local_40 = file_chain.head;\n  if (file_chain.head != (lang_statement_union *)0x0) {\n    do {\n      pbVar12 = (local_40->input_statement).the_bfd;\n      if ((pbVar12->my_archive != (bfd *)0x0) &&\n         (local_38 = pbVar12->sections, local_38 != (bfd_section *)0x0)) {\n        iVar19 = 0;\n        bVar34 = true;\n        pbVar17 = local_38;\n        bVar6 = 0;\n        bVar21 = false;\n        do {\n          bVar32 = false;\n          iVar20 = 9;\n          pbVar27 = (byte *)pbVar17->name;\n          pbVar30 = (byte *)".idata$2";\n          do {\n            if (iVar20 == 0) break;\n            iVar20 = iVar20 + -1;\n            bVar32 = *pbVar27 < *pbVar30;\n            bVar34 = *pbVar27 == *pbVar30;\n            pbVar27 = pbVar27 + (uint)bVar35 * -2 + 1;\n            pbVar30 = pbVar30 + (uint)bVar35 * -2 + 1;\n          } while (bVar34);\n          bVar33 = false;\n          bVar34 = (!bVar32 && !bVar34) == bVar32;\n          bVar32 = true;\n          if (!bVar34) {\n            bVar32 = bVar21;\n          }\n          iVar20 = 7;\n          pbVar27 = (byte *)pbVar17->name;\n          pbVar30 = (byte *)".idata$";\n          do {\n            if (iVar20 == 0) break;\n            iVar20 = iVar20 + -1;\n            bVar33 = *pbVar27 < *pbVar30;\n            bVar34 = *pbVar27 == *pbVar30;\n            pbVar27 = pbVar27 + (uint)bVar35 * -2 + 1;\n            pbVar30 = pbVar30 + (uint)bVar35 * -2 + 1;\n          } while (bVar34);\n          bVar9 = 1;\n          if ((!bVar33 && !bVar34) != bVar33) {\n            bVar9 = bVar6;\n          }\n          iVar19 = iVar19 + pbVar17->reloc_count;\n          pbVar17 = pbVar17->next;\n          bVar34 = pbVar17 == (bfd_section *)0x0;\n          bVar6 = bVar9;\n          bVar21 = bVar32;\n        } while (!bVar34);\n        if (((bool)(bVar9 & iVar19 != 0)) && (!bVar32)) {\n          while (iVar19 = bfd_get_reloc_upper_bound(pbVar12,local_38), 0 < iVar19) {\n            iVar20 = bfd_generic_link_read_symbols((local_40->wild_statement).section_list);\n            local_4c = local_40;\n            if (iVar20 == 0) goto LAB_000570af;\n            ppbVar28 = ((local_40->input_statement).the_bfd)->outsymbols;\n            __ptr = (undefined4 *)xmalloc(iVar19);\n            iVar19 = bfd_canonicalize_reloc\n                               ((local_40->wild_statement).section_list,local_38,__ptr,ppbVar28);\n            if (iVar19 < 0) {\n              free(__ptr);\n              pcVar16 = (char *)dcgettext(0,"%X%P: unable to process relocs: %E\n",5);\n              einfo(pcVar16);\n              return;\n            }\n            puVar25 = __ptr;\n            if (iVar19 != 0) {\n              do {\n                if ((((*(byte *)(**(int **)*puVar25 + 0x10) & 1) == 0) &&\n                    (iVar20 = bfd_link_hash_lookup\n                                        (link_info.hash,*(undefined4 *)(**(int **)*puVar25 + 4),0,0,\n                                         1), iVar20 != 0)) && (*(char *)(iVar20 + 0xc) == '\x03')) {\n                  puVar4 = *(undefined4 **)(*(int *)(iVar20 + 0x14) + 0xac);\n                  puVar13 = (undefined4 *)puVar4[0x23];\n                  if (puVar13 == (undefined4 *)0x0) {\n                    puVar13 = puVar4;\n                  }\n                  pcVar16 = (char *)*puVar13;\n                  iVar20 = filename_cmp(((local_40->input_statement).the_bfd)->my_archive->filename,\n                                        pcVar16);\n                  if (iVar20 != 0) {\n                    sVar14 = strlen(pcVar16);\n                    pcVar15 = (char *)xmalloc(sVar14 + 1);\n                    strcpy(pcVar15,pcVar16);\n                    ((local_40->input_statement).the_bfd)->my_archive->filename = pcVar15;\n                  }\n                }\n                puVar25 = puVar25 + 1;\n              } while (__ptr + iVar19 != puVar25);\n            }\n            free(__ptr);\n            local_38 = local_38->next;\n            if (local_38 == (bfd_section *)0x0) break;\n            pbVar12 = (bfd *)(local_40->wild_statement).section_list;\n          }\n        }\n      }\n      local_40 = (local_40->wild_statement).children.head;\n    } while (local_40 != (lang_statement_union *)0x0);\n    local_50 = file_chain.head;\n    if (file_chain.head != (lang_statement_union *)0x0) {\n      bVar21 = false;\n      local_40 = (lang_statement_union *)0x0;\n      do {\n        uVar5 = ((local_50->reloc_statement).section)->lineno_count;\n        if (uVar5 != 0) {\n          pcVar16 = strrchr(((local_50->reloc_statement).section)->name,0x2e);\n          plVar26 = local_50;\n          if ((lang_statement_union *)uVar5 == local_40) {\n            if (!bVar21) goto LAB_00056b08;\n          }\n          else {\n            while ((plVar23 = local_50, local_40 = (lang_statement_union *)uVar5,\n                   pcVar16 == (char *)0x0 || (iVar19 = filename_cmp(pcVar16,".dll"), iVar19 != 0)))\n            {\n              plVar26 = (lang_statement_union *)(plVar26->data_statement).output_section;\n              if (plVar26 == (lang_statement_union *)0x0) {\n                local_50 = (local_50->wild_statement).children.head;\n                bVar21 = false;\n                goto joined_r0x00056b15;\n              }\n              if (uVar5 != ((plVar26->reloc_statement).section)->lineno_count) break;\n              pcVar16 = strrchr(((plVar26->reloc_statement).section)->name,0x2e);\n            }\n            do {\n              if (uVar5 != ((plVar23->reloc_statement).section)->lineno_count) break;\n              pwVar31 = (wildcard_list *)((plVar23->reloc_statement).section)->name;\n              pcVar16 = strrchr((char *)pwVar31,0x2e);\n              if (pcVar16 == (char *)0x0) {\nLAB_00056d20:\n                iVar19 = filename_cmp(((plVar26->wild_statement).section_list)->next,pwVar31);\n                if (iVar19 != 0) {\n                  bVar21 = false;\n                  goto LAB_00056b08;\n                }\n              }\n              else {\n                iVar19 = filename_cmp(pcVar16,&DAT_00192ed1);\n                if (iVar19 != 0) {\n                  pwVar31 = ((plVar23->wild_statement).section_list)->next;\n                  goto LAB_00056d20;\n                }\n              }\n              plVar23 = (plVar23->wild_statement).children.head;\n            } while (plVar23 != (lang_statement_union *)0x0);\n            pcVar16 = strrchr(((local_50->reloc_statement).section)->name,0x2e);\n          }\n          bVar21 = true;\n          iVar19 = filename_cmp(pcVar16,".dll");\n          if (iVar19 == 0) {\n            pbVar17 = ((local_50->input_statement).the_bfd)->sections;\n            if (pbVar17 == (bfd_section *)0x0) {\n              iVar19 = 99;\n            }\n            else {\n              iVar20 = 0;\n              bVar34 = true;\n              bVar21 = false;\n              do {\n                bVar32 = false;\n                iVar19 = 9;\n                pbVar27 = (byte *)pbVar17->name;\n                pbVar30 = (byte *)".idata$2";\n                do {\n                  if (iVar19 == 0) break;\n                  iVar19 = iVar19 + -1;\n                  bVar32 = *pbVar27 < *pbVar30;\n                  bVar34 = *pbVar27 == *pbVar30;\n                  pbVar27 = pbVar27 + (uint)bVar35 * -2 + 1;\n                  pbVar30 = pbVar30 + (uint)bVar35 * -2 + 1;\n                } while (bVar34);\n                if ((!bVar32 && !bVar34) == bVar32) {\n                  bVar21 = true;\n                }\n                iVar20 = iVar20 + pbVar17->reloc_count;\n                pbVar17 = pbVar17->next;\n                bVar34 = pbVar17 == (bfd_section *)0x0;\n              } while (!bVar34);\n              iVar19 = 0x61;\n              if (!bVar21) {\n                iVar19 = (iVar20 < 1) + 0x62;\n              }\n            }\n            sVar14 = strlen(((local_50->input_statement).the_bfd)->filename);\n            pcVar16 = (char *)xmalloc(sVar14 + 3);\n            sprintf(pcVar16,"%s.%c",((local_50->wild_statement).section_list)->next,iVar19);\n            ((local_50->reloc_statement).section)->name = pcVar16;\n            sVar14 = strlen((local_50->wild_statement).filename);\n            pcVar16 = (char *)xmalloc(sVar14 + 3);\n            sprintf(pcVar16,"%s.%c",(local_50->wild_statement).filename,iVar19);\n            (local_50->wild_statement).filename = pcVar16;\n            bVar21 = true;\n          }\n        }\nLAB_00056b08:\n        local_50 = (local_50->wild_statement).children.head;\njoined_r0x00056b15:\n      } while (local_50 != (lang_statement_union *)0x0);\n      local_4c = file_chain.head;\n      if (file_chain.head != (lang_statement_union *)0x0) {\n        do {\n          pbVar12 = (local_4c->input_statement).the_bfd;\n          if ((pbVar12->my_archive != (bfd *)0x0) &&\n             (pbVar17 = pbVar12->sections, pbVar17 != (bfd_section *)0x0)) {\n            pbVar22 = (bfd_section *)0x0;\n            bVar21 = false;\n            bVar34 = true;\n            do {\n              bVar32 = false;\n              iVar19 = 7;\n              pbVar27 = (byte *)pbVar17->name;\n              pbVar30 = (byte *)".idata$";\n              do {\n                if (iVar19 == 0) break;\n                iVar19 = iVar19 + -1;\n                bVar32 = *pbVar27 < *pbVar30;\n                bVar34 = *pbVar27 == *pbVar30;\n                pbVar27 = pbVar27 + (uint)bVar35 * -2 + 1;\n                pbVar30 = pbVar30 + (uint)bVar35 * -2 + 1;\n              } while (bVar34);\n              if ((!bVar32 && !bVar34) == bVar32) {\n                bVar21 = true;\n              }\n              if (((pbVar17->flags & 0x10) != 0) && (pbVar17->reloc_count != 0)) {\n                pbVar22 = pbVar17;\n              }\n              pbVar17 = pbVar17->next;\n              bVar34 = pbVar17 == (bfd_section *)0x0;\n            } while (!bVar34);\n            if ((pbVar22 != (bfd_section *)0x0) && (bVar21)) {\n              iVar19 = bfd_generic_link_read_symbols(pbVar12);\n              if (iVar19 == 0) {\nLAB_000570af:\n                pwVar31 = (local_4c->wild_statement).section_list;\n                pcVar16 = (char *)dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n                einfo(pcVar16,pwVar31);\n                return;\n              }\n              ppbVar28 = ((local_4c->input_statement).the_bfd)->outsymbols;\n              uVar5 = ((local_4c->input_statement).the_bfd)->symcount;\n              if (0 < (int)uVar5) {\n                ppbVar2 = ppbVar28 + uVar5;\n                do {\n                  if (((((*ppbVar28)->section->id == pbVar22->id) &&\n                       (pbVar18 = (bfd_link_hash_entry *)\n                                  bfd_link_hash_lookup(link_info.hash,(*ppbVar28)->name,0,0,1),\n                       pbVar18 != (bfd_link_hash_entry *)0x0)) && (pbVar18->field_0xc == '\x03')) &&\n                     (((pbVar18->u).undef.next == (bfd_link_hash_entry *)0x0 &&\n                      ((link_info.hash)->undefs_tail != pbVar18)))) {\n                    pbVar22->flags = pbVar22->flags | 0x8000;\n                  }\n                  ppbVar28 = ppbVar28 + 1;\n                } while (ppbVar2 != ppbVar28);\n              }\n            }\n          }\n          local_4c = (local_4c->wild_statement).children.head;\n        } while (local_4c != (lang_statement_union *)0x0);\n      }\n    }\n  }\n  return;\n}" { (declaration "anon_union_4_2_31908b46_for_link *paVar1;" type_identifier (pointer_declarator "*paVar1" * identifier) ;) (declaration "bfd_symbol **ppbVar2;" type_identifier (pointer_declarator "**ppbVar2" * (pointer_declarator "*ppbVar2" * identifier)) ;) (declaration "pe_tdata *ppVar3;" type_identifier (pointer_declarator "*ppVar3" * identifier) ;) (declaration "undefined4 *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "byte bVar6;" type_identifier identifier ;) (declaration "char cVar7;" primitive_type identifier ;) (declaration "char cVar8;" primitive_type identifier ;) (declaration "byte bVar9;" type_identifier identifier ;) (declaration "bfd_boolean bVar10;" type_identifier identifier ;) (declaration "asection *paVar11;" type_identifier (pointer_declarator "*paVar11" * identifier) ;) (declaration "bfd *pbVar12;" type_identifier (pointer_declarator "*pbVar12" * identifier) ;) (declaration "undefined4 *__ptr;" type_identifier (pointer_declarator "*__ptr" * identifier) ;) (declaration "undefined4 *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "size_t sVar14;" primitive_type identifier ;) (declaration "char *pcVar15;" primitive_type (pointer_declarator "*pcVar15" * identifier) ;) (declaration "char *pcVar16;" primitive_type (pointer_declarator "*pcVar16" * identifier) ;) (declaration "bfd_section *pbVar17;" type_identifier (pointer_declarator "*pbVar17" * identifier) ;) (declaration "bfd_link_hash_entry *pbVar18;" type_identifier (pointer_declarator "*pbVar18" * identifier) ;) (declaration "bfd_link_hash_entry *sym;" type_identifier (pointer_declarator "*sym" * identifier) ;) (declaration "int iVar19;" primitive_type identifier ;) (declaration "int iVar20;" primitive_type identifier ;) (declaration "bool bVar21;" primitive_type identifier ;) (declaration "bfd_section *pbVar22;" type_identifier (pointer_declarator "*pbVar22" * identifier) ;) (declaration "lang_statement_union *plVar23;" type_identifier (pointer_declarator "*plVar23" * identifier) ;) (declaration "internal_extra_pe_aouthdr *piVar24;" type_identifier (pointer_declarator "*piVar24" * identifier) ;) (declaration "undefined4 *puVar25;" type_identifier (pointer_declarator "*puVar25" * identifier) ;) (declaration "lang_statement_union *plVar26;" type_identifier (pointer_declarator "*plVar26" * identifier) ;) (declaration "byte *pbVar27;" type_identifier (pointer_declarator "*pbVar27" * identifier) ;) (declaration "bfd_symbol **ppbVar28;" type_identifier (pointer_declarator "**ppbVar28" * (pointer_declarator "*ppbVar28" * identifier)) ;) (declaration "internal_extra_pe_aouthdr *piVar29;" type_identifier (pointer_declarator "*piVar29" * identifier) ;) (declaration "byte *pbVar30;" type_identifier (pointer_declarator "*pbVar30" * identifier) ;) (declaration "wildcard_list *pwVar31;" type_identifier (pointer_declarator "*pwVar31" * identifier) ;) (declaration "bool bVar32;" primitive_type identifier ;) (declaration "bool bVar33;" primitive_type identifier ;) (declaration "bool bVar34;" primitive_type identifier ;) (declaration "byte bVar35;" type_identifier identifier ;) (declaration "lang_statement_union *local_50;" type_identifier (pointer_declarator "*local_50" * identifier) ;) (declaration "lang_statement_union *local_4c;" type_identifier (pointer_declarator "*local_4c" * identifier) ;) (declaration "lang_statement_union *local_40;" type_identifier (pointer_declarator "*local_40" * identifier) ;) (declaration "bfd_section *local_38;" type_identifier (pointer_declarator "*local_38" * identifier) ;) (declaration "int found_debug;" primitive_type identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "bVar35 = 0;" (assignment_expression "bVar35 = 0" identifier = number_literal) ;) (expression_statement "uStack_14 = 0x56659;" (assignment_expression "uStack_14 = 0x56659" identifier = number_literal) ;) (expression_statement "after_open_default();" (call_expression "after_open_default()" identifier (argument_list "()" ( ))) ;) (if_statement "if (pe_dll_extra_pe_debug == 0) {\nLAB_00056682:\n    pbVar12 = link_info.input_bfds;\n    if (emit_build_id != (char *)0x0) {\n      for (; pbVar12 != (bfd *)0x0; pbVar12 = (pbVar12->link).next) {\n        if (pbVar12->xvec->flavour == bfd_target_coff_flavour) {\n          bVar10 = validate_build_id_style(emit_build_id);\n          if (bVar10 == 0) {\n            pcVar16 = "%P: warning: unrecognized --build-id style ignored\n";\n          }\n          else {\n            paVar11 = (asection *)\n                      bfd_make_section_anyway_with_flags\n                                (pbVar12,".buildid",\n                                 "*/\n  .debug_aranges  0 : { *(.debug_aranges) }\n  .debug_pubnames 0 : { *(.debug_pubnames) }\n  /* DWARF 2 */\n  .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }\n  .debug_abbrev   0 : { *(.debug_abbrev) }\n  .debug_line     0 : { *(.debug_line .debug_line.* .debug_line_end ) }\n  .debug_frame    0 : { *(.debug_frame) }\n  .debug_str      0 : { *(.debug_str) }\n  .debug_loc      0 : { *(.debug_loc) }\n  .debug_macinfo  0 : { *(.debug_macinfo) }\n  /* SGI/MIPS DWARF 2 extensions */\n  .debug_weaknames 0 : { *(.debug_weaknames) }\n  .debug_funcnames 0 : { *(.debug_funcnames) }\n  .debug_typenames 0 : { *(.debug_typenames) }\n  .debug_varnames  0 : { *(.debug_varnames) }\n  /* DWARF 3 */\n  .debug_pubtypes 0 : { *(.debug_pubtypes) }\n  .debug_ranges   0 : { *(.debug_ranges) }\n  /* DWARF Extension.  */\n  .debug_macro    0 : { *(.debug_macro) }\n  .debug_addr     0 : { *(.debug_addr) }\n  .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) }\n  /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) }\n}\n\n"\n                                );\n            pbVar12 = link_info.output_bfd;\n            if (paVar11 != (asection *)0x0) {\n              ppVar3 = ((link_info.output_bfd)->tdata).pe_obj_data;\n              (ppVar3->build_id).after_write_object_contents = write_build_id;\n              pcVar16 = emit_build_id;\n              iVar19 = (ppVar3->coff).pe;\n              (ppVar3->build_id).sec = paVar11;\n              (ppVar3->build_id).style = pcVar16;\n              *(undefined4 *)&paVar11->size = 0x35;\n              *(undefined4 *)((int)&paVar11->size + 4) = 0;\n              goto joined_r0x00056729;\n            }\n            pcVar16 = "%P: warning: cannot create .buildid section, --build-id ignored\n";\n          }\n          pcVar16 = (char *)dcgettext(0,pcVar16,5);\n          einfo(pcVar16);\n          break;\n        }\n      }\nLAB_00056a59:\n      free(emit_build_id);\n      emit_build_id = (char *)0x0;\n    }\n  }\n  else {\n    printf("%s()\n","gld_i386pe_after_open");\n    for (pbVar18 = (link_info.hash)->undefs; pbVar18 != (bfd_link_hash_entry *)0x0;\n        pbVar18 = (pbVar18->u).undef.next) {\n      printf("-%s\n",(pbVar18->root).string);\n    }\n    bfd_hash_traverse(link_info.hash,pr_sym,0);\n    pbVar12 = link_info.input_bfds;\n    if (link_info.input_bfds != (bfd *)0x0) {\n      do {\n        printf("*%s\n",pbVar12->filename);\n        paVar1 = &pbVar12->link;\n        pbVar12 = paVar1->next;\n      } while (paVar1->next != (bfd *)0x0);\n      goto LAB_00056682;\n    }\n    if (emit_build_id != (char *)0x0) goto LAB_00056a59;\n  }" if (parenthesized_expression "(pe_dll_extra_pe_debug == 0)" ( (binary_expression "pe_dll_extra_pe_debug == 0" identifier == number_literal) )) (compound_statement "{\nLAB_00056682:\n    pbVar12 = link_info.input_bfds;\n    if (emit_build_id != (char *)0x0) {\n      for (; pbVar12 != (bfd *)0x0; pbVar12 = (pbVar12->link).next) {\n        if (pbVar12->xvec->flavour == bfd_target_coff_flavour) {\n          bVar10 = validate_build_id_style(emit_build_id);\n          if (bVar10 == 0) {\n            pcVar16 = "%P: warning: unrecognized --build-id style ignored\n";\n          }\n          else {\n            paVar11 = (asection *)\n                      bfd_make_section_anyway_with_flags\n                                (pbVar12,".buildid",\n                                 "*/\n  .debug_aranges  0 : { *(.debug_aranges) }\n  .debug_pubnames 0 : { *(.debug_pubnames) }\n  /* DWARF 2 */\n  .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }\n  .debug_abbrev   0 : { *(.debug_abbrev) }\n  .debug_line     0 : { *(.debug_line .debug_line.* .debug_line_end ) }\n  .debug_frame    0 : { *(.debug_frame) }\n  .debug_str      0 : { *(.debug_str) }\n  .debug_loc      0 : { *(.debug_loc) }\n  .debug_macinfo  0 : { *(.debug_macinfo) }\n  /* SGI/MIPS DWARF 2 extensions */\n  .debug_weaknames 0 : { *(.debug_weaknames) }\n  .debug_funcnames 0 : { *(.debug_funcnames) }\n  .debug_typenames 0 : { *(.debug_typenames) }\n  .debug_varnames  0 : { *(.debug_varnames) }\n  /* DWARF 3 */\n  .debug_pubtypes 0 : { *(.debug_pubtypes) }\n  .debug_ranges   0 : { *(.debug_ranges) }\n  /* DWARF Extension.  */\n  .debug_macro    0 : { *(.debug_macro) }\n  .debug_addr     0 : { *(.debug_addr) }\n  .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) }\n  /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) }\n}\n\n"\n                                );\n            pbVar12 = link_info.output_bfd;\n            if (paVar11 != (asection *)0x0) {\n              ppVar3 = ((link_info.output_bfd)->tdata).pe_obj_data;\n              (ppVar3->build_id).after_write_object_contents = write_build_id;\n              pcVar16 = emit_build_id;\n              iVar19 = (ppVar3->coff).pe;\n              (ppVar3->build_id).sec = paVar11;\n              (ppVar3->build_id).style = pcVar16;\n              *(undefined4 *)&paVar11->size = 0x35;\n              *(undefined4 *)((int)&paVar11->size + 4) = 0;\n              goto joined_r0x00056729;\n            }\n            pcVar16 = "%P: warning: cannot create .buildid section, --build-id ignored\n";\n          }\n          pcVar16 = (char *)dcgettext(0,pcVar16,5);\n          einfo(pcVar16);\n          break;\n        }\n      }\nLAB_00056a59:\n      free(emit_build_id);\n      emit_build_id = (char *)0x0;\n    }\n  }" { (labeled_statement "LAB_00056682:\n    pbVar12 = link_info.input_bfds;" statement_identifier : (expression_statement "pbVar12 = link_info.input_bfds;" (assignment_expression "pbVar12 = link_info.input_bfds" identifier = (field_expression "link_info.input_bfds" identifier . field_identifier)) ;)) (if_statement "if (emit_build_id != (char *)0x0) {\n      for (; pbVar12 != (bfd *)0x0; pbVar12 = (pbVar12->link).next) {\n        if (pbVar12->xvec->flavour == bfd_target_coff_flavour) {\n          bVar10 = validate_build_id_style(emit_build_id);\n          if (bVar10 == 0) {\n            pcVar16 = "%P: warning: unrecognized --build-id style ignored\n";\n          }\n          else {\n            paVar11 = (asection *)\n                      bfd_make_section_anyway_with_flags\n                                (pbVar12,".buildid",\n                                 "*/\n  .debug_aranges  0 : { *(.debug_aranges) }\n  .debug_pubnames 0 : { *(.debug_pubnames) }\n  /* DWARF 2 */\n  .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }\n  .debug_abbrev   0 : { *(.debug_abbrev) }\n  .debug_line     0 : { *(.debug_line .debug_line.* .debug_line_end ) }\n  .debug_frame    0 : { *(.debug_frame) }\n  .debug_str      0 : { *(.debug_str) }\n  .debug_loc      0 : { *(.debug_loc) }\n  .debug_macinfo  0 : { *(.debug_macinfo) }\n  /* SGI/MIPS DWARF 2 extensions */\n  .debug_weaknames 0 : { *(.debug_weaknames) }\n  .debug_funcnames 0 : { *(.debug_funcnames) }\n  .debug_typenames 0 : { *(.debug_typenames) }\n  .debug_varnames  0 : { *(.debug_varnames) }\n  /* DWARF 3 */\n  .debug_pubtypes 0 : { *(.debug_pubtypes) }\n  .debug_ranges   0 : { *(.debug_ranges) }\n  /* DWARF Extension.  */\n  .debug_macro    0 : { *(.debug_macro) }\n  .debug_addr     0 : { *(.debug_addr) }\n  .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) }\n  /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) }\n}\n\n"\n                                );\n            pbVar12 = link_info.output_bfd;\n            if (paVar11 != (asection *)0x0) {\n              ppVar3 = ((link_info.output_bfd)->tdata).pe_obj_data;\n              (ppVar3->build_id).after_write_object_contents = write_build_id;\n              pcVar16 = emit_build_id;\n              iVar19 = (ppVar3->coff).pe;\n              (ppVar3->build_id).sec = paVar11;\n              (ppVar3->build_id).style = pcVar16;\n              *(undefined4 *)&paVar11->size = 0x35;\n              *(undefined4 *)((int)&paVar11->size + 4) = 0;\n              goto joined_r0x00056729;\n            }\n            pcVar16 = "%P: warning: cannot create .buildid section, --build-id ignored\n";\n          }\n          pcVar16 = (char *)dcgettext(0,pcVar16,5);\n          einfo(pcVar16);\n          break;\n        }\n      }\nLAB_00056a59:\n      free(emit_build_id);\n      emit_build_id = (char *)0x0;\n    }" if (parenthesized_expression "(emit_build_id != (char *)0x0)" ( (binary_expression "emit_build_id != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      for (; pbVar12 != (bfd *)0x0; pbVar12 = (pbVar12->link).next) {\n        if (pbVar12->xvec->flavour == bfd_target_coff_flavour) {\n          bVar10 = validate_build_id_style(emit_build_id);\n          if (bVar10 == 0) {\n            pcVar16 = "%P: warning: unrecognized --build-id style ignored\n";\n          }\n          else {\n            paVar11 = (asection *)\n                      bfd_make_section_anyway_with_flags\n                                (pbVar12,".buildid",\n                                 "*/\n  .debug_aranges  0 : { *(.debug_aranges) }\n  .debug_pubnames 0 : { *(.debug_pubnames) }\n  /* DWARF 2 */\n  .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }\n  .debug_abbrev   0 : { *(.debug_abbrev) }\n  .debug_line     0 : { *(.debug_line .debug_line.* .debug_line_end ) }\n  .debug_frame    0 : { *(.debug_frame) }\n  .debug_str      0 : { *(.debug_str) }\n  .debug_loc      0 : { *(.debug_loc) }\n  .debug_macinfo  0 : { *(.debug_macinfo) }\n  /* SGI/MIPS DWARF 2 extensions */\n  .debug_weaknames 0 : { *(.debug_weaknames) }\n  .debug_funcnames 0 : { *(.debug_funcnames) }\n  .debug_typenames 0 : { *(.debug_typenames) }\n  .debug_varnames  0 : { *(.debug_varnames) }\n  /* DWARF 3 */\n  .debug_pubtypes 0 : { *(.debug_pubtypes) }\n  .debug_ranges   0 : { *(.debug_ranges) }\n  /* DWARF Extension.  */\n  .debug_macro    0 : { *(.debug_macro) }\n  .debug_addr     0 : { *(.debug_addr) }\n  .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) }\n  /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) }\n}\n\n"\n                                );\n            pbVar12 = link_info.output_bfd;\n            if (paVar11 != (asection *)0x0) {\n              ppVar3 = ((link_info.output_bfd)->tdata).pe_obj_data;\n              (ppVar3->build_id).after_write_object_contents = write_build_id;\n              pcVar16 = emit_build_id;\n              iVar19 = (ppVar3->coff).pe;\n              (ppVar3->build_id).sec = paVar11;\n              (ppVar3->build_id).style = pcVar16;\n              *(undefined4 *)&paVar11->size = 0x35;\n              *(undefined4 *)((int)&paVar11->size + 4) = 0;\n              goto joined_r0x00056729;\n            }\n            pcVar16 = "%P: warning: cannot create .buildid section, --build-id ignored\n";\n          }\n          pcVar16 = (char *)dcgettext(0,pcVar16,5);\n          einfo(pcVar16);\n          break;\n        }\n      }\nLAB_00056a59:\n      free(emit_build_id);\n      emit_build_id = (char *)0x0;\n    }" { (for_statement "for (; pbVar12 != (bfd *)0x0; pbVar12 = (pbVar12->link).next) {\n        if (pbVar12->xvec->flavour == bfd_target_coff_flavour) {\n          bVar10 = validate_build_id_style(emit_build_id);\n          if (bVar10 == 0) {\n            pcVar16 = "%P: warning: unrecognized --build-id style ignored\n";\n          }\n          else {\n            paVar11 = (asection *)\n                      bfd_make_section_anyway_with_flags\n                                (pbVar12,".buildid",\n                                 "*/\n  .debug_aranges  0 : { *(.debug_aranges) }\n  .debug_pubnames 0 : { *(.debug_pubnames) }\n  /* DWARF 2 */\n  .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }\n  .debug_abbrev   0 : { *(.debug_abbrev) }\n  .debug_line     0 : { *(.debug_line .debug_line.* .debug_line_end ) }\n  .debug_frame    0 : { *(.debug_frame) }\n  .debug_str      0 : { *(.debug_str) }\n  .debug_loc      0 : { *(.debug_loc) }\n  .debug_macinfo  0 : { *(.debug_macinfo) }\n  /* SGI/MIPS DWARF 2 extensions */\n  .debug_weaknames 0 : { *(.debug_weaknames) }\n  .debug_funcnames 0 : { *(.debug_funcnames) }\n  .debug_typenames 0 : { *(.debug_typenames) }\n  .debug_varnames  0 : { *(.debug_varnames) }\n  /* DWARF 3 */\n  .debug_pubtypes 0 : { *(.debug_pubtypes) }\n  .debug_ranges   0 : { *(.debug_ranges) }\n  /* DWARF Extension.  */\n  .debug_macro    0 : { *(.debug_macro) }\n  .debug_addr     0 : { *(.debug_addr) }\n  .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) }\n  /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) }\n}\n\n"\n                                );\n            pbVar12 = link_info.output_bfd;\n            if (paVar11 != (asection *)0x0) {\n              ppVar3 = ((link_info.output_bfd)->tdata).pe_obj_data;\n              (ppVar3->build_id).after_write_object_contents = write_build_id;\n              pcVar16 = emit_build_id;\n              iVar19 = (ppVar3->coff).pe;\n              (ppVar3->build_id).sec = paVar11;\n              (ppVar3->build_id).style = pcVar16;\n              *(undefined4 *)&paVar11->size = 0x35;\n              *(undefined4 *)((int)&paVar11->size + 4) = 0;\n              goto joined_r0x00056729;\n            }\n            pcVar16 = "%P: warning: cannot create .buildid section, --build-id ignored\n";\n          }\n          pcVar16 = (char *)dcgettext(0,pcVar16,5);\n          einfo(pcVar16);\n          break;\n        }\n      }" for ( ; (binary_expression "pbVar12 != (bfd *)0x0" identifier != (cast_expression "(bfd *)0x0" ( (type_descriptor "bfd *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "pbVar12 = (pbVar12->link).next" identifier = (field_expression "(pbVar12->link).next" (parenthesized_expression "(pbVar12->link)" ( (field_expression "pbVar12->link" identifier -> field_identifier) )) . field_identifier)) ) (compound_statement "{\n        if (pbVar12->xvec->flavour == bfd_target_coff_flavour) {\n          bVar10 = validate_build_id_style(emit_build_id);\n          if (bVar10 == 0) {\n            pcVar16 = "%P: warning: unrecognized --build-id style ignored\n";\n          }\n          else {\n            paVar11 = (asection *)\n                      bfd_make_section_anyway_with_flags\n                                (pbVar12,".buildid",\n                                 "*/\n  .debug_aranges  0 : { *(.debug_aranges) }\n  .debug_pubnames 0 : { *(.debug_pubnames) }\n  /* DWARF 2 */\n  .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }\n  .debug_abbrev   0 : { *(.debug_abbrev) }\n  .debug_line     0 : { *(.debug_line .debug_line.* .debug_line_end ) }\n  .debug_frame    0 : { *(.debug_frame) }\n  .debug_str      0 : { *(.debug_str) }\n  .debug_loc      0 : { *(.debug_loc) }\n  .debug_macinfo  0 : { *(.debug_macinfo) }\n  /* SGI/MIPS DWARF 2 extensions */\n  .debug_weaknames 0 : { *(.debug_weaknames) }\n  .debug_funcnames 0 : { *(.debug_funcnames) }\n  .debug_typenames 0 : { *(.debug_typenames) }\n  .debug_varnames  0 : { *(.debug_varnames) }\n  /* DWARF 3 */\n  .debug_pubtypes 0 : { *(.debug_pubtypes) }\n  .debug_ranges   0 : { *(.debug_ranges) }\n  /* DWARF Extension.  */\n  .debug_macro    0 : { *(.debug_macro) }\n  .debug_addr     0 : { *(.debug_addr) }\n  .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) }\n  /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) }\n}\n\n"\n                                );\n            pbVar12 = link_info.output_bfd;\n            if (paVar11 != (asection *)0x0) {\n              ppVar3 = ((link_info.output_bfd)->tdata).pe_obj_data;\n              (ppVar3->build_id).after_write_object_contents = write_build_id;\n              pcVar16 = emit_build_id;\n              iVar19 = (ppVar3->coff).pe;\n              (ppVar3->build_id).sec = paVar11;\n              (ppVar3->build_id).style = pcVar16;\n              *(undefined4 *)&paVar11->size = 0x35;\n              *(undefined4 *)((int)&paVar11->size + 4) = 0;\n              goto joined_r0x00056729;\n            }\n            pcVar16 = "%P: warning: cannot create .buildid section, --build-id ignored\n";\n          }\n          pcVar16 = (char *)dcgettext(0,pcVar16,5);\n          einfo(pcVar16);\n          break;\n        }\n      }" { (if_statement "if (pbVar12->xvec->flavour == bfd_target_coff_flavour) {\n          bVar10 = validate_build_id_style(emit_build_id);\n          if (bVar10 == 0) {\n            pcVar16 = "%P: warning: unrecognized --build-id style ignored\n";\n          }\n          else {\n            paVar11 = (asection *)\n                      bfd_make_section_anyway_with_flags\n                                (pbVar12,".buildid",\n                                 "*/\n  .debug_aranges  0 : { *(.debug_aranges) }\n  .debug_pubnames 0 : { *(.debug_pubnames) }\n  /* DWARF 2 */\n  .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }\n  .debug_abbrev   0 : { *(.debug_abbrev) }\n  .debug_line     0 : { *(.debug_line .debug_line.* .debug_line_end ) }\n  .debug_frame    0 : { *(.debug_frame) }\n  .debug_str      0 : { *(.debug_str) }\n  .debug_loc      0 : { *(.debug_loc) }\n  .debug_macinfo  0 : { *(.debug_macinfo) }\n  /* SGI/MIPS DWARF 2 extensions */\n  .debug_weaknames 0 : { *(.debug_weaknames) }\n  .debug_funcnames 0 : { *(.debug_funcnames) }\n  .debug_typenames 0 : { *(.debug_typenames) }\n  .debug_varnames  0 : { *(.debug_varnames) }\n  /* DWARF 3 */\n  .debug_pubtypes 0 : { *(.debug_pubtypes) }\n  .debug_ranges   0 : { *(.debug_ranges) }\n  /* DWARF Extension.  */\n  .debug_macro    0 : { *(.debug_macro) }\n  .debug_addr     0 : { *(.debug_addr) }\n  .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) }\n  /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) }\n}\n\n"\n                                );\n            pbVar12 = link_info.output_bfd;\n            if (paVar11 != (asection *)0x0) {\n              ppVar3 = ((link_info.output_bfd)->tdata).pe_obj_data;\n              (ppVar3->build_id).after_write_object_contents = write_build_id;\n              pcVar16 = emit_build_id;\n              iVar19 = (ppVar3->coff).pe;\n              (ppVar3->build_id).sec = paVar11;\n              (ppVar3->build_id).style = pcVar16;\n              *(undefined4 *)&paVar11->size = 0x35;\n              *(undefined4 *)((int)&paVar11->size + 4) = 0;\n              goto joined_r0x00056729;\n            }\n            pcVar16 = "%P: warning: cannot create .buildid section, --build-id ignored\n";\n          }\n          pcVar16 = (char *)dcgettext(0,pcVar16,5);\n          einfo(pcVar16);\n          break;\n        }" if (parenthesized_expression "(pbVar12->xvec->flavour == bfd_target_coff_flavour)" ( (binary_expression "pbVar12->xvec->flavour == bfd_target_coff_flavour" (field_expression "pbVar12->xvec->flavour" (field_expression "pbVar12->xvec" identifier -> field_identifier) -> field_identifier) == identifier) )) (compound_statement "{\n          bVar10 = validate_build_id_style(emit_build_id);\n          if (bVar10 == 0) {\n            pcVar16 = "%P: warning: unrecognized --build-id style ignored\n";\n          }\n          else {\n            paVar11 = (asection *)\n                      bfd_make_section_anyway_with_flags\n                                (pbVar12,".buildid",\n                                 "*/\n  .debug_aranges  0 : { *(.debug_aranges) }\n  .debug_pubnames 0 : { *(.debug_pubnames) }\n  /* DWARF 2 */\n  .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }\n  .debug_abbrev   0 : { *(.debug_abbrev) }\n  .debug_line     0 : { *(.debug_line .debug_line.* .debug_line_end ) }\n  .debug_frame    0 : { *(.debug_frame) }\n  .debug_str      0 : { *(.debug_str) }\n  .debug_loc      0 : { *(.debug_loc) }\n  .debug_macinfo  0 : { *(.debug_macinfo) }\n  /* SGI/MIPS DWARF 2 extensions */\n  .debug_weaknames 0 : { *(.debug_weaknames) }\n  .debug_funcnames 0 : { *(.debug_funcnames) }\n  .debug_typenames 0 : { *(.debug_typenames) }\n  .debug_varnames  0 : { *(.debug_varnames) }\n  /* DWARF 3 */\n  .debug_pubtypes 0 : { *(.debug_pubtypes) }\n  .debug_ranges   0 : { *(.debug_ranges) }\n  /* DWARF Extension.  */\n  .debug_macro    0 : { *(.debug_macro) }\n  .debug_addr     0 : { *(.debug_addr) }\n  .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) }\n  /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) }\n}\n\n"\n                                );\n            pbVar12 = link_info.output_bfd;\n            if (paVar11 != (asection *)0x0) {\n              ppVar3 = ((link_info.output_bfd)->tdata).pe_obj_data;\n              (ppVar3->build_id).after_write_object_contents = write_build_id;\n              pcVar16 = emit_build_id;\n              iVar19 = (ppVar3->coff).pe;\n              (ppVar3->build_id).sec = paVar11;\n              (ppVar3->build_id).style = pcVar16;\n              *(undefined4 *)&paVar11->size = 0x35;\n              *(undefined4 *)((int)&paVar11->size + 4) = 0;\n              goto joined_r0x00056729;\n            }\n            pcVar16 = "%P: warning: cannot create .buildid section, --build-id ignored\n";\n          }\n          pcVar16 = (char *)dcgettext(0,pcVar16,5);\n          einfo(pcVar16);\n          break;\n        }" { (expression_statement "bVar10 = validate_build_id_style(emit_build_id);" (assignment_expression "bVar10 = validate_build_id_style(emit_build_id)" identifier = (call_expression "validate_build_id_style(emit_build_id)" identifier (argument_list "(emit_build_id)" ( identifier )))) ;) (if_statement "if (bVar10 == 0) {\n            pcVar16 = "%P: warning: unrecognized --build-id style ignored\n";\n          }\n          else {\n            paVar11 = (asection *)\n                      bfd_make_section_anyway_with_flags\n                                (pbVar12,".buildid",\n                                 "*/\n  .debug_aranges  0 : { *(.debug_aranges) }\n  .debug_pubnames 0 : { *(.debug_pubnames) }\n  /* DWARF 2 */\n  .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }\n  .debug_abbrev   0 : { *(.debug_abbrev) }\n  .debug_line     0 : { *(.debug_line .debug_line.* .debug_line_end ) }\n  .debug_frame    0 : { *(.debug_frame) }\n  .debug_str      0 : { *(.debug_str) }\n  .debug_loc      0 : { *(.debug_loc) }\n  .debug_macinfo  0 : { *(.debug_macinfo) }\n  /* SGI/MIPS DWARF 2 extensions */\n  .debug_weaknames 0 : { *(.debug_weaknames) }\n  .debug_funcnames 0 : { *(.debug_funcnames) }\n  .debug_typenames 0 : { *(.debug_typenames) }\n  .debug_varnames  0 : { *(.debug_varnames) }\n  /* DWARF 3 */\n  .debug_pubtypes 0 : { *(.debug_pubtypes) }\n  .debug_ranges   0 : { *(.debug_ranges) }\n  /* DWARF Extension.  */\n  .debug_macro    0 : { *(.debug_macro) }\n  .debug_addr     0 : { *(.debug_addr) }\n  .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) }\n  /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) }\n}\n\n"\n                                );\n            pbVar12 = link_info.output_bfd;\n            if (paVar11 != (asection *)0x0) {\n              ppVar3 = ((link_info.output_bfd)->tdata).pe_obj_data;\n              (ppVar3->build_id).after_write_object_contents = write_build_id;\n              pcVar16 = emit_build_id;\n              iVar19 = (ppVar3->coff).pe;\n              (ppVar3->build_id).sec = paVar11;\n              (ppVar3->build_id).style = pcVar16;\n              *(undefined4 *)&paVar11->size = 0x35;\n              *(undefined4 *)((int)&paVar11->size + 4) = 0;\n              goto joined_r0x00056729;\n            }\n            pcVar16 = "%P: warning: cannot create .buildid section, --build-id ignored\n";\n          }" if (parenthesized_expression "(bVar10 == 0)" ( (binary_expression "bVar10 == 0" identifier == number_literal) )) (compound_statement "{\n            pcVar16 = "%P: warning: unrecognized --build-id style ignored\n";\n          }" { (expression_statement "pcVar16 = "%P: warning: unrecognized --build-id style ignored\n";" (assignment_expression "pcVar16 = "%P: warning: unrecognized --build-id style ignored\n"" identifier = (string_literal ""%P: warning: unrecognized --build-id style ignored\n"" " string_content escape_sequence ")) ;) }) (else_clause "else {\n            paVar11 = (asection *)\n                      bfd_make_section_anyway_with_flags\n                                (pbVar12,".buildid",\n                                 "*/\n  .debug_aranges  0 : { *(.debug_aranges) }\n  .debug_pubnames 0 : { *(.debug_pubnames) }\n  /* DWARF 2 */\n  .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }\n  .debug_abbrev   0 : { *(.debug_abbrev) }\n  .debug_line     0 : { *(.debug_line .debug_line.* .debug_line_end ) }\n  .debug_frame    0 : { *(.debug_frame) }\n  .debug_str      0 : { *(.debug_str) }\n  .debug_loc      0 : { *(.debug_loc) }\n  .debug_macinfo  0 : { *(.debug_macinfo) }\n  /* SGI/MIPS DWARF 2 extensions */\n  .debug_weaknames 0 : { *(.debug_weaknames) }\n  .debug_funcnames 0 : { *(.debug_funcnames) }\n  .debug_typenames 0 : { *(.debug_typenames) }\n  .debug_varnames  0 : { *(.debug_varnames) }\n  /* DWARF 3 */\n  .debug_pubtypes 0 : { *(.debug_pubtypes) }\n  .debug_ranges   0 : { *(.debug_ranges) }\n  /* DWARF Extension.  */\n  .debug_macro    0 : { *(.debug_macro) }\n  .debug_addr     0 : { *(.debug_addr) }\n  .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) }\n  /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) }\n}\n\n"\n                                );\n            pbVar12 = link_info.output_bfd;\n            if (paVar11 != (asection *)0x0) {\n              ppVar3 = ((link_info.output_bfd)->tdata).pe_obj_data;\n              (ppVar3->build_id).after_write_object_contents = write_build_id;\n              pcVar16 = emit_build_id;\n              iVar19 = (ppVar3->coff).pe;\n              (ppVar3->build_id).sec = paVar11;\n              (ppVar3->build_id).style = pcVar16;\n              *(undefined4 *)&paVar11->size = 0x35;\n              *(undefined4 *)((int)&paVar11->size + 4) = 0;\n              goto joined_r0x00056729;\n            }\n            pcVar16 = "%P: warning: cannot create .buildid section, --build-id ignored\n";\n          }" else (compound_statement "{\n            paVar11 = (asection *)\n                      bfd_make_section_anyway_with_flags\n                                (pbVar12,".buildid",\n                                 "*/\n  .debug_aranges  0 : { *(.debug_aranges) }\n  .debug_pubnames 0 : { *(.debug_pubnames) }\n  /* DWARF 2 */\n  .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }\n  .debug_abbrev   0 : { *(.debug_abbrev) }\n  .debug_line     0 : { *(.debug_line .debug_line.* .debug_line_end ) }\n  .debug_frame    0 : { *(.debug_frame) }\n  .debug_str      0 : { *(.debug_str) }\n  .debug_loc      0 : { *(.debug_loc) }\n  .debug_macinfo  0 : { *(.debug_macinfo) }\n  /* SGI/MIPS DWARF 2 extensions */\n  .debug_weaknames 0 : { *(.debug_weaknames) }\n  .debug_funcnames 0 : { *(.debug_funcnames) }\n  .debug_typenames 0 : { *(.debug_typenames) }\n  .debug_varnames  0 : { *(.debug_varnames) }\n  /* DWARF 3 */\n  .debug_pubtypes 0 : { *(.debug_pubtypes) }\n  .debug_ranges   0 : { *(.debug_ranges) }\n  /* DWARF Extension.  */\n  .debug_macro    0 : { *(.debug_macro) }\n  .debug_addr     0 : { *(.debug_addr) }\n  .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) }\n  /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) }\n}\n\n"\n                                );\n            pbVar12 = link_info.output_bfd;\n            if (paVar11 != (asection *)0x0) {\n              ppVar3 = ((link_info.output_bfd)->tdata).pe_obj_data;\n              (ppVar3->build_id).after_write_object_contents = write_build_id;\n              pcVar16 = emit_build_id;\n              iVar19 = (ppVar3->coff).pe;\n              (ppVar3->build_id).sec = paVar11;\n              (ppVar3->build_id).style = pcVar16;\n              *(undefined4 *)&paVar11->size = 0x35;\n              *(undefined4 *)((int)&paVar11->size + 4) = 0;\n              goto joined_r0x00056729;\n            }\n            pcVar16 = "%P: warning: cannot create .buildid section, --build-id ignored\n";\n          }" { (expression_statement "paVar11 = (asection *)\n                      bfd_make_section_anyway_with_flags\n                                (pbVar12,".buildid",\n                                 "*/\n  .debug_aranges  0 : { *(.debug_aranges) }\n  .debug_pubnames 0 : { *(.debug_pubnames) }\n  /* DWARF 2 */\n  .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }\n  .debug_abbrev   0 : { *(.debug_abbrev) }\n  .debug_line     0 : { *(.debug_line .debug_line.* .debug_line_end ) }\n  .debug_frame    0 : { *(.debug_frame) }\n  .debug_str      0 : { *(.debug_str) }\n  .debug_loc      0 : { *(.debug_loc) }\n  .debug_macinfo  0 : { *(.debug_macinfo) }\n  /* SGI/MIPS DWARF 2 extensions */\n  .debug_weaknames 0 : { *(.debug_weaknames) }\n  .debug_funcnames 0 : { *(.debug_funcnames) }\n  .debug_typenames 0 : { *(.debug_typenames) }\n  .debug_varnames  0 : { *(.debug_varnames) }\n  /* DWARF 3 */\n  .debug_pubtypes 0 : { *(.debug_pubtypes) }\n  .debug_ranges   0 : { *(.debug_ranges) }\n  /* DWARF Extension.  */\n  .debug_macro    0 : { *(.debug_macro) }\n  .debug_addr     0 : { *(.debug_addr) }\n  .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) }\n  /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) }\n}\n\n"\n                                );" (assignment_expression "paVar11 = (asection *)\n                      bfd_make_section_anyway_with_flags\n                                (pbVar12,".buildid",\n                                 "*/\n  .debug_aranges  0 : { *(.debug_aranges) }\n  .debug_pubnames 0 : { *(.debug_pubnames) }\n  /* DWARF 2 */\n  .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }\n  .debug_abbrev   0 : { *(.debug_abbrev) }\n  .debug_line     0 : { *(.debug_line .debug_line.* .debug_line_end ) }\n  .debug_frame    0 : { *(.debug_frame) }\n  .debug_str      0 : { *(.debug_str) }\n  .debug_loc      0 : { *(.debug_loc) }\n  .debug_macinfo  0 : { *(.debug_macinfo) }\n  /* SGI/MIPS DWARF 2 extensions */\n  .debug_weaknames 0 : { *(.debug_weaknames) }\n  .debug_funcnames 0 : { *(.debug_funcnames) }\n  .debug_typenames 0 : { *(.debug_typenames) }\n  .debug_varnames  0 : { *(.debug_varnames) }\n  /* DWARF 3 */\n  .debug_pubtypes 0 : { *(.debug_pubtypes) }\n  .debug_ranges   0 : { *(.debug_ranges) }\n  /* DWARF Extension.  */\n  .debug_macro    0 : { *(.debug_macro) }\n  .debug_addr     0 : { *(.debug_addr) }\n  .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) }\n  /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) }\n}\n\n"\n                                )" identifier = (cast_expression "(asection *)\n                      bfd_make_section_anyway_with_flags\n                                (pbVar12,".buildid",\n                                 "*/\n  .debug_aranges  0 : { *(.debug_aranges) }\n  .debug_pubnames 0 : { *(.debug_pubnames) }\n  /* DWARF 2 */\n  .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }\n  .debug_abbrev   0 : { *(.debug_abbrev) }\n  .debug_line     0 : { *(.debug_line .debug_line.* .debug_line_end ) }\n  .debug_frame    0 : { *(.debug_frame) }\n  .debug_str      0 : { *(.debug_str) }\n  .debug_loc      0 : { *(.debug_loc) }\n  .debug_macinfo  0 : { *(.debug_macinfo) }\n  /* SGI/MIPS DWARF 2 extensions */\n  .debug_weaknames 0 : { *(.debug_weaknames) }\n  .debug_funcnames 0 : { *(.debug_funcnames) }\n  .debug_typenames 0 : { *(.debug_typenames) }\n  .debug_varnames  0 : { *(.debug_varnames) }\n  /* DWARF 3 */\n  .debug_pubtypes 0 : { *(.debug_pubtypes) }\n  .debug_ranges   0 : { *(.debug_ranges) }\n  /* DWARF Extension.  */\n  .debug_macro    0 : { *(.debug_macro) }\n  .debug_addr     0 : { *(.debug_addr) }\n  .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) }\n  /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) }\n}\n\n"\n                                )" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "bfd_make_section_anyway_with_flags\n                                (pbVar12,".buildid",\n                                 "*/\n  .debug_aranges  0 : { *(.debug_aranges) }\n  .debug_pubnames 0 : { *(.debug_pubnames) }\n  /* DWARF 2 */\n  .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }\n  .debug_abbrev   0 : { *(.debug_abbrev) }\n  .debug_line     0 : { *(.debug_line .debug_line.* .debug_line_end ) }\n  .debug_frame    0 : { *(.debug_frame) }\n  .debug_str      0 : { *(.debug_str) }\n  .debug_loc      0 : { *(.debug_loc) }\n  .debug_macinfo  0 : { *(.debug_macinfo) }\n  /* SGI/MIPS DWARF 2 extensions */\n  .debug_weaknames 0 : { *(.debug_weaknames) }\n  .debug_funcnames 0 : { *(.debug_funcnames) }\n  .debug_typenames 0 : { *(.debug_typenames) }\n  .debug_varnames  0 : { *(.debug_varnames) }\n  /* DWARF 3 */\n  .debug_pubtypes 0 : { *(.debug_pubtypes) }\n  .debug_ranges   0 : { *(.debug_ranges) }\n  /* DWARF Extension.  */\n  .debug_macro    0 : { *(.debug_macro) }\n  .debug_addr     0 : { *(.debug_addr) }\n  .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) }\n  /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) }\n}\n\n"\n                                )" identifier (argument_list "(pbVar12,".buildid",\n                                 "*/\n  .debug_aranges  0 : { *(.debug_aranges) }\n  .debug_pubnames 0 : { *(.debug_pubnames) }\n  /* DWARF 2 */\n  .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }\n  .debug_abbrev   0 : { *(.debug_abbrev) }\n  .debug_line     0 : { *(.debug_line .debug_line.* .debug_line_end ) }\n  .debug_frame    0 : { *(.debug_frame) }\n  .debug_str      0 : { *(.debug_str) }\n  .debug_loc      0 : { *(.debug_loc) }\n  .debug_macinfo  0 : { *(.debug_macinfo) }\n  /* SGI/MIPS DWARF 2 extensions */\n  .debug_weaknames 0 : { *(.debug_weaknames) }\n  .debug_funcnames 0 : { *(.debug_funcnames) }\n  .debug_typenames 0 : { *(.debug_typenames) }\n  .debug_varnames  0 : { *(.debug_varnames) }\n  /* DWARF 3 */\n  .debug_pubtypes 0 : { *(.debug_pubtypes) }\n  .debug_ranges   0 : { *(.debug_ranges) }\n  /* DWARF Extension.  */\n  .debug_macro    0 : { *(.debug_macro) }\n  .debug_addr     0 : { *(.debug_addr) }\n  .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) }\n  /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) }\n}\n\n"\n                                )" ( identifier , (string_literal "".buildid"" " string_content ") , (string_literal ""*/\n  .debug_aranges  0 : { *(.debug_aranges) }\n  .debug_pubnames 0 : { *(.debug_pubnames) }\n  /* DWARF 2 */\n  .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }\n  .debug_abbrev   0 : { *(.debug_abbrev) }\n  .debug_line     0 : { *(.debug_line .debug_line.* .debug_line_end ) }\n  .debug_frame    0 : { *(.debug_frame) }\n  .debug_str      0 : { *(.debug_str) }\n  .debug_loc      0 : { *(.debug_loc) }\n  .debug_macinfo  0 : { *(.debug_macinfo) }\n  /* SGI/MIPS DWARF 2 extensions */\n  .debug_weaknames 0 : { *(.debug_weaknames) }\n  .debug_funcnames 0 : { *(.debug_funcnames) }\n  .debug_typenames 0 : { *(.debug_typenames) }\n  .debug_varnames  0 : { *(.debug_varnames) }\n  /* DWARF 3 */\n  .debug_pubtypes 0 : { *(.debug_pubtypes) }\n  .debug_ranges   0 : { *(.debug_ranges) }\n  /* DWARF Extension.  */\n  .debug_macro    0 : { *(.debug_macro) }\n  .debug_addr     0 : { *(.debug_addr) }\n  .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) }\n  /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) }\n}\n\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence escape_sequence ") ))))) ;) (expression_statement "pbVar12 = link_info.output_bfd;" (assignment_expression "pbVar12 = link_info.output_bfd" identifier = (field_expression "link_info.output_bfd" identifier . field_identifier)) ;) (if_statement "if (paVar11 != (asection *)0x0) {\n              ppVar3 = ((link_info.output_bfd)->tdata).pe_obj_data;\n              (ppVar3->build_id).after_write_object_contents = write_build_id;\n              pcVar16 = emit_build_id;\n              iVar19 = (ppVar3->coff).pe;\n              (ppVar3->build_id).sec = paVar11;\n              (ppVar3->build_id).style = pcVar16;\n              *(undefined4 *)&paVar11->size = 0x35;\n              *(undefined4 *)((int)&paVar11->size + 4) = 0;\n              goto joined_r0x00056729;\n            }" if (parenthesized_expression "(paVar11 != (asection *)0x0)" ( (binary_expression "paVar11 != (asection *)0x0" identifier != (cast_expression "(asection *)0x0" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              ppVar3 = ((link_info.output_bfd)->tdata).pe_obj_data;\n              (ppVar3->build_id).after_write_object_contents = write_build_id;\n              pcVar16 = emit_build_id;\n              iVar19 = (ppVar3->coff).pe;\n              (ppVar3->build_id).sec = paVar11;\n              (ppVar3->build_id).style = pcVar16;\n              *(undefined4 *)&paVar11->size = 0x35;\n              *(undefined4 *)((int)&paVar11->size + 4) = 0;\n              goto joined_r0x00056729;\n            }" { (expression_statement "ppVar3 = ((link_info.output_bfd)->tdata).pe_obj_data;" (assignment_expression "ppVar3 = ((link_info.output_bfd)->tdata).pe_obj_data" identifier = (field_expression "((link_info.output_bfd)->tdata).pe_obj_data" (parenthesized_expression "((link_info.output_bfd)->tdata)" ( (field_expression "(link_info.output_bfd)->tdata" (parenthesized_expression "(link_info.output_bfd)" ( (field_expression "link_info.output_bfd" identifier . field_identifier) )) -> field_identifier) )) . field_identifier)) ;) (expression_statement "(ppVar3->build_id).after_write_object_contents = write_build_id;" (assignment_expression "(ppVar3->build_id).after_write_object_contents = write_build_id" (field_expression "(ppVar3->build_id).after_write_object_contents" (parenthesized_expression "(ppVar3->build_id)" ( (field_expression "ppVar3->build_id" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "pcVar16 = emit_build_id;" (assignment_expression "pcVar16 = emit_build_id" identifier = identifier) ;) (expression_statement "iVar19 = (ppVar3->coff).pe;" (assignment_expression "iVar19 = (ppVar3->coff).pe" identifier = (field_expression "(ppVar3->coff).pe" (parenthesized_expression "(ppVar3->coff)" ( (field_expression "ppVar3->coff" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "(ppVar3->build_id).sec = paVar11;" (assignment_expression "(ppVar3->build_id).sec = paVar11" (field_expression "(ppVar3->build_id).sec" (parenthesized_expression "(ppVar3->build_id)" ( (field_expression "ppVar3->build_id" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "(ppVar3->build_id).style = pcVar16;" (assignment_expression "(ppVar3->build_id).style = pcVar16" (field_expression "(ppVar3->build_id).style" (parenthesized_expression "(ppVar3->build_id)" ( (field_expression "ppVar3->build_id" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "*(undefined4 *)&paVar11->size = 0x35;" (assignment_expression "*(undefined4 *)&paVar11->size = 0x35" (pointer_expression "*(undefined4 *)&paVar11->size" * (cast_expression "(undefined4 *)&paVar11->size" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&paVar11->size" & (field_expression "paVar11->size" identifier -> field_identifier)))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)&paVar11->size + 4) = 0;" (assignment_expression "*(undefined4 *)((int)&paVar11->size + 4) = 0" (pointer_expression "*(undefined4 *)((int)&paVar11->size + 4)" * (cast_expression "(undefined4 *)((int)&paVar11->size + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&paVar11->size + 4)" ( (binary_expression "(int)&paVar11->size + 4" (cast_expression "(int)&paVar11->size" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&paVar11->size" & (field_expression "paVar11->size" identifier -> field_identifier))) + number_literal) )))) = number_literal) ;) (goto_statement "goto joined_r0x00056729;" goto statement_identifier ;) })) (expression_statement "pcVar16 = "%P: warning: cannot create .buildid section, --build-id ignored\n";" (assignment_expression "pcVar16 = "%P: warning: cannot create .buildid section, --build-id ignored\n"" identifier = (string_literal ""%P: warning: cannot create .buildid section, --build-id ignored\n"" " string_content escape_sequence ")) ;) }))) (expression_statement "pcVar16 = (char *)dcgettext(0,pcVar16,5);" (assignment_expression "pcVar16 = (char *)dcgettext(0,pcVar16,5)" identifier = (cast_expression "(char *)dcgettext(0,pcVar16,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,pcVar16,5)" identifier (argument_list "(0,pcVar16,5)" ( number_literal , identifier , number_literal ))))) ;) (expression_statement "einfo(pcVar16);" (call_expression "einfo(pcVar16)" identifier (argument_list "(pcVar16)" ( identifier ))) ;) (break_statement "break;" break ;) })) })) (labeled_statement "LAB_00056a59:\n      free(emit_build_id);" statement_identifier : (expression_statement "free(emit_build_id);" (call_expression "free(emit_build_id)" identifier (argument_list "(emit_build_id)" ( identifier ))) ;)) (expression_statement "emit_build_id = (char *)0x0;" (assignment_expression "emit_build_id = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) }) (else_clause "else {\n    printf("%s()\n","gld_i386pe_after_open");\n    for (pbVar18 = (link_info.hash)->undefs; pbVar18 != (bfd_link_hash_entry *)0x0;\n        pbVar18 = (pbVar18->u).undef.next) {\n      printf("-%s\n",(pbVar18->root).string);\n    }\n    bfd_hash_traverse(link_info.hash,pr_sym,0);\n    pbVar12 = link_info.input_bfds;\n    if (link_info.input_bfds != (bfd *)0x0) {\n      do {\n        printf("*%s\n",pbVar12->filename);\n        paVar1 = &pbVar12->link;\n        pbVar12 = paVar1->next;\n      } while (paVar1->next != (bfd *)0x0);\n      goto LAB_00056682;\n    }\n    if (emit_build_id != (char *)0x0) goto LAB_00056a59;\n  }" else (compound_statement "{\n    printf("%s()\n","gld_i386pe_after_open");\n    for (pbVar18 = (link_info.hash)->undefs; pbVar18 != (bfd_link_hash_entry *)0x0;\n        pbVar18 = (pbVar18->u).undef.next) {\n      printf("-%s\n",(pbVar18->root).string);\n    }\n    bfd_hash_traverse(link_info.hash,pr_sym,0);\n    pbVar12 = link_info.input_bfds;\n    if (link_info.input_bfds != (bfd *)0x0) {\n      do {\n        printf("*%s\n",pbVar12->filename);\n        paVar1 = &pbVar12->link;\n        pbVar12 = paVar1->next;\n      } while (paVar1->next != (bfd *)0x0);\n      goto LAB_00056682;\n    }\n    if (emit_build_id != (char *)0x0) goto LAB_00056a59;\n  }" { (expression_statement "printf("%s()\n","gld_i386pe_after_open");" (call_expression "printf("%s()\n","gld_i386pe_after_open")" identifier (argument_list "("%s()\n","gld_i386pe_after_open")" ( (string_literal ""%s()\n"" " string_content escape_sequence ") , (string_literal ""gld_i386pe_after_open"" " string_content ") ))) ;) (for_statement "for (pbVar18 = (link_info.hash)->undefs; pbVar18 != (bfd_link_hash_entry *)0x0;\n        pbVar18 = (pbVar18->u).undef.next) {\n      printf("-%s\n",(pbVar18->root).string);\n    }" for ( (assignment_expression "pbVar18 = (link_info.hash)->undefs" identifier = (field_expression "(link_info.hash)->undefs" (parenthesized_expression "(link_info.hash)" ( (field_expression "link_info.hash" identifier . field_identifier) )) -> field_identifier)) ; (binary_expression "pbVar18 != (bfd_link_hash_entry *)0x0" identifier != (cast_expression "(bfd_link_hash_entry *)0x0" ( (type_descriptor "bfd_link_hash_entry *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "pbVar18 = (pbVar18->u).undef.next" identifier = (field_expression "(pbVar18->u).undef.next" (field_expression "(pbVar18->u).undef" (parenthesized_expression "(pbVar18->u)" ( (field_expression "pbVar18->u" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ) (compound_statement "{\n      printf("-%s\n",(pbVar18->root).string);\n    }" { (expression_statement "printf("-%s\n",(pbVar18->root).string);" (call_expression "printf("-%s\n",(pbVar18->root).string)" identifier (argument_list "("-%s\n",(pbVar18->root).string)" ( (string_literal ""-%s\n"" " string_content escape_sequence ") , (field_expression "(pbVar18->root).string" (parenthesized_expression "(pbVar18->root)" ( (field_expression "pbVar18->root" identifier -> field_identifier) )) . field_identifier) ))) ;) })) (expression_statement "bfd_hash_traverse(link_info.hash,pr_sym,0);" (call_expression "bfd_hash_traverse(link_info.hash,pr_sym,0)" identifier (argument_list "(link_info.hash,pr_sym,0)" ( (field_expression "link_info.hash" identifier . field_identifier) , identifier , number_literal ))) ;) (expression_statement "pbVar12 = link_info.input_bfds;" (assignment_expression "pbVar12 = link_info.input_bfds" identifier = (field_expression "link_info.input_bfds" identifier . field_identifier)) ;) (if_statement "if (link_info.input_bfds != (bfd *)0x0) {\n      do {\n        printf("*%s\n",pbVar12->filename);\n        paVar1 = &pbVar12->link;\n        pbVar12 = paVar1->next;\n      } while (paVar1->next != (bfd *)0x0);\n      goto LAB_00056682;\n    }" if (parenthesized_expression "(link_info.input_bfds != (bfd *)0x0)" ( (binary_expression "link_info.input_bfds != (bfd *)0x0" (field_expression "link_info.input_bfds" identifier . field_identifier) != (cast_expression "(bfd *)0x0" ( (type_descriptor "bfd *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      do {\n        printf("*%s\n",pbVar12->filename);\n        paVar1 = &pbVar12->link;\n        pbVar12 = paVar1->next;\n      } while (paVar1->next != (bfd *)0x0);\n      goto LAB_00056682;\n    }" { (do_statement "do {\n        printf("*%s\n",pbVar12->filename);\n        paVar1 = &pbVar12->link;\n        pbVar12 = paVar1->next;\n      } while (paVar1->next != (bfd *)0x0);" do (compound_statement "{\n        printf("*%s\n",pbVar12->filename);\n        paVar1 = &pbVar12->link;\n        pbVar12 = paVar1->next;\n      }" { (expression_statement "printf("*%s\n",pbVar12->filename);" (call_expression "printf("*%s\n",pbVar12->filename)" identifier (argument_list "("*%s\n",pbVar12->filename)" ( (string_literal ""*%s\n"" " string_content escape_sequence ") , (field_expression "pbVar12->filename" identifier -> field_identifier) ))) ;) (expression_statement "paVar1 = &pbVar12->link;" (assignment_expression "paVar1 = &pbVar12->link" identifier = (pointer_expression "&pbVar12->link" & (field_expression "pbVar12->link" identifier -> field_identifier))) ;) (expression_statement "pbVar12 = paVar1->next;" (assignment_expression "pbVar12 = paVar1->next" identifier = (field_expression "paVar1->next" identifier -> field_identifier)) ;) }) while (parenthesized_expression "(paVar1->next != (bfd *)0x0)" ( (binary_expression "paVar1->next != (bfd *)0x0" (field_expression "paVar1->next" identifier -> field_identifier) != (cast_expression "(bfd *)0x0" ( (type_descriptor "bfd *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (goto_statement "goto LAB_00056682;" goto statement_identifier ;) })) (if_statement "if (emit_build_id != (char *)0x0) goto LAB_00056a59;" if (parenthesized_expression "(emit_build_id != (char *)0x0)" ( (binary_expression "emit_build_id != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00056a59;" goto statement_identifier ;)) }))) (expression_statement "pbVar12 = link_info.output_bfd;" (assignment_expression "pbVar12 = link_info.output_bfd" identifier = (field_expression "link_info.output_bfd" identifier . field_identifier)) ;) (if_statement "if (((link_info.output_bfd)->tdata).coff_obj_data != (coff_tdata *)0x0) {\n    iVar19 = (((link_info.output_bfd)->tdata).coff_obj_data)->pe;\njoined_r0x00056729:\n    if (iVar19 != 0) goto LAB_00056730;\n  }" if (parenthesized_expression "(((link_info.output_bfd)->tdata).coff_obj_data != (coff_tdata *)0x0)" ( (binary_expression "((link_info.output_bfd)->tdata).coff_obj_data != (coff_tdata *)0x0" (field_expression "((link_info.output_bfd)->tdata).coff_obj_data" (parenthesized_expression "((link_info.output_bfd)->tdata)" ( (field_expression "(link_info.output_bfd)->tdata" (parenthesized_expression "(link_info.output_bfd)" ( (field_expression "link_info.output_bfd" identifier . field_identifier) )) -> field_identifier) )) . field_identifier) != (cast_expression "(coff_tdata *)0x0" ( (type_descriptor "coff_tdata *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    iVar19 = (((link_info.output_bfd)->tdata).coff_obj_data)->pe;\njoined_r0x00056729:\n    if (iVar19 != 0) goto LAB_00056730;\n  }" { (expression_statement "iVar19 = (((link_info.output_bfd)->tdata).coff_obj_data)->pe;" (assignment_expression "iVar19 = (((link_info.output_bfd)->tdata).coff_obj_data)->pe" identifier = (field_expression "(((link_info.output_bfd)->tdata).coff_obj_data)->pe" (parenthesized_expression "(((link_info.output_bfd)->tdata).coff_obj_data)" ( (field_expression "((link_info.output_bfd)->tdata).coff_obj_data" (parenthesized_expression "((link_info.output_bfd)->tdata)" ( (field_expression "(link_info.output_bfd)->tdata" (parenthesized_expression "(link_info.output_bfd)" ( (field_expression "link_info.output_bfd" identifier . field_identifier) )) -> field_identifier) )) . field_identifier) )) -> field_identifier)) ;) (labeled_statement "joined_r0x00056729:\n    if (iVar19 != 0) goto LAB_00056730;" statement_identifier : (if_statement "if (iVar19 != 0) goto LAB_00056730;" if (parenthesized_expression "(iVar19 != 0)" ( (binary_expression "iVar19 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00056730;" goto statement_identifier ;))) })) (expression_statement "pcVar16 = (char *)dcgettext(0,"%F%P: cannot perform PE operations on non PE output file \'%pB\'\n"\n                              ,5);" (assignment_expression "pcVar16 = (char *)dcgettext(0,"%F%P: cannot perform PE operations on non PE output file \'%pB\'\n"\n                              ,5)" identifier = (cast_expression "(char *)dcgettext(0,"%F%P: cannot perform PE operations on non PE output file \'%pB\'\n"\n                              ,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"%F%P: cannot perform PE operations on non PE output file \'%pB\'\n"\n                              ,5)" identifier (argument_list "(0,"%F%P: cannot perform PE operations on non PE output file \'%pB\'\n"\n                              ,5)" ( number_literal , (string_literal ""%F%P: cannot perform PE operations on non PE output file \'%pB\'\n"" " string_content escape_sequence string_content escape_sequence escape_sequence ") , number_literal ))))) ;) (expression_statement "einfo(pcVar16,pbVar12);" (call_expression "einfo(pcVar16,pbVar12)" identifier (argument_list "(pcVar16,pbVar12)" ( identifier , identifier ))) ;) (labeled_statement "LAB_00056730:\n  pbVar12 = link_info.output_bfd;" statement_identifier : (expression_statement "pbVar12 = link_info.output_bfd;" (assignment_expression "pbVar12 = link_info.output_bfd" identifier = (field_expression "link_info.output_bfd" identifier . field_identifier)) ;)) (expression_statement "ppVar3 = ((link_info.output_bfd)->tdata).pe_obj_data;" (assignment_expression "ppVar3 = ((link_info.output_bfd)->tdata).pe_obj_data" identifier = (field_expression "((link_info.output_bfd)->tdata).pe_obj_data" (parenthesized_expression "((link_info.output_bfd)->tdata)" ( (field_expression "(link_info.output_bfd)->tdata" (parenthesized_expression "(link_info.output_bfd)" ( (field_expression "link_info.output_bfd" identifier . field_identifier) )) -> field_identifier) )) . field_identifier)) ;) (expression_statement "piVar24 = &pe;" (assignment_expression "piVar24 = &pe" identifier = (pointer_expression "&pe" & identifier)) ;) (expression_statement "piVar29 = &ppVar3->pe_opthdr;" (assignment_expression "piVar29 = &ppVar3->pe_opthdr" identifier = (pointer_expression "&ppVar3->pe_opthdr" & (field_expression "ppVar3->pe_opthdr" identifier -> field_identifier))) ;) (for_statement "for (iVar19 = 0x52; iVar19 != 0; iVar19 = iVar19 + -1) {\n    cVar7 = piVar24->MajorLinkerVersion;\n    cVar8 = piVar24->MinorLinkerVersion;\n    piVar29->Magic = piVar24->Magic;\n    piVar29->MajorLinkerVersion = cVar7;\n    piVar29->MinorLinkerVersion = cVar8;\n    piVar24 = (internal_extra_pe_aouthdr *)((int)piVar24 + ((uint)bVar35 * -2 + 1) * 4);\n    piVar29 = (internal_extra_pe_aouthdr *)((int)piVar29 + (uint)bVar35 * -8 + 4);\n  }" for ( (assignment_expression "iVar19 = 0x52" identifier = number_literal) ; (binary_expression "iVar19 != 0" identifier != number_literal) ; (assignment_expression "iVar19 = iVar19 + -1" identifier = (binary_expression "iVar19 + -1" identifier + number_literal)) ) (compound_statement "{\n    cVar7 = piVar24->MajorLinkerVersion;\n    cVar8 = piVar24->MinorLinkerVersion;\n    piVar29->Magic = piVar24->Magic;\n    piVar29->MajorLinkerVersion = cVar7;\n    piVar29->MinorLinkerVersion = cVar8;\n    piVar24 = (internal_extra_pe_aouthdr *)((int)piVar24 + ((uint)bVar35 * -2 + 1) * 4);\n    piVar29 = (internal_extra_pe_aouthdr *)((int)piVar29 + (uint)bVar35 * -8 + 4);\n  }" { (expression_statement "cVar7 = piVar24->MajorLinkerVersion;" (assignment_expression "cVar7 = piVar24->MajorLinkerVersion" identifier = (field_expression "piVar24->MajorLinkerVersion" identifier -> field_identifier)) ;) (expression_statement "cVar8 = piVar24->MinorLinkerVersion;" (assignment_expression "cVar8 = piVar24->MinorLinkerVersion" identifier = (field_expression "piVar24->MinorLinkerVersion" identifier -> field_identifier)) ;) (expression_statement "piVar29->Magic = piVar24->Magic;" (assignment_expression "piVar29->Magic = piVar24->Magic" (field_expression "piVar29->Magic" identifier -> field_identifier) = (field_expression "piVar24->Magic" identifier -> field_identifier)) ;) (expression_statement "piVar29->MajorLinkerVersion = cVar7;" (assignment_expression "piVar29->MajorLinkerVersion = cVar7" (field_expression "piVar29->MajorLinkerVersion" identifier -> field_identifier) = identifier) ;) (expression_statement "piVar29->MinorLinkerVersion = cVar8;" (assignment_expression "piVar29->MinorLinkerVersion = cVar8" (field_expression "piVar29->MinorLinkerVersion" identifier -> field_identifier) = identifier) ;) (expression_statement "piVar24 = (internal_extra_pe_aouthdr *)((int)piVar24 + ((uint)bVar35 * -2 + 1) * 4);" (assignment_expression "piVar24 = (internal_extra_pe_aouthdr *)((int)piVar24 + ((uint)bVar35 * -2 + 1) * 4)" identifier = (cast_expression "(internal_extra_pe_aouthdr *)((int)piVar24 + ((uint)bVar35 * -2 + 1) * 4)" ( (type_descriptor "internal_extra_pe_aouthdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar24 + ((uint)bVar35 * -2 + 1) * 4)" ( (binary_expression "(int)piVar24 + ((uint)bVar35 * -2 + 1) * 4" (cast_expression "(int)piVar24" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "((uint)bVar35 * -2 + 1) * 4" (parenthesized_expression "((uint)bVar35 * -2 + 1)" ( (binary_expression "(uint)bVar35 * -2 + 1" (binary_expression "(uint)bVar35 * -2" (cast_expression "(uint)bVar35" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal) + number_literal) )) * number_literal)) )))) ;) (expression_statement "piVar29 = (internal_extra_pe_aouthdr *)((int)piVar29 + (uint)bVar35 * -8 + 4);" (assignment_expression "piVar29 = (internal_extra_pe_aouthdr *)((int)piVar29 + (uint)bVar35 * -8 + 4)" identifier = (cast_expression "(internal_extra_pe_aouthdr *)((int)piVar29 + (uint)bVar35 * -8 + 4)" ( (type_descriptor "internal_extra_pe_aouthdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar29 + (uint)bVar35 * -8 + 4)" ( (binary_expression "(int)piVar29 + (uint)bVar35 * -8 + 4" (binary_expression "(int)piVar29 + (uint)bVar35 * -8" (cast_expression "(int)piVar29" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(uint)bVar35 * -8" (cast_expression "(uint)bVar35" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) })) (expression_statement "ppVar3->dll = init[1].value;" (assignment_expression "ppVar3->dll = init[1].value" (field_expression "ppVar3->dll" identifier -> field_identifier) = (field_expression "init[1].value" (subscript_expression "init[1]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "ppVar3->real_flags = ppVar3->real_flags | real_flags;" (assignment_expression "ppVar3->real_flags = ppVar3->real_flags | real_flags" (field_expression "ppVar3->real_flags" identifier -> field_identifier) = (binary_expression "ppVar3->real_flags | real_flags" (field_expression "ppVar3->real_flags" identifier -> field_identifier) | identifier)) ;) (expression_statement "ppVar3->insert_timestamp = insert_timestamp;" (assignment_expression "ppVar3->insert_timestamp = insert_timestamp" (field_expression "ppVar3->insert_timestamp" identifier -> field_identifier) = identifier) ;) (if_statement "if ((pe_use_coff_long_section_names < 0) && ((link_info._1_1_ & 0x60) == 0)) {\n    if ((link_info._0_1_ & 3) == 2) {\n      pe_use_coff_long_section_names = 1;\n    }\n    else if (file_chain.head != (lang_statement_union *)0x0) {\n      plVar26 = file_chain.head;\n      do {\n        found_debug = 0;\n        bfd_map_over_sections((plVar26->wild_statement).section_list,debug_section_p,&found_debug);\n        pbVar12 = link_info.output_bfd;\n        if (found_debug != 0) {\n          pe_use_coff_long_section_names = 1;\n          break;\n        }\n        plVar26 = (plVar26->wild_statement).children.head;\n      } while (plVar26 != (lang_statement_union *)0x0);\n    }\n  }" if (parenthesized_expression "((pe_use_coff_long_section_names < 0) && ((link_info._1_1_ & 0x60) == 0))" ( (binary_expression "(pe_use_coff_long_section_names < 0) && ((link_info._1_1_ & 0x60) == 0)" (parenthesized_expression "(pe_use_coff_long_section_names < 0)" ( (binary_expression "pe_use_coff_long_section_names < 0" identifier < number_literal) )) && (parenthesized_expression "((link_info._1_1_ & 0x60) == 0)" ( (binary_expression "(link_info._1_1_ & 0x60) == 0" (parenthesized_expression "(link_info._1_1_ & 0x60)" ( (binary_expression "link_info._1_1_ & 0x60" (field_expression "link_info._1_1_" identifier . field_identifier) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n    if ((link_info._0_1_ & 3) == 2) {\n      pe_use_coff_long_section_names = 1;\n    }\n    else if (file_chain.head != (lang_statement_union *)0x0) {\n      plVar26 = file_chain.head;\n      do {\n        found_debug = 0;\n        bfd_map_over_sections((plVar26->wild_statement).section_list,debug_section_p,&found_debug);\n        pbVar12 = link_info.output_bfd;\n        if (found_debug != 0) {\n          pe_use_coff_long_section_names = 1;\n          break;\n        }\n        plVar26 = (plVar26->wild_statement).children.head;\n      } while (plVar26 != (lang_statement_union *)0x0);\n    }\n  }" { (if_statement "if ((link_info._0_1_ & 3) == 2) {\n      pe_use_coff_long_section_names = 1;\n    }\n    else if (file_chain.head != (lang_statement_union *)0x0) {\n      plVar26 = file_chain.head;\n      do {\n        found_debug = 0;\n        bfd_map_over_sections((plVar26->wild_statement).section_list,debug_section_p,&found_debug);\n        pbVar12 = link_info.output_bfd;\n        if (found_debug != 0) {\n          pe_use_coff_long_section_names = 1;\n          break;\n        }\n        plVar26 = (plVar26->wild_statement).children.head;\n      } while (plVar26 != (lang_statement_union *)0x0);\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      pe_use_coff_long_section_names = 1;\n    }" { (expression_statement "pe_use_coff_long_section_names = 1;" (assignment_expression "pe_use_coff_long_section_names = 1" identifier = number_literal) ;) }) (else_clause "else if (file_chain.head != (lang_statement_union *)0x0) {\n      plVar26 = file_chain.head;\n      do {\n        found_debug = 0;\n        bfd_map_over_sections((plVar26->wild_statement).section_list,debug_section_p,&found_debug);\n        pbVar12 = link_info.output_bfd;\n        if (found_debug != 0) {\n          pe_use_coff_long_section_names = 1;\n          break;\n        }\n        plVar26 = (plVar26->wild_statement).children.head;\n      } while (plVar26 != (lang_statement_union *)0x0);\n    }" else (if_statement "if (file_chain.head != (lang_statement_union *)0x0) {\n      plVar26 = file_chain.head;\n      do {\n        found_debug = 0;\n        bfd_map_over_sections((plVar26->wild_statement).section_list,debug_section_p,&found_debug);\n        pbVar12 = link_info.output_bfd;\n        if (found_debug != 0) {\n          pe_use_coff_long_section_names = 1;\n          break;\n        }\n        plVar26 = (plVar26->wild_statement).children.head;\n      } while (plVar26 != (lang_statement_union *)0x0);\n    }" if (parenthesized_expression "(file_chain.head != (lang_statement_union *)0x0)" ( (binary_expression "file_chain.head != (lang_statement_union *)0x0" (field_expression "file_chain.head" identifier . field_identifier) != (cast_expression "(lang_statement_union *)0x0" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      plVar26 = file_chain.head;\n      do {\n        found_debug = 0;\n        bfd_map_over_sections((plVar26->wild_statement).section_list,debug_section_p,&found_debug);\n        pbVar12 = link_info.output_bfd;\n        if (found_debug != 0) {\n          pe_use_coff_long_section_names = 1;\n          break;\n        }\n        plVar26 = (plVar26->wild_statement).children.head;\n      } while (plVar26 != (lang_statement_union *)0x0);\n    }" { (expression_statement "plVar26 = file_chain.head;" (assignment_expression "plVar26 = file_chain.head" identifier = (field_expression "file_chain.head" identifier . field_identifier)) ;) (do_statement "do {\n        found_debug = 0;\n        bfd_map_over_sections((plVar26->wild_statement).section_list,debug_section_p,&found_debug);\n        pbVar12 = link_info.output_bfd;\n        if (found_debug != 0) {\n          pe_use_coff_long_section_names = 1;\n          break;\n        }\n        plVar26 = (plVar26->wild_statement).children.head;\n      } while (plVar26 != (lang_statement_union *)0x0);" do (compound_statement "{\n        found_debug = 0;\n        bfd_map_over_sections((plVar26->wild_statement).section_list,debug_section_p,&found_debug);\n        pbVar12 = link_info.output_bfd;\n        if (found_debug != 0) {\n          pe_use_coff_long_section_names = 1;\n          break;\n        }\n        plVar26 = (plVar26->wild_statement).children.head;\n      }" { (expression_statement "found_debug = 0;" (assignment_expression "found_debug = 0" identifier = number_literal) ;) (expression_statement "bfd_map_over_sections((plVar26->wild_statement).section_list,debug_section_p,&found_debug);" (call_expression "bfd_map_over_sections((plVar26->wild_statement).section_list,debug_section_p,&found_debug)" identifier (argument_list "((plVar26->wild_statement).section_list,debug_section_p,&found_debug)" ( (field_expression "(plVar26->wild_statement).section_list" (parenthesized_expression "(plVar26->wild_statement)" ( (field_expression "plVar26->wild_statement" identifier -> field_identifier) )) . field_identifier) , identifier , (pointer_expression "&found_debug" & identifier) ))) ;) (expression_statement "pbVar12 = link_info.output_bfd;" (assignment_expression "pbVar12 = link_info.output_bfd" identifier = (field_expression "link_info.output_bfd" identifier . field_identifier)) ;) (if_statement "if (found_debug != 0) {\n          pe_use_coff_long_section_names = 1;\n          break;\n        }" if (parenthesized_expression "(found_debug != 0)" ( (binary_expression "found_debug != 0" identifier != number_literal) )) (compound_statement "{\n          pe_use_coff_long_section_names = 1;\n          break;\n        }" { (expression_statement "pe_use_coff_long_section_names = 1;" (assignment_expression "pe_use_coff_long_section_names = 1" identifier = number_literal) ;) (break_statement "break;" break ;) })) (expression_statement "plVar26 = (plVar26->wild_statement).children.head;" (assignment_expression "plVar26 = (plVar26->wild_statement).children.head" identifier = (field_expression "(plVar26->wild_statement).children.head" (field_expression "(plVar26->wild_statement).children" (parenthesized_expression "(plVar26->wild_statement)" ( (field_expression "plVar26->wild_statement" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) }) while (parenthesized_expression "(plVar26 != (lang_statement_union *)0x0)" ( (binary_expression "plVar26 != (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 "pe_output_file_set_long_section_names(pbVar12);" (call_expression "pe_output_file_set_long_section_names(pbVar12)" identifier (argument_list "(pbVar12)" ( identifier ))) ;) (expression_statement "pe_process_import_defs(link_info.output_bfd,&link_info);" (call_expression "pe_process_import_defs(link_info.output_bfd,&link_info)" identifier (argument_list "(link_info.output_bfd,&link_info)" ( (field_expression "link_info.output_bfd" identifier . field_identifier) , (pointer_expression "&link_info" & identifier) ))) ;) (if_statement "if (link_info.pei386_auto_import != 0) {\n    iVar19 = is_underscoring();\n    pcVar16 = "_head_";\n    if (iVar19 != 0) {\n      pcVar16 = "__head_";\n    }\n    pe_find_data_imports(pcVar16,make_import_fixup);\n  }" if (parenthesized_expression "(link_info.pei386_auto_import != 0)" ( (binary_expression "link_info.pei386_auto_import != 0" (field_expression "link_info.pei386_auto_import" identifier . field_identifier) != number_literal) )) (compound_statement "{\n    iVar19 = is_underscoring();\n    pcVar16 = "_head_";\n    if (iVar19 != 0) {\n      pcVar16 = "__head_";\n    }\n    pe_find_data_imports(pcVar16,make_import_fixup);\n  }" { (expression_statement "iVar19 = is_underscoring();" (assignment_expression "iVar19 = is_underscoring()" identifier = (call_expression "is_underscoring()" identifier (argument_list "()" ( )))) ;) (expression_statement "pcVar16 = "_head_";" (assignment_expression "pcVar16 = "_head_"" identifier = (string_literal ""_head_"" " string_content ")) ;) (if_statement "if (iVar19 != 0) {\n      pcVar16 = "__head_";\n    }" if (parenthesized_expression "(iVar19 != 0)" ( (binary_expression "iVar19 != 0" identifier != number_literal) )) (compound_statement "{\n      pcVar16 = "__head_";\n    }" { (expression_statement "pcVar16 = "__head_";" (assignment_expression "pcVar16 = "__head_"" identifier = (string_literal ""__head_"" " string_content ")) ;) })) (expression_statement "pe_find_data_imports(pcVar16,make_import_fixup);" (call_expression "pe_find_data_imports(pcVar16,make_import_fixup)" identifier (argument_list "(pcVar16,make_import_fixup)" ( identifier , identifier ))) ;) })) (if_statement "if (pe_enable_stdcall_fixup != 0) {\n    if (pe_dll_extra_pe_debug != 0) {\n      puts("pe_fixup_stdcalls");\n    }\n    for (pbVar18 = (link_info.hash)->undefs; pbVar18 != (bfd_link_hash_entry *)0x0;\n        pbVar18 = (pbVar18->u).undef.next) {\n      if (pbVar18->field_0xc == '\x01') {\n        pcVar16 = (pbVar18->root).string;\n        if (*pcVar16 == '@') {\n          pcVar15 = strchr(pcVar16 + 1,0x40);\n          pcVar16 = (char *)xstrdup(pcVar16);\n          *pcVar16 = '_';\n          if (pcVar15 != (char *)0x0) goto LAB_00057061;\n        }\n        else {\n          pcVar15 = strchr(pcVar16,0x40);\n          if (pcVar15 == (char *)0x0) {\n            pe_undef_found_sym = (bfd_link_hash_entry *)0x0;\n            bfd_link_hash_traverse(link_info.hash,pe_undef_cdecl_match,pcVar16);\n            if (pe_undef_found_sym != (bfd_link_hash_entry *)0x0) {\n              change_undef(pbVar18,pe_undef_found_sym);\n            }\n            goto LAB_00056fa8;\n          }\n          pcVar16 = (char *)xstrdup(pcVar16);\nLAB_00057061:\n          pcVar15 = strchr(pcVar16,0x40);\n          *pcVar15 = '\0';\n        }\n        sym = (bfd_link_hash_entry *)bfd_link_hash_lookup(link_info.hash,pcVar16,0,0,1);\n        if ((sym != (bfd_link_hash_entry *)0x0) && (sym->field_0xc == '\x03')) {\n          change_undef(pbVar18,sym);\n        }\n      }\nLAB_00056fa8:\n    }\n  }" if (parenthesized_expression "(pe_enable_stdcall_fixup != 0)" ( (binary_expression "pe_enable_stdcall_fixup != 0" identifier != number_literal) )) (compound_statement "{\n    if (pe_dll_extra_pe_debug != 0) {\n      puts("pe_fixup_stdcalls");\n    }\n    for (pbVar18 = (link_info.hash)->undefs; pbVar18 != (bfd_link_hash_entry *)0x0;\n        pbVar18 = (pbVar18->u).undef.next) {\n      if (pbVar18->field_0xc == '\x01') {\n        pcVar16 = (pbVar18->root).string;\n        if (*pcVar16 == '@') {\n          pcVar15 = strchr(pcVar16 + 1,0x40);\n          pcVar16 = (char *)xstrdup(pcVar16);\n          *pcVar16 = '_';\n          if (pcVar15 != (char *)0x0) goto LAB_00057061;\n        }\n        else {\n          pcVar15 = strchr(pcVar16,0x40);\n          if (pcVar15 == (char *)0x0) {\n            pe_undef_found_sym = (bfd_link_hash_entry *)0x0;\n            bfd_link_hash_traverse(link_info.hash,pe_undef_cdecl_match,pcVar16);\n            if (pe_undef_found_sym != (bfd_link_hash_entry *)0x0) {\n              change_undef(pbVar18,pe_undef_found_sym);\n            }\n            goto LAB_00056fa8;\n          }\n          pcVar16 = (char *)xstrdup(pcVar16);\nLAB_00057061:\n          pcVar15 = strchr(pcVar16,0x40);\n          *pcVar15 = '\0';\n        }\n        sym = (bfd_link_hash_entry *)bfd_link_hash_lookup(link_info.hash,pcVar16,0,0,1);\n        if ((sym != (bfd_link_hash_entry *)0x0) && (sym->field_0xc == '\x03')) {\n          change_undef(pbVar18,sym);\n        }\n      }\nLAB_00056fa8:\n    }\n  }" { (if_statement "if (pe_dll_extra_pe_debug != 0) {\n      puts("pe_fixup_stdcalls");\n    }" if (parenthesized_expression "(pe_dll_extra_pe_debug != 0)" ( (binary_expression "pe_dll_extra_pe_debug != 0" identifier != number_literal) )) (compound_statement "{\n      puts("pe_fixup_stdcalls");\n    }" { (expression_statement "puts("pe_fixup_stdcalls");" (call_expression "puts("pe_fixup_stdcalls")" identifier (argument_list "("pe_fixup_stdcalls")" ( (string_literal ""pe_fixup_stdcalls"" " string_content ") ))) ;) })) (for_statement "for (pbVar18 = (link_info.hash)->undefs; pbVar18 != (bfd_link_hash_entry *)0x0;\n        pbVar18 = (pbVar18->u).undef.next) {\n      if (pbVar18->field_0xc == '\x01') {\n        pcVar16 = (pbVar18->root).string;\n        if (*pcVar16 == '@') {\n          pcVar15 = strchr(pcVar16 + 1,0x40);\n          pcVar16 = (char *)xstrdup(pcVar16);\n          *pcVar16 = '_';\n          if (pcVar15 != (char *)0x0) goto LAB_00057061;\n        }\n        else {\n          pcVar15 = strchr(pcVar16,0x40);\n          if (pcVar15 == (char *)0x0) {\n            pe_undef_found_sym = (bfd_link_hash_entry *)0x0;\n            bfd_link_hash_traverse(link_info.hash,pe_undef_cdecl_match,pcVar16);\n            if (pe_undef_found_sym != (bfd_link_hash_entry *)0x0) {\n              change_undef(pbVar18,pe_undef_found_sym);\n            }\n            goto LAB_00056fa8;\n          }\n          pcVar16 = (char *)xstrdup(pcVar16);\nLAB_00057061:\n          pcVar15 = strchr(pcVar16,0x40);\n          *pcVar15 = '\0';\n        }\n        sym = (bfd_link_hash_entry *)bfd_link_hash_lookup(link_info.hash,pcVar16,0,0,1);\n        if ((sym != (bfd_link_hash_entry *)0x0) && (sym->field_0xc == '\x03')) {\n          change_undef(pbVar18,sym);\n        }\n      }\nLAB_00056fa8:\n    }" for ( (assignment_expression "pbVar18 = (link_info.hash)->undefs" identifier = (field_expression "(link_info.hash)->undefs" (parenthesized_expression "(link_info.hash)" ( (field_expression "link_info.hash" identifier . field_identifier) )) -> field_identifier)) ; (binary_expression "pbVar18 != (bfd_link_hash_entry *)0x0" identifier != (cast_expression "(bfd_link_hash_entry *)0x0" ( (type_descriptor "bfd_link_hash_entry *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "pbVar18 = (pbVar18->u).undef.next" identifier = (field_expression "(pbVar18->u).undef.next" (field_expression "(pbVar18->u).undef" (parenthesized_expression "(pbVar18->u)" ( (field_expression "pbVar18->u" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ) (compound_statement "{\n      if (pbVar18->field_0xc == '\x01') {\n        pcVar16 = (pbVar18->root).string;\n        if (*pcVar16 == '@') {\n          pcVar15 = strchr(pcVar16 + 1,0x40);\n          pcVar16 = (char *)xstrdup(pcVar16);\n          *pcVar16 = '_';\n          if (pcVar15 != (char *)0x0) goto LAB_00057061;\n        }\n        else {\n          pcVar15 = strchr(pcVar16,0x40);\n          if (pcVar15 == (char *)0x0) {\n            pe_undef_found_sym = (bfd_link_hash_entry *)0x0;\n            bfd_link_hash_traverse(link_info.hash,pe_undef_cdecl_match,pcVar16);\n            if (pe_undef_found_sym != (bfd_link_hash_entry *)0x0) {\n              change_undef(pbVar18,pe_undef_found_sym);\n            }\n            goto LAB_00056fa8;\n          }\n          pcVar16 = (char *)xstrdup(pcVar16);\nLAB_00057061:\n          pcVar15 = strchr(pcVar16,0x40);\n          *pcVar15 = '\0';\n        }\n        sym = (bfd_link_hash_entry *)bfd_link_hash_lookup(link_info.hash,pcVar16,0,0,1);\n        if ((sym != (bfd_link_hash_entry *)0x0) && (sym->field_0xc == '\x03')) {\n          change_undef(pbVar18,sym);\n        }\n      }\nLAB_00056fa8:\n    }" { (if_statement "if (pbVar18->field_0xc == '\x01') {\n        pcVar16 = (pbVar18->root).string;\n        if (*pcVar16 == '@') {\n          pcVar15 = strchr(pcVar16 + 1,0x40);\n          pcVar16 = (char *)xstrdup(pcVar16);\n          *pcVar16 = '_';\n          if (pcVar15 != (char *)0x0) goto LAB_00057061;\n        }\n        else {\n          pcVar15 = strchr(pcVar16,0x40);\n          if (pcVar15 == (char *)0x0) {\n            pe_undef_found_sym = (bfd_link_hash_entry *)0x0;\n            bfd_link_hash_traverse(link_info.hash,pe_undef_cdecl_match,pcVar16);\n            if (pe_undef_found_sym != (bfd_link_hash_entry *)0x0) {\n              change_undef(pbVar18,pe_undef_found_sym);\n            }\n            goto LAB_00056fa8;\n          }\n          pcVar16 = (char *)xstrdup(pcVar16);\nLAB_00057061:\n          pcVar15 = strchr(pcVar16,0x40);\n          *pcVar15 = '\0';\n        }\n        sym = (bfd_link_hash_entry *)bfd_link_hash_lookup(link_info.hash,pcVar16,0,0,1);\n        if ((sym != (bfd_link_hash_entry *)0x0) && (sym->field_0xc == '\x03')) {\n          change_undef(pbVar18,sym);\n        }\n      }" if (parenthesized_expression "(pbVar18->field_0xc == '\x01')" ( (binary_expression "pbVar18->field_0xc == '\x01'" (field_expression "pbVar18->field_0xc" identifier -> field_identifier) == (char_literal "'\x01'" ' escape_sequence ')) )) (compound_statement "{\n        pcVar16 = (pbVar18->root).string;\n        if (*pcVar16 == '@') {\n          pcVar15 = strchr(pcVar16 + 1,0x40);\n          pcVar16 = (char *)xstrdup(pcVar16);\n          *pcVar16 = '_';\n          if (pcVar15 != (char *)0x0) goto LAB_00057061;\n        }\n        else {\n          pcVar15 = strchr(pcVar16,0x40);\n          if (pcVar15 == (char *)0x0) {\n            pe_undef_found_sym = (bfd_link_hash_entry *)0x0;\n            bfd_link_hash_traverse(link_info.hash,pe_undef_cdecl_match,pcVar16);\n            if (pe_undef_found_sym != (bfd_link_hash_entry *)0x0) {\n              change_undef(pbVar18,pe_undef_found_sym);\n            }\n            goto LAB_00056fa8;\n          }\n          pcVar16 = (char *)xstrdup(pcVar16);\nLAB_00057061:\n          pcVar15 = strchr(pcVar16,0x40);\n          *pcVar15 = '\0';\n        }\n        sym = (bfd_link_hash_entry *)bfd_link_hash_lookup(link_info.hash,pcVar16,0,0,1);\n        if ((sym != (bfd_link_hash_entry *)0x0) && (sym->field_0xc == '\x03')) {\n          change_undef(pbVar18,sym);\n        }\n      }" { (expression_statement "pcVar16 = (pbVar18->root).string;" (assignment_expression "pcVar16 = (pbVar18->root).string" identifier = (field_expression "(pbVar18->root).string" (parenthesized_expression "(pbVar18->root)" ( (field_expression "pbVar18->root" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if (*pcVar16 == '@') {\n          pcVar15 = strchr(pcVar16 + 1,0x40);\n          pcVar16 = (char *)xstrdup(pcVar16);\n          *pcVar16 = '_';\n          if (pcVar15 != (char *)0x0) goto LAB_00057061;\n        }\n        else {\n          pcVar15 = strchr(pcVar16,0x40);\n          if (pcVar15 == (char *)0x0) {\n            pe_undef_found_sym = (bfd_link_hash_entry *)0x0;\n            bfd_link_hash_traverse(link_info.hash,pe_undef_cdecl_match,pcVar16);\n            if (pe_undef_found_sym != (bfd_link_hash_entry *)0x0) {\n              change_undef(pbVar18,pe_undef_found_sym);\n            }\n            goto LAB_00056fa8;\n          }\n          pcVar16 = (char *)xstrdup(pcVar16);\nLAB_00057061:\n          pcVar15 = strchr(pcVar16,0x40);\n          *pcVar15 = '\0';\n        }" if (parenthesized_expression "(*pcVar16 == '@')" ( (binary_expression "*pcVar16 == '@'" (pointer_expression "*pcVar16" * identifier) == (char_literal "'@'" ' character ')) )) (compound_statement "{\n          pcVar15 = strchr(pcVar16 + 1,0x40);\n          pcVar16 = (char *)xstrdup(pcVar16);\n          *pcVar16 = '_';\n          if (pcVar15 != (char *)0x0) goto LAB_00057061;\n        }" { (expression_statement "pcVar15 = strchr(pcVar16 + 1,0x40);" (assignment_expression "pcVar15 = strchr(pcVar16 + 1,0x40)" identifier = (call_expression "strchr(pcVar16 + 1,0x40)" identifier (argument_list "(pcVar16 + 1,0x40)" ( (binary_expression "pcVar16 + 1" identifier + number_literal) , number_literal )))) ;) (expression_statement "pcVar16 = (char *)xstrdup(pcVar16);" (assignment_expression "pcVar16 = (char *)xstrdup(pcVar16)" identifier = (cast_expression "(char *)xstrdup(pcVar16)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xstrdup(pcVar16)" identifier (argument_list "(pcVar16)" ( identifier ))))) ;) (expression_statement "*pcVar16 = '_';" (assignment_expression "*pcVar16 = '_'" (pointer_expression "*pcVar16" * identifier) = (char_literal "'_'" ' character ')) ;) (if_statement "if (pcVar15 != (char *)0x0) goto LAB_00057061;" if (parenthesized_expression "(pcVar15 != (char *)0x0)" ( (binary_expression "pcVar15 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00057061;" goto statement_identifier ;)) }) (else_clause "else {\n          pcVar15 = strchr(pcVar16,0x40);\n          if (pcVar15 == (char *)0x0) {\n            pe_undef_found_sym = (bfd_link_hash_entry *)0x0;\n            bfd_link_hash_traverse(link_info.hash,pe_undef_cdecl_match,pcVar16);\n            if (pe_undef_found_sym != (bfd_link_hash_entry *)0x0) {\n              change_undef(pbVar18,pe_undef_found_sym);\n            }\n            goto LAB_00056fa8;\n          }\n          pcVar16 = (char *)xstrdup(pcVar16);\nLAB_00057061:\n          pcVar15 = strchr(pcVar16,0x40);\n          *pcVar15 = '\0';\n        }" else (compound_statement "{\n          pcVar15 = strchr(pcVar16,0x40);\n          if (pcVar15 == (char *)0x0) {\n            pe_undef_found_sym = (bfd_link_hash_entry *)0x0;\n            bfd_link_hash_traverse(link_info.hash,pe_undef_cdecl_match,pcVar16);\n            if (pe_undef_found_sym != (bfd_link_hash_entry *)0x0) {\n              change_undef(pbVar18,pe_undef_found_sym);\n            }\n            goto LAB_00056fa8;\n          }\n          pcVar16 = (char *)xstrdup(pcVar16);\nLAB_00057061:\n          pcVar15 = strchr(pcVar16,0x40);\n          *pcVar15 = '\0';\n        }" { (expression_statement "pcVar15 = strchr(pcVar16,0x40);" (assignment_expression "pcVar15 = strchr(pcVar16,0x40)" identifier = (call_expression "strchr(pcVar16,0x40)" identifier (argument_list "(pcVar16,0x40)" ( identifier , number_literal )))) ;) (if_statement "if (pcVar15 == (char *)0x0) {\n            pe_undef_found_sym = (bfd_link_hash_entry *)0x0;\n            bfd_link_hash_traverse(link_info.hash,pe_undef_cdecl_match,pcVar16);\n            if (pe_undef_found_sym != (bfd_link_hash_entry *)0x0) {\n              change_undef(pbVar18,pe_undef_found_sym);\n            }\n            goto LAB_00056fa8;\n          }" if (parenthesized_expression "(pcVar15 == (char *)0x0)" ( (binary_expression "pcVar15 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            pe_undef_found_sym = (bfd_link_hash_entry *)0x0;\n            bfd_link_hash_traverse(link_info.hash,pe_undef_cdecl_match,pcVar16);\n            if (pe_undef_found_sym != (bfd_link_hash_entry *)0x0) {\n              change_undef(pbVar18,pe_undef_found_sym);\n            }\n            goto LAB_00056fa8;\n          }" { (expression_statement "pe_undef_found_sym = (bfd_link_hash_entry *)0x0;" (assignment_expression "pe_undef_found_sym = (bfd_link_hash_entry *)0x0" identifier = (cast_expression "(bfd_link_hash_entry *)0x0" ( (type_descriptor "bfd_link_hash_entry *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "bfd_link_hash_traverse(link_info.hash,pe_undef_cdecl_match,pcVar16);" (call_expression "bfd_link_hash_traverse(link_info.hash,pe_undef_cdecl_match,pcVar16)" identifier (argument_list "(link_info.hash,pe_undef_cdecl_match,pcVar16)" ( (field_expression "link_info.hash" identifier . field_identifier) , identifier , identifier ))) ;) (if_statement "if (pe_undef_found_sym != (bfd_link_hash_entry *)0x0) {\n              change_undef(pbVar18,pe_undef_found_sym);\n            }" if (parenthesized_expression "(pe_undef_found_sym != (bfd_link_hash_entry *)0x0)" ( (binary_expression "pe_undef_found_sym != (bfd_link_hash_entry *)0x0" identifier != (cast_expression "(bfd_link_hash_entry *)0x0" ( (type_descriptor "bfd_link_hash_entry *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              change_undef(pbVar18,pe_undef_found_sym);\n            }" { (expression_statement "change_undef(pbVar18,pe_undef_found_sym);" (call_expression "change_undef(pbVar18,pe_undef_found_sym)" identifier (argument_list "(pbVar18,pe_undef_found_sym)" ( identifier , identifier ))) ;) })) (goto_statement "goto LAB_00056fa8;" goto statement_identifier ;) })) (expression_statement "pcVar16 = (char *)xstrdup(pcVar16);" (assignment_expression "pcVar16 = (char *)xstrdup(pcVar16)" identifier = (cast_expression "(char *)xstrdup(pcVar16)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xstrdup(pcVar16)" identifier (argument_list "(pcVar16)" ( identifier ))))) ;) (labeled_statement "LAB_00057061:\n          pcVar15 = strchr(pcVar16,0x40);" statement_identifier : (expression_statement "pcVar15 = strchr(pcVar16,0x40);" (assignment_expression "pcVar15 = strchr(pcVar16,0x40)" identifier = (call_expression "strchr(pcVar16,0x40)" identifier (argument_list "(pcVar16,0x40)" ( identifier , number_literal )))) ;)) (expression_statement "*pcVar15 = '\0';" (assignment_expression "*pcVar15 = '\0'" (pointer_expression "*pcVar15" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) }))) (expression_statement "sym = (bfd_link_hash_entry *)bfd_link_hash_lookup(link_info.hash,pcVar16,0,0,1);" (assignment_expression "sym = (bfd_link_hash_entry *)bfd_link_hash_lookup(link_info.hash,pcVar16,0,0,1)" identifier = (cast_expression "(bfd_link_hash_entry *)bfd_link_hash_lookup(link_info.hash,pcVar16,0,0,1)" ( (type_descriptor "bfd_link_hash_entry *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "bfd_link_hash_lookup(link_info.hash,pcVar16,0,0,1)" identifier (argument_list "(link_info.hash,pcVar16,0,0,1)" ( (field_expression "link_info.hash" identifier . field_identifier) , identifier , number_literal , number_literal , number_literal ))))) ;) (if_statement "if ((sym != (bfd_link_hash_entry *)0x0) && (sym->field_0xc == '\x03')) {\n          change_undef(pbVar18,sym);\n        }" if (parenthesized_expression "((sym != (bfd_link_hash_entry *)0x0) && (sym->field_0xc == '\x03'))" ( (binary_expression "(sym != (bfd_link_hash_entry *)0x0) && (sym->field_0xc == '\x03')" (parenthesized_expression "(sym != (bfd_link_hash_entry *)0x0)" ( (binary_expression "sym != (bfd_link_hash_entry *)0x0" identifier != (cast_expression "(bfd_link_hash_entry *)0x0" ( (type_descriptor "bfd_link_hash_entry *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(sym->field_0xc == '\x03')" ( (binary_expression "sym->field_0xc == '\x03'" (field_expression "sym->field_0xc" identifier -> field_identifier) == (char_literal "'\x03'" ' escape_sequence ')) ))) )) (compound_statement "{\n          change_undef(pbVar18,sym);\n        }" { (expression_statement "change_undef(pbVar18,sym);" (call_expression "change_undef(pbVar18,sym)" identifier (argument_list "(pbVar18,sym)" ( identifier , identifier ))) ;) })) })) (labeled_statement "LAB_00056fa8:" statement_identifier : (expression_statement "" ;)) })) })) (if_statement "if ((link_info._0_1_ & 3) != 2) {\n    pe_dll_build_sections(link_info.output_bfd,&link_info);\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    pe_dll_build_sections(link_info.output_bfd,&link_info);\n  }" { (expression_statement "pe_dll_build_sections(link_info.output_bfd,&link_info);" (call_expression "pe_dll_build_sections(link_info.output_bfd,&link_info)" 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 "local_40 = file_chain.head;" (assignment_expression "local_40 = file_chain.head" identifier = (field_expression "file_chain.head" identifier . field_identifier)) ;) (if_statement "if (file_chain.head != (lang_statement_union *)0x0) {\n    do {\n      pbVar12 = (local_40->input_statement).the_bfd;\n      if ((pbVar12->my_archive != (bfd *)0x0) &&\n         (local_38 = pbVar12->sections, local_38 != (bfd_section *)0x0)) {\n        iVar19 = 0;\n        bVar34 = true;\n        pbVar17 = local_38;\n        bVar6 = 0;\n        bVar21 = false;\n        do {\n          bVar32 = false;\n          iVar20 = 9;\n          pbVar27 = (byte *)pbVar17->name;\n          pbVar30 = (byte *)".idata$2";\n          do {\n            if (iVar20 == 0) break;\n            iVar20 = iVar20 + -1;\n            bVar32 = *pbVar27 < *pbVar30;\n            bVar34 = *pbVar27 == *pbVar30;\n            pbVar27 = pbVar27 + (uint)bVar35 * -2 + 1;\n            pbVar30 = pbVar30 + (uint)bVar35 * -2 + 1;\n          } while (bVar34);\n          bVar33 = false;\n          bVar34 = (!bVar32 && !bVar34) == bVar32;\n          bVar32 = true;\n          if (!bVar34) {\n            bVar32 = bVar21;\n          }\n          iVar20 = 7;\n          pbVar27 = (byte *)pbVar17->name;\n          pbVar30 = (byte *)".idata$";\n          do {\n            if (iVar20 == 0) break;\n            iVar20 = iVar20 + -1;\n            bVar33 = *pbVar27 < *pbVar30;\n            bVar34 = *pbVar27 == *pbVar30;\n            pbVar27 = pbVar27 + (uint)bVar35 * -2 + 1;\n            pbVar30 = pbVar30 + (uint)bVar35 * -2 + 1;\n          } while (bVar34);\n          bVar9 = 1;\n          if ((!bVar33 && !bVar34) != bVar33) {\n            bVar9 = bVar6;\n          }\n          iVar19 = iVar19 + pbVar17->reloc_count;\n          pbVar17 = pbVar17->next;\n          bVar34 = pbVar17 == (bfd_section *)0x0;\n          bVar6 = bVar9;\n          bVar21 = bVar32;\n        } while (!bVar34);\n        if (((bool)(bVar9 & iVar19 != 0)) && (!bVar32)) {\n          while (iVar19 = bfd_get_reloc_upper_bound(pbVar12,local_38), 0 < iVar19) {\n            iVar20 = bfd_generic_link_read_symbols((local_40->wild_statement).section_list);\n            local_4c = local_40;\n            if (iVar20 == 0) goto LAB_000570af;\n            ppbVar28 = ((local_40->input_statement).the_bfd)->outsymbols;\n            __ptr = (undefined4 *)xmalloc(iVar19);\n            iVar19 = bfd_canonicalize_reloc\n                               ((local_40->wild_statement).section_list,local_38,__ptr,ppbVar28);\n            if (iVar19 < 0) {\n              free(__ptr);\n              pcVar16 = (char *)dcgettext(0,"%X%P: unable to process relocs: %E\n",5);\n              einfo(pcVar16);\n              return;\n            }\n            puVar25 = __ptr;\n            if (iVar19 != 0) {\n              do {\n                if ((((*(byte *)(**(int **)*puVar25 + 0x10) & 1) == 0) &&\n                    (iVar20 = bfd_link_hash_lookup\n                                        (link_info.hash,*(undefined4 *)(**(int **)*puVar25 + 4),0,0,\n                                         1), iVar20 != 0)) && (*(char *)(iVar20 + 0xc) == '\x03')) {\n                  puVar4 = *(undefined4 **)(*(int *)(iVar20 + 0x14) + 0xac);\n                  puVar13 = (undefined4 *)puVar4[0x23];\n                  if (puVar13 == (undefined4 *)0x0) {\n                    puVar13 = puVar4;\n                  }\n                  pcVar16 = (char *)*puVar13;\n                  iVar20 = filename_cmp(((local_40->input_statement).the_bfd)->my_archive->filename,\n                                        pcVar16);\n                  if (iVar20 != 0) {\n                    sVar14 = strlen(pcVar16);\n                    pcVar15 = (char *)xmalloc(sVar14 + 1);\n                    strcpy(pcVar15,pcVar16);\n                    ((local_40->input_statement).the_bfd)->my_archive->filename = pcVar15;\n                  }\n                }\n                puVar25 = puVar25 + 1;\n              } while (__ptr + iVar19 != puVar25);\n            }\n            free(__ptr);\n            local_38 = local_38->next;\n            if (local_38 == (bfd_section *)0x0) break;\n            pbVar12 = (bfd *)(local_40->wild_statement).section_list;\n          }\n        }\n      }\n      local_40 = (local_40->wild_statement).children.head;\n    } while (local_40 != (lang_statement_union *)0x0);\n    local_50 = file_chain.head;\n    if (file_chain.head != (lang_statement_union *)0x0) {\n      bVar21 = false;\n      local_40 = (lang_statement_union *)0x0;\n      do {\n        uVar5 = ((local_50->reloc_statement).section)->lineno_count;\n        if (uVar5 != 0) {\n          pcVar16 = strrchr(((local_50->reloc_statement).section)->name,0x2e);\n          plVar26 = local_50;\n          if ((lang_statement_union *)uVar5 == local_40) {\n            if (!bVar21) goto LAB_00056b08;\n          }\n          else {\n            while ((plVar23 = local_50, local_40 = (lang_statement_union *)uVar5,\n                   pcVar16 == (char *)0x0 || (iVar19 = filename_cmp(pcVar16,".dll"), iVar19 != 0)))\n            {\n              plVar26 = (lang_statement_union *)(plVar26->data_statement).output_section;\n              if (plVar26 == (lang_statement_union *)0x0) {\n                local_50 = (local_50->wild_statement).children.head;\n                bVar21 = false;\n                goto joined_r0x00056b15;\n              }\n              if (uVar5 != ((plVar26->reloc_statement).section)->lineno_count) break;\n              pcVar16 = strrchr(((plVar26->reloc_statement).section)->name,0x2e);\n            }\n            do {\n              if (uVar5 != ((plVar23->reloc_statement).section)->lineno_count) break;\n              pwVar31 = (wildcard_list *)((plVar23->reloc_statement).section)->name;\n              pcVar16 = strrchr((char *)pwVar31,0x2e);\n              if (pcVar16 == (char *)0x0) {\nLAB_00056d20:\n                iVar19 = filename_cmp(((plVar26->wild_statement).section_list)->next,pwVar31);\n                if (iVar19 != 0) {\n                  bVar21 = false;\n                  goto LAB_00056b08;\n                }\n              }\n              else {\n                iVar19 = filename_cmp(pcVar16,&DAT_00192ed1);\n                if (iVar19 != 0) {\n                  pwVar31 = ((plVar23->wild_statement).section_list)->next;\n                  goto LAB_00056d20;\n                }\n              }\n              plVar23 = (plVar23->wild_statement).children.head;\n            } while (plVar23 != (lang_statement_union *)0x0);\n            pcVar16 = strrchr(((local_50->reloc_statement).section)->name,0x2e);\n          }\n          bVar21 = true;\n          iVar19 = filename_cmp(pcVar16,".dll");\n          if (iVar19 == 0) {\n            pbVar17 = ((local_50->input_statement).the_bfd)->sections;\n            if (pbVar17 == (bfd_section *)0x0) {\n              iVar19 = 99;\n            }\n            else {\n              iVar20 = 0;\n              bVar34 = true;\n              bVar21 = false;\n              do {\n                bVar32 = false;\n                iVar19 = 9;\n                pbVar27 = (byte *)pbVar17->name;\n                pbVar30 = (byte *)".idata$2";\n                do {\n                  if (iVar19 == 0) break;\n                  iVar19 = iVar19 + -1;\n                  bVar32 = *pbVar27 < *pbVar30;\n                  bVar34 = *pbVar27 == *pbVar30;\n                  pbVar27 = pbVar27 + (uint)bVar35 * -2 + 1;\n                  pbVar30 = pbVar30 + (uint)bVar35 * -2 + 1;\n                } while (bVar34);\n                if ((!bVar32 && !bVar34) == bVar32) {\n                  bVar21 = true;\n                }\n                iVar20 = iVar20 + pbVar17->reloc_count;\n                pbVar17 = pbVar17->next;\n                bVar34 = pbVar17 == (bfd_section *)0x0;\n              } while (!bVar34);\n              iVar19 = 0x61;\n              if (!bVar21) {\n                iVar19 = (iVar20 < 1) + 0x62;\n              }\n            }\n            sVar14 = strlen(((local_50->input_statement).the_bfd)->filename);\n            pcVar16 = (char *)xmalloc(sVar14 + 3);\n            sprintf(pcVar16,"%s.%c",((local_50->wild_statement).section_list)->next,iVar19);\n            ((local_50->reloc_statement).section)->name = pcVar16;\n            sVar14 = strlen((local_50->wild_statement).filename);\n            pcVar16 = (char *)xmalloc(sVar14 + 3);\n            sprintf(pcVar16,"%s.%c",(local_50->wild_statement).filename,iVar19);\n            (local_50->wild_statement).filename = pcVar16;\n            bVar21 = true;\n          }\n        }\nLAB_00056b08:\n        local_50 = (local_50->wild_statement).children.head;\njoined_r0x00056b15:\n      } while (local_50 != (lang_statement_union *)0x0);\n      local_4c = file_chain.head;\n      if (file_chain.head != (lang_statement_union *)0x0) {\n        do {\n          pbVar12 = (local_4c->input_statement).the_bfd;\n          if ((pbVar12->my_archive != (bfd *)0x0) &&\n             (pbVar17 = pbVar12->sections, pbVar17 != (bfd_section *)0x0)) {\n            pbVar22 = (bfd_section *)0x0;\n            bVar21 = false;\n            bVar34 = true;\n            do {\n              bVar32 = false;\n              iVar19 = 7;\n              pbVar27 = (byte *)pbVar17->name;\n              pbVar30 = (byte *)".idata$";\n              do {\n                if (iVar19 == 0) break;\n                iVar19 = iVar19 + -1;\n                bVar32 = *pbVar27 < *pbVar30;\n                bVar34 = *pbVar27 == *pbVar30;\n                pbVar27 = pbVar27 + (uint)bVar35 * -2 + 1;\n                pbVar30 = pbVar30 + (uint)bVar35 * -2 + 1;\n              } while (bVar34);\n              if ((!bVar32 && !bVar34) == bVar32) {\n                bVar21 = true;\n              }\n              if (((pbVar17->flags & 0x10) != 0) && (pbVar17->reloc_count != 0)) {\n                pbVar22 = pbVar17;\n              }\n              pbVar17 = pbVar17->next;\n              bVar34 = pbVar17 == (bfd_section *)0x0;\n            } while (!bVar34);\n            if ((pbVar22 != (bfd_section *)0x0) && (bVar21)) {\n              iVar19 = bfd_generic_link_read_symbols(pbVar12);\n              if (iVar19 == 0) {\nLAB_000570af:\n                pwVar31 = (local_4c->wild_statement).section_list;\n                pcVar16 = (char *)dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n                einfo(pcVar16,pwVar31);\n                return;\n              }\n              ppbVar28 = ((local_4c->input_statement).the_bfd)->outsymbols;\n              uVar5 = ((local_4c->input_statement).the_bfd)->symcount;\n              if (0 < (int)uVar5) {\n                ppbVar2 = ppbVar28 + uVar5;\n                do {\n                  if (((((*ppbVar28)->section->id == pbVar22->id) &&\n                       (pbVar18 = (bfd_link_hash_entry *)\n                                  bfd_link_hash_lookup(link_info.hash,(*ppbVar28)->name,0,0,1),\n                       pbVar18 != (bfd_link_hash_entry *)0x0)) && (pbVar18->field_0xc == '\x03')) &&\n                     (((pbVar18->u).undef.next == (bfd_link_hash_entry *)0x0 &&\n                      ((link_info.hash)->undefs_tail != pbVar18)))) {\n                    pbVar22->flags = pbVar22->flags | 0x8000;\n                  }\n                  ppbVar28 = ppbVar28 + 1;\n                } while (ppbVar2 != ppbVar28);\n              }\n            }\n          }\n          local_4c = (local_4c->wild_statement).children.head;\n        } while (local_4c != (lang_statement_union *)0x0);\n      }\n    }\n  }\n  return;\n}" if (parenthesized_expression "(file_chain.head != (lang_statement_union *)0x0)" ( (binary_expression "file_chain.head != (lang_statement_union *)0x0" (field_expression "file_chain.head" identifier . field_identifier) != (cast_expression "(lang_statement_union *)0x0" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    do {\n      pbVar12 = (local_40->input_statement).the_bfd;\n      if ((pbVar12->my_archive != (bfd *)0x0) &&\n         (local_38 = pbVar12->sections, local_38 != (bfd_section *)0x0)) {\n        iVar19 = 0;\n        bVar34 = true;\n        pbVar17 = local_38;\n        bVar6 = 0;\n        bVar21 = false;\n        do {\n          bVar32 = false;\n          iVar20 = 9;\n          pbVar27 = (byte *)pbVar17->name;\n          pbVar30 = (byte *)".idata$2";\n          do {\n            if (iVar20 == 0) break;\n            iVar20 = iVar20 + -1;\n            bVar32 = *pbVar27 < *pbVar30;\n            bVar34 = *pbVar27 == *pbVar30;\n            pbVar27 = pbVar27 + (uint)bVar35 * -2 + 1;\n            pbVar30 = pbVar30 + (uint)bVar35 * -2 + 1;\n          } while (bVar34);\n          bVar33 = false;\n          bVar34 = (!bVar32 && !bVar34) == bVar32;\n          bVar32 = true;\n          if (!bVar34) {\n            bVar32 = bVar21;\n          }\n          iVar20 = 7;\n          pbVar27 = (byte *)pbVar17->name;\n          pbVar30 = (byte *)".idata$";\n          do {\n            if (iVar20 == 0) break;\n            iVar20 = iVar20 + -1;\n            bVar33 = *pbVar27 < *pbVar30;\n            bVar34 = *pbVar27 == *pbVar30;\n            pbVar27 = pbVar27 + (uint)bVar35 * -2 + 1;\n            pbVar30 = pbVar30 + (uint)bVar35 * -2 + 1;\n          } while (bVar34);\n          bVar9 = 1;\n          if ((!bVar33 && !bVar34) != bVar33) {\n            bVar9 = bVar6;\n          }\n          iVar19 = iVar19 + pbVar17->reloc_count;\n          pbVar17 = pbVar17->next;\n          bVar34 = pbVar17 == (bfd_section *)0x0;\n          bVar6 = bVar9;\n          bVar21 = bVar32;\n        } while (!bVar34);\n        if (((bool)(bVar9 & iVar19 != 0)) && (!bVar32)) {\n          while (iVar19 = bfd_get_reloc_upper_bound(pbVar12,local_38), 0 < iVar19) {\n            iVar20 = bfd_generic_link_read_symbols((local_40->wild_statement).section_list);\n            local_4c = local_40;\n            if (iVar20 == 0) goto LAB_000570af;\n            ppbVar28 = ((local_40->input_statement).the_bfd)->outsymbols;\n            __ptr = (undefined4 *)xmalloc(iVar19);\n            iVar19 = bfd_canonicalize_reloc\n                               ((local_40->wild_statement).section_list,local_38,__ptr,ppbVar28);\n            if (iVar19 < 0) {\n              free(__ptr);\n              pcVar16 = (char *)dcgettext(0,"%X%P: unable to process relocs: %E\n",5);\n              einfo(pcVar16);\n              return;\n            }\n            puVar25 = __ptr;\n            if (iVar19 != 0) {\n              do {\n                if ((((*(byte *)(**(int **)*puVar25 + 0x10) & 1) == 0) &&\n                    (iVar20 = bfd_link_hash_lookup\n                                        (link_info.hash,*(undefined4 *)(**(int **)*puVar25 + 4),0,0,\n                                         1), iVar20 != 0)) && (*(char *)(iVar20 + 0xc) == '\x03')) {\n                  puVar4 = *(undefined4 **)(*(int *)(iVar20 + 0x14) + 0xac);\n                  puVar13 = (undefined4 *)puVar4[0x23];\n                  if (puVar13 == (undefined4 *)0x0) {\n                    puVar13 = puVar4;\n                  }\n                  pcVar16 = (char *)*puVar13;\n                  iVar20 = filename_cmp(((local_40->input_statement).the_bfd)->my_archive->filename,\n                                        pcVar16);\n                  if (iVar20 != 0) {\n                    sVar14 = strlen(pcVar16);\n                    pcVar15 = (char *)xmalloc(sVar14 + 1);\n                    strcpy(pcVar15,pcVar16);\n                    ((local_40->input_statement).the_bfd)->my_archive->filename = pcVar15;\n                  }\n                }\n                puVar25 = puVar25 + 1;\n              } while (__ptr + iVar19 != puVar25);\n            }\n            free(__ptr);\n            local_38 = local_38->next;\n            if (local_38 == (bfd_section *)0x0) break;\n            pbVar12 = (bfd *)(local_40->wild_statement).section_list;\n          }\n        }\n      }\n      local_40 = (local_40->wild_statement).children.head;\n    } while (local_40 != (lang_statement_union *)0x0);\n    local_50 = file_chain.head;\n    if (file_chain.head != (lang_statement_union *)0x0) {\n      bVar21 = false;\n      local_40 = (lang_statement_union *)0x0;\n      do {\n        uVar5 = ((local_50->reloc_statement).section)->lineno_count;\n        if (uVar5 != 0) {\n          pcVar16 = strrchr(((local_50->reloc_statement).section)->name,0x2e);\n          plVar26 = local_50;\n          if ((lang_statement_union *)uVar5 == local_40) {\n            if (!bVar21) goto LAB_00056b08;\n          }\n          else {\n            while ((plVar23 = local_50, local_40 = (lang_statement_union *)uVar5,\n                   pcVar16 == (char *)0x0 || (iVar19 = filename_cmp(pcVar16,".dll"), iVar19 != 0)))\n            {\n              plVar26 = (lang_statement_union *)(plVar26->data_statement).output_section;\n              if (plVar26 == (lang_statement_union *)0x0) {\n                local_50 = (local_50->wild_statement).children.head;\n                bVar21 = false;\n                goto joined_r0x00056b15;\n              }\n              if (uVar5 != ((plVar26->reloc_statement).section)->lineno_count) break;\n              pcVar16 = strrchr(((plVar26->reloc_statement).section)->name,0x2e);\n            }\n            do {\n              if (uVar5 != ((plVar23->reloc_statement).section)->lineno_count) break;\n              pwVar31 = (wildcard_list *)((plVar23->reloc_statement).section)->name;\n              pcVar16 = strrchr((char *)pwVar31,0x2e);\n              if (pcVar16 == (char *)0x0) {\nLAB_00056d20:\n                iVar19 = filename_cmp(((plVar26->wild_statement).section_list)->next,pwVar31);\n                if (iVar19 != 0) {\n                  bVar21 = false;\n                  goto LAB_00056b08;\n                }\n              }\n              else {\n                iVar19 = filename_cmp(pcVar16,&DAT_00192ed1);\n                if (iVar19 != 0) {\n                  pwVar31 = ((plVar23->wild_statement).section_list)->next;\n                  goto LAB_00056d20;\n                }\n              }\n              plVar23 = (plVar23->wild_statement).children.head;\n            } while (plVar23 != (lang_statement_union *)0x0);\n            pcVar16 = strrchr(((local_50->reloc_statement).section)->name,0x2e);\n          }\n          bVar21 = true;\n          iVar19 = filename_cmp(pcVar16,".dll");\n          if (iVar19 == 0) {\n            pbVar17 = ((local_50->input_statement).the_bfd)->sections;\n            if (pbVar17 == (bfd_section *)0x0) {\n              iVar19 = 99;\n            }\n            else {\n              iVar20 = 0;\n              bVar34 = true;\n              bVar21 = false;\n              do {\n                bVar32 = false;\n                iVar19 = 9;\n                pbVar27 = (byte *)pbVar17->name;\n                pbVar30 = (byte *)".idata$2";\n                do {\n                  if (iVar19 == 0) break;\n                  iVar19 = iVar19 + -1;\n                  bVar32 = *pbVar27 < *pbVar30;\n                  bVar34 = *pbVar27 == *pbVar30;\n                  pbVar27 = pbVar27 + (uint)bVar35 * -2 + 1;\n                  pbVar30 = pbVar30 + (uint)bVar35 * -2 + 1;\n                } while (bVar34);\n                if ((!bVar32 && !bVar34) == bVar32) {\n                  bVar21 = true;\n                }\n                iVar20 = iVar20 + pbVar17->reloc_count;\n                pbVar17 = pbVar17->next;\n                bVar34 = pbVar17 == (bfd_section *)0x0;\n              } while (!bVar34);\n              iVar19 = 0x61;\n              if (!bVar21) {\n                iVar19 = (iVar20 < 1) + 0x62;\n              }\n            }\n            sVar14 = strlen(((local_50->input_statement).the_bfd)->filename);\n            pcVar16 = (char *)xmalloc(sVar14 + 3);\n            sprintf(pcVar16,"%s.%c",((local_50->wild_statement).section_list)->next,iVar19);\n            ((local_50->reloc_statement).section)->name = pcVar16;\n            sVar14 = strlen((local_50->wild_statement).filename);\n            pcVar16 = (char *)xmalloc(sVar14 + 3);\n            sprintf(pcVar16,"%s.%c",(local_50->wild_statement).filename,iVar19);\n            (local_50->wild_statement).filename = pcVar16;\n            bVar21 = true;\n          }\n        }\nLAB_00056b08:\n        local_50 = (local_50->wild_statement).children.head;\njoined_r0x00056b15:\n      } while (local_50 != (lang_statement_union *)0x0);\n      local_4c = file_chain.head;\n      if (file_chain.head != (lang_statement_union *)0x0) {\n        do {\n          pbVar12 = (local_4c->input_statement).the_bfd;\n          if ((pbVar12->my_archive != (bfd *)0x0) &&\n             (pbVar17 = pbVar12->sections, pbVar17 != (bfd_section *)0x0)) {\n            pbVar22 = (bfd_section *)0x0;\n            bVar21 = false;\n            bVar34 = true;\n            do {\n              bVar32 = false;\n              iVar19 = 7;\n              pbVar27 = (byte *)pbVar17->name;\n              pbVar30 = (byte *)".idata$";\n              do {\n                if (iVar19 == 0) break;\n                iVar19 = iVar19 + -1;\n                bVar32 = *pbVar27 < *pbVar30;\n                bVar34 = *pbVar27 == *pbVar30;\n                pbVar27 = pbVar27 + (uint)bVar35 * -2 + 1;\n                pbVar30 = pbVar30 + (uint)bVar35 * -2 + 1;\n              } while (bVar34);\n              if ((!bVar32 && !bVar34) == bVar32) {\n                bVar21 = true;\n              }\n              if (((pbVar17->flags & 0x10) != 0) && (pbVar17->reloc_count != 0)) {\n                pbVar22 = pbVar17;\n              }\n              pbVar17 = pbVar17->next;\n              bVar34 = pbVar17 == (bfd_section *)0x0;\n            } while (!bVar34);\n            if ((pbVar22 != (bfd_section *)0x0) && (bVar21)) {\n              iVar19 = bfd_generic_link_read_symbols(pbVar12);\n              if (iVar19 == 0) {\nLAB_000570af:\n                pwVar31 = (local_4c->wild_statement).section_list;\n                pcVar16 = (char *)dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n                einfo(pcVar16,pwVar31);\n                return;\n              }\n              ppbVar28 = ((local_4c->input_statement).the_bfd)->outsymbols;\n              uVar5 = ((local_4c->input_statement).the_bfd)->symcount;\n              if (0 < (int)uVar5) {\n                ppbVar2 = ppbVar28 + uVar5;\n                do {\n                  if (((((*ppbVar28)->section->id == pbVar22->id) &&\n                       (pbVar18 = (bfd_link_hash_entry *)\n                                  bfd_link_hash_lookup(link_info.hash,(*ppbVar28)->name,0,0,1),\n                       pbVar18 != (bfd_link_hash_entry *)0x0)) && (pbVar18->field_0xc == '\x03')) &&\n                     (((pbVar18->u).undef.next == (bfd_link_hash_entry *)0x0 &&\n                      ((link_info.hash)->undefs_tail != pbVar18)))) {\n                    pbVar22->flags = pbVar22->flags | 0x8000;\n                  }\n                  ppbVar28 = ppbVar28 + 1;\n                } while (ppbVar2 != ppbVar28);\n              }\n            }\n          }\n          local_4c = (local_4c->wild_statement).children.head;\n        } while (local_4c != (lang_statement_union *)0x0);\n      }\n    }\n  }\n  return;\n}" { (do_statement "do {\n      pbVar12 = (local_40->input_statement).the_bfd;\n      if ((pbVar12->my_archive != (bfd *)0x0) &&\n         (local_38 = pbVar12->sections, local_38 != (bfd_section *)0x0)) {\n        iVar19 = 0;\n        bVar34 = true;\n        pbVar17 = local_38;\n        bVar6 = 0;\n        bVar21 = false;\n        do {\n          bVar32 = false;\n          iVar20 = 9;\n          pbVar27 = (byte *)pbVar17->name;\n          pbVar30 = (byte *)".idata$2";\n          do {\n            if (iVar20 == 0) break;\n            iVar20 = iVar20 + -1;\n            bVar32 = *pbVar27 < *pbVar30;\n            bVar34 = *pbVar27 == *pbVar30;\n            pbVar27 = pbVar27 + (uint)bVar35 * -2 + 1;\n            pbVar30 = pbVar30 + (uint)bVar35 * -2 + 1;\n          } while (bVar34);\n          bVar33 = false;\n          bVar34 = (!bVar32 && !bVar34) == bVar32;\n          bVar32 = true;\n          if (!bVar34) {\n            bVar32 = bVar21;\n          }\n          iVar20 = 7;\n          pbVar27 = (byte *)pbVar17->name;\n          pbVar30 = (byte *)".idata$";\n          do {\n            if (iVar20 == 0) break;\n            iVar20 = iVar20 + -1;\n            bVar33 = *pbVar27 < *pbVar30;\n            bVar34 = *pbVar27 == *pbVar30;\n            pbVar27 = pbVar27 + (uint)bVar35 * -2 + 1;\n            pbVar30 = pbVar30 + (uint)bVar35 * -2 + 1;\n          } while (bVar34);\n          bVar9 = 1;\n          if ((!bVar33 && !bVar34) != bVar33) {\n            bVar9 = bVar6;\n          }\n          iVar19 = iVar19 + pbVar17->reloc_count;\n          pbVar17 = pbVar17->next;\n          bVar34 = pbVar17 == (bfd_section *)0x0;\n          bVar6 = bVar9;\n          bVar21 = bVar32;\n        } while (!bVar34);\n        if (((bool)(bVar9 & iVar19 != 0)) && (!bVar32)) {\n          while (iVar19 = bfd_get_reloc_upper_bound(pbVar12,local_38), 0 < iVar19) {\n            iVar20 = bfd_generic_link_read_symbols((local_40->wild_statement).section_list);\n            local_4c = local_40;\n            if (iVar20 == 0) goto LAB_000570af;\n            ppbVar28 = ((local_40->input_statement).the_bfd)->outsymbols;\n            __ptr = (undefined4 *)xmalloc(iVar19);\n            iVar19 = bfd_canonicalize_reloc\n                               ((local_40->wild_statement).section_list,local_38,__ptr,ppbVar28);\n            if (iVar19 < 0) {\n              free(__ptr);\n              pcVar16 = (char *)dcgettext(0,"%X%P: unable to process relocs: %E\n",5);\n              einfo(pcVar16);\n              return;\n            }\n            puVar25 = __ptr;\n            if (iVar19 != 0) {\n              do {\n                if ((((*(byte *)(**(int **)*puVar25 + 0x10) & 1) == 0) &&\n                    (iVar20 = bfd_link_hash_lookup\n                                        (link_info.hash,*(undefined4 *)(**(int **)*puVar25 + 4),0,0,\n                                         1), iVar20 != 0)) && (*(char *)(iVar20 + 0xc) == '\x03')) {\n                  puVar4 = *(undefined4 **)(*(int *)(iVar20 + 0x14) + 0xac);\n                  puVar13 = (undefined4 *)puVar4[0x23];\n                  if (puVar13 == (undefined4 *)0x0) {\n                    puVar13 = puVar4;\n                  }\n                  pcVar16 = (char *)*puVar13;\n                  iVar20 = filename_cmp(((local_40->input_statement).the_bfd)->my_archive->filename,\n                                        pcVar16);\n                  if (iVar20 != 0) {\n                    sVar14 = strlen(pcVar16);\n                    pcVar15 = (char *)xmalloc(sVar14 + 1);\n                    strcpy(pcVar15,pcVar16);\n                    ((local_40->input_statement).the_bfd)->my_archive->filename = pcVar15;\n                  }\n                }\n                puVar25 = puVar25 + 1;\n              } while (__ptr + iVar19 != puVar25);\n            }\n            free(__ptr);\n            local_38 = local_38->next;\n            if (local_38 == (bfd_section *)0x0) break;\n            pbVar12 = (bfd *)(local_40->wild_statement).section_list;\n          }\n        }\n      }\n      local_40 = (local_40->wild_statement).children.head;\n    } while (local_40 != (lang_statement_union *)0x0);" do (compound_statement "{\n      pbVar12 = (local_40->input_statement).the_bfd;\n      if ((pbVar12->my_archive != (bfd *)0x0) &&\n         (local_38 = pbVar12->sections, local_38 != (bfd_section *)0x0)) {\n        iVar19 = 0;\n        bVar34 = true;\n        pbVar17 = local_38;\n        bVar6 = 0;\n        bVar21 = false;\n        do {\n          bVar32 = false;\n          iVar20 = 9;\n          pbVar27 = (byte *)pbVar17->name;\n          pbVar30 = (byte *)".idata$2";\n          do {\n            if (iVar20 == 0) break;\n            iVar20 = iVar20 + -1;\n            bVar32 = *pbVar27 < *pbVar30;\n            bVar34 = *pbVar27 == *pbVar30;\n            pbVar27 = pbVar27 + (uint)bVar35 * -2 + 1;\n            pbVar30 = pbVar30 + (uint)bVar35 * -2 + 1;\n          } while (bVar34);\n          bVar33 = false;\n          bVar34 = (!bVar32 && !bVar34) == bVar32;\n          bVar32 = true;\n          if (!bVar34) {\n            bVar32 = bVar21;\n          }\n          iVar20 = 7;\n          pbVar27 = (byte *)pbVar17->name;\n          pbVar30 = (byte *)".idata$";\n          do {\n            if (iVar20 == 0) break;\n            iVar20 = iVar20 + -1;\n            bVar33 = *pbVar27 < *pbVar30;\n            bVar34 = *pbVar27 == *pbVar30;\n            pbVar27 = pbVar27 + (uint)bVar35 * -2 + 1;\n            pbVar30 = pbVar30 + (uint)bVar35 * -2 + 1;\n          } while (bVar34);\n          bVar9 = 1;\n          if ((!bVar33 && !bVar34) != bVar33) {\n            bVar9 = bVar6;\n          }\n          iVar19 = iVar19 + pbVar17->reloc_count;\n          pbVar17 = pbVar17->next;\n          bVar34 = pbVar17 == (bfd_section *)0x0;\n          bVar6 = bVar9;\n          bVar21 = bVar32;\n        } while (!bVar34);\n        if (((bool)(bVar9 & iVar19 != 0)) && (!bVar32)) {\n          while (iVar19 = bfd_get_reloc_upper_bound(pbVar12,local_38), 0 < iVar19) {\n            iVar20 = bfd_generic_link_read_symbols((local_40->wild_statement).section_list);\n            local_4c = local_40;\n            if (iVar20 == 0) goto LAB_000570af;\n            ppbVar28 = ((local_40->input_statement).the_bfd)->outsymbols;\n            __ptr = (undefined4 *)xmalloc(iVar19);\n            iVar19 = bfd_canonicalize_reloc\n                               ((local_40->wild_statement).section_list,local_38,__ptr,ppbVar28);\n            if (iVar19 < 0) {\n              free(__ptr);\n              pcVar16 = (char *)dcgettext(0,"%X%P: unable to process relocs: %E\n",5);\n              einfo(pcVar16);\n              return;\n            }\n            puVar25 = __ptr;\n            if (iVar19 != 0) {\n              do {\n                if ((((*(byte *)(**(int **)*puVar25 + 0x10) & 1) == 0) &&\n                    (iVar20 = bfd_link_hash_lookup\n                                        (link_info.hash,*(undefined4 *)(**(int **)*puVar25 + 4),0,0,\n                                         1), iVar20 != 0)) && (*(char *)(iVar20 + 0xc) == '\x03')) {\n                  puVar4 = *(undefined4 **)(*(int *)(iVar20 + 0x14) + 0xac);\n                  puVar13 = (undefined4 *)puVar4[0x23];\n                  if (puVar13 == (undefined4 *)0x0) {\n                    puVar13 = puVar4;\n                  }\n                  pcVar16 = (char *)*puVar13;\n                  iVar20 = filename_cmp(((local_40->input_statement).the_bfd)->my_archive->filename,\n                                        pcVar16);\n                  if (iVar20 != 0) {\n                    sVar14 = strlen(pcVar16);\n                    pcVar15 = (char *)xmalloc(sVar14 + 1);\n                    strcpy(pcVar15,pcVar16);\n                    ((local_40->input_statement).the_bfd)->my_archive->filename = pcVar15;\n                  }\n                }\n                puVar25 = puVar25 + 1;\n              } while (__ptr + iVar19 != puVar25);\n            }\n            free(__ptr);\n            local_38 = local_38->next;\n            if (local_38 == (bfd_section *)0x0) break;\n            pbVar12 = (bfd *)(local_40->wild_statement).section_list;\n          }\n        }\n      }\n      local_40 = (local_40->wild_statement).children.head;\n    }" { (expression_statement "pbVar12 = (local_40->input_statement).the_bfd;" (assignment_expression "pbVar12 = (local_40->input_statement).the_bfd" identifier = (field_expression "(local_40->input_statement).the_bfd" (parenthesized_expression "(local_40->input_statement)" ( (field_expression "local_40->input_statement" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if ((pbVar12->my_archive != (bfd *)0x0) &&\n         (local_38 = pbVar12->sections, local_38 != (bfd_section *)0x0)) {\n        iVar19 = 0;\n        bVar34 = true;\n        pbVar17 = local_38;\n        bVar6 = 0;\n        bVar21 = false;\n        do {\n          bVar32 = false;\n          iVar20 = 9;\n          pbVar27 = (byte *)pbVar17->name;\n          pbVar30 = (byte *)".idata$2";\n          do {\n            if (iVar20 == 0) break;\n            iVar20 = iVar20 + -1;\n            bVar32 = *pbVar27 < *pbVar30;\n            bVar34 = *pbVar27 == *pbVar30;\n            pbVar27 = pbVar27 + (uint)bVar35 * -2 + 1;\n            pbVar30 = pbVar30 + (uint)bVar35 * -2 + 1;\n          } while (bVar34);\n          bVar33 = false;\n          bVar34 = (!bVar32 && !bVar34) == bVar32;\n          bVar32 = true;\n          if (!bVar34) {\n            bVar32 = bVar21;\n          }\n          iVar20 = 7;\n          pbVar27 = (byte *)pbVar17->name;\n          pbVar30 = (byte *)".idata$";\n          do {\n            if (iVar20 == 0) break;\n            iVar20 = iVar20 + -1;\n            bVar33 = *pbVar27 < *pbVar30;\n            bVar34 = *pbVar27 == *pbVar30;\n            pbVar27 = pbVar27 + (uint)bVar35 * -2 + 1;\n            pbVar30 = pbVar30 + (uint)bVar35 * -2 + 1;\n          } while (bVar34);\n          bVar9 = 1;\n          if ((!bVar33 && !bVar34) != bVar33) {\n            bVar9 = bVar6;\n          }\n          iVar19 = iVar19 + pbVar17->reloc_count;\n          pbVar17 = pbVar17->next;\n          bVar34 = pbVar17 == (bfd_section *)0x0;\n          bVar6 = bVar9;\n          bVar21 = bVar32;\n        } while (!bVar34);\n        if (((bool)(bVar9 & iVar19 != 0)) && (!bVar32)) {\n          while (iVar19 = bfd_get_reloc_upper_bound(pbVar12,local_38), 0 < iVar19) {\n            iVar20 = bfd_generic_link_read_symbols((local_40->wild_statement).section_list);\n            local_4c = local_40;\n            if (iVar20 == 0) goto LAB_000570af;\n            ppbVar28 = ((local_40->input_statement).the_bfd)->outsymbols;\n            __ptr = (undefined4 *)xmalloc(iVar19);\n            iVar19 = bfd_canonicalize_reloc\n                               ((local_40->wild_statement).section_list,local_38,__ptr,ppbVar28);\n            if (iVar19 < 0) {\n              free(__ptr);\n              pcVar16 = (char *)dcgettext(0,"%X%P: unable to process relocs: %E\n",5);\n              einfo(pcVar16);\n              return;\n            }\n            puVar25 = __ptr;\n            if (iVar19 != 0) {\n              do {\n                if ((((*(byte *)(**(int **)*puVar25 + 0x10) & 1) == 0) &&\n                    (iVar20 = bfd_link_hash_lookup\n                                        (link_info.hash,*(undefined4 *)(**(int **)*puVar25 + 4),0,0,\n                                         1), iVar20 != 0)) && (*(char *)(iVar20 + 0xc) == '\x03')) {\n                  puVar4 = *(undefined4 **)(*(int *)(iVar20 + 0x14) + 0xac);\n                  puVar13 = (undefined4 *)puVar4[0x23];\n                  if (puVar13 == (undefined4 *)0x0) {\n                    puVar13 = puVar4;\n                  }\n                  pcVar16 = (char *)*puVar13;\n                  iVar20 = filename_cmp(((local_40->input_statement).the_bfd)->my_archive->filename,\n                                        pcVar16);\n                  if (iVar20 != 0) {\n                    sVar14 = strlen(pcVar16);\n                    pcVar15 = (char *)xmalloc(sVar14 + 1);\n                    strcpy(pcVar15,pcVar16);\n                    ((local_40->input_statement).the_bfd)->my_archive->filename = pcVar15;\n                  }\n                }\n                puVar25 = puVar25 + 1;\n              } while (__ptr + iVar19 != puVar25);\n            }\n            free(__ptr);\n            local_38 = local_38->next;\n            if (local_38 == (bfd_section *)0x0) break;\n            pbVar12 = (bfd *)(local_40->wild_statement).section_list;\n          }\n        }\n      }" if (parenthesized_expression "((pbVar12->my_archive != (bfd *)0x0) &&\n         (local_38 = pbVar12->sections, local_38 != (bfd_section *)0x0))" ( (binary_expression "(pbVar12->my_archive != (bfd *)0x0) &&\n         (local_38 = pbVar12->sections, local_38 != (bfd_section *)0x0)" (parenthesized_expression "(pbVar12->my_archive != (bfd *)0x0)" ( (binary_expression "pbVar12->my_archive != (bfd *)0x0" (field_expression "pbVar12->my_archive" identifier -> field_identifier) != (cast_expression "(bfd *)0x0" ( (type_descriptor "bfd *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(local_38 = pbVar12->sections, local_38 != (bfd_section *)0x0)" ( (comma_expression "local_38 = pbVar12->sections, local_38 != (bfd_section *)0x0" (assignment_expression "local_38 = pbVar12->sections" identifier = (field_expression "pbVar12->sections" identifier -> field_identifier)) , (binary_expression "local_38 != (bfd_section *)0x0" identifier != (cast_expression "(bfd_section *)0x0" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n        iVar19 = 0;\n        bVar34 = true;\n        pbVar17 = local_38;\n        bVar6 = 0;\n        bVar21 = false;\n        do {\n          bVar32 = false;\n          iVar20 = 9;\n          pbVar27 = (byte *)pbVar17->name;\n          pbVar30 = (byte *)".idata$2";\n          do {\n            if (iVar20 == 0) break;\n            iVar20 = iVar20 + -1;\n            bVar32 = *pbVar27 < *pbVar30;\n            bVar34 = *pbVar27 == *pbVar30;\n            pbVar27 = pbVar27 + (uint)bVar35 * -2 + 1;\n            pbVar30 = pbVar30 + (uint)bVar35 * -2 + 1;\n          } while (bVar34);\n          bVar33 = false;\n          bVar34 = (!bVar32 && !bVar34) == bVar32;\n          bVar32 = true;\n          if (!bVar34) {\n            bVar32 = bVar21;\n          }\n          iVar20 = 7;\n          pbVar27 = (byte *)pbVar17->name;\n          pbVar30 = (byte *)".idata$";\n          do {\n            if (iVar20 == 0) break;\n            iVar20 = iVar20 + -1;\n            bVar33 = *pbVar27 < *pbVar30;\n            bVar34 = *pbVar27 == *pbVar30;\n            pbVar27 = pbVar27 + (uint)bVar35 * -2 + 1;\n            pbVar30 = pbVar30 + (uint)bVar35 * -2 + 1;\n          } while (bVar34);\n          bVar9 = 1;\n          if ((!bVar33 && !bVar34) != bVar33) {\n            bVar9 = bVar6;\n          }\n          iVar19 = iVar19 + pbVar17->reloc_count;\n          pbVar17 = pbVar17->next;\n          bVar34 = pbVar17 == (bfd_section *)0x0;\n          bVar6 = bVar9;\n          bVar21 = bVar32;\n        } while (!bVar34);\n        if (((bool)(bVar9 & iVar19 != 0)) && (!bVar32)) {\n          while (iVar19 = bfd_get_reloc_upper_bound(pbVar12,local_38), 0 < iVar19) {\n            iVar20 = bfd_generic_link_read_symbols((local_40->wild_statement).section_list);\n            local_4c = local_40;\n            if (iVar20 == 0) goto LAB_000570af;\n            ppbVar28 = ((local_40->input_statement).the_bfd)->outsymbols;\n            __ptr = (undefined4 *)xmalloc(iVar19);\n            iVar19 = bfd_canonicalize_reloc\n                               ((local_40->wild_statement).section_list,local_38,__ptr,ppbVar28);\n            if (iVar19 < 0) {\n              free(__ptr);\n              pcVar16 = (char *)dcgettext(0,"%X%P: unable to process relocs: %E\n",5);\n              einfo(pcVar16);\n              return;\n            }\n            puVar25 = __ptr;\n            if (iVar19 != 0) {\n              do {\n                if ((((*(byte *)(**(int **)*puVar25 + 0x10) & 1) == 0) &&\n                    (iVar20 = bfd_link_hash_lookup\n                                        (link_info.hash,*(undefined4 *)(**(int **)*puVar25 + 4),0,0,\n                                         1), iVar20 != 0)) && (*(char *)(iVar20 + 0xc) == '\x03')) {\n                  puVar4 = *(undefined4 **)(*(int *)(iVar20 + 0x14) + 0xac);\n                  puVar13 = (undefined4 *)puVar4[0x23];\n                  if (puVar13 == (undefined4 *)0x0) {\n                    puVar13 = puVar4;\n                  }\n                  pcVar16 = (char *)*puVar13;\n                  iVar20 = filename_cmp(((local_40->input_statement).the_bfd)->my_archive->filename,\n                                        pcVar16);\n                  if (iVar20 != 0) {\n                    sVar14 = strlen(pcVar16);\n                    pcVar15 = (char *)xmalloc(sVar14 + 1);\n                    strcpy(pcVar15,pcVar16);\n                    ((local_40->input_statement).the_bfd)->my_archive->filename = pcVar15;\n                  }\n                }\n                puVar25 = puVar25 + 1;\n              } while (__ptr + iVar19 != puVar25);\n            }\n            free(__ptr);\n            local_38 = local_38->next;\n            if (local_38 == (bfd_section *)0x0) break;\n            pbVar12 = (bfd *)(local_40->wild_statement).section_list;\n          }\n        }\n      }" { (expression_statement "iVar19 = 0;" (assignment_expression "iVar19 = 0" identifier = number_literal) ;) (expression_statement "bVar34 = true;" (assignment_expression "bVar34 = true" identifier = true) ;) (expression_statement "pbVar17 = local_38;" (assignment_expression "pbVar17 = local_38" identifier = identifier) ;) (expression_statement "bVar6 = 0;" (assignment_expression "bVar6 = 0" identifier = number_literal) ;) (expression_statement "bVar21 = false;" (assignment_expression "bVar21 = false" identifier = false) ;) (do_statement "do {\n          bVar32 = false;\n          iVar20 = 9;\n          pbVar27 = (byte *)pbVar17->name;\n          pbVar30 = (byte *)".idata$2";\n          do {\n            if (iVar20 == 0) break;\n            iVar20 = iVar20 + -1;\n            bVar32 = *pbVar27 < *pbVar30;\n            bVar34 = *pbVar27 == *pbVar30;\n            pbVar27 = pbVar27 + (uint)bVar35 * -2 + 1;\n            pbVar30 = pbVar30 + (uint)bVar35 * -2 + 1;\n          } while (bVar34);\n          bVar33 = false;\n          bVar34 = (!bVar32 && !bVar34) == bVar32;\n          bVar32 = true;\n          if (!bVar34) {\n            bVar32 = bVar21;\n          }\n          iVar20 = 7;\n          pbVar27 = (byte *)pbVar17->name;\n          pbVar30 = (byte *)".idata$";\n          do {\n            if (iVar20 == 0) break;\n            iVar20 = iVar20 + -1;\n            bVar33 = *pbVar27 < *pbVar30;\n            bVar34 = *pbVar27 == *pbVar30;\n            pbVar27 = pbVar27 + (uint)bVar35 * -2 + 1;\n            pbVar30 = pbVar30 + (uint)bVar35 * -2 + 1;\n          } while (bVar34);\n          bVar9 = 1;\n          if ((!bVar33 && !bVar34) != bVar33) {\n            bVar9 = bVar6;\n          }\n          iVar19 = iVar19 + pbVar17->reloc_count;\n          pbVar17 = pbVar17->next;\n          bVar34 = pbVar17 == (bfd_section *)0x0;\n          bVar6 = bVar9;\n          bVar21 = bVar32;\n        } while (!bVar34);" do (compound_statement "{\n          bVar32 = false;\n          iVar20 = 9;\n          pbVar27 = (byte *)pbVar17->name;\n          pbVar30 = (byte *)".idata$2";\n          do {\n            if (iVar20 == 0) break;\n            iVar20 = iVar20 + -1;\n            bVar32 = *pbVar27 < *pbVar30;\n            bVar34 = *pbVar27 == *pbVar30;\n            pbVar27 = pbVar27 + (uint)bVar35 * -2 + 1;\n            pbVar30 = pbVar30 + (uint)bVar35 * -2 + 1;\n          } while (bVar34);\n          bVar33 = false;\n          bVar34 = (!bVar32 && !bVar34) == bVar32;\n          bVar32 = true;\n          if (!bVar34) {\n            bVar32 = bVar21;\n          }\n          iVar20 = 7;\n          pbVar27 = (byte *)pbVar17->name;\n          pbVar30 = (byte *)".idata$";\n          do {\n            if (iVar20 == 0) break;\n            iVar20 = iVar20 + -1;\n            bVar33 = *pbVar27 < *pbVar30;\n            bVar34 = *pbVar27 == *pbVar30;\n            pbVar27 = pbVar27 + (uint)bVar35 * -2 + 1;\n            pbVar30 = pbVar30 + (uint)bVar35 * -2 + 1;\n          } while (bVar34);\n          bVar9 = 1;\n          if ((!bVar33 && !bVar34) != bVar33) {\n            bVar9 = bVar6;\n          }\n          iVar19 = iVar19 + pbVar17->reloc_count;\n          pbVar17 = pbVar17->next;\n          bVar34 = pbVar17 == (bfd_section *)0x0;\n          bVar6 = bVar9;\n          bVar21 = bVar32;\n        }" { (expression_statement "bVar32 = false;" (assignment_expression "bVar32 = false" identifier = false) ;) (expression_statement "iVar20 = 9;" (assignment_expression "iVar20 = 9" identifier = number_literal) ;) (expression_statement "pbVar27 = (byte *)pbVar17->name;" (assignment_expression "pbVar27 = (byte *)pbVar17->name" identifier = (cast_expression "(byte *)pbVar17->name" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pbVar17->name" identifier -> field_identifier))) ;) (expression_statement "pbVar30 = (byte *)".idata$2";" (assignment_expression "pbVar30 = (byte *)".idata$2"" identifier = (cast_expression "(byte *)".idata$2"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".idata$2"" " string_content "))) ;) (do_statement "do {\n            if (iVar20 == 0) break;\n            iVar20 = iVar20 + -1;\n            bVar32 = *pbVar27 < *pbVar30;\n            bVar34 = *pbVar27 == *pbVar30;\n            pbVar27 = pbVar27 + (uint)bVar35 * -2 + 1;\n            pbVar30 = pbVar30 + (uint)bVar35 * -2 + 1;\n          } while (bVar34);" do (compound_statement "{\n            if (iVar20 == 0) break;\n            iVar20 = iVar20 + -1;\n            bVar32 = *pbVar27 < *pbVar30;\n            bVar34 = *pbVar27 == *pbVar30;\n            pbVar27 = pbVar27 + (uint)bVar35 * -2 + 1;\n            pbVar30 = pbVar30 + (uint)bVar35 * -2 + 1;\n          }" { (if_statement "if (iVar20 == 0) break;" if (parenthesized_expression "(iVar20 == 0)" ( (binary_expression "iVar20 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar20 = iVar20 + -1;" (assignment_expression "iVar20 = iVar20 + -1" identifier = (binary_expression "iVar20 + -1" identifier + number_literal)) ;) (expression_statement "bVar32 = *pbVar27 < *pbVar30;" (assignment_expression "bVar32 = *pbVar27 < *pbVar30" identifier = (binary_expression "*pbVar27 < *pbVar30" (pointer_expression "*pbVar27" * identifier) < (pointer_expression "*pbVar30" * identifier))) ;) (expression_statement "bVar34 = *pbVar27 == *pbVar30;" (assignment_expression "bVar34 = *pbVar27 == *pbVar30" identifier = (binary_expression "*pbVar27 == *pbVar30" (pointer_expression "*pbVar27" * identifier) == (pointer_expression "*pbVar30" * identifier))) ;) (expression_statement "pbVar27 = pbVar27 + (uint)bVar35 * -2 + 1;" (assignment_expression "pbVar27 = pbVar27 + (uint)bVar35 * -2 + 1" identifier = (binary_expression "pbVar27 + (uint)bVar35 * -2 + 1" (binary_expression "pbVar27 + (uint)bVar35 * -2" identifier + (binary_expression "(uint)bVar35 * -2" (cast_expression "(uint)bVar35" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar30 = pbVar30 + (uint)bVar35 * -2 + 1;" (assignment_expression "pbVar30 = pbVar30 + (uint)bVar35 * -2 + 1" identifier = (binary_expression "pbVar30 + (uint)bVar35 * -2 + 1" (binary_expression "pbVar30 + (uint)bVar35 * -2" identifier + (binary_expression "(uint)bVar35 * -2" (cast_expression "(uint)bVar35" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar34)" ( identifier )) ;) (expression_statement "bVar33 = false;" (assignment_expression "bVar33 = false" identifier = false) ;) (expression_statement "bVar34 = (!bVar32 && !bVar34) == bVar32;" (assignment_expression "bVar34 = (!bVar32 && !bVar34) == bVar32" identifier = (binary_expression "(!bVar32 && !bVar34) == bVar32" (parenthesized_expression "(!bVar32 && !bVar34)" ( (binary_expression "!bVar32 && !bVar34" (unary_expression "!bVar32" ! identifier) && (unary_expression "!bVar34" ! identifier)) )) == identifier)) ;) (expression_statement "bVar32 = true;" (assignment_expression "bVar32 = true" identifier = true) ;) (if_statement "if (!bVar34) {\n            bVar32 = bVar21;\n          }" if (parenthesized_expression "(!bVar34)" ( (unary_expression "!bVar34" ! identifier) )) (compound_statement "{\n            bVar32 = bVar21;\n          }" { (expression_statement "bVar32 = bVar21;" (assignment_expression "bVar32 = bVar21" identifier = identifier) ;) })) (expression_statement "iVar20 = 7;" (assignment_expression "iVar20 = 7" identifier = number_literal) ;) (expression_statement "pbVar27 = (byte *)pbVar17->name;" (assignment_expression "pbVar27 = (byte *)pbVar17->name" identifier = (cast_expression "(byte *)pbVar17->name" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pbVar17->name" identifier -> field_identifier))) ;) (expression_statement "pbVar30 = (byte *)".idata$";" (assignment_expression "pbVar30 = (byte *)".idata$"" identifier = (cast_expression "(byte *)".idata$"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".idata$"" " string_content "))) ;) (do_statement "do {\n            if (iVar20 == 0) break;\n            iVar20 = iVar20 + -1;\n            bVar33 = *pbVar27 < *pbVar30;\n            bVar34 = *pbVar27 == *pbVar30;\n            pbVar27 = pbVar27 + (uint)bVar35 * -2 + 1;\n            pbVar30 = pbVar30 + (uint)bVar35 * -2 + 1;\n          } while (bVar34);" do (compound_statement "{\n            if (iVar20 == 0) break;\n            iVar20 = iVar20 + -1;\n            bVar33 = *pbVar27 < *pbVar30;\n            bVar34 = *pbVar27 == *pbVar30;\n            pbVar27 = pbVar27 + (uint)bVar35 * -2 + 1;\n            pbVar30 = pbVar30 + (uint)bVar35 * -2 + 1;\n          }" { (if_statement "if (iVar20 == 0) break;" if (parenthesized_expression "(iVar20 == 0)" ( (binary_expression "iVar20 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar20 = iVar20 + -1;" (assignment_expression "iVar20 = iVar20 + -1" identifier = (binary_expression "iVar20 + -1" identifier + number_literal)) ;) (expression_statement "bVar33 = *pbVar27 < *pbVar30;" (assignment_expression "bVar33 = *pbVar27 < *pbVar30" identifier = (binary_expression "*pbVar27 < *pbVar30" (pointer_expression "*pbVar27" * identifier) < (pointer_expression "*pbVar30" * identifier))) ;) (expression_statement "bVar34 = *pbVar27 == *pbVar30;" (assignment_expression "bVar34 = *pbVar27 == *pbVar30" identifier = (binary_expression "*pbVar27 == *pbVar30" (pointer_expression "*pbVar27" * identifier) == (pointer_expression "*pbVar30" * identifier))) ;) (expression_statement "pbVar27 = pbVar27 + (uint)bVar35 * -2 + 1;" (assignment_expression "pbVar27 = pbVar27 + (uint)bVar35 * -2 + 1" identifier = (binary_expression "pbVar27 + (uint)bVar35 * -2 + 1" (binary_expression "pbVar27 + (uint)bVar35 * -2" identifier + (binary_expression "(uint)bVar35 * -2" (cast_expression "(uint)bVar35" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar30 = pbVar30 + (uint)bVar35 * -2 + 1;" (assignment_expression "pbVar30 = pbVar30 + (uint)bVar35 * -2 + 1" identifier = (binary_expression "pbVar30 + (uint)bVar35 * -2 + 1" (binary_expression "pbVar30 + (uint)bVar35 * -2" identifier + (binary_expression "(uint)bVar35 * -2" (cast_expression "(uint)bVar35" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar34)" ( identifier )) ;) (expression_statement "bVar9 = 1;" (assignment_expression "bVar9 = 1" identifier = number_literal) ;) (if_statement "if ((!bVar33 && !bVar34) != bVar33) {\n            bVar9 = bVar6;\n          }" if (parenthesized_expression "((!bVar33 && !bVar34) != bVar33)" ( (binary_expression "(!bVar33 && !bVar34) != bVar33" (parenthesized_expression "(!bVar33 && !bVar34)" ( (binary_expression "!bVar33 && !bVar34" (unary_expression "!bVar33" ! identifier) && (unary_expression "!bVar34" ! identifier)) )) != identifier) )) (compound_statement "{\n            bVar9 = bVar6;\n          }" { (expression_statement "bVar9 = bVar6;" (assignment_expression "bVar9 = bVar6" identifier = identifier) ;) })) (expression_statement "iVar19 = iVar19 + pbVar17->reloc_count;" (assignment_expression "iVar19 = iVar19 + pbVar17->reloc_count" identifier = (binary_expression "iVar19 + pbVar17->reloc_count" identifier + (field_expression "pbVar17->reloc_count" identifier -> field_identifier))) ;) (expression_statement "pbVar17 = pbVar17->next;" (assignment_expression "pbVar17 = pbVar17->next" identifier = (field_expression "pbVar17->next" identifier -> field_identifier)) ;) (expression_statement "bVar34 = pbVar17 == (bfd_section *)0x0;" (assignment_expression "bVar34 = pbVar17 == (bfd_section *)0x0" identifier = (binary_expression "pbVar17 == (bfd_section *)0x0" identifier == (cast_expression "(bfd_section *)0x0" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "bVar6 = bVar9;" (assignment_expression "bVar6 = bVar9" identifier = identifier) ;) (expression_statement "bVar21 = bVar32;" (assignment_expression "bVar21 = bVar32" identifier = identifier) ;) }) while (parenthesized_expression "(!bVar34)" ( (unary_expression "!bVar34" ! identifier) )) ;) (if_statement "if (((bool)(bVar9 & iVar19 != 0)) && (!bVar32)) {\n          while (iVar19 = bfd_get_reloc_upper_bound(pbVar12,local_38), 0 < iVar19) {\n            iVar20 = bfd_generic_link_read_symbols((local_40->wild_statement).section_list);\n            local_4c = local_40;\n            if (iVar20 == 0) goto LAB_000570af;\n            ppbVar28 = ((local_40->input_statement).the_bfd)->outsymbols;\n            __ptr = (undefined4 *)xmalloc(iVar19);\n            iVar19 = bfd_canonicalize_reloc\n                               ((local_40->wild_statement).section_list,local_38,__ptr,ppbVar28);\n            if (iVar19 < 0) {\n              free(__ptr);\n              pcVar16 = (char *)dcgettext(0,"%X%P: unable to process relocs: %E\n",5);\n              einfo(pcVar16);\n              return;\n            }\n            puVar25 = __ptr;\n            if (iVar19 != 0) {\n              do {\n                if ((((*(byte *)(**(int **)*puVar25 + 0x10) & 1) == 0) &&\n                    (iVar20 = bfd_link_hash_lookup\n                                        (link_info.hash,*(undefined4 *)(**(int **)*puVar25 + 4),0,0,\n                                         1), iVar20 != 0)) && (*(char *)(iVar20 + 0xc) == '\x03')) {\n                  puVar4 = *(undefined4 **)(*(int *)(iVar20 + 0x14) + 0xac);\n                  puVar13 = (undefined4 *)puVar4[0x23];\n                  if (puVar13 == (undefined4 *)0x0) {\n                    puVar13 = puVar4;\n                  }\n                  pcVar16 = (char *)*puVar13;\n                  iVar20 = filename_cmp(((local_40->input_statement).the_bfd)->my_archive->filename,\n                                        pcVar16);\n                  if (iVar20 != 0) {\n                    sVar14 = strlen(pcVar16);\n                    pcVar15 = (char *)xmalloc(sVar14 + 1);\n                    strcpy(pcVar15,pcVar16);\n                    ((local_40->input_statement).the_bfd)->my_archive->filename = pcVar15;\n                  }\n                }\n                puVar25 = puVar25 + 1;\n              } while (__ptr + iVar19 != puVar25);\n            }\n            free(__ptr);\n            local_38 = local_38->next;\n            if (local_38 == (bfd_section *)0x0) break;\n            pbVar12 = (bfd *)(local_40->wild_statement).section_list;\n          }\n        }" if (parenthesized_expression "(((bool)(bVar9 & iVar19 != 0)) && (!bVar32))" ( (binary_expression "((bool)(bVar9 & iVar19 != 0)) && (!bVar32)" (parenthesized_expression "((bool)(bVar9 & iVar19 != 0))" ( (cast_expression "(bool)(bVar9 & iVar19 != 0)" ( (type_descriptor "bool" primitive_type) ) (parenthesized_expression "(bVar9 & iVar19 != 0)" ( (binary_expression "bVar9 & iVar19 != 0" identifier & (binary_expression "iVar19 != 0" identifier != number_literal)) ))) )) && (parenthesized_expression "(!bVar32)" ( (unary_expression "!bVar32" ! identifier) ))) )) (compound_statement "{\n          while (iVar19 = bfd_get_reloc_upper_bound(pbVar12,local_38), 0 < iVar19) {\n            iVar20 = bfd_generic_link_read_symbols((local_40->wild_statement).section_list);\n            local_4c = local_40;\n            if (iVar20 == 0) goto LAB_000570af;\n            ppbVar28 = ((local_40->input_statement).the_bfd)->outsymbols;\n            __ptr = (undefined4 *)xmalloc(iVar19);\n            iVar19 = bfd_canonicalize_reloc\n                               ((local_40->wild_statement).section_list,local_38,__ptr,ppbVar28);\n            if (iVar19 < 0) {\n              free(__ptr);\n              pcVar16 = (char *)dcgettext(0,"%X%P: unable to process relocs: %E\n",5);\n              einfo(pcVar16);\n              return;\n            }\n            puVar25 = __ptr;\n            if (iVar19 != 0) {\n              do {\n                if ((((*(byte *)(**(int **)*puVar25 + 0x10) & 1) == 0) &&\n                    (iVar20 = bfd_link_hash_lookup\n                                        (link_info.hash,*(undefined4 *)(**(int **)*puVar25 + 4),0,0,\n                                         1), iVar20 != 0)) && (*(char *)(iVar20 + 0xc) == '\x03')) {\n                  puVar4 = *(undefined4 **)(*(int *)(iVar20 + 0x14) + 0xac);\n                  puVar13 = (undefined4 *)puVar4[0x23];\n                  if (puVar13 == (undefined4 *)0x0) {\n                    puVar13 = puVar4;\n                  }\n                  pcVar16 = (char *)*puVar13;\n                  iVar20 = filename_cmp(((local_40->input_statement).the_bfd)->my_archive->filename,\n                                        pcVar16);\n                  if (iVar20 != 0) {\n                    sVar14 = strlen(pcVar16);\n                    pcVar15 = (char *)xmalloc(sVar14 + 1);\n                    strcpy(pcVar15,pcVar16);\n                    ((local_40->input_statement).the_bfd)->my_archive->filename = pcVar15;\n                  }\n                }\n                puVar25 = puVar25 + 1;\n              } while (__ptr + iVar19 != puVar25);\n            }\n            free(__ptr);\n            local_38 = local_38->next;\n            if (local_38 == (bfd_section *)0x0) break;\n            pbVar12 = (bfd *)(local_40->wild_statement).section_list;\n          }\n        }" { (while_statement "while (iVar19 = bfd_get_reloc_upper_bound(pbVar12,local_38), 0 < iVar19) {\n            iVar20 = bfd_generic_link_read_symbols((local_40->wild_statement).section_list);\n            local_4c = local_40;\n            if (iVar20 == 0) goto LAB_000570af;\n            ppbVar28 = ((local_40->input_statement).the_bfd)->outsymbols;\n            __ptr = (undefined4 *)xmalloc(iVar19);\n            iVar19 = bfd_canonicalize_reloc\n                               ((local_40->wild_statement).section_list,local_38,__ptr,ppbVar28);\n            if (iVar19 < 0) {\n              free(__ptr);\n              pcVar16 = (char *)dcgettext(0,"%X%P: unable to process relocs: %E\n",5);\n              einfo(pcVar16);\n              return;\n            }\n            puVar25 = __ptr;\n            if (iVar19 != 0) {\n              do {\n                if ((((*(byte *)(**(int **)*puVar25 + 0x10) & 1) == 0) &&\n                    (iVar20 = bfd_link_hash_lookup\n                                        (link_info.hash,*(undefined4 *)(**(int **)*puVar25 + 4),0,0,\n                                         1), iVar20 != 0)) && (*(char *)(iVar20 + 0xc) == '\x03')) {\n                  puVar4 = *(undefined4 **)(*(int *)(iVar20 + 0x14) + 0xac);\n                  puVar13 = (undefined4 *)puVar4[0x23];\n                  if (puVar13 == (undefined4 *)0x0) {\n                    puVar13 = puVar4;\n                  }\n                  pcVar16 = (char *)*puVar13;\n                  iVar20 = filename_cmp(((local_40->input_statement).the_bfd)->my_archive->filename,\n                                        pcVar16);\n                  if (iVar20 != 0) {\n                    sVar14 = strlen(pcVar16);\n                    pcVar15 = (char *)xmalloc(sVar14 + 1);\n                    strcpy(pcVar15,pcVar16);\n                    ((local_40->input_statement).the_bfd)->my_archive->filename = pcVar15;\n                  }\n                }\n                puVar25 = puVar25 + 1;\n              } while (__ptr + iVar19 != puVar25);\n            }\n            free(__ptr);\n            local_38 = local_38->next;\n            if (local_38 == (bfd_section *)0x0) break;\n            pbVar12 = (bfd *)(local_40->wild_statement).section_list;\n          }" while (parenthesized_expression "(iVar19 = bfd_get_reloc_upper_bound(pbVar12,local_38), 0 < iVar19)" ( (comma_expression "iVar19 = bfd_get_reloc_upper_bound(pbVar12,local_38), 0 < iVar19" (assignment_expression "iVar19 = bfd_get_reloc_upper_bound(pbVar12,local_38)" identifier = (call_expression "bfd_get_reloc_upper_bound(pbVar12,local_38)" identifier (argument_list "(pbVar12,local_38)" ( identifier , identifier )))) , (binary_expression "0 < iVar19" number_literal < identifier)) )) (compound_statement "{\n            iVar20 = bfd_generic_link_read_symbols((local_40->wild_statement).section_list);\n            local_4c = local_40;\n            if (iVar20 == 0) goto LAB_000570af;\n            ppbVar28 = ((local_40->input_statement).the_bfd)->outsymbols;\n            __ptr = (undefined4 *)xmalloc(iVar19);\n            iVar19 = bfd_canonicalize_reloc\n                               ((local_40->wild_statement).section_list,local_38,__ptr,ppbVar28);\n            if (iVar19 < 0) {\n              free(__ptr);\n              pcVar16 = (char *)dcgettext(0,"%X%P: unable to process relocs: %E\n",5);\n              einfo(pcVar16);\n              return;\n            }\n            puVar25 = __ptr;\n            if (iVar19 != 0) {\n              do {\n                if ((((*(byte *)(**(int **)*puVar25 + 0x10) & 1) == 0) &&\n                    (iVar20 = bfd_link_hash_lookup\n                                        (link_info.hash,*(undefined4 *)(**(int **)*puVar25 + 4),0,0,\n                                         1), iVar20 != 0)) && (*(char *)(iVar20 + 0xc) == '\x03')) {\n                  puVar4 = *(undefined4 **)(*(int *)(iVar20 + 0x14) + 0xac);\n                  puVar13 = (undefined4 *)puVar4[0x23];\n                  if (puVar13 == (undefined4 *)0x0) {\n                    puVar13 = puVar4;\n                  }\n                  pcVar16 = (char *)*puVar13;\n                  iVar20 = filename_cmp(((local_40->input_statement).the_bfd)->my_archive->filename,\n                                        pcVar16);\n                  if (iVar20 != 0) {\n                    sVar14 = strlen(pcVar16);\n                    pcVar15 = (char *)xmalloc(sVar14 + 1);\n                    strcpy(pcVar15,pcVar16);\n                    ((local_40->input_statement).the_bfd)->my_archive->filename = pcVar15;\n                  }\n                }\n                puVar25 = puVar25 + 1;\n              } while (__ptr + iVar19 != puVar25);\n            }\n            free(__ptr);\n            local_38 = local_38->next;\n            if (local_38 == (bfd_section *)0x0) break;\n            pbVar12 = (bfd *)(local_40->wild_statement).section_list;\n          }" { (expression_statement "iVar20 = bfd_generic_link_read_symbols((local_40->wild_statement).section_list);" (assignment_expression "iVar20 = bfd_generic_link_read_symbols((local_40->wild_statement).section_list)" identifier = (call_expression "bfd_generic_link_read_symbols((local_40->wild_statement).section_list)" identifier (argument_list "((local_40->wild_statement).section_list)" ( (field_expression "(local_40->wild_statement).section_list" (parenthesized_expression "(local_40->wild_statement)" ( (field_expression "local_40->wild_statement" identifier -> field_identifier) )) . field_identifier) )))) ;) (expression_statement "local_4c = local_40;" (assignment_expression "local_4c = local_40" identifier = identifier) ;) (if_statement "if (iVar20 == 0) goto LAB_000570af;" if (parenthesized_expression "(iVar20 == 0)" ( (binary_expression "iVar20 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000570af;" goto statement_identifier ;)) (expression_statement "ppbVar28 = ((local_40->input_statement).the_bfd)->outsymbols;" (assignment_expression "ppbVar28 = ((local_40->input_statement).the_bfd)->outsymbols" identifier = (field_expression "((local_40->input_statement).the_bfd)->outsymbols" (parenthesized_expression "((local_40->input_statement).the_bfd)" ( (field_expression "(local_40->input_statement).the_bfd" (parenthesized_expression "(local_40->input_statement)" ( (field_expression "local_40->input_statement" identifier -> field_identifier) )) . field_identifier) )) -> field_identifier)) ;) (expression_statement "__ptr = (undefined4 *)xmalloc(iVar19);" (assignment_expression "__ptr = (undefined4 *)xmalloc(iVar19)" identifier = (cast_expression "(undefined4 *)xmalloc(iVar19)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(iVar19)" identifier (argument_list "(iVar19)" ( identifier ))))) ;) (expression_statement "iVar19 = bfd_canonicalize_reloc\n                               ((local_40->wild_statement).section_list,local_38,__ptr,ppbVar28);" (assignment_expression "iVar19 = bfd_canonicalize_reloc\n                               ((local_40->wild_statement).section_list,local_38,__ptr,ppbVar28)" identifier = (call_expression "bfd_canonicalize_reloc\n                               ((local_40->wild_statement).section_list,local_38,__ptr,ppbVar28)" identifier (argument_list "((local_40->wild_statement).section_list,local_38,__ptr,ppbVar28)" ( (field_expression "(local_40->wild_statement).section_list" (parenthesized_expression "(local_40->wild_statement)" ( (field_expression "local_40->wild_statement" identifier -> field_identifier) )) . field_identifier) , identifier , identifier , identifier )))) ;) (if_statement "if (iVar19 < 0) {\n              free(__ptr);\n              pcVar16 = (char *)dcgettext(0,"%X%P: unable to process relocs: %E\n",5);\n              einfo(pcVar16);\n              return;\n            }" if (parenthesized_expression "(iVar19 < 0)" ( (binary_expression "iVar19 < 0" identifier < number_literal) )) (compound_statement "{\n              free(__ptr);\n              pcVar16 = (char *)dcgettext(0,"%X%P: unable to process relocs: %E\n",5);\n              einfo(pcVar16);\n              return;\n            }" { (expression_statement "free(__ptr);" (call_expression "free(__ptr)" identifier (argument_list "(__ptr)" ( identifier ))) ;) (expression_statement "pcVar16 = (char *)dcgettext(0,"%X%P: unable to process relocs: %E\n",5);" (assignment_expression "pcVar16 = (char *)dcgettext(0,"%X%P: unable to process relocs: %E\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"%X%P: unable to process relocs: %E\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"%X%P: unable to process relocs: %E\n",5)" identifier (argument_list "(0,"%X%P: unable to process relocs: %E\n",5)" ( number_literal , (string_literal ""%X%P: unable to process relocs: %E\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "einfo(pcVar16);" (call_expression "einfo(pcVar16)" identifier (argument_list "(pcVar16)" ( identifier ))) ;) (return_statement "return;" return ;) })) (expression_statement "puVar25 = __ptr;" (assignment_expression "puVar25 = __ptr" identifier = identifier) ;) (if_statement "if (iVar19 != 0) {\n              do {\n                if ((((*(byte *)(**(int **)*puVar25 + 0x10) & 1) == 0) &&\n                    (iVar20 = bfd_link_hash_lookup\n                                        (link_info.hash,*(undefined4 *)(**(int **)*puVar25 + 4),0,0,\n                                         1), iVar20 != 0)) && (*(char *)(iVar20 + 0xc) == '\x03')) {\n                  puVar4 = *(undefined4 **)(*(int *)(iVar20 + 0x14) + 0xac);\n                  puVar13 = (undefined4 *)puVar4[0x23];\n                  if (puVar13 == (undefined4 *)0x0) {\n                    puVar13 = puVar4;\n                  }\n                  pcVar16 = (char *)*puVar13;\n                  iVar20 = filename_cmp(((local_40->input_statement).the_bfd)->my_archive->filename,\n                                        pcVar16);\n                  if (iVar20 != 0) {\n                    sVar14 = strlen(pcVar16);\n                    pcVar15 = (char *)xmalloc(sVar14 + 1);\n                    strcpy(pcVar15,pcVar16);\n                    ((local_40->input_statement).the_bfd)->my_archive->filename = pcVar15;\n                  }\n                }\n                puVar25 = puVar25 + 1;\n              } while (__ptr + iVar19 != puVar25);\n            }" if (parenthesized_expression "(iVar19 != 0)" ( (binary_expression "iVar19 != 0" identifier != number_literal) )) (compound_statement "{\n              do {\n                if ((((*(byte *)(**(int **)*puVar25 + 0x10) & 1) == 0) &&\n                    (iVar20 = bfd_link_hash_lookup\n                                        (link_info.hash,*(undefined4 *)(**(int **)*puVar25 + 4),0,0,\n                                         1), iVar20 != 0)) && (*(char *)(iVar20 + 0xc) == '\x03')) {\n                  puVar4 = *(undefined4 **)(*(int *)(iVar20 + 0x14) + 0xac);\n                  puVar13 = (undefined4 *)puVar4[0x23];\n                  if (puVar13 == (undefined4 *)0x0) {\n                    puVar13 = puVar4;\n                  }\n                  pcVar16 = (char *)*puVar13;\n                  iVar20 = filename_cmp(((local_40->input_statement).the_bfd)->my_archive->filename,\n                                        pcVar16);\n                  if (iVar20 != 0) {\n                    sVar14 = strlen(pcVar16);\n                    pcVar15 = (char *)xmalloc(sVar14 + 1);\n                    strcpy(pcVar15,pcVar16);\n                    ((local_40->input_statement).the_bfd)->my_archive->filename = pcVar15;\n                  }\n                }\n                puVar25 = puVar25 + 1;\n              } while (__ptr + iVar19 != puVar25);\n            }" { (do_statement "do {\n                if ((((*(byte *)(**(int **)*puVar25 + 0x10) & 1) == 0) &&\n                    (iVar20 = bfd_link_hash_lookup\n                                        (link_info.hash,*(undefined4 *)(**(int **)*puVar25 + 4),0,0,\n                                         1), iVar20 != 0)) && (*(char *)(iVar20 + 0xc) == '\x03')) {\n                  puVar4 = *(undefined4 **)(*(int *)(iVar20 + 0x14) + 0xac);\n                  puVar13 = (undefined4 *)puVar4[0x23];\n                  if (puVar13 == (undefined4 *)0x0) {\n                    puVar13 = puVar4;\n                  }\n                  pcVar16 = (char *)*puVar13;\n                  iVar20 = filename_cmp(((local_40->input_statement).the_bfd)->my_archive->filename,\n                                        pcVar16);\n                  if (iVar20 != 0) {\n                    sVar14 = strlen(pcVar16);\n                    pcVar15 = (char *)xmalloc(sVar14 + 1);\n                    strcpy(pcVar15,pcVar16);\n                    ((local_40->input_statement).the_bfd)->my_archive->filename = pcVar15;\n                  }\n                }\n                puVar25 = puVar25 + 1;\n              } while (__ptr + iVar19 != puVar25);" do (compound_statement "{\n                if ((((*(byte *)(**(int **)*puVar25 + 0x10) & 1) == 0) &&\n                    (iVar20 = bfd_link_hash_lookup\n                                        (link_info.hash,*(undefined4 *)(**(int **)*puVar25 + 4),0,0,\n                                         1), iVar20 != 0)) && (*(char *)(iVar20 + 0xc) == '\x03')) {\n                  puVar4 = *(undefined4 **)(*(int *)(iVar20 + 0x14) + 0xac);\n                  puVar13 = (undefined4 *)puVar4[0x23];\n                  if (puVar13 == (undefined4 *)0x0) {\n                    puVar13 = puVar4;\n                  }\n                  pcVar16 = (char *)*puVar13;\n                  iVar20 = filename_cmp(((local_40->input_statement).the_bfd)->my_archive->filename,\n                                        pcVar16);\n                  if (iVar20 != 0) {\n                    sVar14 = strlen(pcVar16);\n                    pcVar15 = (char *)xmalloc(sVar14 + 1);\n                    strcpy(pcVar15,pcVar16);\n                    ((local_40->input_statement).the_bfd)->my_archive->filename = pcVar15;\n                  }\n                }\n                puVar25 = puVar25 + 1;\n              }" { (if_statement "if ((((*(byte *)(**(int **)*puVar25 + 0x10) & 1) == 0) &&\n                    (iVar20 = bfd_link_hash_lookup\n                                        (link_info.hash,*(undefined4 *)(**(int **)*puVar25 + 4),0,0,\n                                         1), iVar20 != 0)) && (*(char *)(iVar20 + 0xc) == '\x03')) {\n                  puVar4 = *(undefined4 **)(*(int *)(iVar20 + 0x14) + 0xac);\n                  puVar13 = (undefined4 *)puVar4[0x23];\n                  if (puVar13 == (undefined4 *)0x0) {\n                    puVar13 = puVar4;\n                  }\n                  pcVar16 = (char *)*puVar13;\n                  iVar20 = filename_cmp(((local_40->input_statement).the_bfd)->my_archive->filename,\n                                        pcVar16);\n                  if (iVar20 != 0) {\n                    sVar14 = strlen(pcVar16);\n                    pcVar15 = (char *)xmalloc(sVar14 + 1);\n                    strcpy(pcVar15,pcVar16);\n                    ((local_40->input_statement).the_bfd)->my_archive->filename = pcVar15;\n                  }\n                }" if (parenthesized_expression "((((*(byte *)(**(int **)*puVar25 + 0x10) & 1) == 0) &&\n                    (iVar20 = bfd_link_hash_lookup\n                                        (link_info.hash,*(undefined4 *)(**(int **)*puVar25 + 4),0,0,\n                                         1), iVar20 != 0)) && (*(char *)(iVar20 + 0xc) == '\x03'))" ( (binary_expression "(((*(byte *)(**(int **)*puVar25 + 0x10) & 1) == 0) &&\n                    (iVar20 = bfd_link_hash_lookup\n                                        (link_info.hash,*(undefined4 *)(**(int **)*puVar25 + 4),0,0,\n                                         1), iVar20 != 0)) && (*(char *)(iVar20 + 0xc) == '\x03')" (parenthesized_expression "(((*(byte *)(**(int **)*puVar25 + 0x10) & 1) == 0) &&\n                    (iVar20 = bfd_link_hash_lookup\n                                        (link_info.hash,*(undefined4 *)(**(int **)*puVar25 + 4),0,0,\n                                         1), iVar20 != 0))" ( (binary_expression "((*(byte *)(**(int **)*puVar25 + 0x10) & 1) == 0) &&\n                    (iVar20 = bfd_link_hash_lookup\n                                        (link_info.hash,*(undefined4 *)(**(int **)*puVar25 + 4),0,0,\n                                         1), iVar20 != 0)" (parenthesized_expression "((*(byte *)(**(int **)*puVar25 + 0x10) & 1) == 0)" ( (binary_expression "(*(byte *)(**(int **)*puVar25 + 0x10) & 1) == 0" (parenthesized_expression "(*(byte *)(**(int **)*puVar25 + 0x10) & 1)" ( (binary_expression "*(byte *)(**(int **)*puVar25 + 0x10) & 1" (pointer_expression "*(byte *)(**(int **)*puVar25 + 0x10)" * (cast_expression "(byte *)(**(int **)*puVar25 + 0x10)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(**(int **)*puVar25 + 0x10)" ( (binary_expression "**(int **)*puVar25 + 0x10" (pointer_expression "**(int **)*puVar25" * (pointer_expression "*(int **)*puVar25" * (cast_expression "(int **)*puVar25" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "*puVar25" * identifier)))) + number_literal) )))) & number_literal) )) == number_literal) )) && (parenthesized_expression "(iVar20 = bfd_link_hash_lookup\n                                        (link_info.hash,*(undefined4 *)(**(int **)*puVar25 + 4),0,0,\n                                         1), iVar20 != 0)" ( (comma_expression "iVar20 = bfd_link_hash_lookup\n                                        (link_info.hash,*(undefined4 *)(**(int **)*puVar25 + 4),0,0,\n                                         1), iVar20 != 0" (assignment_expression "iVar20 = bfd_link_hash_lookup\n                                        (link_info.hash,*(undefined4 *)(**(int **)*puVar25 + 4),0,0,\n                                         1)" identifier = (call_expression "bfd_link_hash_lookup\n                                        (link_info.hash,*(undefined4 *)(**(int **)*puVar25 + 4),0,0,\n                                         1)" identifier (argument_list "(link_info.hash,*(undefined4 *)(**(int **)*puVar25 + 4),0,0,\n                                         1)" ( (field_expression "link_info.hash" identifier . field_identifier) , (pointer_expression "*(undefined4 *)(**(int **)*puVar25 + 4)" * (cast_expression "(undefined4 *)(**(int **)*puVar25 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(**(int **)*puVar25 + 4)" ( (binary_expression "**(int **)*puVar25 + 4" (pointer_expression "**(int **)*puVar25" * (pointer_expression "*(int **)*puVar25" * (cast_expression "(int **)*puVar25" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "*puVar25" * identifier)))) + number_literal) )))) , number_literal , number_literal , number_literal )))) , (binary_expression "iVar20 != 0" identifier != number_literal)) ))) )) && (parenthesized_expression "(*(char *)(iVar20 + 0xc) == '\x03')" ( (binary_expression "*(char *)(iVar20 + 0xc) == '\x03'" (pointer_expression "*(char *)(iVar20 + 0xc)" * (cast_expression "(char *)(iVar20 + 0xc)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0xc)" ( (binary_expression "iVar20 + 0xc" identifier + number_literal) )))) == (char_literal "'\x03'" ' escape_sequence ')) ))) )) (compound_statement "{\n                  puVar4 = *(undefined4 **)(*(int *)(iVar20 + 0x14) + 0xac);\n                  puVar13 = (undefined4 *)puVar4[0x23];\n                  if (puVar13 == (undefined4 *)0x0) {\n                    puVar13 = puVar4;\n                  }\n                  pcVar16 = (char *)*puVar13;\n                  iVar20 = filename_cmp(((local_40->input_statement).the_bfd)->my_archive->filename,\n                                        pcVar16);\n                  if (iVar20 != 0) {\n                    sVar14 = strlen(pcVar16);\n                    pcVar15 = (char *)xmalloc(sVar14 + 1);\n                    strcpy(pcVar15,pcVar16);\n                    ((local_40->input_statement).the_bfd)->my_archive->filename = pcVar15;\n                  }\n                }" { (expression_statement "puVar4 = *(undefined4 **)(*(int *)(iVar20 + 0x14) + 0xac);" (assignment_expression "puVar4 = *(undefined4 **)(*(int *)(iVar20 + 0x14) + 0xac)" identifier = (pointer_expression "*(undefined4 **)(*(int *)(iVar20 + 0x14) + 0xac)" * (cast_expression "(undefined4 **)(*(int *)(iVar20 + 0x14) + 0xac)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(iVar20 + 0x14) + 0xac)" ( (binary_expression "*(int *)(iVar20 + 0x14) + 0xac" (pointer_expression "*(int *)(iVar20 + 0x14)" * (cast_expression "(int *)(iVar20 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x14)" ( (binary_expression "iVar20 + 0x14" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "puVar13 = (undefined4 *)puVar4[0x23];" (assignment_expression "puVar13 = (undefined4 *)puVar4[0x23]" identifier = (cast_expression "(undefined4 *)puVar4[0x23]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar4[0x23]" identifier [ number_literal ]))) ;) (if_statement "if (puVar13 == (undefined4 *)0x0) {\n                    puVar13 = puVar4;\n                  }" if (parenthesized_expression "(puVar13 == (undefined4 *)0x0)" ( (binary_expression "puVar13 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    puVar13 = puVar4;\n                  }" { (expression_statement "puVar13 = puVar4;" (assignment_expression "puVar13 = puVar4" identifier = identifier) ;) })) (expression_statement "pcVar16 = (char *)*puVar13;" (assignment_expression "pcVar16 = (char *)*puVar13" identifier = (cast_expression "(char *)*puVar13" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar13" * identifier))) ;) (expression_statement "iVar20 = filename_cmp(((local_40->input_statement).the_bfd)->my_archive->filename,\n                                        pcVar16);" (assignment_expression "iVar20 = filename_cmp(((local_40->input_statement).the_bfd)->my_archive->filename,\n                                        pcVar16)" identifier = (call_expression "filename_cmp(((local_40->input_statement).the_bfd)->my_archive->filename,\n                                        pcVar16)" identifier (argument_list "(((local_40->input_statement).the_bfd)->my_archive->filename,\n                                        pcVar16)" ( (field_expression "((local_40->input_statement).the_bfd)->my_archive->filename" (field_expression "((local_40->input_statement).the_bfd)->my_archive" (parenthesized_expression "((local_40->input_statement).the_bfd)" ( (field_expression "(local_40->input_statement).the_bfd" (parenthesized_expression "(local_40->input_statement)" ( (field_expression "local_40->input_statement" identifier -> field_identifier) )) . field_identifier) )) -> field_identifier) -> field_identifier) , identifier )))) ;) (if_statement "if (iVar20 != 0) {\n                    sVar14 = strlen(pcVar16);\n                    pcVar15 = (char *)xmalloc(sVar14 + 1);\n                    strcpy(pcVar15,pcVar16);\n                    ((local_40->input_statement).the_bfd)->my_archive->filename = pcVar15;\n                  }" if (parenthesized_expression "(iVar20 != 0)" ( (binary_expression "iVar20 != 0" identifier != number_literal) )) (compound_statement "{\n                    sVar14 = strlen(pcVar16);\n                    pcVar15 = (char *)xmalloc(sVar14 + 1);\n                    strcpy(pcVar15,pcVar16);\n                    ((local_40->input_statement).the_bfd)->my_archive->filename = pcVar15;\n                  }" { (expression_statement "sVar14 = strlen(pcVar16);" (assignment_expression "sVar14 = strlen(pcVar16)" identifier = (call_expression "strlen(pcVar16)" identifier (argument_list "(pcVar16)" ( identifier )))) ;) (expression_statement "pcVar15 = (char *)xmalloc(sVar14 + 1);" (assignment_expression "pcVar15 = (char *)xmalloc(sVar14 + 1)" identifier = (cast_expression "(char *)xmalloc(sVar14 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(sVar14 + 1)" identifier (argument_list "(sVar14 + 1)" ( (binary_expression "sVar14 + 1" identifier + number_literal) ))))) ;) (expression_statement "strcpy(pcVar15,pcVar16);" (call_expression "strcpy(pcVar15,pcVar16)" identifier (argument_list "(pcVar15,pcVar16)" ( identifier , identifier ))) ;) (expression_statement "((local_40->input_statement).the_bfd)->my_archive->filename = pcVar15;" (assignment_expression "((local_40->input_statement).the_bfd)->my_archive->filename = pcVar15" (field_expression "((local_40->input_statement).the_bfd)->my_archive->filename" (field_expression "((local_40->input_statement).the_bfd)->my_archive" (parenthesized_expression "((local_40->input_statement).the_bfd)" ( (field_expression "(local_40->input_statement).the_bfd" (parenthesized_expression "(local_40->input_statement)" ( (field_expression "local_40->input_statement" identifier -> field_identifier) )) . field_identifier) )) -> field_identifier) -> field_identifier) = identifier) ;) })) })) (expression_statement "puVar25 = puVar25 + 1;" (assignment_expression "puVar25 = puVar25 + 1" identifier = (binary_expression "puVar25 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(__ptr + iVar19 != puVar25)" ( (binary_expression "__ptr + iVar19 != puVar25" (binary_expression "__ptr + iVar19" identifier + identifier) != identifier) )) ;) })) (expression_statement "free(__ptr);" (call_expression "free(__ptr)" identifier (argument_list "(__ptr)" ( identifier ))) ;) (expression_statement "local_38 = local_38->next;" (assignment_expression "local_38 = local_38->next" identifier = (field_expression "local_38->next" identifier -> field_identifier)) ;) (if_statement "if (local_38 == (bfd_section *)0x0) break;" if (parenthesized_expression "(local_38 == (bfd_section *)0x0)" ( (binary_expression "local_38 == (bfd_section *)0x0" identifier == (cast_expression "(bfd_section *)0x0" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "pbVar12 = (bfd *)(local_40->wild_statement).section_list;" (assignment_expression "pbVar12 = (bfd *)(local_40->wild_statement).section_list" identifier = (cast_expression "(bfd *)(local_40->wild_statement).section_list" ( (type_descriptor "bfd *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(local_40->wild_statement).section_list" (parenthesized_expression "(local_40->wild_statement)" ( (field_expression "local_40->wild_statement" identifier -> field_identifier) )) . field_identifier))) ;) })) })) })) (expression_statement "local_40 = (local_40->wild_statement).children.head;" (assignment_expression "local_40 = (local_40->wild_statement).children.head" identifier = (field_expression "(local_40->wild_statement).children.head" (field_expression "(local_40->wild_statement).children" (parenthesized_expression "(local_40->wild_statement)" ( (field_expression "local_40->wild_statement" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) }) while (parenthesized_expression "(local_40 != (lang_statement_union *)0x0)" ( (binary_expression "local_40 != (lang_statement_union *)0x0" identifier != (cast_expression "(lang_statement_union *)0x0" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "local_50 = file_chain.head;" (assignment_expression "local_50 = file_chain.head" identifier = (field_expression "file_chain.head" identifier . field_identifier)) ;) (if_statement "if (file_chain.head != (lang_statement_union *)0x0) {\n      bVar21 = false;\n      local_40 = (lang_statement_union *)0x0;\n      do {\n        uVar5 = ((local_50->reloc_statement).section)->lineno_count;\n        if (uVar5 != 0) {\n          pcVar16 = strrchr(((local_50->reloc_statement).section)->name,0x2e);\n          plVar26 = local_50;\n          if ((lang_statement_union *)uVar5 == local_40) {\n            if (!bVar21) goto LAB_00056b08;\n          }\n          else {\n            while ((plVar23 = local_50, local_40 = (lang_statement_union *)uVar5,\n                   pcVar16 == (char *)0x0 || (iVar19 = filename_cmp(pcVar16,".dll"), iVar19 != 0)))\n            {\n              plVar26 = (lang_statement_union *)(plVar26->data_statement).output_section;\n              if (plVar26 == (lang_statement_union *)0x0) {\n                local_50 = (local_50->wild_statement).children.head;\n                bVar21 = false;\n                goto joined_r0x00056b15;\n              }\n              if (uVar5 != ((plVar26->reloc_statement).section)->lineno_count) break;\n              pcVar16 = strrchr(((plVar26->reloc_statement).section)->name,0x2e);\n            }\n            do {\n              if (uVar5 != ((plVar23->reloc_statement).section)->lineno_count) break;\n              pwVar31 = (wildcard_list *)((plVar23->reloc_statement).section)->name;\n              pcVar16 = strrchr((char *)pwVar31,0x2e);\n              if (pcVar16 == (char *)0x0) {\nLAB_00056d20:\n                iVar19 = filename_cmp(((plVar26->wild_statement).section_list)->next,pwVar31);\n                if (iVar19 != 0) {\n                  bVar21 = false;\n                  goto LAB_00056b08;\n                }\n              }\n              else {\n                iVar19 = filename_cmp(pcVar16,&DAT_00192ed1);\n                if (iVar19 != 0) {\n                  pwVar31 = ((plVar23->wild_statement).section_list)->next;\n                  goto LAB_00056d20;\n                }\n              }\n              plVar23 = (plVar23->wild_statement).children.head;\n            } while (plVar23 != (lang_statement_union *)0x0);\n            pcVar16 = strrchr(((local_50->reloc_statement).section)->name,0x2e);\n          }\n          bVar21 = true;\n          iVar19 = filename_cmp(pcVar16,".dll");\n          if (iVar19 == 0) {\n            pbVar17 = ((local_50->input_statement).the_bfd)->sections;\n            if (pbVar17 == (bfd_section *)0x0) {\n              iVar19 = 99;\n            }\n            else {\n              iVar20 = 0;\n              bVar34 = true;\n              bVar21 = false;\n              do {\n                bVar32 = false;\n                iVar19 = 9;\n                pbVar27 = (byte *)pbVar17->name;\n                pbVar30 = (byte *)".idata$2";\n                do {\n                  if (iVar19 == 0) break;\n                  iVar19 = iVar19 + -1;\n                  bVar32 = *pbVar27 < *pbVar30;\n                  bVar34 = *pbVar27 == *pbVar30;\n                  pbVar27 = pbVar27 + (uint)bVar35 * -2 + 1;\n                  pbVar30 = pbVar30 + (uint)bVar35 * -2 + 1;\n                } while (bVar34);\n                if ((!bVar32 && !bVar34) == bVar32) {\n                  bVar21 = true;\n                }\n                iVar20 = iVar20 + pbVar17->reloc_count;\n                pbVar17 = pbVar17->next;\n                bVar34 = pbVar17 == (bfd_section *)0x0;\n              } while (!bVar34);\n              iVar19 = 0x61;\n              if (!bVar21) {\n                iVar19 = (iVar20 < 1) + 0x62;\n              }\n            }\n            sVar14 = strlen(((local_50->input_statement).the_bfd)->filename);\n            pcVar16 = (char *)xmalloc(sVar14 + 3);\n            sprintf(pcVar16,"%s.%c",((local_50->wild_statement).section_list)->next,iVar19);\n            ((local_50->reloc_statement).section)->name = pcVar16;\n            sVar14 = strlen((local_50->wild_statement).filename);\n            pcVar16 = (char *)xmalloc(sVar14 + 3);\n            sprintf(pcVar16,"%s.%c",(local_50->wild_statement).filename,iVar19);\n            (local_50->wild_statement).filename = pcVar16;\n            bVar21 = true;\n          }\n        }\nLAB_00056b08:\n        local_50 = (local_50->wild_statement).children.head;\njoined_r0x00056b15:\n      } while (local_50 != (lang_statement_union *)0x0);\n      local_4c = file_chain.head;\n      if (file_chain.head != (lang_statement_union *)0x0) {\n        do {\n          pbVar12 = (local_4c->input_statement).the_bfd;\n          if ((pbVar12->my_archive != (bfd *)0x0) &&\n             (pbVar17 = pbVar12->sections, pbVar17 != (bfd_section *)0x0)) {\n            pbVar22 = (bfd_section *)0x0;\n            bVar21 = false;\n            bVar34 = true;\n            do {\n              bVar32 = false;\n              iVar19 = 7;\n              pbVar27 = (byte *)pbVar17->name;\n              pbVar30 = (byte *)".idata$";\n              do {\n                if (iVar19 == 0) break;\n                iVar19 = iVar19 + -1;\n                bVar32 = *pbVar27 < *pbVar30;\n                bVar34 = *pbVar27 == *pbVar30;\n                pbVar27 = pbVar27 + (uint)bVar35 * -2 + 1;\n                pbVar30 = pbVar30 + (uint)bVar35 * -2 + 1;\n              } while (bVar34);\n              if ((!bVar32 && !bVar34) == bVar32) {\n                bVar21 = true;\n              }\n              if (((pbVar17->flags & 0x10) != 0) && (pbVar17->reloc_count != 0)) {\n                pbVar22 = pbVar17;\n              }\n              pbVar17 = pbVar17->next;\n              bVar34 = pbVar17 == (bfd_section *)0x0;\n            } while (!bVar34);\n            if ((pbVar22 != (bfd_section *)0x0) && (bVar21)) {\n              iVar19 = bfd_generic_link_read_symbols(pbVar12);\n              if (iVar19 == 0) {\nLAB_000570af:\n                pwVar31 = (local_4c->wild_statement).section_list;\n                pcVar16 = (char *)dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n                einfo(pcVar16,pwVar31);\n                return;\n              }\n              ppbVar28 = ((local_4c->input_statement).the_bfd)->outsymbols;\n              uVar5 = ((local_4c->input_statement).the_bfd)->symcount;\n              if (0 < (int)uVar5) {\n                ppbVar2 = ppbVar28 + uVar5;\n                do {\n                  if (((((*ppbVar28)->section->id == pbVar22->id) &&\n                       (pbVar18 = (bfd_link_hash_entry *)\n                                  bfd_link_hash_lookup(link_info.hash,(*ppbVar28)->name,0,0,1),\n                       pbVar18 != (bfd_link_hash_entry *)0x0)) && (pbVar18->field_0xc == '\x03')) &&\n                     (((pbVar18->u).undef.next == (bfd_link_hash_entry *)0x0 &&\n                      ((link_info.hash)->undefs_tail != pbVar18)))) {\n                    pbVar22->flags = pbVar22->flags | 0x8000;\n                  }\n                  ppbVar28 = ppbVar28 + 1;\n                } while (ppbVar2 != ppbVar28);\n              }\n            }\n          }\n          local_4c = (local_4c->wild_statement).children.head;\n        } while (local_4c != (lang_statement_union *)0x0);\n      }\n    }\n  }" if (parenthesized_expression "(file_chain.head != (lang_statement_union *)0x0)" ( (binary_expression "file_chain.head != (lang_statement_union *)0x0" (field_expression "file_chain.head" identifier . field_identifier) != (cast_expression "(lang_statement_union *)0x0" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      bVar21 = false;\n      local_40 = (lang_statement_union *)0x0;\n      do {\n        uVar5 = ((local_50->reloc_statement).section)->lineno_count;\n        if (uVar5 != 0) {\n          pcVar16 = strrchr(((local_50->reloc_statement).section)->name,0x2e);\n          plVar26 = local_50;\n          if ((lang_statement_union *)uVar5 == local_40) {\n            if (!bVar21) goto LAB_00056b08;\n          }\n          else {\n            while ((plVar23 = local_50, local_40 = (lang_statement_union *)uVar5,\n                   pcVar16 == (char *)0x0 || (iVar19 = filename_cmp(pcVar16,".dll"), iVar19 != 0)))\n            {\n              plVar26 = (lang_statement_union *)(plVar26->data_statement).output_section;\n              if (plVar26 == (lang_statement_union *)0x0) {\n                local_50 = (local_50->wild_statement).children.head;\n                bVar21 = false;\n                goto joined_r0x00056b15;\n              }\n              if (uVar5 != ((plVar26->reloc_statement).section)->lineno_count) break;\n              pcVar16 = strrchr(((plVar26->reloc_statement).section)->name,0x2e);\n            }\n            do {\n              if (uVar5 != ((plVar23->reloc_statement).section)->lineno_count) break;\n              pwVar31 = (wildcard_list *)((plVar23->reloc_statement).section)->name;\n              pcVar16 = strrchr((char *)pwVar31,0x2e);\n              if (pcVar16 == (char *)0x0) {\nLAB_00056d20:\n                iVar19 = filename_cmp(((plVar26->wild_statement).section_list)->next,pwVar31);\n                if (iVar19 != 0) {\n                  bVar21 = false;\n                  goto LAB_00056b08;\n                }\n              }\n              else {\n                iVar19 = filename_cmp(pcVar16,&DAT_00192ed1);\n                if (iVar19 != 0) {\n                  pwVar31 = ((plVar23->wild_statement).section_list)->next;\n                  goto LAB_00056d20;\n                }\n              }\n              plVar23 = (plVar23->wild_statement).children.head;\n            } while (plVar23 != (lang_statement_union *)0x0);\n            pcVar16 = strrchr(((local_50->reloc_statement).section)->name,0x2e);\n          }\n          bVar21 = true;\n          iVar19 = filename_cmp(pcVar16,".dll");\n          if (iVar19 == 0) {\n            pbVar17 = ((local_50->input_statement).the_bfd)->sections;\n            if (pbVar17 == (bfd_section *)0x0) {\n              iVar19 = 99;\n            }\n            else {\n              iVar20 = 0;\n              bVar34 = true;\n              bVar21 = false;\n              do {\n                bVar32 = false;\n                iVar19 = 9;\n                pbVar27 = (byte *)pbVar17->name;\n                pbVar30 = (byte *)".idata$2";\n                do {\n                  if (iVar19 == 0) break;\n                  iVar19 = iVar19 + -1;\n                  bVar32 = *pbVar27 < *pbVar30;\n                  bVar34 = *pbVar27 == *pbVar30;\n                  pbVar27 = pbVar27 + (uint)bVar35 * -2 + 1;\n                  pbVar30 = pbVar30 + (uint)bVar35 * -2 + 1;\n                } while (bVar34);\n                if ((!bVar32 && !bVar34) == bVar32) {\n                  bVar21 = true;\n                }\n                iVar20 = iVar20 + pbVar17->reloc_count;\n                pbVar17 = pbVar17->next;\n                bVar34 = pbVar17 == (bfd_section *)0x0;\n              } while (!bVar34);\n              iVar19 = 0x61;\n              if (!bVar21) {\n                iVar19 = (iVar20 < 1) + 0x62;\n              }\n            }\n            sVar14 = strlen(((local_50->input_statement).the_bfd)->filename);\n            pcVar16 = (char *)xmalloc(sVar14 + 3);\n            sprintf(pcVar16,"%s.%c",((local_50->wild_statement).section_list)->next,iVar19);\n            ((local_50->reloc_statement).section)->name = pcVar16;\n            sVar14 = strlen((local_50->wild_statement).filename);\n            pcVar16 = (char *)xmalloc(sVar14 + 3);\n            sprintf(pcVar16,"%s.%c",(local_50->wild_statement).filename,iVar19);\n            (local_50->wild_statement).filename = pcVar16;\n            bVar21 = true;\n          }\n        }\nLAB_00056b08:\n        local_50 = (local_50->wild_statement).children.head;\njoined_r0x00056b15:\n      } while (local_50 != (lang_statement_union *)0x0);\n      local_4c = file_chain.head;\n      if (file_chain.head != (lang_statement_union *)0x0) {\n        do {\n          pbVar12 = (local_4c->input_statement).the_bfd;\n          if ((pbVar12->my_archive != (bfd *)0x0) &&\n             (pbVar17 = pbVar12->sections, pbVar17 != (bfd_section *)0x0)) {\n            pbVar22 = (bfd_section *)0x0;\n            bVar21 = false;\n            bVar34 = true;\n            do {\n              bVar32 = false;\n              iVar19 = 7;\n              pbVar27 = (byte *)pbVar17->name;\n              pbVar30 = (byte *)".idata$";\n              do {\n                if (iVar19 == 0) break;\n                iVar19 = iVar19 + -1;\n                bVar32 = *pbVar27 < *pbVar30;\n                bVar34 = *pbVar27 == *pbVar30;\n                pbVar27 = pbVar27 + (uint)bVar35 * -2 + 1;\n                pbVar30 = pbVar30 + (uint)bVar35 * -2 + 1;\n              } while (bVar34);\n              if ((!bVar32 && !bVar34) == bVar32) {\n                bVar21 = true;\n              }\n              if (((pbVar17->flags & 0x10) != 0) && (pbVar17->reloc_count != 0)) {\n                pbVar22 = pbVar17;\n              }\n              pbVar17 = pbVar17->next;\n              bVar34 = pbVar17 == (bfd_section *)0x0;\n            } while (!bVar34);\n            if ((pbVar22 != (bfd_section *)0x0) && (bVar21)) {\n              iVar19 = bfd_generic_link_read_symbols(pbVar12);\n              if (iVar19 == 0) {\nLAB_000570af:\n                pwVar31 = (local_4c->wild_statement).section_list;\n                pcVar16 = (char *)dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n                einfo(pcVar16,pwVar31);\n                return;\n              }\n              ppbVar28 = ((local_4c->input_statement).the_bfd)->outsymbols;\n              uVar5 = ((local_4c->input_statement).the_bfd)->symcount;\n              if (0 < (int)uVar5) {\n                ppbVar2 = ppbVar28 + uVar5;\n                do {\n                  if (((((*ppbVar28)->section->id == pbVar22->id) &&\n                       (pbVar18 = (bfd_link_hash_entry *)\n                                  bfd_link_hash_lookup(link_info.hash,(*ppbVar28)->name,0,0,1),\n                       pbVar18 != (bfd_link_hash_entry *)0x0)) && (pbVar18->field_0xc == '\x03')) &&\n                     (((pbVar18->u).undef.next == (bfd_link_hash_entry *)0x0 &&\n                      ((link_info.hash)->undefs_tail != pbVar18)))) {\n                    pbVar22->flags = pbVar22->flags | 0x8000;\n                  }\n                  ppbVar28 = ppbVar28 + 1;\n                } while (ppbVar2 != ppbVar28);\n              }\n            }\n          }\n          local_4c = (local_4c->wild_statement).children.head;\n        } while (local_4c != (lang_statement_union *)0x0);\n      }\n    }\n  }" { (expression_statement "bVar21 = false;" (assignment_expression "bVar21 = false" identifier = false) ;) (expression_statement "local_40 = (lang_statement_union *)0x0;" (assignment_expression "local_40 = (lang_statement_union *)0x0" identifier = (cast_expression "(lang_statement_union *)0x0" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (ERROR "do {\n        uVar5 = ((local_50->reloc_statement).section)->lineno_count;\n        if (uVar5 != 0) {\n          pcVar16 = strrchr(((local_50->reloc_statement).section)->name,0x2e);\n          plVar26 = local_50;\n          if ((lang_statement_union *)uVar5 == local_40) {\n            if (!bVar21) goto LAB_00056b08;\n          }\n          else {\n            while ((plVar23 = local_50, local_40 = (lang_statement_union *)uVar5,\n                   pcVar16 == (char *)0x0 || (iVar19 = filename_cmp(pcVar16,".dll"), iVar19 != 0)))\n            {\n              plVar26 = (lang_statement_union *)(plVar26->data_statement).output_section;\n              if (plVar26 == (lang_statement_union *)0x0) {\n                local_50 = (local_50->wild_statement).children.head;\n                bVar21 = false;\n                goto joined_r0x00056b15;\n              }\n              if (uVar5 != ((plVar26->reloc_statement).section)->lineno_count) break;\n              pcVar16 = strrchr(((plVar26->reloc_statement).section)->name,0x2e);\n            }\n            do {\n              if (uVar5 != ((plVar23->reloc_statement).section)->lineno_count) break;\n              pwVar31 = (wildcard_list *)((plVar23->reloc_statement).section)->name;\n              pcVar16 = strrchr((char *)pwVar31,0x2e);\n              if (pcVar16 == (char *)0x0) {\nLAB_00056d20:\n                iVar19 = filename_cmp(((plVar26->wild_statement).section_list)->next,pwVar31);\n                if (iVar19 != 0) {\n                  bVar21 = false;\n                  goto LAB_00056b08;\n                }\n              }\n              else {\n                iVar19 = filename_cmp(pcVar16,&DAT_00192ed1);\n                if (iVar19 != 0) {\n                  pwVar31 = ((plVar23->wild_statement).section_list)->next;\n                  goto LAB_00056d20;\n                }\n              }\n              plVar23 = (plVar23->wild_statement).children.head;\n            } while (plVar23 != (lang_statement_union *)0x0);\n            pcVar16 = strrchr(((local_50->reloc_statement).section)->name,0x2e);\n          }\n          bVar21 = true;\n          iVar19 = filename_cmp(pcVar16,".dll");\n          if (iVar19 == 0) {\n            pbVar17 = ((local_50->input_statement).the_bfd)->sections;\n            if (pbVar17 == (bfd_section *)0x0) {\n              iVar19 = 99;\n            }\n            else {\n              iVar20 = 0;\n              bVar34 = true;\n              bVar21 = false;\n              do {\n                bVar32 = false;\n                iVar19 = 9;\n                pbVar27 = (byte *)pbVar17->name;\n                pbVar30 = (byte *)".idata$2";\n                do {\n                  if (iVar19 == 0) break;\n                  iVar19 = iVar19 + -1;\n                  bVar32 = *pbVar27 < *pbVar30;\n                  bVar34 = *pbVar27 == *pbVar30;\n                  pbVar27 = pbVar27 + (uint)bVar35 * -2 + 1;\n                  pbVar30 = pbVar30 + (uint)bVar35 * -2 + 1;\n                } while (bVar34);\n                if ((!bVar32 && !bVar34) == bVar32) {\n                  bVar21 = true;\n                }\n                iVar20 = iVar20 + pbVar17->reloc_count;\n                pbVar17 = pbVar17->next;\n                bVar34 = pbVar17 == (bfd_section *)0x0;\n              } while (!bVar34);\n              iVar19 = 0x61;\n              if (!bVar21) {\n                iVar19 = (iVar20 < 1) + 0x62;\n              }\n            }\n            sVar14 = strlen(((local_50->input_statement).the_bfd)->filename);\n            pcVar16 = (char *)xmalloc(sVar14 + 3);\n            sprintf(pcVar16,"%s.%c",((local_50->wild_statement).section_list)->next,iVar19);\n            ((local_50->reloc_statement).section)->name = pcVar16;\n            sVar14 = strlen((local_50->wild_statement).filename);\n            pcVar16 = (char *)xmalloc(sVar14 + 3);\n            sprintf(pcVar16,"%s.%c",(local_50->wild_statement).filename,iVar19);\n            (local_50->wild_statement).filename = pcVar16;\n            bVar21 = true;\n          }\n        }\nLAB_00056b08:\n        local_50 = (local_50->wild_statement).children.head;\njoined_r0x00056b15:\n      } while (local_50 != (lang_statement_union *)0x0);\n      local_4c = file_chain.head;\n      if (file_chain.head != (lang_statement_union *)0x0) {\n        do {\n          pbVar12 = (local_4c->input_statement).the_bfd;\n          if ((pbVar12->my_archive != (bfd *)0x0) &&\n             (pbVar17 = pbVar12->sections, pbVar17 != (bfd_section *)0x0)) {\n            pbVar22 = (bfd_section *)0x0;\n            bVar21 = false;\n            bVar34 = true;\n            do {\n              bVar32 = false;\n              iVar19 = 7;\n              pbVar27 = (byte *)pbVar17->name;\n              pbVar30 = (byte *)".idata$";\n              do {\n                if (iVar19 == 0) break;\n                iVar19 = iVar19 + -1;\n                bVar32 = *pbVar27 < *pbVar30;\n                bVar34 = *pbVar27 == *pbVar30;\n                pbVar27 = pbVar27 + (uint)bVar35 * -2 + 1;\n                pbVar30 = pbVar30 + (uint)bVar35 * -2 + 1;\n              } while (bVar34);\n              if ((!bVar32 && !bVar34) == bVar32) {\n                bVar21 = true;\n              }\n              if (((pbVar17->flags & 0x10) != 0) && (pbVar17->reloc_count != 0)) {\n                pbVar22 = pbVar17;\n              }\n              pbVar17 = pbVar17->next;\n              bVar34 = pbVar17 == (bfd_section *)0x0;\n            } while (!bVar34);\n            if ((pbVar22 != (bfd_section *)0x0) && (bVar21)) {\n              iVar19 = bfd_generic_link_read_symbols(pbVar12);\n              if (iVar19 == 0) {\nLAB_000570af:\n                pwVar31 = (local_4c->wild_statement).section_list;\n                pcVar16 = (char *)dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n                einfo(pcVar16,pwVar31);\n                return;\n              }\n              ppbVar28 = ((local_4c->input_statement).the_bfd)->outsymbols;\n              uVar5 = ((local_4c->input_statement).the_bfd)->symcount;\n              if (0 < (int)uVar5) {\n                ppbVar2 = ppbVar28 + uVar5;\n                do {\n                  if (((((*ppbVar28)->section->id == pbVar22->id) &&\n                       (pbVar18 = (bfd_link_hash_entry *)\n                                  bfd_link_hash_lookup(link_info.hash,(*ppbVar28)->name,0,0,1),\n                       pbVar18 != (bfd_link_hash_entry *)0x0)) && (pbVar18->field_0xc == '\x03')) &&\n                     (((pbVar18->u).undef.next == (bfd_link_hash_entry *)0x0 &&\n                      ((link_info.hash)->undefs_tail != pbVar18)))) {\n                    pbVar22->flags = pbVar22->flags | 0x8000;\n                  }\n                  ppbVar28 = ppbVar28 + 1;\n                } while (ppbVar2 != ppbVar28);\n              }\n            }\n          }\n          local_4c = (local_4c->wild_statement).children.head;\n        } while (local_4c != (lang_statement_union *)0x0);\n      }\n    }" do (compound_statement "{\n        uVar5 = ((local_50->reloc_statement).section)->lineno_count;\n        if (uVar5 != 0) {\n          pcVar16 = strrchr(((local_50->reloc_statement).section)->name,0x2e);\n          plVar26 = local_50;\n          if ((lang_statement_union *)uVar5 == local_40) {\n            if (!bVar21) goto LAB_00056b08;\n          }\n          else {\n            while ((plVar23 = local_50, local_40 = (lang_statement_union *)uVar5,\n                   pcVar16 == (char *)0x0 || (iVar19 = filename_cmp(pcVar16,".dll"), iVar19 != 0)))\n            {\n              plVar26 = (lang_statement_union *)(plVar26->data_statement).output_section;\n              if (plVar26 == (lang_statement_union *)0x0) {\n                local_50 = (local_50->wild_statement).children.head;\n                bVar21 = false;\n                goto joined_r0x00056b15;\n              }\n              if (uVar5 != ((plVar26->reloc_statement).section)->lineno_count) break;\n              pcVar16 = strrchr(((plVar26->reloc_statement).section)->name,0x2e);\n            }\n            do {\n              if (uVar5 != ((plVar23->reloc_statement).section)->lineno_count) break;\n              pwVar31 = (wildcard_list *)((plVar23->reloc_statement).section)->name;\n              pcVar16 = strrchr((char *)pwVar31,0x2e);\n              if (pcVar16 == (char *)0x0) {\nLAB_00056d20:\n                iVar19 = filename_cmp(((plVar26->wild_statement).section_list)->next,pwVar31);\n                if (iVar19 != 0) {\n                  bVar21 = false;\n                  goto LAB_00056b08;\n                }\n              }\n              else {\n                iVar19 = filename_cmp(pcVar16,&DAT_00192ed1);\n                if (iVar19 != 0) {\n                  pwVar31 = ((plVar23->wild_statement).section_list)->next;\n                  goto LAB_00056d20;\n                }\n              }\n              plVar23 = (plVar23->wild_statement).children.head;\n            } while (plVar23 != (lang_statement_union *)0x0);\n            pcVar16 = strrchr(((local_50->reloc_statement).section)->name,0x2e);\n          }\n          bVar21 = true;\n          iVar19 = filename_cmp(pcVar16,".dll");\n          if (iVar19 == 0) {\n            pbVar17 = ((local_50->input_statement).the_bfd)->sections;\n            if (pbVar17 == (bfd_section *)0x0) {\n              iVar19 = 99;\n            }\n            else {\n              iVar20 = 0;\n              bVar34 = true;\n              bVar21 = false;\n              do {\n                bVar32 = false;\n                iVar19 = 9;\n                pbVar27 = (byte *)pbVar17->name;\n                pbVar30 = (byte *)".idata$2";\n                do {\n                  if (iVar19 == 0) break;\n                  iVar19 = iVar19 + -1;\n                  bVar32 = *pbVar27 < *pbVar30;\n                  bVar34 = *pbVar27 == *pbVar30;\n                  pbVar27 = pbVar27 + (uint)bVar35 * -2 + 1;\n                  pbVar30 = pbVar30 + (uint)bVar35 * -2 + 1;\n                } while (bVar34);\n                if ((!bVar32 && !bVar34) == bVar32) {\n                  bVar21 = true;\n                }\n                iVar20 = iVar20 + pbVar17->reloc_count;\n                pbVar17 = pbVar17->next;\n                bVar34 = pbVar17 == (bfd_section *)0x0;\n              } while (!bVar34);\n              iVar19 = 0x61;\n              if (!bVar21) {\n                iVar19 = (iVar20 < 1) + 0x62;\n              }\n            }\n            sVar14 = strlen(((local_50->input_statement).the_bfd)->filename);\n            pcVar16 = (char *)xmalloc(sVar14 + 3);\n            sprintf(pcVar16,"%s.%c",((local_50->wild_statement).section_list)->next,iVar19);\n            ((local_50->reloc_statement).section)->name = pcVar16;\n            sVar14 = strlen((local_50->wild_statement).filename);\n            pcVar16 = (char *)xmalloc(sVar14 + 3);\n            sprintf(pcVar16,"%s.%c",(local_50->wild_statement).filename,iVar19);\n            (local_50->wild_statement).filename = pcVar16;\n            bVar21 = true;\n          }\n        }\nLAB_00056b08:\n        local_50 = (local_50->wild_statement).children.head;\njoined_r0x00056b15:\n      } while (local_50 != (lang_statement_union *)0x0);\n      local_4c = file_chain.head;\n      if (file_chain.head != (lang_statement_union *)0x0) {\n        do {\n          pbVar12 = (local_4c->input_statement).the_bfd;\n          if ((pbVar12->my_archive != (bfd *)0x0) &&\n             (pbVar17 = pbVar12->sections, pbVar17 != (bfd_section *)0x0)) {\n            pbVar22 = (bfd_section *)0x0;\n            bVar21 = false;\n            bVar34 = true;\n            do {\n              bVar32 = false;\n              iVar19 = 7;\n              pbVar27 = (byte *)pbVar17->name;\n              pbVar30 = (byte *)".idata$";\n              do {\n                if (iVar19 == 0) break;\n                iVar19 = iVar19 + -1;\n                bVar32 = *pbVar27 < *pbVar30;\n                bVar34 = *pbVar27 == *pbVar30;\n                pbVar27 = pbVar27 + (uint)bVar35 * -2 + 1;\n                pbVar30 = pbVar30 + (uint)bVar35 * -2 + 1;\n              } while (bVar34);\n              if ((!bVar32 && !bVar34) == bVar32) {\n                bVar21 = true;\n              }\n              if (((pbVar17->flags & 0x10) != 0) && (pbVar17->reloc_count != 0)) {\n                pbVar22 = pbVar17;\n              }\n              pbVar17 = pbVar17->next;\n              bVar34 = pbVar17 == (bfd_section *)0x0;\n            } while (!bVar34);\n            if ((pbVar22 != (bfd_section *)0x0) && (bVar21)) {\n              iVar19 = bfd_generic_link_read_symbols(pbVar12);\n              if (iVar19 == 0) {\nLAB_000570af:\n                pwVar31 = (local_4c->wild_statement).section_list;\n                pcVar16 = (char *)dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n                einfo(pcVar16,pwVar31);\n                return;\n              }\n              ppbVar28 = ((local_4c->input_statement).the_bfd)->outsymbols;\n              uVar5 = ((local_4c->input_statement).the_bfd)->symcount;\n              if (0 < (int)uVar5) {\n                ppbVar2 = ppbVar28 + uVar5;\n                do {\n                  if (((((*ppbVar28)->section->id == pbVar22->id) &&\n                       (pbVar18 = (bfd_link_hash_entry *)\n                                  bfd_link_hash_lookup(link_info.hash,(*ppbVar28)->name,0,0,1),\n                       pbVar18 != (bfd_link_hash_entry *)0x0)) && (pbVar18->field_0xc == '\x03')) &&\n                     (((pbVar18->u).undef.next == (bfd_link_hash_entry *)0x0 &&\n                      ((link_info.hash)->undefs_tail != pbVar18)))) {\n                    pbVar22->flags = pbVar22->flags | 0x8000;\n                  }\n                  ppbVar28 = ppbVar28 + 1;\n                } while (ppbVar2 != ppbVar28);\n              }\n            }\n          }\n          local_4c = (local_4c->wild_statement).children.head;\n        } while (local_4c != (lang_statement_union *)0x0);\n      }\n    }" { (expression_statement "uVar5 = ((local_50->reloc_statement).section)->lineno_count;" (assignment_expression "uVar5 = ((local_50->reloc_statement).section)->lineno_count" identifier = (field_expression "((local_50->reloc_statement).section)->lineno_count" (parenthesized_expression "((local_50->reloc_statement).section)" ( (field_expression "(local_50->reloc_statement).section" (parenthesized_expression "(local_50->reloc_statement)" ( (field_expression "local_50->reloc_statement" identifier -> field_identifier) )) . field_identifier) )) -> field_identifier)) ;) (if_statement "if (uVar5 != 0) {\n          pcVar16 = strrchr(((local_50->reloc_statement).section)->name,0x2e);\n          plVar26 = local_50;\n          if ((lang_statement_union *)uVar5 == local_40) {\n            if (!bVar21) goto LAB_00056b08;\n          }\n          else {\n            while ((plVar23 = local_50, local_40 = (lang_statement_union *)uVar5,\n                   pcVar16 == (char *)0x0 || (iVar19 = filename_cmp(pcVar16,".dll"), iVar19 != 0)))\n            {\n              plVar26 = (lang_statement_union *)(plVar26->data_statement).output_section;\n              if (plVar26 == (lang_statement_union *)0x0) {\n                local_50 = (local_50->wild_statement).children.head;\n                bVar21 = false;\n                goto joined_r0x00056b15;\n              }\n              if (uVar5 != ((plVar26->reloc_statement).section)->lineno_count) break;\n              pcVar16 = strrchr(((plVar26->reloc_statement).section)->name,0x2e);\n            }\n            do {\n              if (uVar5 != ((plVar23->reloc_statement).section)->lineno_count) break;\n              pwVar31 = (wildcard_list *)((plVar23->reloc_statement).section)->name;\n              pcVar16 = strrchr((char *)pwVar31,0x2e);\n              if (pcVar16 == (char *)0x0) {\nLAB_00056d20:\n                iVar19 = filename_cmp(((plVar26->wild_statement).section_list)->next,pwVar31);\n                if (iVar19 != 0) {\n                  bVar21 = false;\n                  goto LAB_00056b08;\n                }\n              }\n              else {\n                iVar19 = filename_cmp(pcVar16,&DAT_00192ed1);\n                if (iVar19 != 0) {\n                  pwVar31 = ((plVar23->wild_statement).section_list)->next;\n                  goto LAB_00056d20;\n                }\n              }\n              plVar23 = (plVar23->wild_statement).children.head;\n            } while (plVar23 != (lang_statement_union *)0x0);\n            pcVar16 = strrchr(((local_50->reloc_statement).section)->name,0x2e);\n          }\n          bVar21 = true;\n          iVar19 = filename_cmp(pcVar16,".dll");\n          if (iVar19 == 0) {\n            pbVar17 = ((local_50->input_statement).the_bfd)->sections;\n            if (pbVar17 == (bfd_section *)0x0) {\n              iVar19 = 99;\n            }\n            else {\n              iVar20 = 0;\n              bVar34 = true;\n              bVar21 = false;\n              do {\n                bVar32 = false;\n                iVar19 = 9;\n                pbVar27 = (byte *)pbVar17->name;\n                pbVar30 = (byte *)".idata$2";\n                do {\n                  if (iVar19 == 0) break;\n                  iVar19 = iVar19 + -1;\n                  bVar32 = *pbVar27 < *pbVar30;\n                  bVar34 = *pbVar27 == *pbVar30;\n                  pbVar27 = pbVar27 + (uint)bVar35 * -2 + 1;\n                  pbVar30 = pbVar30 + (uint)bVar35 * -2 + 1;\n                } while (bVar34);\n                if ((!bVar32 && !bVar34) == bVar32) {\n                  bVar21 = true;\n                }\n                iVar20 = iVar20 + pbVar17->reloc_count;\n                pbVar17 = pbVar17->next;\n                bVar34 = pbVar17 == (bfd_section *)0x0;\n              } while (!bVar34);\n              iVar19 = 0x61;\n              if (!bVar21) {\n                iVar19 = (iVar20 < 1) + 0x62;\n              }\n            }\n            sVar14 = strlen(((local_50->input_statement).the_bfd)->filename);\n            pcVar16 = (char *)xmalloc(sVar14 + 3);\n            sprintf(pcVar16,"%s.%c",((local_50->wild_statement).section_list)->next,iVar19);\n            ((local_50->reloc_statement).section)->name = pcVar16;\n            sVar14 = strlen((local_50->wild_statement).filename);\n            pcVar16 = (char *)xmalloc(sVar14 + 3);\n            sprintf(pcVar16,"%s.%c",(local_50->wild_statement).filename,iVar19);\n            (local_50->wild_statement).filename = pcVar16;\n            bVar21 = true;\n          }\n        }" if (parenthesized_expression "(uVar5 != 0)" ( (binary_expression "uVar5 != 0" identifier != number_literal) )) (compound_statement "{\n          pcVar16 = strrchr(((local_50->reloc_statement).section)->name,0x2e);\n          plVar26 = local_50;\n          if ((lang_statement_union *)uVar5 == local_40) {\n            if (!bVar21) goto LAB_00056b08;\n          }\n          else {\n            while ((plVar23 = local_50, local_40 = (lang_statement_union *)uVar5,\n                   pcVar16 == (char *)0x0 || (iVar19 = filename_cmp(pcVar16,".dll"), iVar19 != 0)))\n            {\n              plVar26 = (lang_statement_union *)(plVar26->data_statement).output_section;\n              if (plVar26 == (lang_statement_union *)0x0) {\n                local_50 = (local_50->wild_statement).children.head;\n                bVar21 = false;\n                goto joined_r0x00056b15;\n              }\n              if (uVar5 != ((plVar26->reloc_statement).section)->lineno_count) break;\n              pcVar16 = strrchr(((plVar26->reloc_statement).section)->name,0x2e);\n            }\n            do {\n              if (uVar5 != ((plVar23->reloc_statement).section)->lineno_count) break;\n              pwVar31 = (wildcard_list *)((plVar23->reloc_statement).section)->name;\n              pcVar16 = strrchr((char *)pwVar31,0x2e);\n              if (pcVar16 == (char *)0x0) {\nLAB_00056d20:\n                iVar19 = filename_cmp(((plVar26->wild_statement).section_list)->next,pwVar31);\n                if (iVar19 != 0) {\n                  bVar21 = false;\n                  goto LAB_00056b08;\n                }\n              }\n              else {\n                iVar19 = filename_cmp(pcVar16,&DAT_00192ed1);\n                if (iVar19 != 0) {\n                  pwVar31 = ((plVar23->wild_statement).section_list)->next;\n                  goto LAB_00056d20;\n                }\n              }\n              plVar23 = (plVar23->wild_statement).children.head;\n            } while (plVar23 != (lang_statement_union *)0x0);\n            pcVar16 = strrchr(((local_50->reloc_statement).section)->name,0x2e);\n          }\n          bVar21 = true;\n          iVar19 = filename_cmp(pcVar16,".dll");\n          if (iVar19 == 0) {\n            pbVar17 = ((local_50->input_statement).the_bfd)->sections;\n            if (pbVar17 == (bfd_section *)0x0) {\n              iVar19 = 99;\n            }\n            else {\n              iVar20 = 0;\n              bVar34 = true;\n              bVar21 = false;\n              do {\n                bVar32 = false;\n                iVar19 = 9;\n                pbVar27 = (byte *)pbVar17->name;\n                pbVar30 = (byte *)".idata$2";\n                do {\n                  if (iVar19 == 0) break;\n                  iVar19 = iVar19 + -1;\n                  bVar32 = *pbVar27 < *pbVar30;\n                  bVar34 = *pbVar27 == *pbVar30;\n                  pbVar27 = pbVar27 + (uint)bVar35 * -2 + 1;\n                  pbVar30 = pbVar30 + (uint)bVar35 * -2 + 1;\n                } while (bVar34);\n                if ((!bVar32 && !bVar34) == bVar32) {\n                  bVar21 = true;\n                }\n                iVar20 = iVar20 + pbVar17->reloc_count;\n                pbVar17 = pbVar17->next;\n                bVar34 = pbVar17 == (bfd_section *)0x0;\n              } while (!bVar34);\n              iVar19 = 0x61;\n              if (!bVar21) {\n                iVar19 = (iVar20 < 1) + 0x62;\n              }\n            }\n            sVar14 = strlen(((local_50->input_statement).the_bfd)->filename);\n            pcVar16 = (char *)xmalloc(sVar14 + 3);\n            sprintf(pcVar16,"%s.%c",((local_50->wild_statement).section_list)->next,iVar19);\n            ((local_50->reloc_statement).section)->name = pcVar16;\n            sVar14 = strlen((local_50->wild_statement).filename);\n            pcVar16 = (char *)xmalloc(sVar14 + 3);\n            sprintf(pcVar16,"%s.%c",(local_50->wild_statement).filename,iVar19);\n            (local_50->wild_statement).filename = pcVar16;\n            bVar21 = true;\n          }\n        }" { (expression_statement "pcVar16 = strrchr(((local_50->reloc_statement).section)->name,0x2e);" (assignment_expression "pcVar16 = strrchr(((local_50->reloc_statement).section)->name,0x2e)" identifier = (call_expression "strrchr(((local_50->reloc_statement).section)->name,0x2e)" identifier (argument_list "(((local_50->reloc_statement).section)->name,0x2e)" ( (field_expression "((local_50->reloc_statement).section)->name" (parenthesized_expression "((local_50->reloc_statement).section)" ( (field_expression "(local_50->reloc_statement).section" (parenthesized_expression "(local_50->reloc_statement)" ( (field_expression "local_50->reloc_statement" identifier -> field_identifier) )) . field_identifier) )) -> field_identifier) , number_literal )))) ;) (expression_statement "plVar26 = local_50;" (assignment_expression "plVar26 = local_50" identifier = identifier) ;) (if_statement "if ((lang_statement_union *)uVar5 == local_40) {\n            if (!bVar21) goto LAB_00056b08;\n          }\n          else {\n            while ((plVar23 = local_50, local_40 = (lang_statement_union *)uVar5,\n                   pcVar16 == (char *)0x0 || (iVar19 = filename_cmp(pcVar16,".dll"), iVar19 != 0)))\n            {\n              plVar26 = (lang_statement_union *)(plVar26->data_statement).output_section;\n              if (plVar26 == (lang_statement_union *)0x0) {\n                local_50 = (local_50->wild_statement).children.head;\n                bVar21 = false;\n                goto joined_r0x00056b15;\n              }\n              if (uVar5 != ((plVar26->reloc_statement).section)->lineno_count) break;\n              pcVar16 = strrchr(((plVar26->reloc_statement).section)->name,0x2e);\n            }\n            do {\n              if (uVar5 != ((plVar23->reloc_statement).section)->lineno_count) break;\n              pwVar31 = (wildcard_list *)((plVar23->reloc_statement).section)->name;\n              pcVar16 = strrchr((char *)pwVar31,0x2e);\n              if (pcVar16 == (char *)0x0) {\nLAB_00056d20:\n                iVar19 = filename_cmp(((plVar26->wild_statement).section_list)->next,pwVar31);\n                if (iVar19 != 0) {\n                  bVar21 = false;\n                  goto LAB_00056b08;\n                }\n              }\n              else {\n                iVar19 = filename_cmp(pcVar16,&DAT_00192ed1);\n                if (iVar19 != 0) {\n                  pwVar31 = ((plVar23->wild_statement).section_list)->next;\n                  goto LAB_00056d20;\n                }\n              }\n              plVar23 = (plVar23->wild_statement).children.head;\n            } while (plVar23 != (lang_statement_union *)0x0);\n            pcVar16 = strrchr(((local_50->reloc_statement).section)->name,0x2e);\n          }" if (parenthesized_expression "((lang_statement_union *)uVar5 == local_40)" ( (binary_expression "(lang_statement_union *)uVar5 == local_40" (cast_expression "(lang_statement_union *)uVar5" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) == identifier) )) (compound_statement "{\n            if (!bVar21) goto LAB_00056b08;\n          }" { (if_statement "if (!bVar21) goto LAB_00056b08;" if (parenthesized_expression "(!bVar21)" ( (unary_expression "!bVar21" ! identifier) )) (goto_statement "goto LAB_00056b08;" goto statement_identifier ;)) }) (else_clause "else {\n            while ((plVar23 = local_50, local_40 = (lang_statement_union *)uVar5,\n                   pcVar16 == (char *)0x0 || (iVar19 = filename_cmp(pcVar16,".dll"), iVar19 != 0)))\n            {\n              plVar26 = (lang_statement_union *)(plVar26->data_statement).output_section;\n              if (plVar26 == (lang_statement_union *)0x0) {\n                local_50 = (local_50->wild_statement).children.head;\n                bVar21 = false;\n                goto joined_r0x00056b15;\n              }\n              if (uVar5 != ((plVar26->reloc_statement).section)->lineno_count) break;\n              pcVar16 = strrchr(((plVar26->reloc_statement).section)->name,0x2e);\n            }\n            do {\n              if (uVar5 != ((plVar23->reloc_statement).section)->lineno_count) break;\n              pwVar31 = (wildcard_list *)((plVar23->reloc_statement).section)->name;\n              pcVar16 = strrchr((char *)pwVar31,0x2e);\n              if (pcVar16 == (char *)0x0) {\nLAB_00056d20:\n                iVar19 = filename_cmp(((plVar26->wild_statement).section_list)->next,pwVar31);\n                if (iVar19 != 0) {\n                  bVar21 = false;\n                  goto LAB_00056b08;\n                }\n              }\n              else {\n                iVar19 = filename_cmp(pcVar16,&DAT_00192ed1);\n                if (iVar19 != 0) {\n                  pwVar31 = ((plVar23->wild_statement).section_list)->next;\n                  goto LAB_00056d20;\n                }\n              }\n              plVar23 = (plVar23->wild_statement).children.head;\n            } while (plVar23 != (lang_statement_union *)0x0);\n            pcVar16 = strrchr(((local_50->reloc_statement).section)->name,0x2e);\n          }" else (compound_statement "{\n            while ((plVar23 = local_50, local_40 = (lang_statement_union *)uVar5,\n                   pcVar16 == (char *)0x0 || (iVar19 = filename_cmp(pcVar16,".dll"), iVar19 != 0)))\n            {\n              plVar26 = (lang_statement_union *)(plVar26->data_statement).output_section;\n              if (plVar26 == (lang_statement_union *)0x0) {\n                local_50 = (local_50->wild_statement).children.head;\n                bVar21 = false;\n                goto joined_r0x00056b15;\n              }\n              if (uVar5 != ((plVar26->reloc_statement).section)->lineno_count) break;\n              pcVar16 = strrchr(((plVar26->reloc_statement).section)->name,0x2e);\n            }\n            do {\n              if (uVar5 != ((plVar23->reloc_statement).section)->lineno_count) break;\n              pwVar31 = (wildcard_list *)((plVar23->reloc_statement).section)->name;\n              pcVar16 = strrchr((char *)pwVar31,0x2e);\n              if (pcVar16 == (char *)0x0) {\nLAB_00056d20:\n                iVar19 = filename_cmp(((plVar26->wild_statement).section_list)->next,pwVar31);\n                if (iVar19 != 0) {\n                  bVar21 = false;\n                  goto LAB_00056b08;\n                }\n              }\n              else {\n                iVar19 = filename_cmp(pcVar16,&DAT_00192ed1);\n                if (iVar19 != 0) {\n                  pwVar31 = ((plVar23->wild_statement).section_list)->next;\n                  goto LAB_00056d20;\n                }\n              }\n              plVar23 = (plVar23->wild_statement).children.head;\n            } while (plVar23 != (lang_statement_union *)0x0);\n            pcVar16 = strrchr(((local_50->reloc_statement).section)->name,0x2e);\n          }" { (while_statement "while ((plVar23 = local_50, local_40 = (lang_statement_union *)uVar5,\n                   pcVar16 == (char *)0x0 || (iVar19 = filename_cmp(pcVar16,".dll"), iVar19 != 0)))\n            {\n              plVar26 = (lang_statement_union *)(plVar26->data_statement).output_section;\n              if (plVar26 == (lang_statement_union *)0x0) {\n                local_50 = (local_50->wild_statement).children.head;\n                bVar21 = false;\n                goto joined_r0x00056b15;\n              }\n              if (uVar5 != ((plVar26->reloc_statement).section)->lineno_count) break;\n              pcVar16 = strrchr(((plVar26->reloc_statement).section)->name,0x2e);\n            }" while (parenthesized_expression "((plVar23 = local_50, local_40 = (lang_statement_union *)uVar5,\n                   pcVar16 == (char *)0x0 || (iVar19 = filename_cmp(pcVar16,".dll"), iVar19 != 0)))" ( (parenthesized_expression "(plVar23 = local_50, local_40 = (lang_statement_union *)uVar5,\n                   pcVar16 == (char *)0x0 || (iVar19 = filename_cmp(pcVar16,".dll"), iVar19 != 0))" ( (comma_expression "plVar23 = local_50, local_40 = (lang_statement_union *)uVar5,\n                   pcVar16 == (char *)0x0 || (iVar19 = filename_cmp(pcVar16,".dll"), iVar19 != 0)" (assignment_expression "plVar23 = local_50" identifier = identifier) , (comma_expression "local_40 = (lang_statement_union *)uVar5,\n                   pcVar16 == (char *)0x0 || (iVar19 = filename_cmp(pcVar16,".dll"), iVar19 != 0)" (assignment_expression "local_40 = (lang_statement_union *)uVar5" identifier = (cast_expression "(lang_statement_union *)uVar5" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , (binary_expression "pcVar16 == (char *)0x0 || (iVar19 = filename_cmp(pcVar16,".dll"), iVar19 != 0)" (binary_expression "pcVar16 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) || (parenthesized_expression "(iVar19 = filename_cmp(pcVar16,".dll"), iVar19 != 0)" ( (comma_expression "iVar19 = filename_cmp(pcVar16,".dll"), iVar19 != 0" (assignment_expression "iVar19 = filename_cmp(pcVar16,".dll")" identifier = (call_expression "filename_cmp(pcVar16,".dll")" identifier (argument_list "(pcVar16,".dll")" ( identifier , (string_literal "".dll"" " string_content ") )))) , (binary_expression "iVar19 != 0" identifier != number_literal)) ))))) )) )) (compound_statement "{\n              plVar26 = (lang_statement_union *)(plVar26->data_statement).output_section;\n              if (plVar26 == (lang_statement_union *)0x0) {\n                local_50 = (local_50->wild_statement).children.head;\n                bVar21 = false;\n                goto joined_r0x00056b15;\n              }\n              if (uVar5 != ((plVar26->reloc_statement).section)->lineno_count) break;\n              pcVar16 = strrchr(((plVar26->reloc_statement).section)->name,0x2e);\n            }" { (expression_statement "plVar26 = (lang_statement_union *)(plVar26->data_statement).output_section;" (assignment_expression "plVar26 = (lang_statement_union *)(plVar26->data_statement).output_section" identifier = (cast_expression "(lang_statement_union *)(plVar26->data_statement).output_section" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(plVar26->data_statement).output_section" (parenthesized_expression "(plVar26->data_statement)" ( (field_expression "plVar26->data_statement" identifier -> field_identifier) )) . field_identifier))) ;) (if_statement "if (plVar26 == (lang_statement_union *)0x0) {\n                local_50 = (local_50->wild_statement).children.head;\n                bVar21 = false;\n                goto joined_r0x00056b15;\n              }" if (parenthesized_expression "(plVar26 == (lang_statement_union *)0x0)" ( (binary_expression "plVar26 == (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                local_50 = (local_50->wild_statement).children.head;\n                bVar21 = false;\n                goto joined_r0x00056b15;\n              }" { (expression_statement "local_50 = (local_50->wild_statement).children.head;" (assignment_expression "local_50 = (local_50->wild_statement).children.head" identifier = (field_expression "(local_50->wild_statement).children.head" (field_expression "(local_50->wild_statement).children" (parenthesized_expression "(local_50->wild_statement)" ( (field_expression "local_50->wild_statement" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) (expression_statement "bVar21 = false;" (assignment_expression "bVar21 = false" identifier = false) ;) (goto_statement "goto joined_r0x00056b15;" goto statement_identifier ;) })) (if_statement "if (uVar5 != ((plVar26->reloc_statement).section)->lineno_count) break;" if (parenthesized_expression "(uVar5 != ((plVar26->reloc_statement).section)->lineno_count)" ( (binary_expression "uVar5 != ((plVar26->reloc_statement).section)->lineno_count" identifier != (field_expression "((plVar26->reloc_statement).section)->lineno_count" (parenthesized_expression "((plVar26->reloc_statement).section)" ( (field_expression "(plVar26->reloc_statement).section" (parenthesized_expression "(plVar26->reloc_statement)" ( (field_expression "plVar26->reloc_statement" identifier -> field_identifier) )) . field_identifier) )) -> field_identifier)) )) (break_statement "break;" break ;)) (expression_statement "pcVar16 = strrchr(((plVar26->reloc_statement).section)->name,0x2e);" (assignment_expression "pcVar16 = strrchr(((plVar26->reloc_statement).section)->name,0x2e)" identifier = (call_expression "strrchr(((plVar26->reloc_statement).section)->name,0x2e)" identifier (argument_list "(((plVar26->reloc_statement).section)->name,0x2e)" ( (field_expression "((plVar26->reloc_statement).section)->name" (parenthesized_expression "((plVar26->reloc_statement).section)" ( (field_expression "(plVar26->reloc_statement).section" (parenthesized_expression "(plVar26->reloc_statement)" ( (field_expression "plVar26->reloc_statement" identifier -> field_identifier) )) . field_identifier) )) -> field_identifier) , number_literal )))) ;) })) (do_statement "do {\n              if (uVar5 != ((plVar23->reloc_statement).section)->lineno_count) break;\n              pwVar31 = (wildcard_list *)((plVar23->reloc_statement).section)->name;\n              pcVar16 = strrchr((char *)pwVar31,0x2e);\n              if (pcVar16 == (char *)0x0) {\nLAB_00056d20:\n                iVar19 = filename_cmp(((plVar26->wild_statement).section_list)->next,pwVar31);\n                if (iVar19 != 0) {\n                  bVar21 = false;\n                  goto LAB_00056b08;\n                }\n              }\n              else {\n                iVar19 = filename_cmp(pcVar16,&DAT_00192ed1);\n                if (iVar19 != 0) {\n                  pwVar31 = ((plVar23->wild_statement).section_list)->next;\n                  goto LAB_00056d20;\n                }\n              }\n              plVar23 = (plVar23->wild_statement).children.head;\n            } while (plVar23 != (lang_statement_union *)0x0);" do (compound_statement "{\n              if (uVar5 != ((plVar23->reloc_statement).section)->lineno_count) break;\n              pwVar31 = (wildcard_list *)((plVar23->reloc_statement).section)->name;\n              pcVar16 = strrchr((char *)pwVar31,0x2e);\n              if (pcVar16 == (char *)0x0) {\nLAB_00056d20:\n                iVar19 = filename_cmp(((plVar26->wild_statement).section_list)->next,pwVar31);\n                if (iVar19 != 0) {\n                  bVar21 = false;\n                  goto LAB_00056b08;\n                }\n              }\n              else {\n                iVar19 = filename_cmp(pcVar16,&DAT_00192ed1);\n                if (iVar19 != 0) {\n                  pwVar31 = ((plVar23->wild_statement).section_list)->next;\n                  goto LAB_00056d20;\n                }\n              }\n              plVar23 = (plVar23->wild_statement).children.head;\n            }" { (if_statement "if (uVar5 != ((plVar23->reloc_statement).section)->lineno_count) break;" if (parenthesized_expression "(uVar5 != ((plVar23->reloc_statement).section)->lineno_count)" ( (binary_expression "uVar5 != ((plVar23->reloc_statement).section)->lineno_count" identifier != (field_expression "((plVar23->reloc_statement).section)->lineno_count" (parenthesized_expression "((plVar23->reloc_statement).section)" ( (field_expression "(plVar23->reloc_statement).section" (parenthesized_expression "(plVar23->reloc_statement)" ( (field_expression "plVar23->reloc_statement" identifier -> field_identifier) )) . field_identifier) )) -> field_identifier)) )) (break_statement "break;" break ;)) (expression_statement "pwVar31 = (wildcard_list *)((plVar23->reloc_statement).section)->name;" (assignment_expression "pwVar31 = (wildcard_list *)((plVar23->reloc_statement).section)->name" identifier = (cast_expression "(wildcard_list *)((plVar23->reloc_statement).section)->name" ( (type_descriptor "wildcard_list *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "((plVar23->reloc_statement).section)->name" (parenthesized_expression "((plVar23->reloc_statement).section)" ( (field_expression "(plVar23->reloc_statement).section" (parenthesized_expression "(plVar23->reloc_statement)" ( (field_expression "plVar23->reloc_statement" identifier -> field_identifier) )) . field_identifier) )) -> field_identifier))) ;) (expression_statement "pcVar16 = strrchr((char *)pwVar31,0x2e);" (assignment_expression "pcVar16 = strrchr((char *)pwVar31,0x2e)" identifier = (call_expression "strrchr((char *)pwVar31,0x2e)" identifier (argument_list "((char *)pwVar31,0x2e)" ( (cast_expression "(char *)pwVar31" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , number_literal )))) ;) (if_statement "if (pcVar16 == (char *)0x0) {\nLAB_00056d20:\n                iVar19 = filename_cmp(((plVar26->wild_statement).section_list)->next,pwVar31);\n                if (iVar19 != 0) {\n                  bVar21 = false;\n                  goto LAB_00056b08;\n                }\n              }\n              else {\n                iVar19 = filename_cmp(pcVar16,&DAT_00192ed1);\n                if (iVar19 != 0) {\n                  pwVar31 = ((plVar23->wild_statement).section_list)->next;\n                  goto LAB_00056d20;\n                }\n              }" if (parenthesized_expression "(pcVar16 == (char *)0x0)" ( (binary_expression "pcVar16 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_00056d20:\n                iVar19 = filename_cmp(((plVar26->wild_statement).section_list)->next,pwVar31);\n                if (iVar19 != 0) {\n                  bVar21 = false;\n                  goto LAB_00056b08;\n                }\n              }" { (labeled_statement "LAB_00056d20:\n                iVar19 = filename_cmp(((plVar26->wild_statement).section_list)->next,pwVar31);" statement_identifier : (expression_statement "iVar19 = filename_cmp(((plVar26->wild_statement).section_list)->next,pwVar31);" (assignment_expression "iVar19 = filename_cmp(((plVar26->wild_statement).section_list)->next,pwVar31)" identifier = (call_expression "filename_cmp(((plVar26->wild_statement).section_list)->next,pwVar31)" identifier (argument_list "(((plVar26->wild_statement).section_list)->next,pwVar31)" ( (field_expression "((plVar26->wild_statement).section_list)->next" (parenthesized_expression "((plVar26->wild_statement).section_list)" ( (field_expression "(plVar26->wild_statement).section_list" (parenthesized_expression "(plVar26->wild_statement)" ( (field_expression "plVar26->wild_statement" identifier -> field_identifier) )) . field_identifier) )) -> field_identifier) , identifier )))) ;)) (if_statement "if (iVar19 != 0) {\n                  bVar21 = false;\n                  goto LAB_00056b08;\n                }" if (parenthesized_expression "(iVar19 != 0)" ( (binary_expression "iVar19 != 0" identifier != number_literal) )) (compound_statement "{\n                  bVar21 = false;\n                  goto LAB_00056b08;\n                }" { (expression_statement "bVar21 = false;" (assignment_expression "bVar21 = false" identifier = false) ;) (goto_statement "goto LAB_00056b08;" goto statement_identifier ;) })) }) (else_clause "else {\n                iVar19 = filename_cmp(pcVar16,&DAT_00192ed1);\n                if (iVar19 != 0) {\n                  pwVar31 = ((plVar23->wild_statement).section_list)->next;\n                  goto LAB_00056d20;\n                }\n              }" else (compound_statement "{\n                iVar19 = filename_cmp(pcVar16,&DAT_00192ed1);\n                if (iVar19 != 0) {\n                  pwVar31 = ((plVar23->wild_statement).section_list)->next;\n                  goto LAB_00056d20;\n                }\n              }" { (expression_statement "iVar19 = filename_cmp(pcVar16,&DAT_00192ed1);" (assignment_expression "iVar19 = filename_cmp(pcVar16,&DAT_00192ed1)" identifier = (call_expression "filename_cmp(pcVar16,&DAT_00192ed1)" identifier (argument_list "(pcVar16,&DAT_00192ed1)" ( identifier , (pointer_expression "&DAT_00192ed1" & identifier) )))) ;) (if_statement "if (iVar19 != 0) {\n                  pwVar31 = ((plVar23->wild_statement).section_list)->next;\n                  goto LAB_00056d20;\n                }" if (parenthesized_expression "(iVar19 != 0)" ( (binary_expression "iVar19 != 0" identifier != number_literal) )) (compound_statement "{\n                  pwVar31 = ((plVar23->wild_statement).section_list)->next;\n                  goto LAB_00056d20;\n                }" { (expression_statement "pwVar31 = ((plVar23->wild_statement).section_list)->next;" (assignment_expression "pwVar31 = ((plVar23->wild_statement).section_list)->next" identifier = (field_expression "((plVar23->wild_statement).section_list)->next" (parenthesized_expression "((plVar23->wild_statement).section_list)" ( (field_expression "(plVar23->wild_statement).section_list" (parenthesized_expression "(plVar23->wild_statement)" ( (field_expression "plVar23->wild_statement" identifier -> field_identifier) )) . field_identifier) )) -> field_identifier)) ;) (goto_statement "goto LAB_00056d20;" goto statement_identifier ;) })) }))) (expression_statement "plVar23 = (plVar23->wild_statement).children.head;" (assignment_expression "plVar23 = (plVar23->wild_statement).children.head" identifier = (field_expression "(plVar23->wild_statement).children.head" (field_expression "(plVar23->wild_statement).children" (parenthesized_expression "(plVar23->wild_statement)" ( (field_expression "plVar23->wild_statement" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) }) while (parenthesized_expression "(plVar23 != (lang_statement_union *)0x0)" ( (binary_expression "plVar23 != (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 "pcVar16 = strrchr(((local_50->reloc_statement).section)->name,0x2e);" (assignment_expression "pcVar16 = strrchr(((local_50->reloc_statement).section)->name,0x2e)" identifier = (call_expression "strrchr(((local_50->reloc_statement).section)->name,0x2e)" identifier (argument_list "(((local_50->reloc_statement).section)->name,0x2e)" ( (field_expression "((local_50->reloc_statement).section)->name" (parenthesized_expression "((local_50->reloc_statement).section)" ( (field_expression "(local_50->reloc_statement).section" (parenthesized_expression "(local_50->reloc_statement)" ( (field_expression "local_50->reloc_statement" identifier -> field_identifier) )) . field_identifier) )) -> field_identifier) , number_literal )))) ;) }))) (expression_statement "bVar21 = true;" (assignment_expression "bVar21 = true" identifier = true) ;) (expression_statement "iVar19 = filename_cmp(pcVar16,".dll");" (assignment_expression "iVar19 = filename_cmp(pcVar16,".dll")" identifier = (call_expression "filename_cmp(pcVar16,".dll")" identifier (argument_list "(pcVar16,".dll")" ( identifier , (string_literal "".dll"" " string_content ") )))) ;) (if_statement "if (iVar19 == 0) {\n            pbVar17 = ((local_50->input_statement).the_bfd)->sections;\n            if (pbVar17 == (bfd_section *)0x0) {\n              iVar19 = 99;\n            }\n            else {\n              iVar20 = 0;\n              bVar34 = true;\n              bVar21 = false;\n              do {\n                bVar32 = false;\n                iVar19 = 9;\n                pbVar27 = (byte *)pbVar17->name;\n                pbVar30 = (byte *)".idata$2";\n                do {\n                  if (iVar19 == 0) break;\n                  iVar19 = iVar19 + -1;\n                  bVar32 = *pbVar27 < *pbVar30;\n                  bVar34 = *pbVar27 == *pbVar30;\n                  pbVar27 = pbVar27 + (uint)bVar35 * -2 + 1;\n                  pbVar30 = pbVar30 + (uint)bVar35 * -2 + 1;\n                } while (bVar34);\n                if ((!bVar32 && !bVar34) == bVar32) {\n                  bVar21 = true;\n                }\n                iVar20 = iVar20 + pbVar17->reloc_count;\n                pbVar17 = pbVar17->next;\n                bVar34 = pbVar17 == (bfd_section *)0x0;\n              } while (!bVar34);\n              iVar19 = 0x61;\n              if (!bVar21) {\n                iVar19 = (iVar20 < 1) + 0x62;\n              }\n            }\n            sVar14 = strlen(((local_50->input_statement).the_bfd)->filename);\n            pcVar16 = (char *)xmalloc(sVar14 + 3);\n            sprintf(pcVar16,"%s.%c",((local_50->wild_statement).section_list)->next,iVar19);\n            ((local_50->reloc_statement).section)->name = pcVar16;\n            sVar14 = strlen((local_50->wild_statement).filename);\n            pcVar16 = (char *)xmalloc(sVar14 + 3);\n            sprintf(pcVar16,"%s.%c",(local_50->wild_statement).filename,iVar19);\n            (local_50->wild_statement).filename = pcVar16;\n            bVar21 = true;\n          }" if (parenthesized_expression "(iVar19 == 0)" ( (binary_expression "iVar19 == 0" identifier == number_literal) )) (compound_statement "{\n            pbVar17 = ((local_50->input_statement).the_bfd)->sections;\n            if (pbVar17 == (bfd_section *)0x0) {\n              iVar19 = 99;\n            }\n            else {\n              iVar20 = 0;\n              bVar34 = true;\n              bVar21 = false;\n              do {\n                bVar32 = false;\n                iVar19 = 9;\n                pbVar27 = (byte *)pbVar17->name;\n                pbVar30 = (byte *)".idata$2";\n                do {\n                  if (iVar19 == 0) break;\n                  iVar19 = iVar19 + -1;\n                  bVar32 = *pbVar27 < *pbVar30;\n                  bVar34 = *pbVar27 == *pbVar30;\n                  pbVar27 = pbVar27 + (uint)bVar35 * -2 + 1;\n                  pbVar30 = pbVar30 + (uint)bVar35 * -2 + 1;\n                } while (bVar34);\n                if ((!bVar32 && !bVar34) == bVar32) {\n                  bVar21 = true;\n                }\n                iVar20 = iVar20 + pbVar17->reloc_count;\n                pbVar17 = pbVar17->next;\n                bVar34 = pbVar17 == (bfd_section *)0x0;\n              } while (!bVar34);\n              iVar19 = 0x61;\n              if (!bVar21) {\n                iVar19 = (iVar20 < 1) + 0x62;\n              }\n            }\n            sVar14 = strlen(((local_50->input_statement).the_bfd)->filename);\n            pcVar16 = (char *)xmalloc(sVar14 + 3);\n            sprintf(pcVar16,"%s.%c",((local_50->wild_statement).section_list)->next,iVar19);\n            ((local_50->reloc_statement).section)->name = pcVar16;\n            sVar14 = strlen((local_50->wild_statement).filename);\n            pcVar16 = (char *)xmalloc(sVar14 + 3);\n            sprintf(pcVar16,"%s.%c",(local_50->wild_statement).filename,iVar19);\n            (local_50->wild_statement).filename = pcVar16;\n            bVar21 = true;\n          }" { (expression_statement "pbVar17 = ((local_50->input_statement).the_bfd)->sections;" (assignment_expression "pbVar17 = ((local_50->input_statement).the_bfd)->sections" identifier = (field_expression "((local_50->input_statement).the_bfd)->sections" (parenthesized_expression "((local_50->input_statement).the_bfd)" ( (field_expression "(local_50->input_statement).the_bfd" (parenthesized_expression "(local_50->input_statement)" ( (field_expression "local_50->input_statement" identifier -> field_identifier) )) . field_identifier) )) -> field_identifier)) ;) (if_statement "if (pbVar17 == (bfd_section *)0x0) {\n              iVar19 = 99;\n            }\n            else {\n              iVar20 = 0;\n              bVar34 = true;\n              bVar21 = false;\n              do {\n                bVar32 = false;\n                iVar19 = 9;\n                pbVar27 = (byte *)pbVar17->name;\n                pbVar30 = (byte *)".idata$2";\n                do {\n                  if (iVar19 == 0) break;\n                  iVar19 = iVar19 + -1;\n                  bVar32 = *pbVar27 < *pbVar30;\n                  bVar34 = *pbVar27 == *pbVar30;\n                  pbVar27 = pbVar27 + (uint)bVar35 * -2 + 1;\n                  pbVar30 = pbVar30 + (uint)bVar35 * -2 + 1;\n                } while (bVar34);\n                if ((!bVar32 && !bVar34) == bVar32) {\n                  bVar21 = true;\n                }\n                iVar20 = iVar20 + pbVar17->reloc_count;\n                pbVar17 = pbVar17->next;\n                bVar34 = pbVar17 == (bfd_section *)0x0;\n              } while (!bVar34);\n              iVar19 = 0x61;\n              if (!bVar21) {\n                iVar19 = (iVar20 < 1) + 0x62;\n              }\n            }" if (parenthesized_expression "(pbVar17 == (bfd_section *)0x0)" ( (binary_expression "pbVar17 == (bfd_section *)0x0" identifier == (cast_expression "(bfd_section *)0x0" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              iVar19 = 99;\n            }" { (expression_statement "iVar19 = 99;" (assignment_expression "iVar19 = 99" identifier = number_literal) ;) }) (else_clause "else {\n              iVar20 = 0;\n              bVar34 = true;\n              bVar21 = false;\n              do {\n                bVar32 = false;\n                iVar19 = 9;\n                pbVar27 = (byte *)pbVar17->name;\n                pbVar30 = (byte *)".idata$2";\n                do {\n                  if (iVar19 == 0) break;\n                  iVar19 = iVar19 + -1;\n                  bVar32 = *pbVar27 < *pbVar30;\n                  bVar34 = *pbVar27 == *pbVar30;\n                  pbVar27 = pbVar27 + (uint)bVar35 * -2 + 1;\n                  pbVar30 = pbVar30 + (uint)bVar35 * -2 + 1;\n                } while (bVar34);\n                if ((!bVar32 && !bVar34) == bVar32) {\n                  bVar21 = true;\n                }\n                iVar20 = iVar20 + pbVar17->reloc_count;\n                pbVar17 = pbVar17->next;\n                bVar34 = pbVar17 == (bfd_section *)0x0;\n              } while (!bVar34);\n              iVar19 = 0x61;\n              if (!bVar21) {\n                iVar19 = (iVar20 < 1) + 0x62;\n              }\n            }" else (compound_statement "{\n              iVar20 = 0;\n              bVar34 = true;\n              bVar21 = false;\n              do {\n                bVar32 = false;\n                iVar19 = 9;\n                pbVar27 = (byte *)pbVar17->name;\n                pbVar30 = (byte *)".idata$2";\n                do {\n                  if (iVar19 == 0) break;\n                  iVar19 = iVar19 + -1;\n                  bVar32 = *pbVar27 < *pbVar30;\n                  bVar34 = *pbVar27 == *pbVar30;\n                  pbVar27 = pbVar27 + (uint)bVar35 * -2 + 1;\n                  pbVar30 = pbVar30 + (uint)bVar35 * -2 + 1;\n                } while (bVar34);\n                if ((!bVar32 && !bVar34) == bVar32) {\n                  bVar21 = true;\n                }\n                iVar20 = iVar20 + pbVar17->reloc_count;\n                pbVar17 = pbVar17->next;\n                bVar34 = pbVar17 == (bfd_section *)0x0;\n              } while (!bVar34);\n              iVar19 = 0x61;\n              if (!bVar21) {\n                iVar19 = (iVar20 < 1) + 0x62;\n              }\n            }" { (expression_statement "iVar20 = 0;" (assignment_expression "iVar20 = 0" identifier = number_literal) ;) (expression_statement "bVar34 = true;" (assignment_expression "bVar34 = true" identifier = true) ;) (expression_statement "bVar21 = false;" (assignment_expression "bVar21 = false" identifier = false) ;) (do_statement "do {\n                bVar32 = false;\n                iVar19 = 9;\n                pbVar27 = (byte *)pbVar17->name;\n                pbVar30 = (byte *)".idata$2";\n                do {\n                  if (iVar19 == 0) break;\n                  iVar19 = iVar19 + -1;\n                  bVar32 = *pbVar27 < *pbVar30;\n                  bVar34 = *pbVar27 == *pbVar30;\n                  pbVar27 = pbVar27 + (uint)bVar35 * -2 + 1;\n                  pbVar30 = pbVar30 + (uint)bVar35 * -2 + 1;\n                } while (bVar34);\n                if ((!bVar32 && !bVar34) == bVar32) {\n                  bVar21 = true;\n                }\n                iVar20 = iVar20 + pbVar17->reloc_count;\n                pbVar17 = pbVar17->next;\n                bVar34 = pbVar17 == (bfd_section *)0x0;\n              } while (!bVar34);" do (compound_statement "{\n                bVar32 = false;\n                iVar19 = 9;\n                pbVar27 = (byte *)pbVar17->name;\n                pbVar30 = (byte *)".idata$2";\n                do {\n                  if (iVar19 == 0) break;\n                  iVar19 = iVar19 + -1;\n                  bVar32 = *pbVar27 < *pbVar30;\n                  bVar34 = *pbVar27 == *pbVar30;\n                  pbVar27 = pbVar27 + (uint)bVar35 * -2 + 1;\n                  pbVar30 = pbVar30 + (uint)bVar35 * -2 + 1;\n                } while (bVar34);\n                if ((!bVar32 && !bVar34) == bVar32) {\n                  bVar21 = true;\n                }\n                iVar20 = iVar20 + pbVar17->reloc_count;\n                pbVar17 = pbVar17->next;\n                bVar34 = pbVar17 == (bfd_section *)0x0;\n              }" { (expression_statement "bVar32 = false;" (assignment_expression "bVar32 = false" identifier = false) ;) (expression_statement "iVar19 = 9;" (assignment_expression "iVar19 = 9" identifier = number_literal) ;) (expression_statement "pbVar27 = (byte *)pbVar17->name;" (assignment_expression "pbVar27 = (byte *)pbVar17->name" identifier = (cast_expression "(byte *)pbVar17->name" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pbVar17->name" identifier -> field_identifier))) ;) (expression_statement "pbVar30 = (byte *)".idata$2";" (assignment_expression "pbVar30 = (byte *)".idata$2"" identifier = (cast_expression "(byte *)".idata$2"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".idata$2"" " string_content "))) ;) (do_statement "do {\n                  if (iVar19 == 0) break;\n                  iVar19 = iVar19 + -1;\n                  bVar32 = *pbVar27 < *pbVar30;\n                  bVar34 = *pbVar27 == *pbVar30;\n                  pbVar27 = pbVar27 + (uint)bVar35 * -2 + 1;\n                  pbVar30 = pbVar30 + (uint)bVar35 * -2 + 1;\n                } while (bVar34);" do (compound_statement "{\n                  if (iVar19 == 0) break;\n                  iVar19 = iVar19 + -1;\n                  bVar32 = *pbVar27 < *pbVar30;\n                  bVar34 = *pbVar27 == *pbVar30;\n                  pbVar27 = pbVar27 + (uint)bVar35 * -2 + 1;\n                  pbVar30 = pbVar30 + (uint)bVar35 * -2 + 1;\n                }" { (if_statement "if (iVar19 == 0) break;" if (parenthesized_expression "(iVar19 == 0)" ( (binary_expression "iVar19 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar19 = iVar19 + -1;" (assignment_expression "iVar19 = iVar19 + -1" identifier = (binary_expression "iVar19 + -1" identifier + number_literal)) ;) (expression_statement "bVar32 = *pbVar27 < *pbVar30;" (assignment_expression "bVar32 = *pbVar27 < *pbVar30" identifier = (binary_expression "*pbVar27 < *pbVar30" (pointer_expression "*pbVar27" * identifier) < (pointer_expression "*pbVar30" * identifier))) ;) (expression_statement "bVar34 = *pbVar27 == *pbVar30;" (assignment_expression "bVar34 = *pbVar27 == *pbVar30" identifier = (binary_expression "*pbVar27 == *pbVar30" (pointer_expression "*pbVar27" * identifier) == (pointer_expression "*pbVar30" * identifier))) ;) (expression_statement "pbVar27 = pbVar27 + (uint)bVar35 * -2 + 1;" (assignment_expression "pbVar27 = pbVar27 + (uint)bVar35 * -2 + 1" identifier = (binary_expression "pbVar27 + (uint)bVar35 * -2 + 1" (binary_expression "pbVar27 + (uint)bVar35 * -2" identifier + (binary_expression "(uint)bVar35 * -2" (cast_expression "(uint)bVar35" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar30 = pbVar30 + (uint)bVar35 * -2 + 1;" (assignment_expression "pbVar30 = pbVar30 + (uint)bVar35 * -2 + 1" identifier = (binary_expression "pbVar30 + (uint)bVar35 * -2 + 1" (binary_expression "pbVar30 + (uint)bVar35 * -2" identifier + (binary_expression "(uint)bVar35 * -2" (cast_expression "(uint)bVar35" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar34)" ( identifier )) ;) (if_statement "if ((!bVar32 && !bVar34) == bVar32) {\n                  bVar21 = true;\n                }" if (parenthesized_expression "((!bVar32 && !bVar34) == bVar32)" ( (binary_expression "(!bVar32 && !bVar34) == bVar32" (parenthesized_expression "(!bVar32 && !bVar34)" ( (binary_expression "!bVar32 && !bVar34" (unary_expression "!bVar32" ! identifier) && (unary_expression "!bVar34" ! identifier)) )) == identifier) )) (compound_statement "{\n                  bVar21 = true;\n                }" { (expression_statement "bVar21 = true;" (assignment_expression "bVar21 = true" identifier = true) ;) })) (expression_statement "iVar20 = iVar20 + pbVar17->reloc_count;" (assignment_expression "iVar20 = iVar20 + pbVar17->reloc_count" identifier = (binary_expression "iVar20 + pbVar17->reloc_count" identifier + (field_expression "pbVar17->reloc_count" identifier -> field_identifier))) ;) (expression_statement "pbVar17 = pbVar17->next;" (assignment_expression "pbVar17 = pbVar17->next" identifier = (field_expression "pbVar17->next" identifier -> field_identifier)) ;) (expression_statement "bVar34 = pbVar17 == (bfd_section *)0x0;" (assignment_expression "bVar34 = pbVar17 == (bfd_section *)0x0" identifier = (binary_expression "pbVar17 == (bfd_section *)0x0" identifier == (cast_expression "(bfd_section *)0x0" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) }) while (parenthesized_expression "(!bVar34)" ( (unary_expression "!bVar34" ! identifier) )) ;) (expression_statement "iVar19 = 0x61;" (assignment_expression "iVar19 = 0x61" identifier = number_literal) ;) (if_statement "if (!bVar21) {\n                iVar19 = (iVar20 < 1) + 0x62;\n              }" if (parenthesized_expression "(!bVar21)" ( (unary_expression "!bVar21" ! identifier) )) (compound_statement "{\n                iVar19 = (iVar20 < 1) + 0x62;\n              }" { (expression_statement "iVar19 = (iVar20 < 1) + 0x62;" (assignment_expression "iVar19 = (iVar20 < 1) + 0x62" identifier = (binary_expression "(iVar20 < 1) + 0x62" (parenthesized_expression "(iVar20 < 1)" ( (binary_expression "iVar20 < 1" identifier < number_literal) )) + number_literal)) ;) })) }))) (expression_statement "sVar14 = strlen(((local_50->input_statement).the_bfd)->filename);" (assignment_expression "sVar14 = strlen(((local_50->input_statement).the_bfd)->filename)" identifier = (call_expression "strlen(((local_50->input_statement).the_bfd)->filename)" identifier (argument_list "(((local_50->input_statement).the_bfd)->filename)" ( (field_expression "((local_50->input_statement).the_bfd)->filename" (parenthesized_expression "((local_50->input_statement).the_bfd)" ( (field_expression "(local_50->input_statement).the_bfd" (parenthesized_expression "(local_50->input_statement)" ( (field_expression "local_50->input_statement" identifier -> field_identifier) )) . field_identifier) )) -> field_identifier) )))) ;) (expression_statement "pcVar16 = (char *)xmalloc(sVar14 + 3);" (assignment_expression "pcVar16 = (char *)xmalloc(sVar14 + 3)" identifier = (cast_expression "(char *)xmalloc(sVar14 + 3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(sVar14 + 3)" identifier (argument_list "(sVar14 + 3)" ( (binary_expression "sVar14 + 3" identifier + number_literal) ))))) ;) (expression_statement "sprintf(pcVar16,"%s.%c",((local_50->wild_statement).section_list)->next,iVar19);" (call_expression "sprintf(pcVar16,"%s.%c",((local_50->wild_statement).section_list)->next,iVar19)" identifier (argument_list "(pcVar16,"%s.%c",((local_50->wild_statement).section_list)->next,iVar19)" ( identifier , (string_literal ""%s.%c"" " string_content ") , (field_expression "((local_50->wild_statement).section_list)->next" (parenthesized_expression "((local_50->wild_statement).section_list)" ( (field_expression "(local_50->wild_statement).section_list" (parenthesized_expression "(local_50->wild_statement)" ( (field_expression "local_50->wild_statement" identifier -> field_identifier) )) . field_identifier) )) -> field_identifier) , identifier ))) ;) (expression_statement "((local_50->reloc_statement).section)->name = pcVar16;" (assignment_expression "((local_50->reloc_statement).section)->name = pcVar16" (field_expression "((local_50->reloc_statement).section)->name" (parenthesized_expression "((local_50->reloc_statement).section)" ( (field_expression "(local_50->reloc_statement).section" (parenthesized_expression "(local_50->reloc_statement)" ( (field_expression "local_50->reloc_statement" identifier -> field_identifier) )) . field_identifier) )) -> field_identifier) = identifier) ;) (expression_statement "sVar14 = strlen((local_50->wild_statement).filename);" (assignment_expression "sVar14 = strlen((local_50->wild_statement).filename)" identifier = (call_expression "strlen((local_50->wild_statement).filename)" identifier (argument_list "((local_50->wild_statement).filename)" ( (field_expression "(local_50->wild_statement).filename" (parenthesized_expression "(local_50->wild_statement)" ( (field_expression "local_50->wild_statement" identifier -> field_identifier) )) . field_identifier) )))) ;) (expression_statement "pcVar16 = (char *)xmalloc(sVar14 + 3);" (assignment_expression "pcVar16 = (char *)xmalloc(sVar14 + 3)" identifier = (cast_expression "(char *)xmalloc(sVar14 + 3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(sVar14 + 3)" identifier (argument_list "(sVar14 + 3)" ( (binary_expression "sVar14 + 3" identifier + number_literal) ))))) ;) (expression_statement "sprintf(pcVar16,"%s.%c",(local_50->wild_statement).filename,iVar19);" (call_expression "sprintf(pcVar16,"%s.%c",(local_50->wild_statement).filename,iVar19)" identifier (argument_list "(pcVar16,"%s.%c",(local_50->wild_statement).filename,iVar19)" ( identifier , (string_literal ""%s.%c"" " string_content ") , (field_expression "(local_50->wild_statement).filename" (parenthesized_expression "(local_50->wild_statement)" ( (field_expression "local_50->wild_statement" identifier -> field_identifier) )) . field_identifier) , identifier ))) ;) (expression_statement "(local_50->wild_statement).filename = pcVar16;" (assignment_expression "(local_50->wild_statement).filename = pcVar16" (field_expression "(local_50->wild_statement).filename" (parenthesized_expression "(local_50->wild_statement)" ( (field_expression "local_50->wild_statement" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "bVar21 = true;" (assignment_expression "bVar21 = true" identifier = true) ;) })) })) (labeled_statement "LAB_00056b08:\n        local_50 = (local_50->wild_statement).children.head;" statement_identifier : (expression_statement "local_50 = (local_50->wild_statement).children.head;" (assignment_expression "local_50 = (local_50->wild_statement).children.head" identifier = (field_expression "(local_50->wild_statement).children.head" (field_expression "(local_50->wild_statement).children" (parenthesized_expression "(local_50->wild_statement)" ( (field_expression "local_50->wild_statement" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;)) (labeled_statement "joined_r0x00056b15:\n      } while (local_50 != (lang_statement_union *)0x0);" statement_identifier : (ERROR "}" }) (while_statement "while (local_50 != (lang_statement_union *)0x0);" while (parenthesized_expression "(local_50 != (lang_statement_union *)0x0)" ( (binary_expression "local_50 != (lang_statement_union *)0x0" identifier != (cast_expression "(lang_statement_union *)0x0" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (expression_statement ";" ;))) (expression_statement "local_4c = file_chain.head;" (assignment_expression "local_4c = file_chain.head" identifier = (field_expression "file_chain.head" identifier . field_identifier)) ;) (if_statement "if (file_chain.head != (lang_statement_union *)0x0) {\n        do {\n          pbVar12 = (local_4c->input_statement).the_bfd;\n          if ((pbVar12->my_archive != (bfd *)0x0) &&\n             (pbVar17 = pbVar12->sections, pbVar17 != (bfd_section *)0x0)) {\n            pbVar22 = (bfd_section *)0x0;\n            bVar21 = false;\n            bVar34 = true;\n            do {\n              bVar32 = false;\n              iVar19 = 7;\n              pbVar27 = (byte *)pbVar17->name;\n              pbVar30 = (byte *)".idata$";\n              do {\n                if (iVar19 == 0) break;\n                iVar19 = iVar19 + -1;\n                bVar32 = *pbVar27 < *pbVar30;\n                bVar34 = *pbVar27 == *pbVar30;\n                pbVar27 = pbVar27 + (uint)bVar35 * -2 + 1;\n                pbVar30 = pbVar30 + (uint)bVar35 * -2 + 1;\n              } while (bVar34);\n              if ((!bVar32 && !bVar34) == bVar32) {\n                bVar21 = true;\n              }\n              if (((pbVar17->flags & 0x10) != 0) && (pbVar17->reloc_count != 0)) {\n                pbVar22 = pbVar17;\n              }\n              pbVar17 = pbVar17->next;\n              bVar34 = pbVar17 == (bfd_section *)0x0;\n            } while (!bVar34);\n            if ((pbVar22 != (bfd_section *)0x0) && (bVar21)) {\n              iVar19 = bfd_generic_link_read_symbols(pbVar12);\n              if (iVar19 == 0) {\nLAB_000570af:\n                pwVar31 = (local_4c->wild_statement).section_list;\n                pcVar16 = (char *)dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n                einfo(pcVar16,pwVar31);\n                return;\n              }\n              ppbVar28 = ((local_4c->input_statement).the_bfd)->outsymbols;\n              uVar5 = ((local_4c->input_statement).the_bfd)->symcount;\n              if (0 < (int)uVar5) {\n                ppbVar2 = ppbVar28 + uVar5;\n                do {\n                  if (((((*ppbVar28)->section->id == pbVar22->id) &&\n                       (pbVar18 = (bfd_link_hash_entry *)\n                                  bfd_link_hash_lookup(link_info.hash,(*ppbVar28)->name,0,0,1),\n                       pbVar18 != (bfd_link_hash_entry *)0x0)) && (pbVar18->field_0xc == '\x03')) &&\n                     (((pbVar18->u).undef.next == (bfd_link_hash_entry *)0x0 &&\n                      ((link_info.hash)->undefs_tail != pbVar18)))) {\n                    pbVar22->flags = pbVar22->flags | 0x8000;\n                  }\n                  ppbVar28 = ppbVar28 + 1;\n                } while (ppbVar2 != ppbVar28);\n              }\n            }\n          }\n          local_4c = (local_4c->wild_statement).children.head;\n        } while (local_4c != (lang_statement_union *)0x0);\n      }" if (parenthesized_expression "(file_chain.head != (lang_statement_union *)0x0)" ( (binary_expression "file_chain.head != (lang_statement_union *)0x0" (field_expression "file_chain.head" identifier . field_identifier) != (cast_expression "(lang_statement_union *)0x0" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        do {\n          pbVar12 = (local_4c->input_statement).the_bfd;\n          if ((pbVar12->my_archive != (bfd *)0x0) &&\n             (pbVar17 = pbVar12->sections, pbVar17 != (bfd_section *)0x0)) {\n            pbVar22 = (bfd_section *)0x0;\n            bVar21 = false;\n            bVar34 = true;\n            do {\n              bVar32 = false;\n              iVar19 = 7;\n              pbVar27 = (byte *)pbVar17->name;\n              pbVar30 = (byte *)".idata$";\n              do {\n                if (iVar19 == 0) break;\n                iVar19 = iVar19 + -1;\n                bVar32 = *pbVar27 < *pbVar30;\n                bVar34 = *pbVar27 == *pbVar30;\n                pbVar27 = pbVar27 + (uint)bVar35 * -2 + 1;\n                pbVar30 = pbVar30 + (uint)bVar35 * -2 + 1;\n              } while (bVar34);\n              if ((!bVar32 && !bVar34) == bVar32) {\n                bVar21 = true;\n              }\n              if (((pbVar17->flags & 0x10) != 0) && (pbVar17->reloc_count != 0)) {\n                pbVar22 = pbVar17;\n              }\n              pbVar17 = pbVar17->next;\n              bVar34 = pbVar17 == (bfd_section *)0x0;\n            } while (!bVar34);\n            if ((pbVar22 != (bfd_section *)0x0) && (bVar21)) {\n              iVar19 = bfd_generic_link_read_symbols(pbVar12);\n              if (iVar19 == 0) {\nLAB_000570af:\n                pwVar31 = (local_4c->wild_statement).section_list;\n                pcVar16 = (char *)dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n                einfo(pcVar16,pwVar31);\n                return;\n              }\n              ppbVar28 = ((local_4c->input_statement).the_bfd)->outsymbols;\n              uVar5 = ((local_4c->input_statement).the_bfd)->symcount;\n              if (0 < (int)uVar5) {\n                ppbVar2 = ppbVar28 + uVar5;\n                do {\n                  if (((((*ppbVar28)->section->id == pbVar22->id) &&\n                       (pbVar18 = (bfd_link_hash_entry *)\n                                  bfd_link_hash_lookup(link_info.hash,(*ppbVar28)->name,0,0,1),\n                       pbVar18 != (bfd_link_hash_entry *)0x0)) && (pbVar18->field_0xc == '\x03')) &&\n                     (((pbVar18->u).undef.next == (bfd_link_hash_entry *)0x0 &&\n                      ((link_info.hash)->undefs_tail != pbVar18)))) {\n                    pbVar22->flags = pbVar22->flags | 0x8000;\n                  }\n                  ppbVar28 = ppbVar28 + 1;\n                } while (ppbVar2 != ppbVar28);\n              }\n            }\n          }\n          local_4c = (local_4c->wild_statement).children.head;\n        } while (local_4c != (lang_statement_union *)0x0);\n      }" { (do_statement "do {\n          pbVar12 = (local_4c->input_statement).the_bfd;\n          if ((pbVar12->my_archive != (bfd *)0x0) &&\n             (pbVar17 = pbVar12->sections, pbVar17 != (bfd_section *)0x0)) {\n            pbVar22 = (bfd_section *)0x0;\n            bVar21 = false;\n            bVar34 = true;\n            do {\n              bVar32 = false;\n              iVar19 = 7;\n              pbVar27 = (byte *)pbVar17->name;\n              pbVar30 = (byte *)".idata$";\n              do {\n                if (iVar19 == 0) break;\n                iVar19 = iVar19 + -1;\n                bVar32 = *pbVar27 < *pbVar30;\n                bVar34 = *pbVar27 == *pbVar30;\n                pbVar27 = pbVar27 + (uint)bVar35 * -2 + 1;\n                pbVar30 = pbVar30 + (uint)bVar35 * -2 + 1;\n              } while (bVar34);\n              if ((!bVar32 && !bVar34) == bVar32) {\n                bVar21 = true;\n              }\n              if (((pbVar17->flags & 0x10) != 0) && (pbVar17->reloc_count != 0)) {\n                pbVar22 = pbVar17;\n              }\n              pbVar17 = pbVar17->next;\n              bVar34 = pbVar17 == (bfd_section *)0x0;\n            } while (!bVar34);\n            if ((pbVar22 != (bfd_section *)0x0) && (bVar21)) {\n              iVar19 = bfd_generic_link_read_symbols(pbVar12);\n              if (iVar19 == 0) {\nLAB_000570af:\n                pwVar31 = (local_4c->wild_statement).section_list;\n                pcVar16 = (char *)dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n                einfo(pcVar16,pwVar31);\n                return;\n              }\n              ppbVar28 = ((local_4c->input_statement).the_bfd)->outsymbols;\n              uVar5 = ((local_4c->input_statement).the_bfd)->symcount;\n              if (0 < (int)uVar5) {\n                ppbVar2 = ppbVar28 + uVar5;\n                do {\n                  if (((((*ppbVar28)->section->id == pbVar22->id) &&\n                       (pbVar18 = (bfd_link_hash_entry *)\n                                  bfd_link_hash_lookup(link_info.hash,(*ppbVar28)->name,0,0,1),\n                       pbVar18 != (bfd_link_hash_entry *)0x0)) && (pbVar18->field_0xc == '\x03')) &&\n                     (((pbVar18->u).undef.next == (bfd_link_hash_entry *)0x0 &&\n                      ((link_info.hash)->undefs_tail != pbVar18)))) {\n                    pbVar22->flags = pbVar22->flags | 0x8000;\n                  }\n                  ppbVar28 = ppbVar28 + 1;\n                } while (ppbVar2 != ppbVar28);\n              }\n            }\n          }\n          local_4c = (local_4c->wild_statement).children.head;\n        } while (local_4c != (lang_statement_union *)0x0);" do (compound_statement "{\n          pbVar12 = (local_4c->input_statement).the_bfd;\n          if ((pbVar12->my_archive != (bfd *)0x0) &&\n             (pbVar17 = pbVar12->sections, pbVar17 != (bfd_section *)0x0)) {\n            pbVar22 = (bfd_section *)0x0;\n            bVar21 = false;\n            bVar34 = true;\n            do {\n              bVar32 = false;\n              iVar19 = 7;\n              pbVar27 = (byte *)pbVar17->name;\n              pbVar30 = (byte *)".idata$";\n              do {\n                if (iVar19 == 0) break;\n                iVar19 = iVar19 + -1;\n                bVar32 = *pbVar27 < *pbVar30;\n                bVar34 = *pbVar27 == *pbVar30;\n                pbVar27 = pbVar27 + (uint)bVar35 * -2 + 1;\n                pbVar30 = pbVar30 + (uint)bVar35 * -2 + 1;\n              } while (bVar34);\n              if ((!bVar32 && !bVar34) == bVar32) {\n                bVar21 = true;\n              }\n              if (((pbVar17->flags & 0x10) != 0) && (pbVar17->reloc_count != 0)) {\n                pbVar22 = pbVar17;\n              }\n              pbVar17 = pbVar17->next;\n              bVar34 = pbVar17 == (bfd_section *)0x0;\n            } while (!bVar34);\n            if ((pbVar22 != (bfd_section *)0x0) && (bVar21)) {\n              iVar19 = bfd_generic_link_read_symbols(pbVar12);\n              if (iVar19 == 0) {\nLAB_000570af:\n                pwVar31 = (local_4c->wild_statement).section_list;\n                pcVar16 = (char *)dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n                einfo(pcVar16,pwVar31);\n                return;\n              }\n              ppbVar28 = ((local_4c->input_statement).the_bfd)->outsymbols;\n              uVar5 = ((local_4c->input_statement).the_bfd)->symcount;\n              if (0 < (int)uVar5) {\n                ppbVar2 = ppbVar28 + uVar5;\n                do {\n                  if (((((*ppbVar28)->section->id == pbVar22->id) &&\n                       (pbVar18 = (bfd_link_hash_entry *)\n                                  bfd_link_hash_lookup(link_info.hash,(*ppbVar28)->name,0,0,1),\n                       pbVar18 != (bfd_link_hash_entry *)0x0)) && (pbVar18->field_0xc == '\x03')) &&\n                     (((pbVar18->u).undef.next == (bfd_link_hash_entry *)0x0 &&\n                      ((link_info.hash)->undefs_tail != pbVar18)))) {\n                    pbVar22->flags = pbVar22->flags | 0x8000;\n                  }\n                  ppbVar28 = ppbVar28 + 1;\n                } while (ppbVar2 != ppbVar28);\n              }\n            }\n          }\n          local_4c = (local_4c->wild_statement).children.head;\n        }" { (expression_statement "pbVar12 = (local_4c->input_statement).the_bfd;" (assignment_expression "pbVar12 = (local_4c->input_statement).the_bfd" identifier = (field_expression "(local_4c->input_statement).the_bfd" (parenthesized_expression "(local_4c->input_statement)" ( (field_expression "local_4c->input_statement" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if ((pbVar12->my_archive != (bfd *)0x0) &&\n             (pbVar17 = pbVar12->sections, pbVar17 != (bfd_section *)0x0)) {\n            pbVar22 = (bfd_section *)0x0;\n            bVar21 = false;\n            bVar34 = true;\n            do {\n              bVar32 = false;\n              iVar19 = 7;\n              pbVar27 = (byte *)pbVar17->name;\n              pbVar30 = (byte *)".idata$";\n              do {\n                if (iVar19 == 0) break;\n                iVar19 = iVar19 + -1;\n                bVar32 = *pbVar27 < *pbVar30;\n                bVar34 = *pbVar27 == *pbVar30;\n                pbVar27 = pbVar27 + (uint)bVar35 * -2 + 1;\n                pbVar30 = pbVar30 + (uint)bVar35 * -2 + 1;\n              } while (bVar34);\n              if ((!bVar32 && !bVar34) == bVar32) {\n                bVar21 = true;\n              }\n              if (((pbVar17->flags & 0x10) != 0) && (pbVar17->reloc_count != 0)) {\n                pbVar22 = pbVar17;\n              }\n              pbVar17 = pbVar17->next;\n              bVar34 = pbVar17 == (bfd_section *)0x0;\n            } while (!bVar34);\n            if ((pbVar22 != (bfd_section *)0x0) && (bVar21)) {\n              iVar19 = bfd_generic_link_read_symbols(pbVar12);\n              if (iVar19 == 0) {\nLAB_000570af:\n                pwVar31 = (local_4c->wild_statement).section_list;\n                pcVar16 = (char *)dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n                einfo(pcVar16,pwVar31);\n                return;\n              }\n              ppbVar28 = ((local_4c->input_statement).the_bfd)->outsymbols;\n              uVar5 = ((local_4c->input_statement).the_bfd)->symcount;\n              if (0 < (int)uVar5) {\n                ppbVar2 = ppbVar28 + uVar5;\n                do {\n                  if (((((*ppbVar28)->section->id == pbVar22->id) &&\n                       (pbVar18 = (bfd_link_hash_entry *)\n                                  bfd_link_hash_lookup(link_info.hash,(*ppbVar28)->name,0,0,1),\n                       pbVar18 != (bfd_link_hash_entry *)0x0)) && (pbVar18->field_0xc == '\x03')) &&\n                     (((pbVar18->u).undef.next == (bfd_link_hash_entry *)0x0 &&\n                      ((link_info.hash)->undefs_tail != pbVar18)))) {\n                    pbVar22->flags = pbVar22->flags | 0x8000;\n                  }\n                  ppbVar28 = ppbVar28 + 1;\n                } while (ppbVar2 != ppbVar28);\n              }\n            }\n          }" if (parenthesized_expression "((pbVar12->my_archive != (bfd *)0x0) &&\n             (pbVar17 = pbVar12->sections, pbVar17 != (bfd_section *)0x0))" ( (binary_expression "(pbVar12->my_archive != (bfd *)0x0) &&\n             (pbVar17 = pbVar12->sections, pbVar17 != (bfd_section *)0x0)" (parenthesized_expression "(pbVar12->my_archive != (bfd *)0x0)" ( (binary_expression "pbVar12->my_archive != (bfd *)0x0" (field_expression "pbVar12->my_archive" identifier -> field_identifier) != (cast_expression "(bfd *)0x0" ( (type_descriptor "bfd *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(pbVar17 = pbVar12->sections, pbVar17 != (bfd_section *)0x0)" ( (comma_expression "pbVar17 = pbVar12->sections, pbVar17 != (bfd_section *)0x0" (assignment_expression "pbVar17 = pbVar12->sections" identifier = (field_expression "pbVar12->sections" identifier -> field_identifier)) , (binary_expression "pbVar17 != (bfd_section *)0x0" identifier != (cast_expression "(bfd_section *)0x0" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n            pbVar22 = (bfd_section *)0x0;\n            bVar21 = false;\n            bVar34 = true;\n            do {\n              bVar32 = false;\n              iVar19 = 7;\n              pbVar27 = (byte *)pbVar17->name;\n              pbVar30 = (byte *)".idata$";\n              do {\n                if (iVar19 == 0) break;\n                iVar19 = iVar19 + -1;\n                bVar32 = *pbVar27 < *pbVar30;\n                bVar34 = *pbVar27 == *pbVar30;\n                pbVar27 = pbVar27 + (uint)bVar35 * -2 + 1;\n                pbVar30 = pbVar30 + (uint)bVar35 * -2 + 1;\n              } while (bVar34);\n              if ((!bVar32 && !bVar34) == bVar32) {\n                bVar21 = true;\n              }\n              if (((pbVar17->flags & 0x10) != 0) && (pbVar17->reloc_count != 0)) {\n                pbVar22 = pbVar17;\n              }\n              pbVar17 = pbVar17->next;\n              bVar34 = pbVar17 == (bfd_section *)0x0;\n            } while (!bVar34);\n            if ((pbVar22 != (bfd_section *)0x0) && (bVar21)) {\n              iVar19 = bfd_generic_link_read_symbols(pbVar12);\n              if (iVar19 == 0) {\nLAB_000570af:\n                pwVar31 = (local_4c->wild_statement).section_list;\n                pcVar16 = (char *)dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n                einfo(pcVar16,pwVar31);\n                return;\n              }\n              ppbVar28 = ((local_4c->input_statement).the_bfd)->outsymbols;\n              uVar5 = ((local_4c->input_statement).the_bfd)->symcount;\n              if (0 < (int)uVar5) {\n                ppbVar2 = ppbVar28 + uVar5;\n                do {\n                  if (((((*ppbVar28)->section->id == pbVar22->id) &&\n                       (pbVar18 = (bfd_link_hash_entry *)\n                                  bfd_link_hash_lookup(link_info.hash,(*ppbVar28)->name,0,0,1),\n                       pbVar18 != (bfd_link_hash_entry *)0x0)) && (pbVar18->field_0xc == '\x03')) &&\n                     (((pbVar18->u).undef.next == (bfd_link_hash_entry *)0x0 &&\n                      ((link_info.hash)->undefs_tail != pbVar18)))) {\n                    pbVar22->flags = pbVar22->flags | 0x8000;\n                  }\n                  ppbVar28 = ppbVar28 + 1;\n                } while (ppbVar2 != ppbVar28);\n              }\n            }\n          }" { (expression_statement "pbVar22 = (bfd_section *)0x0;" (assignment_expression "pbVar22 = (bfd_section *)0x0" identifier = (cast_expression "(bfd_section *)0x0" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "bVar21 = false;" (assignment_expression "bVar21 = false" identifier = false) ;) (expression_statement "bVar34 = true;" (assignment_expression "bVar34 = true" identifier = true) ;) (do_statement "do {\n              bVar32 = false;\n              iVar19 = 7;\n              pbVar27 = (byte *)pbVar17->name;\n              pbVar30 = (byte *)".idata$";\n              do {\n                if (iVar19 == 0) break;\n                iVar19 = iVar19 + -1;\n                bVar32 = *pbVar27 < *pbVar30;\n                bVar34 = *pbVar27 == *pbVar30;\n                pbVar27 = pbVar27 + (uint)bVar35 * -2 + 1;\n                pbVar30 = pbVar30 + (uint)bVar35 * -2 + 1;\n              } while (bVar34);\n              if ((!bVar32 && !bVar34) == bVar32) {\n                bVar21 = true;\n              }\n              if (((pbVar17->flags & 0x10) != 0) && (pbVar17->reloc_count != 0)) {\n                pbVar22 = pbVar17;\n              }\n              pbVar17 = pbVar17->next;\n              bVar34 = pbVar17 == (bfd_section *)0x0;\n            } while (!bVar34);" do (compound_statement "{\n              bVar32 = false;\n              iVar19 = 7;\n              pbVar27 = (byte *)pbVar17->name;\n              pbVar30 = (byte *)".idata$";\n              do {\n                if (iVar19 == 0) break;\n                iVar19 = iVar19 + -1;\n                bVar32 = *pbVar27 < *pbVar30;\n                bVar34 = *pbVar27 == *pbVar30;\n                pbVar27 = pbVar27 + (uint)bVar35 * -2 + 1;\n                pbVar30 = pbVar30 + (uint)bVar35 * -2 + 1;\n              } while (bVar34);\n              if ((!bVar32 && !bVar34) == bVar32) {\n                bVar21 = true;\n              }\n              if (((pbVar17->flags & 0x10) != 0) && (pbVar17->reloc_count != 0)) {\n                pbVar22 = pbVar17;\n              }\n              pbVar17 = pbVar17->next;\n              bVar34 = pbVar17 == (bfd_section *)0x0;\n            }" { (expression_statement "bVar32 = false;" (assignment_expression "bVar32 = false" identifier = false) ;) (expression_statement "iVar19 = 7;" (assignment_expression "iVar19 = 7" identifier = number_literal) ;) (expression_statement "pbVar27 = (byte *)pbVar17->name;" (assignment_expression "pbVar27 = (byte *)pbVar17->name" identifier = (cast_expression "(byte *)pbVar17->name" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pbVar17->name" identifier -> field_identifier))) ;) (expression_statement "pbVar30 = (byte *)".idata$";" (assignment_expression "pbVar30 = (byte *)".idata$"" identifier = (cast_expression "(byte *)".idata$"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".idata$"" " string_content "))) ;) (do_statement "do {\n                if (iVar19 == 0) break;\n                iVar19 = iVar19 + -1;\n                bVar32 = *pbVar27 < *pbVar30;\n                bVar34 = *pbVar27 == *pbVar30;\n                pbVar27 = pbVar27 + (uint)bVar35 * -2 + 1;\n                pbVar30 = pbVar30 + (uint)bVar35 * -2 + 1;\n              } while (bVar34);" do (compound_statement "{\n                if (iVar19 == 0) break;\n                iVar19 = iVar19 + -1;\n                bVar32 = *pbVar27 < *pbVar30;\n                bVar34 = *pbVar27 == *pbVar30;\n                pbVar27 = pbVar27 + (uint)bVar35 * -2 + 1;\n                pbVar30 = pbVar30 + (uint)bVar35 * -2 + 1;\n              }" { (if_statement "if (iVar19 == 0) break;" if (parenthesized_expression "(iVar19 == 0)" ( (binary_expression "iVar19 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar19 = iVar19 + -1;" (assignment_expression "iVar19 = iVar19 + -1" identifier = (binary_expression "iVar19 + -1" identifier + number_literal)) ;) (expression_statement "bVar32 = *pbVar27 < *pbVar30;" (assignment_expression "bVar32 = *pbVar27 < *pbVar30" identifier = (binary_expression "*pbVar27 < *pbVar30" (pointer_expression "*pbVar27" * identifier) < (pointer_expression "*pbVar30" * identifier))) ;) (expression_statement "bVar34 = *pbVar27 == *pbVar30;" (assignment_expression "bVar34 = *pbVar27 == *pbVar30" identifier = (binary_expression "*pbVar27 == *pbVar30" (pointer_expression "*pbVar27" * identifier) == (pointer_expression "*pbVar30" * identifier))) ;) (expression_statement "pbVar27 = pbVar27 + (uint)bVar35 * -2 + 1;" (assignment_expression "pbVar27 = pbVar27 + (uint)bVar35 * -2 + 1" identifier = (binary_expression "pbVar27 + (uint)bVar35 * -2 + 1" (binary_expression "pbVar27 + (uint)bVar35 * -2" identifier + (binary_expression "(uint)bVar35 * -2" (cast_expression "(uint)bVar35" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar30 = pbVar30 + (uint)bVar35 * -2 + 1;" (assignment_expression "pbVar30 = pbVar30 + (uint)bVar35 * -2 + 1" identifier = (binary_expression "pbVar30 + (uint)bVar35 * -2 + 1" (binary_expression "pbVar30 + (uint)bVar35 * -2" identifier + (binary_expression "(uint)bVar35 * -2" (cast_expression "(uint)bVar35" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar34)" ( identifier )) ;) (if_statement "if ((!bVar32 && !bVar34) == bVar32) {\n                bVar21 = true;\n              }" if (parenthesized_expression "((!bVar32 && !bVar34) == bVar32)" ( (binary_expression "(!bVar32 && !bVar34) == bVar32" (parenthesized_expression "(!bVar32 && !bVar34)" ( (binary_expression "!bVar32 && !bVar34" (unary_expression "!bVar32" ! identifier) && (unary_expression "!bVar34" ! identifier)) )) == identifier) )) (compound_statement "{\n                bVar21 = true;\n              }" { (expression_statement "bVar21 = true;" (assignment_expression "bVar21 = true" identifier = true) ;) })) (if_statement "if (((pbVar17->flags & 0x10) != 0) && (pbVar17->reloc_count != 0)) {\n                pbVar22 = pbVar17;\n              }" if (parenthesized_expression "(((pbVar17->flags & 0x10) != 0) && (pbVar17->reloc_count != 0))" ( (binary_expression "((pbVar17->flags & 0x10) != 0) && (pbVar17->reloc_count != 0)" (parenthesized_expression "((pbVar17->flags & 0x10) != 0)" ( (binary_expression "(pbVar17->flags & 0x10) != 0" (parenthesized_expression "(pbVar17->flags & 0x10)" ( (binary_expression "pbVar17->flags & 0x10" (field_expression "pbVar17->flags" identifier -> field_identifier) & number_literal) )) != number_literal) )) && (parenthesized_expression "(pbVar17->reloc_count != 0)" ( (binary_expression "pbVar17->reloc_count != 0" (field_expression "pbVar17->reloc_count" identifier -> field_identifier) != number_literal) ))) )) (compound_statement "{\n                pbVar22 = pbVar17;\n              }" { (expression_statement "pbVar22 = pbVar17;" (assignment_expression "pbVar22 = pbVar17" identifier = identifier) ;) })) (expression_statement "pbVar17 = pbVar17->next;" (assignment_expression "pbVar17 = pbVar17->next" identifier = (field_expression "pbVar17->next" identifier -> field_identifier)) ;) (expression_statement "bVar34 = pbVar17 == (bfd_section *)0x0;" (assignment_expression "bVar34 = pbVar17 == (bfd_section *)0x0" identifier = (binary_expression "pbVar17 == (bfd_section *)0x0" identifier == (cast_expression "(bfd_section *)0x0" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) }) while (parenthesized_expression "(!bVar34)" ( (unary_expression "!bVar34" ! identifier) )) ;) (if_statement "if ((pbVar22 != (bfd_section *)0x0) && (bVar21)) {\n              iVar19 = bfd_generic_link_read_symbols(pbVar12);\n              if (iVar19 == 0) {\nLAB_000570af:\n                pwVar31 = (local_4c->wild_statement).section_list;\n                pcVar16 = (char *)dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n                einfo(pcVar16,pwVar31);\n                return;\n              }\n              ppbVar28 = ((local_4c->input_statement).the_bfd)->outsymbols;\n              uVar5 = ((local_4c->input_statement).the_bfd)->symcount;\n              if (0 < (int)uVar5) {\n                ppbVar2 = ppbVar28 + uVar5;\n                do {\n                  if (((((*ppbVar28)->section->id == pbVar22->id) &&\n                       (pbVar18 = (bfd_link_hash_entry *)\n                                  bfd_link_hash_lookup(link_info.hash,(*ppbVar28)->name,0,0,1),\n                       pbVar18 != (bfd_link_hash_entry *)0x0)) && (pbVar18->field_0xc == '\x03')) &&\n                     (((pbVar18->u).undef.next == (bfd_link_hash_entry *)0x0 &&\n                      ((link_info.hash)->undefs_tail != pbVar18)))) {\n                    pbVar22->flags = pbVar22->flags | 0x8000;\n                  }\n                  ppbVar28 = ppbVar28 + 1;\n                } while (ppbVar2 != ppbVar28);\n              }\n            }" if (parenthesized_expression "((pbVar22 != (bfd_section *)0x0) && (bVar21))" ( (binary_expression "(pbVar22 != (bfd_section *)0x0) && (bVar21)" (parenthesized_expression "(pbVar22 != (bfd_section *)0x0)" ( (binary_expression "pbVar22 != (bfd_section *)0x0" identifier != (cast_expression "(bfd_section *)0x0" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(bVar21)" ( identifier ))) )) (compound_statement "{\n              iVar19 = bfd_generic_link_read_symbols(pbVar12);\n              if (iVar19 == 0) {\nLAB_000570af:\n                pwVar31 = (local_4c->wild_statement).section_list;\n                pcVar16 = (char *)dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n                einfo(pcVar16,pwVar31);\n                return;\n              }\n              ppbVar28 = ((local_4c->input_statement).the_bfd)->outsymbols;\n              uVar5 = ((local_4c->input_statement).the_bfd)->symcount;\n              if (0 < (int)uVar5) {\n                ppbVar2 = ppbVar28 + uVar5;\n                do {\n                  if (((((*ppbVar28)->section->id == pbVar22->id) &&\n                       (pbVar18 = (bfd_link_hash_entry *)\n                                  bfd_link_hash_lookup(link_info.hash,(*ppbVar28)->name,0,0,1),\n                       pbVar18 != (bfd_link_hash_entry *)0x0)) && (pbVar18->field_0xc == '\x03')) &&\n                     (((pbVar18->u).undef.next == (bfd_link_hash_entry *)0x0 &&\n                      ((link_info.hash)->undefs_tail != pbVar18)))) {\n                    pbVar22->flags = pbVar22->flags | 0x8000;\n                  }\n                  ppbVar28 = ppbVar28 + 1;\n                } while (ppbVar2 != ppbVar28);\n              }\n            }" { (expression_statement "iVar19 = bfd_generic_link_read_symbols(pbVar12);" (assignment_expression "iVar19 = bfd_generic_link_read_symbols(pbVar12)" identifier = (call_expression "bfd_generic_link_read_symbols(pbVar12)" identifier (argument_list "(pbVar12)" ( identifier )))) ;) (if_statement "if (iVar19 == 0) {\nLAB_000570af:\n                pwVar31 = (local_4c->wild_statement).section_list;\n                pcVar16 = (char *)dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n                einfo(pcVar16,pwVar31);\n                return;\n              }" if (parenthesized_expression "(iVar19 == 0)" ( (binary_expression "iVar19 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_000570af:\n                pwVar31 = (local_4c->wild_statement).section_list;\n                pcVar16 = (char *)dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n                einfo(pcVar16,pwVar31);\n                return;\n              }" { (labeled_statement "LAB_000570af:\n                pwVar31 = (local_4c->wild_statement).section_list;" statement_identifier : (expression_statement "pwVar31 = (local_4c->wild_statement).section_list;" (assignment_expression "pwVar31 = (local_4c->wild_statement).section_list" identifier = (field_expression "(local_4c->wild_statement).section_list" (parenthesized_expression "(local_4c->wild_statement)" ( (field_expression "local_4c->wild_statement" identifier -> field_identifier) )) . field_identifier)) ;)) (expression_statement "pcVar16 = (char *)dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);" (assignment_expression "pcVar16 = (char *)dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5)" identifier (argument_list "(0,"%F%P: %pB: could not read symbols: %E\n",5)" ( number_literal , (string_literal ""%F%P: %pB: could not read symbols: %E\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "einfo(pcVar16,pwVar31);" (call_expression "einfo(pcVar16,pwVar31)" identifier (argument_list "(pcVar16,pwVar31)" ( identifier , identifier ))) ;) (return_statement "return;" return ;) })) (expression_statement "ppbVar28 = ((local_4c->input_statement).the_bfd)->outsymbols;" (assignment_expression "ppbVar28 = ((local_4c->input_statement).the_bfd)->outsymbols" identifier = (field_expression "((local_4c->input_statement).the_bfd)->outsymbols" (parenthesized_expression "((local_4c->input_statement).the_bfd)" ( (field_expression "(local_4c->input_statement).the_bfd" (parenthesized_expression "(local_4c->input_statement)" ( (field_expression "local_4c->input_statement" identifier -> field_identifier) )) . field_identifier) )) -> field_identifier)) ;) (expression_statement "uVar5 = ((local_4c->input_statement).the_bfd)->symcount;" (assignment_expression "uVar5 = ((local_4c->input_statement).the_bfd)->symcount" identifier = (field_expression "((local_4c->input_statement).the_bfd)->symcount" (parenthesized_expression "((local_4c->input_statement).the_bfd)" ( (field_expression "(local_4c->input_statement).the_bfd" (parenthesized_expression "(local_4c->input_statement)" ( (field_expression "local_4c->input_statement" identifier -> field_identifier) )) . field_identifier) )) -> field_identifier)) ;) (if_statement "if (0 < (int)uVar5) {\n                ppbVar2 = ppbVar28 + uVar5;\n                do {\n                  if (((((*ppbVar28)->section->id == pbVar22->id) &&\n                       (pbVar18 = (bfd_link_hash_entry *)\n                                  bfd_link_hash_lookup(link_info.hash,(*ppbVar28)->name,0,0,1),\n                       pbVar18 != (bfd_link_hash_entry *)0x0)) && (pbVar18->field_0xc == '\x03')) &&\n                     (((pbVar18->u).undef.next == (bfd_link_hash_entry *)0x0 &&\n                      ((link_info.hash)->undefs_tail != pbVar18)))) {\n                    pbVar22->flags = pbVar22->flags | 0x8000;\n                  }\n                  ppbVar28 = ppbVar28 + 1;\n                } while (ppbVar2 != ppbVar28);\n              }" if (parenthesized_expression "(0 < (int)uVar5)" ( (binary_expression "0 < (int)uVar5" number_literal < (cast_expression "(int)uVar5" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                ppbVar2 = ppbVar28 + uVar5;\n                do {\n                  if (((((*ppbVar28)->section->id == pbVar22->id) &&\n                       (pbVar18 = (bfd_link_hash_entry *)\n                                  bfd_link_hash_lookup(link_info.hash,(*ppbVar28)->name,0,0,1),\n                       pbVar18 != (bfd_link_hash_entry *)0x0)) && (pbVar18->field_0xc == '\x03')) &&\n                     (((pbVar18->u).undef.next == (bfd_link_hash_entry *)0x0 &&\n                      ((link_info.hash)->undefs_tail != pbVar18)))) {\n                    pbVar22->flags = pbVar22->flags | 0x8000;\n                  }\n                  ppbVar28 = ppbVar28 + 1;\n                } while (ppbVar2 != ppbVar28);\n              }" { (expression_statement "ppbVar2 = ppbVar28 + uVar5;" (assignment_expression "ppbVar2 = ppbVar28 + uVar5" identifier = (binary_expression "ppbVar28 + uVar5" identifier + identifier)) ;) (do_statement "do {\n                  if (((((*ppbVar28)->section->id == pbVar22->id) &&\n                       (pbVar18 = (bfd_link_hash_entry *)\n                                  bfd_link_hash_lookup(link_info.hash,(*ppbVar28)->name,0,0,1),\n                       pbVar18 != (bfd_link_hash_entry *)0x0)) && (pbVar18->field_0xc == '\x03')) &&\n                     (((pbVar18->u).undef.next == (bfd_link_hash_entry *)0x0 &&\n                      ((link_info.hash)->undefs_tail != pbVar18)))) {\n                    pbVar22->flags = pbVar22->flags | 0x8000;\n                  }\n                  ppbVar28 = ppbVar28 + 1;\n                } while (ppbVar2 != ppbVar28);" do (compound_statement "{\n                  if (((((*ppbVar28)->section->id == pbVar22->id) &&\n                       (pbVar18 = (bfd_link_hash_entry *)\n                                  bfd_link_hash_lookup(link_info.hash,(*ppbVar28)->name,0,0,1),\n                       pbVar18 != (bfd_link_hash_entry *)0x0)) && (pbVar18->field_0xc == '\x03')) &&\n                     (((pbVar18->u).undef.next == (bfd_link_hash_entry *)0x0 &&\n                      ((link_info.hash)->undefs_tail != pbVar18)))) {\n                    pbVar22->flags = pbVar22->flags | 0x8000;\n                  }\n                  ppbVar28 = ppbVar28 + 1;\n                }" { (if_statement "if (((((*ppbVar28)->section->id == pbVar22->id) &&\n                       (pbVar18 = (bfd_link_hash_entry *)\n                                  bfd_link_hash_lookup(link_info.hash,(*ppbVar28)->name,0,0,1),\n                       pbVar18 != (bfd_link_hash_entry *)0x0)) && (pbVar18->field_0xc == '\x03')) &&\n                     (((pbVar18->u).undef.next == (bfd_link_hash_entry *)0x0 &&\n                      ((link_info.hash)->undefs_tail != pbVar18)))) {\n                    pbVar22->flags = pbVar22->flags | 0x8000;\n                  }" if (parenthesized_expression "(((((*ppbVar28)->section->id == pbVar22->id) &&\n                       (pbVar18 = (bfd_link_hash_entry *)\n                                  bfd_link_hash_lookup(link_info.hash,(*ppbVar28)->name,0,0,1),\n                       pbVar18 != (bfd_link_hash_entry *)0x0)) && (pbVar18->field_0xc == '\x03')) &&\n                     (((pbVar18->u).undef.next == (bfd_link_hash_entry *)0x0 &&\n                      ((link_info.hash)->undefs_tail != pbVar18))))" ( (binary_expression "((((*ppbVar28)->section->id == pbVar22->id) &&\n                       (pbVar18 = (bfd_link_hash_entry *)\n                                  bfd_link_hash_lookup(link_info.hash,(*ppbVar28)->name,0,0,1),\n                       pbVar18 != (bfd_link_hash_entry *)0x0)) && (pbVar18->field_0xc == '\x03')) &&\n                     (((pbVar18->u).undef.next == (bfd_link_hash_entry *)0x0 &&\n                      ((link_info.hash)->undefs_tail != pbVar18)))" (parenthesized_expression "((((*ppbVar28)->section->id == pbVar22->id) &&\n                       (pbVar18 = (bfd_link_hash_entry *)\n                                  bfd_link_hash_lookup(link_info.hash,(*ppbVar28)->name,0,0,1),\n                       pbVar18 != (bfd_link_hash_entry *)0x0)) && (pbVar18->field_0xc == '\x03'))" ( (binary_expression "(((*ppbVar28)->section->id == pbVar22->id) &&\n                       (pbVar18 = (bfd_link_hash_entry *)\n                                  bfd_link_hash_lookup(link_info.hash,(*ppbVar28)->name,0,0,1),\n                       pbVar18 != (bfd_link_hash_entry *)0x0)) && (pbVar18->field_0xc == '\x03')" (parenthesized_expression "(((*ppbVar28)->section->id == pbVar22->id) &&\n                       (pbVar18 = (bfd_link_hash_entry *)\n                                  bfd_link_hash_lookup(link_info.hash,(*ppbVar28)->name,0,0,1),\n                       pbVar18 != (bfd_link_hash_entry *)0x0))" ( (binary_expression "((*ppbVar28)->section->id == pbVar22->id) &&\n                       (pbVar18 = (bfd_link_hash_entry *)\n                                  bfd_link_hash_lookup(link_info.hash,(*ppbVar28)->name,0,0,1),\n                       pbVar18 != (bfd_link_hash_entry *)0x0)" (parenthesized_expression "((*ppbVar28)->section->id == pbVar22->id)" ( (binary_expression "(*ppbVar28)->section->id == pbVar22->id" (field_expression "(*ppbVar28)->section->id" (field_expression "(*ppbVar28)->section" (parenthesized_expression "(*ppbVar28)" ( (pointer_expression "*ppbVar28" * identifier) )) -> field_identifier) -> field_identifier) == (field_expression "pbVar22->id" identifier -> field_identifier)) )) && (parenthesized_expression "(pbVar18 = (bfd_link_hash_entry *)\n                                  bfd_link_hash_lookup(link_info.hash,(*ppbVar28)->name,0,0,1),\n                       pbVar18 != (bfd_link_hash_entry *)0x0)" ( (comma_expression "pbVar18 = (bfd_link_hash_entry *)\n                                  bfd_link_hash_lookup(link_info.hash,(*ppbVar28)->name,0,0,1),\n                       pbVar18 != (bfd_link_hash_entry *)0x0" (assignment_expression "pbVar18 = (bfd_link_hash_entry *)\n                                  bfd_link_hash_lookup(link_info.hash,(*ppbVar28)->name,0,0,1)" identifier = (cast_expression "(bfd_link_hash_entry *)\n                                  bfd_link_hash_lookup(link_info.hash,(*ppbVar28)->name,0,0,1)" ( (type_descriptor "bfd_link_hash_entry *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "bfd_link_hash_lookup(link_info.hash,(*ppbVar28)->name,0,0,1)" identifier (argument_list "(link_info.hash,(*ppbVar28)->name,0,0,1)" ( (field_expression "link_info.hash" identifier . field_identifier) , (field_expression "(*ppbVar28)->name" (parenthesized_expression "(*ppbVar28)" ( (pointer_expression "*ppbVar28" * identifier) )) -> field_identifier) , number_literal , number_literal , number_literal ))))) , (binary_expression "pbVar18 != (bfd_link_hash_entry *)0x0" identifier != (cast_expression "(bfd_link_hash_entry *)0x0" ( (type_descriptor "bfd_link_hash_entry *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) && (parenthesized_expression "(pbVar18->field_0xc == '\x03')" ( (binary_expression "pbVar18->field_0xc == '\x03'" (field_expression "pbVar18->field_0xc" identifier -> field_identifier) == (char_literal "'\x03'" ' escape_sequence ')) ))) )) && (parenthesized_expression "(((pbVar18->u).undef.next == (bfd_link_hash_entry *)0x0 &&\n                      ((link_info.hash)->undefs_tail != pbVar18)))" ( (parenthesized_expression "((pbVar18->u).undef.next == (bfd_link_hash_entry *)0x0 &&\n                      ((link_info.hash)->undefs_tail != pbVar18))" ( (binary_expression "(pbVar18->u).undef.next == (bfd_link_hash_entry *)0x0 &&\n                      ((link_info.hash)->undefs_tail != pbVar18)" (binary_expression "(pbVar18->u).undef.next == (bfd_link_hash_entry *)0x0" (field_expression "(pbVar18->u).undef.next" (field_expression "(pbVar18->u).undef" (parenthesized_expression "(pbVar18->u)" ( (field_expression "pbVar18->u" identifier -> field_identifier) )) . field_identifier) . field_identifier) == (cast_expression "(bfd_link_hash_entry *)0x0" ( (type_descriptor "bfd_link_hash_entry *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) && (parenthesized_expression "((link_info.hash)->undefs_tail != pbVar18)" ( (binary_expression "(link_info.hash)->undefs_tail != pbVar18" (field_expression "(link_info.hash)->undefs_tail" (parenthesized_expression "(link_info.hash)" ( (field_expression "link_info.hash" identifier . field_identifier) )) -> field_identifier) != identifier) ))) )) ))) )) (compound_statement "{\n                    pbVar22->flags = pbVar22->flags | 0x8000;\n                  }" { (expression_statement "pbVar22->flags = pbVar22->flags | 0x8000;" (assignment_expression "pbVar22->flags = pbVar22->flags | 0x8000" (field_expression "pbVar22->flags" identifier -> field_identifier) = (binary_expression "pbVar22->flags | 0x8000" (field_expression "pbVar22->flags" identifier -> field_identifier) | number_literal)) ;) })) (expression_statement "ppbVar28 = ppbVar28 + 1;" (assignment_expression "ppbVar28 = ppbVar28 + 1" identifier = (binary_expression "ppbVar28 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(ppbVar2 != ppbVar28)" ( (binary_expression "ppbVar2 != ppbVar28" identifier != identifier) )) ;) })) })) })) (expression_statement "local_4c = (local_4c->wild_statement).children.head;" (assignment_expression "local_4c = (local_4c->wild_statement).children.head" identifier = (field_expression "(local_4c->wild_statement).children.head" (field_expression "(local_4c->wild_statement).children" (parenthesized_expression "(local_4c->wild_statement)" ( (field_expression "local_4c->wild_statement" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) }) while (parenthesized_expression "(local_4c != (lang_statement_union *)0x0)" ( (binary_expression "local_4c != (lang_statement_union *)0x0" identifier != (cast_expression "(lang_statement_union *)0x0" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) })) })) (return_statement "return;" return ;) })) })))
(translation_unit "void FUN_00056650(void)\n\n{\n  int *piVar1;\n  undefined4 *puVar2;\n  byte bVar3;\n  void *pvVar4;\n  byte bVar5;\n  int iVar6;\n  undefined4 *puVar7;\n  undefined4 *puVar8;\n  size_t sVar9;\n  char *pcVar10;\n  undefined4 uVar11;\n  char *pcVar12;\n  int iVar13;\n  undefined4 uVar14;\n  int iVar15;\n  bool bVar16;\n  int iVar17;\n  undefined4 *puVar18;\n  byte *pbVar19;\n  int *piVar20;\n  byte *pbVar21;\n  bool bVar22;\n  bool bVar23;\n  bool bVar24;\n  byte bVar25;\n  int local_50;\n  int local_4c;\n  int local_40;\n  undefined4 *local_38;\n  int local_20 [3];\n  undefined4 uStack_14;\n  \n  bVar25 = 0;\n  uStack_14 = 0x56659;\n  FUN_00033940();\n  if (DAT_001d01fc == 0) {\nLAB_00056682:\n    puVar7 = DAT_001d041c;\n    if (DAT_001cff9c != (void *)0x0) {\n      for (; puVar7 != (undefined4 *)0x0; puVar7 = (undefined4 *)puVar7[0x27]) {\n        if (*(int *)(puVar7[1] + 4) == 2) {\n          iVar6 = FUN_00038960(DAT_001cff9c);\n          if (iVar6 == 0) {\n            pcVar12 = "%P: warning: unrecognized --build-id style ignored\n";\n          }\n          else {\n            iVar17 = bfd_make_section_anyway_with_flags\n                               (puVar7,".buildid",\n                                "*/\n  .debug_aranges  0 : { *(.debug_aranges) }\n  .debug_pubnames 0 : { *(.debug_pubnames) }\n  \n  .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }\n  .debug_abbrev   0 : { *(.debug_abbrev) }\n  .debug_line     0 : { *(.debug_line .debug_line.* .debug_line_end ) }\n  .debug_frame    0 : { *(.debug_frame) }\n  .debug_str      0 : { *(.debug_str) }\n  .debug_loc      0 : { *(.debug_loc) }\n  .debug_macinfo  0 : { *(.debug_macinfo) }\n  \n  .debug_weaknames 0 : { *(.debug_weaknames) }\n  .debug_funcnames 0 : { *(.debug_funcnames) }\n  .debug_typenames 0 : { *(.debug_typenames) }\n  .debug_varnames  0 : { *(.debug_varnames) }\n  \n  .debug_pubtypes 0 : { *(.debug_pubtypes) }\n  .debug_ranges   0 : { *(.debug_ranges) }\n  \n  .debug_macro    0 : { *(.debug_macro) }\n  .debug_addr     0 : { *(.debug_addr) }\n  .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) }\n  /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) }\n}\n\n"\n                               );\n            iVar6 = DAT_001d0414;\n            if (iVar17 != 0) {\n              iVar15 = *(int *)(DAT_001d0414 + 0xa0);\n              *(code **)(iVar15 + 0x1dc) = FUN_00055c40;\n              pvVar4 = DAT_001cff9c;\n              iVar13 = *(int *)(iVar15 + 0x58);\n              *(int *)(iVar15 + 0x1e4) = iVar17;\n              *(void **)(iVar15 + 0x1e0) = pvVar4;\n              *(undefined4 *)(iVar17 + 0x2c) = 0x35;\n              *(undefined4 *)(iVar17 + 0x30) = 0;\n              goto joined_r0x00056729;\n            }\n            pcVar12 = "%P: warning: cannot create .buildid section, --build-id ignored\n";\n          }\n          uVar11 = dcgettext(0,pcVar12,5);\n          FUN_00034d20(uVar11);\n          break;\n        }\n      }\nLAB_00056a59:\n      free(DAT_001cff9c);\n      DAT_001cff9c = (void *)0x0;\n    }\n  }\n  else {\n    printf("%s()\n","gld_i386pe_after_open");\n    for (iVar6 = *(int *)(DAT_001d0400 + 0x1c); iVar6 != 0; iVar6 = *(int *)(iVar6 + 0x10)) {\n      printf("-%s\n",*(undefined4 *)(iVar6 + 4));\n    }\n    bfd_hash_traverse(DAT_001d0400,FUN_00055b20,0);\n    puVar7 = DAT_001d041c;\n    if (DAT_001d041c != (undefined4 *)0x0) {\n      do {\n        printf("*%s\n",*puVar7);\n        puVar18 = puVar7 + 0x27;\n        puVar7 = (undefined4 *)*puVar18;\n      } while ((undefined4 *)*puVar18 != (undefined4 *)0x0);\n      goto LAB_00056682;\n    }\n    if (DAT_001cff9c != (void *)0x0) goto LAB_00056a59;\n  }\n  iVar6 = DAT_001d0414;\n  if (*(int *)(DAT_001d0414 + 0xa0) != 0) {\n    iVar13 = *(int *)(*(int *)(DAT_001d0414 + 0xa0) + 0x58);\njoined_r0x00056729:\n    if (iVar13 != 0) goto LAB_00056730;\n  }\n  uVar11 = dcgettext(0,"%F%P: cannot perform PE operations on non PE output file \'%pB\'\n",5);\n  FUN_00034d20(uVar11,iVar6);\nLAB_00056730:\n  iVar17 = DAT_001d0414;\n  iVar6 = *(int *)(DAT_001d0414 + 0xa0);\n  puVar7 = &DAT_001cffc0;\n  puVar18 = (undefined4 *)(iVar6 + 0x7c);\n  for (iVar15 = 0x52; iVar15 != 0; iVar15 = iVar15 + -1) {\n    *puVar18 = *puVar7;\n    puVar7 = puVar7 + (uint)bVar25 * -2 + 1;\n    puVar18 = puVar18 + (uint)bVar25 * -2 + 1;\n  }\n  *(undefined4 *)(iVar6 + 0x1c4) = DAT_001cf040;\n  *(uint *)(iVar6 + 0x1d8) = *(uint *)(iVar6 + 0x1d8) | DAT_001cffa8;\n  *(undefined4 *)(iVar6 + 0x1d0) = DAT_001cef94;\n  if ((DAT_001cf388 < 0) && ((DAT_001d03e1 & 0x60) == 0)) {\n    if ((DAT_001d03e0 & 3) == 2) {\n      DAT_001cf388 = 1;\n    }\n    else if (DAT_001cf6bc != 0) {\n      iVar6 = DAT_001cf6bc;\n      do {\n        local_20[0] = 0;\n        bfd_map_over_sections(*(undefined4 *)(iVar6 + 0x10),FUN_000554f0,local_20);\n        iVar17 = DAT_001d0414;\n        if (local_20[0] != 0) {\n          DAT_001cf388 = 1;\n          break;\n        }\n        iVar6 = *(int *)(iVar6 + 0x18);\n      } while (iVar6 != 0);\n    }\n  }\n  FUN_00066c30(iVar17);\n  FUN_000656c0(DAT_001d0414,&DAT_001d03e0);\n  if (DAT_001d0448 != 0) {\n    iVar6 = FUN_000561f0();\n    pcVar12 = "_head_";\n    if (iVar6 != 0) {\n      pcVar12 = "__head_";\n    }\n    FUN_00063bc0(pcVar12,FUN_00055b50);\n  }\n  if (DAT_001cef90 != 0) {\n    if (DAT_001d01fc != 0) {\n      puts("pe_fixup_stdcalls");\n    }\n    for (iVar6 = *(int *)(DAT_001d0400 + 0x1c); iVar6 != 0; iVar6 = *(int *)(iVar6 + 0x10)) {\n      if (*(char *)(iVar6 + 0xc) == '\x01') {\n        pcVar12 = *(char **)(iVar6 + 4);\n        if (*pcVar12 == '@') {\n          pcVar10 = strchr(pcVar12 + 1,0x40);\n          pcVar12 = (char *)xstrdup(pcVar12);\n          *pcVar12 = '_';\n          if (pcVar10 != (char *)0x0) goto LAB_00057061;\n        }\n        else {\n          pcVar10 = strchr(pcVar12,0x40);\n          if (pcVar10 == (char *)0x0) {\n            DAT_001cff8c = 0;\n            bfd_link_hash_traverse(DAT_001d0400,FUN_00055530,pcVar12);\n            if (DAT_001cff8c != 0) {\n              FUN_00056030();\n            }\n            goto LAB_00056fa8;\n          }\n          pcVar12 = (char *)xstrdup(pcVar12);\nLAB_00057061:\n          pcVar10 = strchr(pcVar12,0x40);\n          *pcVar10 = '\0';\n        }\n        iVar17 = bfd_link_hash_lookup(DAT_001d0400,pcVar12,0,0,1);\n        if ((iVar17 != 0) && (*(char *)(iVar17 + 0xc) == '\x03')) {\n          FUN_00056030();\n        }\n      }\nLAB_00056fa8:\n    }\n  }\n  if ((DAT_001d03e0 & 3) != 2) {\n    FUN_00066ca0(DAT_001d0414,&DAT_001d03e0);\n  }\n  local_40 = DAT_001cf6bc;\n  if (DAT_001cf6bc != 0) {\n    do {\n      iVar6 = *(int *)(local_40 + 0x10);\n      if ((*(int *)(iVar6 + 0x8c) != 0) &&\n         (local_38 = *(undefined4 **)(iVar6 + 0x60), local_38 != (undefined4 *)0x0)) {\n        iVar17 = 0;\n        bVar24 = true;\n        puVar7 = local_38;\n        bVar3 = 0;\n        bVar16 = false;\n        do {\n          bVar22 = false;\n          iVar15 = 9;\n          pbVar19 = (byte *)*puVar7;\n          pbVar21 = (byte *)".idata$2";\n          do {\n            if (iVar15 == 0) break;\n            iVar15 = iVar15 + -1;\n            bVar22 = *pbVar19 < *pbVar21;\n            bVar24 = *pbVar19 == *pbVar21;\n            pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n            pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n          } while (bVar24);\n          bVar23 = false;\n          bVar24 = (!bVar22 && !bVar24) == bVar22;\n          bVar22 = true;\n          if (!bVar24) {\n            bVar22 = bVar16;\n          }\n          iVar15 = 7;\n          pbVar19 = (byte *)*puVar7;\n          pbVar21 = (byte *)".idata$";\n          do {\n            if (iVar15 == 0) break;\n            iVar15 = iVar15 + -1;\n            bVar23 = *pbVar19 < *pbVar21;\n            bVar24 = *pbVar19 == *pbVar21;\n            pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n            pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n          } while (bVar24);\n          bVar5 = 1;\n          if ((!bVar23 && !bVar24) != bVar23) {\n            bVar5 = bVar3;\n          }\n          iVar17 = iVar17 + puVar7[0x19];\n          puVar7 = (undefined4 *)puVar7[3];\n          bVar24 = puVar7 == (undefined4 *)0x0;\n          bVar3 = bVar5;\n          bVar16 = bVar22;\n        } while (!bVar24);\n        if (((bool)(bVar5 & iVar17 != 0)) && (!bVar22)) {\n          while (iVar6 = bfd_get_reloc_upper_bound(iVar6,local_38), 0 < iVar6) {\n            iVar17 = bfd_generic_link_read_symbols(*(undefined4 *)(local_40 + 0x10));\n            local_4c = local_40;\n            if (iVar17 == 0) goto LAB_000570af;\n            uVar11 = *(undefined4 *)(*(int *)(local_40 + 0x10) + 0x78);\n            puVar7 = (undefined4 *)xmalloc(iVar6);\n            iVar6 = bfd_canonicalize_reloc(*(undefined4 *)(local_40 + 0x10),local_38,puVar7,uVar11);\n            if (iVar6 < 0) {\n              free(puVar7);\n              uVar11 = dcgettext(0,"%X%P: unable to process relocs: %E\n",5);\n              FUN_00034d20(uVar11);\n              return;\n            }\n            puVar18 = puVar7;\n            if (iVar6 != 0) {\n              do {\n                if ((((*(byte *)(**(int **)*puVar18 + 0x10) & 1) == 0) &&\n                    (iVar17 = bfd_link_hash_lookup\n                                        (DAT_001d0400,*(undefined4 *)(**(int **)*puVar18 + 4),0,0,1)\n                    , iVar17 != 0)) && (*(char *)(iVar17 + 0xc) == '\x03')) {\n                  puVar2 = *(undefined4 **)(*(int *)(iVar17 + 0x14) + 0xac);\n                  puVar8 = (undefined4 *)puVar2[0x23];\n                  if (puVar8 == (undefined4 *)0x0) {\n                    puVar8 = puVar2;\n                  }\n                  pcVar12 = (char *)*puVar8;\n                  iVar17 = filename_cmp(**(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c),pcVar12)\n                  ;\n                  if (iVar17 != 0) {\n                    sVar9 = strlen(pcVar12);\n                    pcVar10 = (char *)xmalloc(sVar9 + 1);\n                    strcpy(pcVar10,pcVar12);\n                    **(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c) = pcVar10;\n                  }\n                }\n                puVar18 = puVar18 + 1;\n              } while (puVar7 + iVar6 != puVar18);\n            }\n            free(puVar7);\n            local_38 = (undefined4 *)local_38[3];\n            if (local_38 == (undefined4 *)0x0) break;\n            iVar6 = *(int *)(local_40 + 0x10);\n          }\n        }\n      }\n      local_40 = *(int *)(local_40 + 0x18);\n    } while (local_40 != 0);\n    local_50 = DAT_001cf6bc;\n    if (DAT_001cf6bc != 0) {\n      bVar16 = false;\n      local_40 = 0;\n      do {\n        iVar6 = (*(undefined4 **)(local_50 + 0x10))[0x23];\n        if (iVar6 != 0) {\n          pcVar12 = strrchr((char *)**(undefined4 **)(local_50 + 0x10),0x2e);\n          iVar17 = local_50;\n          if (iVar6 == local_40) {\n            if (!bVar16) goto LAB_00056b08;\n          }\n          else {\n            while ((iVar15 = local_50, local_40 = iVar6, pcVar12 == (char *)0x0 ||\n                   (iVar13 = filename_cmp(pcVar12,".dll"), iVar13 != 0))) {\n              iVar17 = *(int *)(iVar17 + 0x18);\n              if (iVar17 == 0) {\n                local_50 = *(int *)(local_50 + 0x18);\n                bVar16 = false;\n                goto joined_r0x00056b15;\n              }\n              if (iVar6 != (*(undefined4 **)(iVar17 + 0x10))[0x23]) break;\n              pcVar12 = strrchr((char *)**(undefined4 **)(iVar17 + 0x10),0x2e);\n            }\n            do {\n              if (iVar6 != (*(undefined4 **)(iVar15 + 0x10))[0x23]) break;\n              pcVar12 = (char *)**(undefined4 **)(iVar15 + 0x10);\n              pcVar10 = strrchr(pcVar12,0x2e);\n              if (pcVar10 == (char *)0x0) {\nLAB_00056d20:\n                iVar13 = filename_cmp(**(undefined4 **)(iVar17 + 0x10),pcVar12);\n                if (iVar13 != 0) {\n                  bVar16 = false;\n                  goto LAB_00056b08;\n                }\n              }\n              else {\n                iVar13 = filename_cmp(pcVar10,&DAT_00192ed1);\n                if (iVar13 != 0) {\n                  pcVar12 = (char *)**(undefined4 **)(iVar15 + 0x10);\n                  goto LAB_00056d20;\n                }\n              }\n              piVar20 = (int *)(iVar15 + 0x18);\n              iVar15 = *piVar20;\n            } while (*piVar20 != 0);\n            pcVar12 = strrchr((char *)**(undefined4 **)(local_50 + 0x10),0x2e);\n          }\n          bVar16 = true;\n          iVar6 = filename_cmp(pcVar12,".dll");\n          if (iVar6 == 0) {\n            puVar7 = (undefined4 *)(*(undefined4 **)(local_50 + 0x10))[0x18];\n            if (puVar7 == (undefined4 *)0x0) {\n              iVar6 = 99;\n            }\n            else {\n              iVar17 = 0;\n              bVar24 = true;\n              bVar16 = false;\n              do {\n                bVar22 = false;\n                iVar6 = 9;\n                pbVar19 = (byte *)*puVar7;\n                pbVar21 = (byte *)".idata$2";\n                do {\n                  if (iVar6 == 0) break;\n                  iVar6 = iVar6 + -1;\n                  bVar22 = *pbVar19 < *pbVar21;\n                  bVar24 = *pbVar19 == *pbVar21;\n                  pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n                  pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n                } while (bVar24);\n                if ((!bVar22 && !bVar24) == bVar22) {\n                  bVar16 = true;\n                }\n                iVar17 = iVar17 + puVar7[0x19];\n                puVar7 = (undefined4 *)puVar7[3];\n                bVar24 = puVar7 == (undefined4 *)0x0;\n              } while (!bVar24);\n              iVar6 = 0x61;\n              if (!bVar16) {\n                iVar6 = (iVar17 < 1) + 0x62;\n              }\n            }\n            sVar9 = strlen((char *)**(undefined4 **)(local_50 + 0x10));\n            pcVar12 = (char *)xmalloc(sVar9 + 3);\n            sprintf(pcVar12,"%s.%c",**(undefined4 **)(local_50 + 0x10),iVar6);\n            **(undefined4 **)(local_50 + 0x10) = pcVar12;\n            sVar9 = strlen(*(char **)(local_50 + 8));\n            pcVar12 = (char *)xmalloc(sVar9 + 3);\n            sprintf(pcVar12,"%s.%c",*(undefined4 *)(local_50 + 8),iVar6);\n            *(char **)(local_50 + 8) = pcVar12;\n            bVar16 = true;\n          }\n        }\nLAB_00056b08:\n        local_50 = *(int *)(local_50 + 0x18);\njoined_r0x00056b15:\n      } while (local_50 != 0);\n      local_4c = DAT_001cf6bc;\n      if (DAT_001cf6bc != 0) {\n        do {\n          iVar6 = *(int *)(local_4c + 0x10);\n          if ((*(int *)(iVar6 + 0x8c) != 0) &&\n             (puVar7 = *(undefined4 **)(iVar6 + 0x60), puVar7 != (undefined4 *)0x0)) {\n            puVar18 = (undefined4 *)0x0;\n            bVar16 = false;\n            bVar24 = true;\n            do {\n              bVar22 = false;\n              iVar17 = 7;\n              pbVar19 = (byte *)*puVar7;\n              pbVar21 = (byte *)".idata$";\n              do {\n                if (iVar17 == 0) break;\n                iVar17 = iVar17 + -1;\n                bVar22 = *pbVar19 < *pbVar21;\n                bVar24 = *pbVar19 == *pbVar21;\n                pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n                pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n              } while (bVar24);\n              if ((!bVar22 && !bVar24) == bVar22) {\n                bVar16 = true;\n              }\n              if (((*(byte *)(puVar7 + 5) & 0x10) != 0) && (puVar7[0x19] != 0)) {\n                puVar18 = puVar7;\n              }\n              puVar7 = (undefined4 *)puVar7[3];\n              bVar24 = puVar7 == (undefined4 *)0x0;\n            } while (!bVar24);\n            if ((puVar18 != (undefined4 *)0x0) && (bVar16)) {\n              iVar6 = bfd_generic_link_read_symbols(iVar6);\n              if (iVar6 == 0) {\nLAB_000570af:\n                uVar11 = *(undefined4 *)(local_4c + 0x10);\n                uVar14 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n                FUN_00034d20(uVar14,uVar11);\n                return;\n              }\n              piVar20 = *(int **)(*(int *)(local_4c + 0x10) + 0x78);\n              iVar6 = *(int *)(*(int *)(local_4c + 0x10) + 0x7c);\n              if (0 < iVar6) {\n                piVar1 = piVar20 + iVar6;\n                do {\n                  if ((((*(int *)(*(int *)(*piVar20 + 0x14) + 4) == puVar18[1]) &&\n                       (iVar6 = bfd_link_hash_lookup\n                                          (DAT_001d0400,*(undefined4 *)(*piVar20 + 4),0,0,1),\n                       iVar6 != 0)) && (*(char *)(iVar6 + 0xc) == '\x03')) &&\n                     ((*(int *)(iVar6 + 0x10) == 0 && (*(int *)(DAT_001d0400 + 0x20) != iVar6)))) {\n                    puVar18[5] = puVar18[5] | 0x8000;\n                  }\n                  piVar20 = piVar20 + 1;\n                } while (piVar1 != piVar20);\n              }\n            }\n          }\n          local_4c = *(int *)(local_4c + 0x18);\n        } while (local_4c != 0);\n      }\n    }\n  }\n  return;\n}\n\n" (function_definition "void FUN_00056650(void)\n\n{\n  int *piVar1;\n  undefined4 *puVar2;\n  byte bVar3;\n  void *pvVar4;\n  byte bVar5;\n  int iVar6;\n  undefined4 *puVar7;\n  undefined4 *puVar8;\n  size_t sVar9;\n  char *pcVar10;\n  undefined4 uVar11;\n  char *pcVar12;\n  int iVar13;\n  undefined4 uVar14;\n  int iVar15;\n  bool bVar16;\n  int iVar17;\n  undefined4 *puVar18;\n  byte *pbVar19;\n  int *piVar20;\n  byte *pbVar21;\n  bool bVar22;\n  bool bVar23;\n  bool bVar24;\n  byte bVar25;\n  int local_50;\n  int local_4c;\n  int local_40;\n  undefined4 *local_38;\n  int local_20 [3];\n  undefined4 uStack_14;\n  \n  bVar25 = 0;\n  uStack_14 = 0x56659;\n  FUN_00033940();\n  if (DAT_001d01fc == 0) {\nLAB_00056682:\n    puVar7 = DAT_001d041c;\n    if (DAT_001cff9c != (void *)0x0) {\n      for (; puVar7 != (undefined4 *)0x0; puVar7 = (undefined4 *)puVar7[0x27]) {\n        if (*(int *)(puVar7[1] + 4) == 2) {\n          iVar6 = FUN_00038960(DAT_001cff9c);\n          if (iVar6 == 0) {\n            pcVar12 = "%P: warning: unrecognized --build-id style ignored\n";\n          }\n          else {\n            iVar17 = bfd_make_section_anyway_with_flags\n                               (puVar7,".buildid",\n                                "*/\n  .debug_aranges  0 : { *(.debug_aranges) }\n  .debug_pubnames 0 : { *(.debug_pubnames) }\n  \n  .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }\n  .debug_abbrev   0 : { *(.debug_abbrev) }\n  .debug_line     0 : { *(.debug_line .debug_line.* .debug_line_end ) }\n  .debug_frame    0 : { *(.debug_frame) }\n  .debug_str      0 : { *(.debug_str) }\n  .debug_loc      0 : { *(.debug_loc) }\n  .debug_macinfo  0 : { *(.debug_macinfo) }\n  \n  .debug_weaknames 0 : { *(.debug_weaknames) }\n  .debug_funcnames 0 : { *(.debug_funcnames) }\n  .debug_typenames 0 : { *(.debug_typenames) }\n  .debug_varnames  0 : { *(.debug_varnames) }\n  \n  .debug_pubtypes 0 : { *(.debug_pubtypes) }\n  .debug_ranges   0 : { *(.debug_ranges) }\n  \n  .debug_macro    0 : { *(.debug_macro) }\n  .debug_addr     0 : { *(.debug_addr) }\n  .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) }\n  /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) }\n}\n\n"\n                               );\n            iVar6 = DAT_001d0414;\n            if (iVar17 != 0) {\n              iVar15 = *(int *)(DAT_001d0414 + 0xa0);\n              *(code **)(iVar15 + 0x1dc) = FUN_00055c40;\n              pvVar4 = DAT_001cff9c;\n              iVar13 = *(int *)(iVar15 + 0x58);\n              *(int *)(iVar15 + 0x1e4) = iVar17;\n              *(void **)(iVar15 + 0x1e0) = pvVar4;\n              *(undefined4 *)(iVar17 + 0x2c) = 0x35;\n              *(undefined4 *)(iVar17 + 0x30) = 0;\n              goto joined_r0x00056729;\n            }\n            pcVar12 = "%P: warning: cannot create .buildid section, --build-id ignored\n";\n          }\n          uVar11 = dcgettext(0,pcVar12,5);\n          FUN_00034d20(uVar11);\n          break;\n        }\n      }\nLAB_00056a59:\n      free(DAT_001cff9c);\n      DAT_001cff9c = (void *)0x0;\n    }\n  }\n  else {\n    printf("%s()\n","gld_i386pe_after_open");\n    for (iVar6 = *(int *)(DAT_001d0400 + 0x1c); iVar6 != 0; iVar6 = *(int *)(iVar6 + 0x10)) {\n      printf("-%s\n",*(undefined4 *)(iVar6 + 4));\n    }\n    bfd_hash_traverse(DAT_001d0400,FUN_00055b20,0);\n    puVar7 = DAT_001d041c;\n    if (DAT_001d041c != (undefined4 *)0x0) {\n      do {\n        printf("*%s\n",*puVar7);\n        puVar18 = puVar7 + 0x27;\n        puVar7 = (undefined4 *)*puVar18;\n      } while ((undefined4 *)*puVar18 != (undefined4 *)0x0);\n      goto LAB_00056682;\n    }\n    if (DAT_001cff9c != (void *)0x0) goto LAB_00056a59;\n  }\n  iVar6 = DAT_001d0414;\n  if (*(int *)(DAT_001d0414 + 0xa0) != 0) {\n    iVar13 = *(int *)(*(int *)(DAT_001d0414 + 0xa0) + 0x58);\njoined_r0x00056729:\n    if (iVar13 != 0) goto LAB_00056730;\n  }\n  uVar11 = dcgettext(0,"%F%P: cannot perform PE operations on non PE output file \'%pB\'\n",5);\n  FUN_00034d20(uVar11,iVar6);\nLAB_00056730:\n  iVar17 = DAT_001d0414;\n  iVar6 = *(int *)(DAT_001d0414 + 0xa0);\n  puVar7 = &DAT_001cffc0;\n  puVar18 = (undefined4 *)(iVar6 + 0x7c);\n  for (iVar15 = 0x52; iVar15 != 0; iVar15 = iVar15 + -1) {\n    *puVar18 = *puVar7;\n    puVar7 = puVar7 + (uint)bVar25 * -2 + 1;\n    puVar18 = puVar18 + (uint)bVar25 * -2 + 1;\n  }\n  *(undefined4 *)(iVar6 + 0x1c4) = DAT_001cf040;\n  *(uint *)(iVar6 + 0x1d8) = *(uint *)(iVar6 + 0x1d8) | DAT_001cffa8;\n  *(undefined4 *)(iVar6 + 0x1d0) = DAT_001cef94;\n  if ((DAT_001cf388 < 0) && ((DAT_001d03e1 & 0x60) == 0)) {\n    if ((DAT_001d03e0 & 3) == 2) {\n      DAT_001cf388 = 1;\n    }\n    else if (DAT_001cf6bc != 0) {\n      iVar6 = DAT_001cf6bc;\n      do {\n        local_20[0] = 0;\n        bfd_map_over_sections(*(undefined4 *)(iVar6 + 0x10),FUN_000554f0,local_20);\n        iVar17 = DAT_001d0414;\n        if (local_20[0] != 0) {\n          DAT_001cf388 = 1;\n          break;\n        }\n        iVar6 = *(int *)(iVar6 + 0x18);\n      } while (iVar6 != 0);\n    }\n  }\n  FUN_00066c30(iVar17);\n  FUN_000656c0(DAT_001d0414,&DAT_001d03e0);\n  if (DAT_001d0448 != 0) {\n    iVar6 = FUN_000561f0();\n    pcVar12 = "_head_";\n    if (iVar6 != 0) {\n      pcVar12 = "__head_";\n    }\n    FUN_00063bc0(pcVar12,FUN_00055b50);\n  }\n  if (DAT_001cef90 != 0) {\n    if (DAT_001d01fc != 0) {\n      puts("pe_fixup_stdcalls");\n    }\n    for (iVar6 = *(int *)(DAT_001d0400 + 0x1c); iVar6 != 0; iVar6 = *(int *)(iVar6 + 0x10)) {\n      if (*(char *)(iVar6 + 0xc) == '\x01') {\n        pcVar12 = *(char **)(iVar6 + 4);\n        if (*pcVar12 == '@') {\n          pcVar10 = strchr(pcVar12 + 1,0x40);\n          pcVar12 = (char *)xstrdup(pcVar12);\n          *pcVar12 = '_';\n          if (pcVar10 != (char *)0x0) goto LAB_00057061;\n        }\n        else {\n          pcVar10 = strchr(pcVar12,0x40);\n          if (pcVar10 == (char *)0x0) {\n            DAT_001cff8c = 0;\n            bfd_link_hash_traverse(DAT_001d0400,FUN_00055530,pcVar12);\n            if (DAT_001cff8c != 0) {\n              FUN_00056030();\n            }\n            goto LAB_00056fa8;\n          }\n          pcVar12 = (char *)xstrdup(pcVar12);\nLAB_00057061:\n          pcVar10 = strchr(pcVar12,0x40);\n          *pcVar10 = '\0';\n        }\n        iVar17 = bfd_link_hash_lookup(DAT_001d0400,pcVar12,0,0,1);\n        if ((iVar17 != 0) && (*(char *)(iVar17 + 0xc) == '\x03')) {\n          FUN_00056030();\n        }\n      }\nLAB_00056fa8:\n    }\n  }\n  if ((DAT_001d03e0 & 3) != 2) {\n    FUN_00066ca0(DAT_001d0414,&DAT_001d03e0);\n  }\n  local_40 = DAT_001cf6bc;\n  if (DAT_001cf6bc != 0) {\n    do {\n      iVar6 = *(int *)(local_40 + 0x10);\n      if ((*(int *)(iVar6 + 0x8c) != 0) &&\n         (local_38 = *(undefined4 **)(iVar6 + 0x60), local_38 != (undefined4 *)0x0)) {\n        iVar17 = 0;\n        bVar24 = true;\n        puVar7 = local_38;\n        bVar3 = 0;\n        bVar16 = false;\n        do {\n          bVar22 = false;\n          iVar15 = 9;\n          pbVar19 = (byte *)*puVar7;\n          pbVar21 = (byte *)".idata$2";\n          do {\n            if (iVar15 == 0) break;\n            iVar15 = iVar15 + -1;\n            bVar22 = *pbVar19 < *pbVar21;\n            bVar24 = *pbVar19 == *pbVar21;\n            pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n            pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n          } while (bVar24);\n          bVar23 = false;\n          bVar24 = (!bVar22 && !bVar24) == bVar22;\n          bVar22 = true;\n          if (!bVar24) {\n            bVar22 = bVar16;\n          }\n          iVar15 = 7;\n          pbVar19 = (byte *)*puVar7;\n          pbVar21 = (byte *)".idata$";\n          do {\n            if (iVar15 == 0) break;\n            iVar15 = iVar15 + -1;\n            bVar23 = *pbVar19 < *pbVar21;\n            bVar24 = *pbVar19 == *pbVar21;\n            pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n            pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n          } while (bVar24);\n          bVar5 = 1;\n          if ((!bVar23 && !bVar24) != bVar23) {\n            bVar5 = bVar3;\n          }\n          iVar17 = iVar17 + puVar7[0x19];\n          puVar7 = (undefined4 *)puVar7[3];\n          bVar24 = puVar7 == (undefined4 *)0x0;\n          bVar3 = bVar5;\n          bVar16 = bVar22;\n        } while (!bVar24);\n        if (((bool)(bVar5 & iVar17 != 0)) && (!bVar22)) {\n          while (iVar6 = bfd_get_reloc_upper_bound(iVar6,local_38), 0 < iVar6) {\n            iVar17 = bfd_generic_link_read_symbols(*(undefined4 *)(local_40 + 0x10));\n            local_4c = local_40;\n            if (iVar17 == 0) goto LAB_000570af;\n            uVar11 = *(undefined4 *)(*(int *)(local_40 + 0x10) + 0x78);\n            puVar7 = (undefined4 *)xmalloc(iVar6);\n            iVar6 = bfd_canonicalize_reloc(*(undefined4 *)(local_40 + 0x10),local_38,puVar7,uVar11);\n            if (iVar6 < 0) {\n              free(puVar7);\n              uVar11 = dcgettext(0,"%X%P: unable to process relocs: %E\n",5);\n              FUN_00034d20(uVar11);\n              return;\n            }\n            puVar18 = puVar7;\n            if (iVar6 != 0) {\n              do {\n                if ((((*(byte *)(**(int **)*puVar18 + 0x10) & 1) == 0) &&\n                    (iVar17 = bfd_link_hash_lookup\n                                        (DAT_001d0400,*(undefined4 *)(**(int **)*puVar18 + 4),0,0,1)\n                    , iVar17 != 0)) && (*(char *)(iVar17 + 0xc) == '\x03')) {\n                  puVar2 = *(undefined4 **)(*(int *)(iVar17 + 0x14) + 0xac);\n                  puVar8 = (undefined4 *)puVar2[0x23];\n                  if (puVar8 == (undefined4 *)0x0) {\n                    puVar8 = puVar2;\n                  }\n                  pcVar12 = (char *)*puVar8;\n                  iVar17 = filename_cmp(**(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c),pcVar12)\n                  ;\n                  if (iVar17 != 0) {\n                    sVar9 = strlen(pcVar12);\n                    pcVar10 = (char *)xmalloc(sVar9 + 1);\n                    strcpy(pcVar10,pcVar12);\n                    **(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c) = pcVar10;\n                  }\n                }\n                puVar18 = puVar18 + 1;\n              } while (puVar7 + iVar6 != puVar18);\n            }\n            free(puVar7);\n            local_38 = (undefined4 *)local_38[3];\n            if (local_38 == (undefined4 *)0x0) break;\n            iVar6 = *(int *)(local_40 + 0x10);\n          }\n        }\n      }\n      local_40 = *(int *)(local_40 + 0x18);\n    } while (local_40 != 0);\n    local_50 = DAT_001cf6bc;\n    if (DAT_001cf6bc != 0) {\n      bVar16 = false;\n      local_40 = 0;\n      do {\n        iVar6 = (*(undefined4 **)(local_50 + 0x10))[0x23];\n        if (iVar6 != 0) {\n          pcVar12 = strrchr((char *)**(undefined4 **)(local_50 + 0x10),0x2e);\n          iVar17 = local_50;\n          if (iVar6 == local_40) {\n            if (!bVar16) goto LAB_00056b08;\n          }\n          else {\n            while ((iVar15 = local_50, local_40 = iVar6, pcVar12 == (char *)0x0 ||\n                   (iVar13 = filename_cmp(pcVar12,".dll"), iVar13 != 0))) {\n              iVar17 = *(int *)(iVar17 + 0x18);\n              if (iVar17 == 0) {\n                local_50 = *(int *)(local_50 + 0x18);\n                bVar16 = false;\n                goto joined_r0x00056b15;\n              }\n              if (iVar6 != (*(undefined4 **)(iVar17 + 0x10))[0x23]) break;\n              pcVar12 = strrchr((char *)**(undefined4 **)(iVar17 + 0x10),0x2e);\n            }\n            do {\n              if (iVar6 != (*(undefined4 **)(iVar15 + 0x10))[0x23]) break;\n              pcVar12 = (char *)**(undefined4 **)(iVar15 + 0x10);\n              pcVar10 = strrchr(pcVar12,0x2e);\n              if (pcVar10 == (char *)0x0) {\nLAB_00056d20:\n                iVar13 = filename_cmp(**(undefined4 **)(iVar17 + 0x10),pcVar12);\n                if (iVar13 != 0) {\n                  bVar16 = false;\n                  goto LAB_00056b08;\n                }\n              }\n              else {\n                iVar13 = filename_cmp(pcVar10,&DAT_00192ed1);\n                if (iVar13 != 0) {\n                  pcVar12 = (char *)**(undefined4 **)(iVar15 + 0x10);\n                  goto LAB_00056d20;\n                }\n              }\n              piVar20 = (int *)(iVar15 + 0x18);\n              iVar15 = *piVar20;\n            } while (*piVar20 != 0);\n            pcVar12 = strrchr((char *)**(undefined4 **)(local_50 + 0x10),0x2e);\n          }\n          bVar16 = true;\n          iVar6 = filename_cmp(pcVar12,".dll");\n          if (iVar6 == 0) {\n            puVar7 = (undefined4 *)(*(undefined4 **)(local_50 + 0x10))[0x18];\n            if (puVar7 == (undefined4 *)0x0) {\n              iVar6 = 99;\n            }\n            else {\n              iVar17 = 0;\n              bVar24 = true;\n              bVar16 = false;\n              do {\n                bVar22 = false;\n                iVar6 = 9;\n                pbVar19 = (byte *)*puVar7;\n                pbVar21 = (byte *)".idata$2";\n                do {\n                  if (iVar6 == 0) break;\n                  iVar6 = iVar6 + -1;\n                  bVar22 = *pbVar19 < *pbVar21;\n                  bVar24 = *pbVar19 == *pbVar21;\n                  pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n                  pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n                } while (bVar24);\n                if ((!bVar22 && !bVar24) == bVar22) {\n                  bVar16 = true;\n                }\n                iVar17 = iVar17 + puVar7[0x19];\n                puVar7 = (undefined4 *)puVar7[3];\n                bVar24 = puVar7 == (undefined4 *)0x0;\n              } while (!bVar24);\n              iVar6 = 0x61;\n              if (!bVar16) {\n                iVar6 = (iVar17 < 1) + 0x62;\n              }\n            }\n            sVar9 = strlen((char *)**(undefined4 **)(local_50 + 0x10));\n            pcVar12 = (char *)xmalloc(sVar9 + 3);\n            sprintf(pcVar12,"%s.%c",**(undefined4 **)(local_50 + 0x10),iVar6);\n            **(undefined4 **)(local_50 + 0x10) = pcVar12;\n            sVar9 = strlen(*(char **)(local_50 + 8));\n            pcVar12 = (char *)xmalloc(sVar9 + 3);\n            sprintf(pcVar12,"%s.%c",*(undefined4 *)(local_50 + 8),iVar6);\n            *(char **)(local_50 + 8) = pcVar12;\n            bVar16 = true;\n          }\n        }\nLAB_00056b08:\n        local_50 = *(int *)(local_50 + 0x18);\njoined_r0x00056b15:\n      } while (local_50 != 0);\n      local_4c = DAT_001cf6bc;\n      if (DAT_001cf6bc != 0) {\n        do {\n          iVar6 = *(int *)(local_4c + 0x10);\n          if ((*(int *)(iVar6 + 0x8c) != 0) &&\n             (puVar7 = *(undefined4 **)(iVar6 + 0x60), puVar7 != (undefined4 *)0x0)) {\n            puVar18 = (undefined4 *)0x0;\n            bVar16 = false;\n            bVar24 = true;\n            do {\n              bVar22 = false;\n              iVar17 = 7;\n              pbVar19 = (byte *)*puVar7;\n              pbVar21 = (byte *)".idata$";\n              do {\n                if (iVar17 == 0) break;\n                iVar17 = iVar17 + -1;\n                bVar22 = *pbVar19 < *pbVar21;\n                bVar24 = *pbVar19 == *pbVar21;\n                pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n                pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n              } while (bVar24);\n              if ((!bVar22 && !bVar24) == bVar22) {\n                bVar16 = true;\n              }\n              if (((*(byte *)(puVar7 + 5) & 0x10) != 0) && (puVar7[0x19] != 0)) {\n                puVar18 = puVar7;\n              }\n              puVar7 = (undefined4 *)puVar7[3];\n              bVar24 = puVar7 == (undefined4 *)0x0;\n            } while (!bVar24);\n            if ((puVar18 != (undefined4 *)0x0) && (bVar16)) {\n              iVar6 = bfd_generic_link_read_symbols(iVar6);\n              if (iVar6 == 0) {\nLAB_000570af:\n                uVar11 = *(undefined4 *)(local_4c + 0x10);\n                uVar14 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n                FUN_00034d20(uVar14,uVar11);\n                return;\n              }\n              piVar20 = *(int **)(*(int *)(local_4c + 0x10) + 0x78);\n              iVar6 = *(int *)(*(int *)(local_4c + 0x10) + 0x7c);\n              if (0 < iVar6) {\n                piVar1 = piVar20 + iVar6;\n                do {\n                  if ((((*(int *)(*(int *)(*piVar20 + 0x14) + 4) == puVar18[1]) &&\n                       (iVar6 = bfd_link_hash_lookup\n                                          (DAT_001d0400,*(undefined4 *)(*piVar20 + 4),0,0,1),\n                       iVar6 != 0)) && (*(char *)(iVar6 + 0xc) == '\x03')) &&\n                     ((*(int *)(iVar6 + 0x10) == 0 && (*(int *)(DAT_001d0400 + 0x20) != iVar6)))) {\n                    puVar18[5] = puVar18[5] | 0x8000;\n                  }\n                  piVar20 = piVar20 + 1;\n                } while (piVar1 != piVar20);\n              }\n            }\n          }\n          local_4c = *(int *)(local_4c + 0x18);\n        } while (local_4c != 0);\n      }\n    }\n  }\n  return;\n}" primitive_type (function_declarator "FUN_00056650(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  int *piVar1;\n  undefined4 *puVar2;\n  byte bVar3;\n  void *pvVar4;\n  byte bVar5;\n  int iVar6;\n  undefined4 *puVar7;\n  undefined4 *puVar8;\n  size_t sVar9;\n  char *pcVar10;\n  undefined4 uVar11;\n  char *pcVar12;\n  int iVar13;\n  undefined4 uVar14;\n  int iVar15;\n  bool bVar16;\n  int iVar17;\n  undefined4 *puVar18;\n  byte *pbVar19;\n  int *piVar20;\n  byte *pbVar21;\n  bool bVar22;\n  bool bVar23;\n  bool bVar24;\n  byte bVar25;\n  int local_50;\n  int local_4c;\n  int local_40;\n  undefined4 *local_38;\n  int local_20 [3];\n  undefined4 uStack_14;\n  \n  bVar25 = 0;\n  uStack_14 = 0x56659;\n  FUN_00033940();\n  if (DAT_001d01fc == 0) {\nLAB_00056682:\n    puVar7 = DAT_001d041c;\n    if (DAT_001cff9c != (void *)0x0) {\n      for (; puVar7 != (undefined4 *)0x0; puVar7 = (undefined4 *)puVar7[0x27]) {\n        if (*(int *)(puVar7[1] + 4) == 2) {\n          iVar6 = FUN_00038960(DAT_001cff9c);\n          if (iVar6 == 0) {\n            pcVar12 = "%P: warning: unrecognized --build-id style ignored\n";\n          }\n          else {\n            iVar17 = bfd_make_section_anyway_with_flags\n                               (puVar7,".buildid",\n                                "*/\n  .debug_aranges  0 : { *(.debug_aranges) }\n  .debug_pubnames 0 : { *(.debug_pubnames) }\n  \n  .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }\n  .debug_abbrev   0 : { *(.debug_abbrev) }\n  .debug_line     0 : { *(.debug_line .debug_line.* .debug_line_end ) }\n  .debug_frame    0 : { *(.debug_frame) }\n  .debug_str      0 : { *(.debug_str) }\n  .debug_loc      0 : { *(.debug_loc) }\n  .debug_macinfo  0 : { *(.debug_macinfo) }\n  \n  .debug_weaknames 0 : { *(.debug_weaknames) }\n  .debug_funcnames 0 : { *(.debug_funcnames) }\n  .debug_typenames 0 : { *(.debug_typenames) }\n  .debug_varnames  0 : { *(.debug_varnames) }\n  \n  .debug_pubtypes 0 : { *(.debug_pubtypes) }\n  .debug_ranges   0 : { *(.debug_ranges) }\n  \n  .debug_macro    0 : { *(.debug_macro) }\n  .debug_addr     0 : { *(.debug_addr) }\n  .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) }\n  /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) }\n}\n\n"\n                               );\n            iVar6 = DAT_001d0414;\n            if (iVar17 != 0) {\n              iVar15 = *(int *)(DAT_001d0414 + 0xa0);\n              *(code **)(iVar15 + 0x1dc) = FUN_00055c40;\n              pvVar4 = DAT_001cff9c;\n              iVar13 = *(int *)(iVar15 + 0x58);\n              *(int *)(iVar15 + 0x1e4) = iVar17;\n              *(void **)(iVar15 + 0x1e0) = pvVar4;\n              *(undefined4 *)(iVar17 + 0x2c) = 0x35;\n              *(undefined4 *)(iVar17 + 0x30) = 0;\n              goto joined_r0x00056729;\n            }\n            pcVar12 = "%P: warning: cannot create .buildid section, --build-id ignored\n";\n          }\n          uVar11 = dcgettext(0,pcVar12,5);\n          FUN_00034d20(uVar11);\n          break;\n        }\n      }\nLAB_00056a59:\n      free(DAT_001cff9c);\n      DAT_001cff9c = (void *)0x0;\n    }\n  }\n  else {\n    printf("%s()\n","gld_i386pe_after_open");\n    for (iVar6 = *(int *)(DAT_001d0400 + 0x1c); iVar6 != 0; iVar6 = *(int *)(iVar6 + 0x10)) {\n      printf("-%s\n",*(undefined4 *)(iVar6 + 4));\n    }\n    bfd_hash_traverse(DAT_001d0400,FUN_00055b20,0);\n    puVar7 = DAT_001d041c;\n    if (DAT_001d041c != (undefined4 *)0x0) {\n      do {\n        printf("*%s\n",*puVar7);\n        puVar18 = puVar7 + 0x27;\n        puVar7 = (undefined4 *)*puVar18;\n      } while ((undefined4 *)*puVar18 != (undefined4 *)0x0);\n      goto LAB_00056682;\n    }\n    if (DAT_001cff9c != (void *)0x0) goto LAB_00056a59;\n  }\n  iVar6 = DAT_001d0414;\n  if (*(int *)(DAT_001d0414 + 0xa0) != 0) {\n    iVar13 = *(int *)(*(int *)(DAT_001d0414 + 0xa0) + 0x58);\njoined_r0x00056729:\n    if (iVar13 != 0) goto LAB_00056730;\n  }\n  uVar11 = dcgettext(0,"%F%P: cannot perform PE operations on non PE output file \'%pB\'\n",5);\n  FUN_00034d20(uVar11,iVar6);\nLAB_00056730:\n  iVar17 = DAT_001d0414;\n  iVar6 = *(int *)(DAT_001d0414 + 0xa0);\n  puVar7 = &DAT_001cffc0;\n  puVar18 = (undefined4 *)(iVar6 + 0x7c);\n  for (iVar15 = 0x52; iVar15 != 0; iVar15 = iVar15 + -1) {\n    *puVar18 = *puVar7;\n    puVar7 = puVar7 + (uint)bVar25 * -2 + 1;\n    puVar18 = puVar18 + (uint)bVar25 * -2 + 1;\n  }\n  *(undefined4 *)(iVar6 + 0x1c4) = DAT_001cf040;\n  *(uint *)(iVar6 + 0x1d8) = *(uint *)(iVar6 + 0x1d8) | DAT_001cffa8;\n  *(undefined4 *)(iVar6 + 0x1d0) = DAT_001cef94;\n  if ((DAT_001cf388 < 0) && ((DAT_001d03e1 & 0x60) == 0)) {\n    if ((DAT_001d03e0 & 3) == 2) {\n      DAT_001cf388 = 1;\n    }\n    else if (DAT_001cf6bc != 0) {\n      iVar6 = DAT_001cf6bc;\n      do {\n        local_20[0] = 0;\n        bfd_map_over_sections(*(undefined4 *)(iVar6 + 0x10),FUN_000554f0,local_20);\n        iVar17 = DAT_001d0414;\n        if (local_20[0] != 0) {\n          DAT_001cf388 = 1;\n          break;\n        }\n        iVar6 = *(int *)(iVar6 + 0x18);\n      } while (iVar6 != 0);\n    }\n  }\n  FUN_00066c30(iVar17);\n  FUN_000656c0(DAT_001d0414,&DAT_001d03e0);\n  if (DAT_001d0448 != 0) {\n    iVar6 = FUN_000561f0();\n    pcVar12 = "_head_";\n    if (iVar6 != 0) {\n      pcVar12 = "__head_";\n    }\n    FUN_00063bc0(pcVar12,FUN_00055b50);\n  }\n  if (DAT_001cef90 != 0) {\n    if (DAT_001d01fc != 0) {\n      puts("pe_fixup_stdcalls");\n    }\n    for (iVar6 = *(int *)(DAT_001d0400 + 0x1c); iVar6 != 0; iVar6 = *(int *)(iVar6 + 0x10)) {\n      if (*(char *)(iVar6 + 0xc) == '\x01') {\n        pcVar12 = *(char **)(iVar6 + 4);\n        if (*pcVar12 == '@') {\n          pcVar10 = strchr(pcVar12 + 1,0x40);\n          pcVar12 = (char *)xstrdup(pcVar12);\n          *pcVar12 = '_';\n          if (pcVar10 != (char *)0x0) goto LAB_00057061;\n        }\n        else {\n          pcVar10 = strchr(pcVar12,0x40);\n          if (pcVar10 == (char *)0x0) {\n            DAT_001cff8c = 0;\n            bfd_link_hash_traverse(DAT_001d0400,FUN_00055530,pcVar12);\n            if (DAT_001cff8c != 0) {\n              FUN_00056030();\n            }\n            goto LAB_00056fa8;\n          }\n          pcVar12 = (char *)xstrdup(pcVar12);\nLAB_00057061:\n          pcVar10 = strchr(pcVar12,0x40);\n          *pcVar10 = '\0';\n        }\n        iVar17 = bfd_link_hash_lookup(DAT_001d0400,pcVar12,0,0,1);\n        if ((iVar17 != 0) && (*(char *)(iVar17 + 0xc) == '\x03')) {\n          FUN_00056030();\n        }\n      }\nLAB_00056fa8:\n    }\n  }\n  if ((DAT_001d03e0 & 3) != 2) {\n    FUN_00066ca0(DAT_001d0414,&DAT_001d03e0);\n  }\n  local_40 = DAT_001cf6bc;\n  if (DAT_001cf6bc != 0) {\n    do {\n      iVar6 = *(int *)(local_40 + 0x10);\n      if ((*(int *)(iVar6 + 0x8c) != 0) &&\n         (local_38 = *(undefined4 **)(iVar6 + 0x60), local_38 != (undefined4 *)0x0)) {\n        iVar17 = 0;\n        bVar24 = true;\n        puVar7 = local_38;\n        bVar3 = 0;\n        bVar16 = false;\n        do {\n          bVar22 = false;\n          iVar15 = 9;\n          pbVar19 = (byte *)*puVar7;\n          pbVar21 = (byte *)".idata$2";\n          do {\n            if (iVar15 == 0) break;\n            iVar15 = iVar15 + -1;\n            bVar22 = *pbVar19 < *pbVar21;\n            bVar24 = *pbVar19 == *pbVar21;\n            pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n            pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n          } while (bVar24);\n          bVar23 = false;\n          bVar24 = (!bVar22 && !bVar24) == bVar22;\n          bVar22 = true;\n          if (!bVar24) {\n            bVar22 = bVar16;\n          }\n          iVar15 = 7;\n          pbVar19 = (byte *)*puVar7;\n          pbVar21 = (byte *)".idata$";\n          do {\n            if (iVar15 == 0) break;\n            iVar15 = iVar15 + -1;\n            bVar23 = *pbVar19 < *pbVar21;\n            bVar24 = *pbVar19 == *pbVar21;\n            pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n            pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n          } while (bVar24);\n          bVar5 = 1;\n          if ((!bVar23 && !bVar24) != bVar23) {\n            bVar5 = bVar3;\n          }\n          iVar17 = iVar17 + puVar7[0x19];\n          puVar7 = (undefined4 *)puVar7[3];\n          bVar24 = puVar7 == (undefined4 *)0x0;\n          bVar3 = bVar5;\n          bVar16 = bVar22;\n        } while (!bVar24);\n        if (((bool)(bVar5 & iVar17 != 0)) && (!bVar22)) {\n          while (iVar6 = bfd_get_reloc_upper_bound(iVar6,local_38), 0 < iVar6) {\n            iVar17 = bfd_generic_link_read_symbols(*(undefined4 *)(local_40 + 0x10));\n            local_4c = local_40;\n            if (iVar17 == 0) goto LAB_000570af;\n            uVar11 = *(undefined4 *)(*(int *)(local_40 + 0x10) + 0x78);\n            puVar7 = (undefined4 *)xmalloc(iVar6);\n            iVar6 = bfd_canonicalize_reloc(*(undefined4 *)(local_40 + 0x10),local_38,puVar7,uVar11);\n            if (iVar6 < 0) {\n              free(puVar7);\n              uVar11 = dcgettext(0,"%X%P: unable to process relocs: %E\n",5);\n              FUN_00034d20(uVar11);\n              return;\n            }\n            puVar18 = puVar7;\n            if (iVar6 != 0) {\n              do {\n                if ((((*(byte *)(**(int **)*puVar18 + 0x10) & 1) == 0) &&\n                    (iVar17 = bfd_link_hash_lookup\n                                        (DAT_001d0400,*(undefined4 *)(**(int **)*puVar18 + 4),0,0,1)\n                    , iVar17 != 0)) && (*(char *)(iVar17 + 0xc) == '\x03')) {\n                  puVar2 = *(undefined4 **)(*(int *)(iVar17 + 0x14) + 0xac);\n                  puVar8 = (undefined4 *)puVar2[0x23];\n                  if (puVar8 == (undefined4 *)0x0) {\n                    puVar8 = puVar2;\n                  }\n                  pcVar12 = (char *)*puVar8;\n                  iVar17 = filename_cmp(**(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c),pcVar12)\n                  ;\n                  if (iVar17 != 0) {\n                    sVar9 = strlen(pcVar12);\n                    pcVar10 = (char *)xmalloc(sVar9 + 1);\n                    strcpy(pcVar10,pcVar12);\n                    **(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c) = pcVar10;\n                  }\n                }\n                puVar18 = puVar18 + 1;\n              } while (puVar7 + iVar6 != puVar18);\n            }\n            free(puVar7);\n            local_38 = (undefined4 *)local_38[3];\n            if (local_38 == (undefined4 *)0x0) break;\n            iVar6 = *(int *)(local_40 + 0x10);\n          }\n        }\n      }\n      local_40 = *(int *)(local_40 + 0x18);\n    } while (local_40 != 0);\n    local_50 = DAT_001cf6bc;\n    if (DAT_001cf6bc != 0) {\n      bVar16 = false;\n      local_40 = 0;\n      do {\n        iVar6 = (*(undefined4 **)(local_50 + 0x10))[0x23];\n        if (iVar6 != 0) {\n          pcVar12 = strrchr((char *)**(undefined4 **)(local_50 + 0x10),0x2e);\n          iVar17 = local_50;\n          if (iVar6 == local_40) {\n            if (!bVar16) goto LAB_00056b08;\n          }\n          else {\n            while ((iVar15 = local_50, local_40 = iVar6, pcVar12 == (char *)0x0 ||\n                   (iVar13 = filename_cmp(pcVar12,".dll"), iVar13 != 0))) {\n              iVar17 = *(int *)(iVar17 + 0x18);\n              if (iVar17 == 0) {\n                local_50 = *(int *)(local_50 + 0x18);\n                bVar16 = false;\n                goto joined_r0x00056b15;\n              }\n              if (iVar6 != (*(undefined4 **)(iVar17 + 0x10))[0x23]) break;\n              pcVar12 = strrchr((char *)**(undefined4 **)(iVar17 + 0x10),0x2e);\n            }\n            do {\n              if (iVar6 != (*(undefined4 **)(iVar15 + 0x10))[0x23]) break;\n              pcVar12 = (char *)**(undefined4 **)(iVar15 + 0x10);\n              pcVar10 = strrchr(pcVar12,0x2e);\n              if (pcVar10 == (char *)0x0) {\nLAB_00056d20:\n                iVar13 = filename_cmp(**(undefined4 **)(iVar17 + 0x10),pcVar12);\n                if (iVar13 != 0) {\n                  bVar16 = false;\n                  goto LAB_00056b08;\n                }\n              }\n              else {\n                iVar13 = filename_cmp(pcVar10,&DAT_00192ed1);\n                if (iVar13 != 0) {\n                  pcVar12 = (char *)**(undefined4 **)(iVar15 + 0x10);\n                  goto LAB_00056d20;\n                }\n              }\n              piVar20 = (int *)(iVar15 + 0x18);\n              iVar15 = *piVar20;\n            } while (*piVar20 != 0);\n            pcVar12 = strrchr((char *)**(undefined4 **)(local_50 + 0x10),0x2e);\n          }\n          bVar16 = true;\n          iVar6 = filename_cmp(pcVar12,".dll");\n          if (iVar6 == 0) {\n            puVar7 = (undefined4 *)(*(undefined4 **)(local_50 + 0x10))[0x18];\n            if (puVar7 == (undefined4 *)0x0) {\n              iVar6 = 99;\n            }\n            else {\n              iVar17 = 0;\n              bVar24 = true;\n              bVar16 = false;\n              do {\n                bVar22 = false;\n                iVar6 = 9;\n                pbVar19 = (byte *)*puVar7;\n                pbVar21 = (byte *)".idata$2";\n                do {\n                  if (iVar6 == 0) break;\n                  iVar6 = iVar6 + -1;\n                  bVar22 = *pbVar19 < *pbVar21;\n                  bVar24 = *pbVar19 == *pbVar21;\n                  pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n                  pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n                } while (bVar24);\n                if ((!bVar22 && !bVar24) == bVar22) {\n                  bVar16 = true;\n                }\n                iVar17 = iVar17 + puVar7[0x19];\n                puVar7 = (undefined4 *)puVar7[3];\n                bVar24 = puVar7 == (undefined4 *)0x0;\n              } while (!bVar24);\n              iVar6 = 0x61;\n              if (!bVar16) {\n                iVar6 = (iVar17 < 1) + 0x62;\n              }\n            }\n            sVar9 = strlen((char *)**(undefined4 **)(local_50 + 0x10));\n            pcVar12 = (char *)xmalloc(sVar9 + 3);\n            sprintf(pcVar12,"%s.%c",**(undefined4 **)(local_50 + 0x10),iVar6);\n            **(undefined4 **)(local_50 + 0x10) = pcVar12;\n            sVar9 = strlen(*(char **)(local_50 + 8));\n            pcVar12 = (char *)xmalloc(sVar9 + 3);\n            sprintf(pcVar12,"%s.%c",*(undefined4 *)(local_50 + 8),iVar6);\n            *(char **)(local_50 + 8) = pcVar12;\n            bVar16 = true;\n          }\n        }\nLAB_00056b08:\n        local_50 = *(int *)(local_50 + 0x18);\njoined_r0x00056b15:\n      } while (local_50 != 0);\n      local_4c = DAT_001cf6bc;\n      if (DAT_001cf6bc != 0) {\n        do {\n          iVar6 = *(int *)(local_4c + 0x10);\n          if ((*(int *)(iVar6 + 0x8c) != 0) &&\n             (puVar7 = *(undefined4 **)(iVar6 + 0x60), puVar7 != (undefined4 *)0x0)) {\n            puVar18 = (undefined4 *)0x0;\n            bVar16 = false;\n            bVar24 = true;\n            do {\n              bVar22 = false;\n              iVar17 = 7;\n              pbVar19 = (byte *)*puVar7;\n              pbVar21 = (byte *)".idata$";\n              do {\n                if (iVar17 == 0) break;\n                iVar17 = iVar17 + -1;\n                bVar22 = *pbVar19 < *pbVar21;\n                bVar24 = *pbVar19 == *pbVar21;\n                pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n                pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n              } while (bVar24);\n              if ((!bVar22 && !bVar24) == bVar22) {\n                bVar16 = true;\n              }\n              if (((*(byte *)(puVar7 + 5) & 0x10) != 0) && (puVar7[0x19] != 0)) {\n                puVar18 = puVar7;\n              }\n              puVar7 = (undefined4 *)puVar7[3];\n              bVar24 = puVar7 == (undefined4 *)0x0;\n            } while (!bVar24);\n            if ((puVar18 != (undefined4 *)0x0) && (bVar16)) {\n              iVar6 = bfd_generic_link_read_symbols(iVar6);\n              if (iVar6 == 0) {\nLAB_000570af:\n                uVar11 = *(undefined4 *)(local_4c + 0x10);\n                uVar14 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n                FUN_00034d20(uVar14,uVar11);\n                return;\n              }\n              piVar20 = *(int **)(*(int *)(local_4c + 0x10) + 0x78);\n              iVar6 = *(int *)(*(int *)(local_4c + 0x10) + 0x7c);\n              if (0 < iVar6) {\n                piVar1 = piVar20 + iVar6;\n                do {\n                  if ((((*(int *)(*(int *)(*piVar20 + 0x14) + 4) == puVar18[1]) &&\n                       (iVar6 = bfd_link_hash_lookup\n                                          (DAT_001d0400,*(undefined4 *)(*piVar20 + 4),0,0,1),\n                       iVar6 != 0)) && (*(char *)(iVar6 + 0xc) == '\x03')) &&\n                     ((*(int *)(iVar6 + 0x10) == 0 && (*(int *)(DAT_001d0400 + 0x20) != iVar6)))) {\n                    puVar18[5] = puVar18[5] | 0x8000;\n                  }\n                  piVar20 = piVar20 + 1;\n                } while (piVar1 != piVar20);\n              }\n            }\n          }\n          local_4c = *(int *)(local_4c + 0x18);\n        } while (local_4c != 0);\n      }\n    }\n  }\n  return;\n}" { (declaration "int *piVar1;" primitive_type (pointer_declarator "*piVar1" * identifier) ;) (declaration "undefined4 *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "byte bVar3;" type_identifier identifier ;) (declaration "void *pvVar4;" primitive_type (pointer_declarator "*pvVar4" * identifier) ;) (declaration "byte bVar5;" type_identifier identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "undefined4 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "undefined4 *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "size_t sVar9;" primitive_type identifier ;) (declaration "char *pcVar10;" primitive_type (pointer_declarator "*pcVar10" * identifier) ;) (declaration "undefined4 uVar11;" type_identifier identifier ;) (declaration "char *pcVar12;" primitive_type (pointer_declarator "*pcVar12" * identifier) ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "undefined4 uVar14;" type_identifier identifier ;) (declaration "int iVar15;" primitive_type identifier ;) (declaration "bool bVar16;" primitive_type identifier ;) (declaration "int iVar17;" primitive_type identifier ;) (declaration "undefined4 *puVar18;" type_identifier (pointer_declarator "*puVar18" * identifier) ;) (declaration "byte *pbVar19;" type_identifier (pointer_declarator "*pbVar19" * identifier) ;) (declaration "int *piVar20;" primitive_type (pointer_declarator "*piVar20" * identifier) ;) (declaration "byte *pbVar21;" type_identifier (pointer_declarator "*pbVar21" * identifier) ;) (declaration "bool bVar22;" primitive_type identifier ;) (declaration "bool bVar23;" primitive_type identifier ;) (declaration "bool bVar24;" primitive_type identifier ;) (declaration "byte bVar25;" type_identifier identifier ;) (declaration "int local_50;" primitive_type identifier ;) (declaration "int local_4c;" primitive_type identifier ;) (declaration "int local_40;" primitive_type identifier ;) (declaration "undefined4 *local_38;" type_identifier (pointer_declarator "*local_38" * identifier) ;) (declaration "int local_20 [3];" primitive_type (array_declarator "local_20 [3]" identifier [ number_literal ]) ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "bVar25 = 0;" (assignment_expression "bVar25 = 0" identifier = number_literal) ;) (expression_statement "uStack_14 = 0x56659;" (assignment_expression "uStack_14 = 0x56659" identifier = number_literal) ;) (expression_statement "FUN_00033940();" (call_expression "FUN_00033940()" identifier (argument_list "()" ( ))) ;) (if_statement "if (DAT_001d01fc == 0) {\nLAB_00056682:\n    puVar7 = DAT_001d041c;\n    if (DAT_001cff9c != (void *)0x0) {\n      for (; puVar7 != (undefined4 *)0x0; puVar7 = (undefined4 *)puVar7[0x27]) {\n        if (*(int *)(puVar7[1] + 4) == 2) {\n          iVar6 = FUN_00038960(DAT_001cff9c);\n          if (iVar6 == 0) {\n            pcVar12 = "%P: warning: unrecognized --build-id style ignored\n";\n          }\n          else {\n            iVar17 = bfd_make_section_anyway_with_flags\n                               (puVar7,".buildid",\n                                "*/\n  .debug_aranges  0 : { *(.debug_aranges) }\n  .debug_pubnames 0 : { *(.debug_pubnames) }\n  \n  .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }\n  .debug_abbrev   0 : { *(.debug_abbrev) }\n  .debug_line     0 : { *(.debug_line .debug_line.* .debug_line_end ) }\n  .debug_frame    0 : { *(.debug_frame) }\n  .debug_str      0 : { *(.debug_str) }\n  .debug_loc      0 : { *(.debug_loc) }\n  .debug_macinfo  0 : { *(.debug_macinfo) }\n  \n  .debug_weaknames 0 : { *(.debug_weaknames) }\n  .debug_funcnames 0 : { *(.debug_funcnames) }\n  .debug_typenames 0 : { *(.debug_typenames) }\n  .debug_varnames  0 : { *(.debug_varnames) }\n  \n  .debug_pubtypes 0 : { *(.debug_pubtypes) }\n  .debug_ranges   0 : { *(.debug_ranges) }\n  \n  .debug_macro    0 : { *(.debug_macro) }\n  .debug_addr     0 : { *(.debug_addr) }\n  .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) }\n  /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) }\n}\n\n"\n                               );\n            iVar6 = DAT_001d0414;\n            if (iVar17 != 0) {\n              iVar15 = *(int *)(DAT_001d0414 + 0xa0);\n              *(code **)(iVar15 + 0x1dc) = FUN_00055c40;\n              pvVar4 = DAT_001cff9c;\n              iVar13 = *(int *)(iVar15 + 0x58);\n              *(int *)(iVar15 + 0x1e4) = iVar17;\n              *(void **)(iVar15 + 0x1e0) = pvVar4;\n              *(undefined4 *)(iVar17 + 0x2c) = 0x35;\n              *(undefined4 *)(iVar17 + 0x30) = 0;\n              goto joined_r0x00056729;\n            }\n            pcVar12 = "%P: warning: cannot create .buildid section, --build-id ignored\n";\n          }\n          uVar11 = dcgettext(0,pcVar12,5);\n          FUN_00034d20(uVar11);\n          break;\n        }\n      }\nLAB_00056a59:\n      free(DAT_001cff9c);\n      DAT_001cff9c = (void *)0x0;\n    }\n  }\n  else {\n    printf("%s()\n","gld_i386pe_after_open");\n    for (iVar6 = *(int *)(DAT_001d0400 + 0x1c); iVar6 != 0; iVar6 = *(int *)(iVar6 + 0x10)) {\n      printf("-%s\n",*(undefined4 *)(iVar6 + 4));\n    }\n    bfd_hash_traverse(DAT_001d0400,FUN_00055b20,0);\n    puVar7 = DAT_001d041c;\n    if (DAT_001d041c != (undefined4 *)0x0) {\n      do {\n        printf("*%s\n",*puVar7);\n        puVar18 = puVar7 + 0x27;\n        puVar7 = (undefined4 *)*puVar18;\n      } while ((undefined4 *)*puVar18 != (undefined4 *)0x0);\n      goto LAB_00056682;\n    }\n    if (DAT_001cff9c != (void *)0x0) goto LAB_00056a59;\n  }" if (parenthesized_expression "(DAT_001d01fc == 0)" ( (binary_expression "DAT_001d01fc == 0" identifier == number_literal) )) (compound_statement "{\nLAB_00056682:\n    puVar7 = DAT_001d041c;\n    if (DAT_001cff9c != (void *)0x0) {\n      for (; puVar7 != (undefined4 *)0x0; puVar7 = (undefined4 *)puVar7[0x27]) {\n        if (*(int *)(puVar7[1] + 4) == 2) {\n          iVar6 = FUN_00038960(DAT_001cff9c);\n          if (iVar6 == 0) {\n            pcVar12 = "%P: warning: unrecognized --build-id style ignored\n";\n          }\n          else {\n            iVar17 = bfd_make_section_anyway_with_flags\n                               (puVar7,".buildid",\n                                "*/\n  .debug_aranges  0 : { *(.debug_aranges) }\n  .debug_pubnames 0 : { *(.debug_pubnames) }\n  \n  .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }\n  .debug_abbrev   0 : { *(.debug_abbrev) }\n  .debug_line     0 : { *(.debug_line .debug_line.* .debug_line_end ) }\n  .debug_frame    0 : { *(.debug_frame) }\n  .debug_str      0 : { *(.debug_str) }\n  .debug_loc      0 : { *(.debug_loc) }\n  .debug_macinfo  0 : { *(.debug_macinfo) }\n  \n  .debug_weaknames 0 : { *(.debug_weaknames) }\n  .debug_funcnames 0 : { *(.debug_funcnames) }\n  .debug_typenames 0 : { *(.debug_typenames) }\n  .debug_varnames  0 : { *(.debug_varnames) }\n  \n  .debug_pubtypes 0 : { *(.debug_pubtypes) }\n  .debug_ranges   0 : { *(.debug_ranges) }\n  \n  .debug_macro    0 : { *(.debug_macro) }\n  .debug_addr     0 : { *(.debug_addr) }\n  .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) }\n  /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) }\n}\n\n"\n                               );\n            iVar6 = DAT_001d0414;\n            if (iVar17 != 0) {\n              iVar15 = *(int *)(DAT_001d0414 + 0xa0);\n              *(code **)(iVar15 + 0x1dc) = FUN_00055c40;\n              pvVar4 = DAT_001cff9c;\n              iVar13 = *(int *)(iVar15 + 0x58);\n              *(int *)(iVar15 + 0x1e4) = iVar17;\n              *(void **)(iVar15 + 0x1e0) = pvVar4;\n              *(undefined4 *)(iVar17 + 0x2c) = 0x35;\n              *(undefined4 *)(iVar17 + 0x30) = 0;\n              goto joined_r0x00056729;\n            }\n            pcVar12 = "%P: warning: cannot create .buildid section, --build-id ignored\n";\n          }\n          uVar11 = dcgettext(0,pcVar12,5);\n          FUN_00034d20(uVar11);\n          break;\n        }\n      }\nLAB_00056a59:\n      free(DAT_001cff9c);\n      DAT_001cff9c = (void *)0x0;\n    }\n  }" { (labeled_statement "LAB_00056682:\n    puVar7 = DAT_001d041c;" statement_identifier : (expression_statement "puVar7 = DAT_001d041c;" (assignment_expression "puVar7 = DAT_001d041c" identifier = identifier) ;)) (if_statement "if (DAT_001cff9c != (void *)0x0) {\n      for (; puVar7 != (undefined4 *)0x0; puVar7 = (undefined4 *)puVar7[0x27]) {\n        if (*(int *)(puVar7[1] + 4) == 2) {\n          iVar6 = FUN_00038960(DAT_001cff9c);\n          if (iVar6 == 0) {\n            pcVar12 = "%P: warning: unrecognized --build-id style ignored\n";\n          }\n          else {\n            iVar17 = bfd_make_section_anyway_with_flags\n                               (puVar7,".buildid",\n                                "*/\n  .debug_aranges  0 : { *(.debug_aranges) }\n  .debug_pubnames 0 : { *(.debug_pubnames) }\n  \n  .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }\n  .debug_abbrev   0 : { *(.debug_abbrev) }\n  .debug_line     0 : { *(.debug_line .debug_line.* .debug_line_end ) }\n  .debug_frame    0 : { *(.debug_frame) }\n  .debug_str      0 : { *(.debug_str) }\n  .debug_loc      0 : { *(.debug_loc) }\n  .debug_macinfo  0 : { *(.debug_macinfo) }\n  \n  .debug_weaknames 0 : { *(.debug_weaknames) }\n  .debug_funcnames 0 : { *(.debug_funcnames) }\n  .debug_typenames 0 : { *(.debug_typenames) }\n  .debug_varnames  0 : { *(.debug_varnames) }\n  \n  .debug_pubtypes 0 : { *(.debug_pubtypes) }\n  .debug_ranges   0 : { *(.debug_ranges) }\n  \n  .debug_macro    0 : { *(.debug_macro) }\n  .debug_addr     0 : { *(.debug_addr) }\n  .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) }\n  /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) }\n}\n\n"\n                               );\n            iVar6 = DAT_001d0414;\n            if (iVar17 != 0) {\n              iVar15 = *(int *)(DAT_001d0414 + 0xa0);\n              *(code **)(iVar15 + 0x1dc) = FUN_00055c40;\n              pvVar4 = DAT_001cff9c;\n              iVar13 = *(int *)(iVar15 + 0x58);\n              *(int *)(iVar15 + 0x1e4) = iVar17;\n              *(void **)(iVar15 + 0x1e0) = pvVar4;\n              *(undefined4 *)(iVar17 + 0x2c) = 0x35;\n              *(undefined4 *)(iVar17 + 0x30) = 0;\n              goto joined_r0x00056729;\n            }\n            pcVar12 = "%P: warning: cannot create .buildid section, --build-id ignored\n";\n          }\n          uVar11 = dcgettext(0,pcVar12,5);\n          FUN_00034d20(uVar11);\n          break;\n        }\n      }\nLAB_00056a59:\n      free(DAT_001cff9c);\n      DAT_001cff9c = (void *)0x0;\n    }" if (parenthesized_expression "(DAT_001cff9c != (void *)0x0)" ( (binary_expression "DAT_001cff9c != (void *)0x0" identifier != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      for (; puVar7 != (undefined4 *)0x0; puVar7 = (undefined4 *)puVar7[0x27]) {\n        if (*(int *)(puVar7[1] + 4) == 2) {\n          iVar6 = FUN_00038960(DAT_001cff9c);\n          if (iVar6 == 0) {\n            pcVar12 = "%P: warning: unrecognized --build-id style ignored\n";\n          }\n          else {\n            iVar17 = bfd_make_section_anyway_with_flags\n                               (puVar7,".buildid",\n                                "*/\n  .debug_aranges  0 : { *(.debug_aranges) }\n  .debug_pubnames 0 : { *(.debug_pubnames) }\n  \n  .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }\n  .debug_abbrev   0 : { *(.debug_abbrev) }\n  .debug_line     0 : { *(.debug_line .debug_line.* .debug_line_end ) }\n  .debug_frame    0 : { *(.debug_frame) }\n  .debug_str      0 : { *(.debug_str) }\n  .debug_loc      0 : { *(.debug_loc) }\n  .debug_macinfo  0 : { *(.debug_macinfo) }\n  \n  .debug_weaknames 0 : { *(.debug_weaknames) }\n  .debug_funcnames 0 : { *(.debug_funcnames) }\n  .debug_typenames 0 : { *(.debug_typenames) }\n  .debug_varnames  0 : { *(.debug_varnames) }\n  \n  .debug_pubtypes 0 : { *(.debug_pubtypes) }\n  .debug_ranges   0 : { *(.debug_ranges) }\n  \n  .debug_macro    0 : { *(.debug_macro) }\n  .debug_addr     0 : { *(.debug_addr) }\n  .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) }\n  /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) }\n}\n\n"\n                               );\n            iVar6 = DAT_001d0414;\n            if (iVar17 != 0) {\n              iVar15 = *(int *)(DAT_001d0414 + 0xa0);\n              *(code **)(iVar15 + 0x1dc) = FUN_00055c40;\n              pvVar4 = DAT_001cff9c;\n              iVar13 = *(int *)(iVar15 + 0x58);\n              *(int *)(iVar15 + 0x1e4) = iVar17;\n              *(void **)(iVar15 + 0x1e0) = pvVar4;\n              *(undefined4 *)(iVar17 + 0x2c) = 0x35;\n              *(undefined4 *)(iVar17 + 0x30) = 0;\n              goto joined_r0x00056729;\n            }\n            pcVar12 = "%P: warning: cannot create .buildid section, --build-id ignored\n";\n          }\n          uVar11 = dcgettext(0,pcVar12,5);\n          FUN_00034d20(uVar11);\n          break;\n        }\n      }\nLAB_00056a59:\n      free(DAT_001cff9c);\n      DAT_001cff9c = (void *)0x0;\n    }" { (for_statement "for (; puVar7 != (undefined4 *)0x0; puVar7 = (undefined4 *)puVar7[0x27]) {\n        if (*(int *)(puVar7[1] + 4) == 2) {\n          iVar6 = FUN_00038960(DAT_001cff9c);\n          if (iVar6 == 0) {\n            pcVar12 = "%P: warning: unrecognized --build-id style ignored\n";\n          }\n          else {\n            iVar17 = bfd_make_section_anyway_with_flags\n                               (puVar7,".buildid",\n                                "*/\n  .debug_aranges  0 : { *(.debug_aranges) }\n  .debug_pubnames 0 : { *(.debug_pubnames) }\n  \n  .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }\n  .debug_abbrev   0 : { *(.debug_abbrev) }\n  .debug_line     0 : { *(.debug_line .debug_line.* .debug_line_end ) }\n  .debug_frame    0 : { *(.debug_frame) }\n  .debug_str      0 : { *(.debug_str) }\n  .debug_loc      0 : { *(.debug_loc) }\n  .debug_macinfo  0 : { *(.debug_macinfo) }\n  \n  .debug_weaknames 0 : { *(.debug_weaknames) }\n  .debug_funcnames 0 : { *(.debug_funcnames) }\n  .debug_typenames 0 : { *(.debug_typenames) }\n  .debug_varnames  0 : { *(.debug_varnames) }\n  \n  .debug_pubtypes 0 : { *(.debug_pubtypes) }\n  .debug_ranges   0 : { *(.debug_ranges) }\n  \n  .debug_macro    0 : { *(.debug_macro) }\n  .debug_addr     0 : { *(.debug_addr) }\n  .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) }\n  /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) }\n}\n\n"\n                               );\n            iVar6 = DAT_001d0414;\n            if (iVar17 != 0) {\n              iVar15 = *(int *)(DAT_001d0414 + 0xa0);\n              *(code **)(iVar15 + 0x1dc) = FUN_00055c40;\n              pvVar4 = DAT_001cff9c;\n              iVar13 = *(int *)(iVar15 + 0x58);\n              *(int *)(iVar15 + 0x1e4) = iVar17;\n              *(void **)(iVar15 + 0x1e0) = pvVar4;\n              *(undefined4 *)(iVar17 + 0x2c) = 0x35;\n              *(undefined4 *)(iVar17 + 0x30) = 0;\n              goto joined_r0x00056729;\n            }\n            pcVar12 = "%P: warning: cannot create .buildid section, --build-id ignored\n";\n          }\n          uVar11 = dcgettext(0,pcVar12,5);\n          FUN_00034d20(uVar11);\n          break;\n        }\n      }" for ( ; (binary_expression "puVar7 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "puVar7 = (undefined4 *)puVar7[0x27]" identifier = (cast_expression "(undefined4 *)puVar7[0x27]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar7[0x27]" identifier [ number_literal ]))) ) (compound_statement "{\n        if (*(int *)(puVar7[1] + 4) == 2) {\n          iVar6 = FUN_00038960(DAT_001cff9c);\n          if (iVar6 == 0) {\n            pcVar12 = "%P: warning: unrecognized --build-id style ignored\n";\n          }\n          else {\n            iVar17 = bfd_make_section_anyway_with_flags\n                               (puVar7,".buildid",\n                                "*/\n  .debug_aranges  0 : { *(.debug_aranges) }\n  .debug_pubnames 0 : { *(.debug_pubnames) }\n  \n  .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }\n  .debug_abbrev   0 : { *(.debug_abbrev) }\n  .debug_line     0 : { *(.debug_line .debug_line.* .debug_line_end ) }\n  .debug_frame    0 : { *(.debug_frame) }\n  .debug_str      0 : { *(.debug_str) }\n  .debug_loc      0 : { *(.debug_loc) }\n  .debug_macinfo  0 : { *(.debug_macinfo) }\n  \n  .debug_weaknames 0 : { *(.debug_weaknames) }\n  .debug_funcnames 0 : { *(.debug_funcnames) }\n  .debug_typenames 0 : { *(.debug_typenames) }\n  .debug_varnames  0 : { *(.debug_varnames) }\n  \n  .debug_pubtypes 0 : { *(.debug_pubtypes) }\n  .debug_ranges   0 : { *(.debug_ranges) }\n  \n  .debug_macro    0 : { *(.debug_macro) }\n  .debug_addr     0 : { *(.debug_addr) }\n  .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) }\n  /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) }\n}\n\n"\n                               );\n            iVar6 = DAT_001d0414;\n            if (iVar17 != 0) {\n              iVar15 = *(int *)(DAT_001d0414 + 0xa0);\n              *(code **)(iVar15 + 0x1dc) = FUN_00055c40;\n              pvVar4 = DAT_001cff9c;\n              iVar13 = *(int *)(iVar15 + 0x58);\n              *(int *)(iVar15 + 0x1e4) = iVar17;\n              *(void **)(iVar15 + 0x1e0) = pvVar4;\n              *(undefined4 *)(iVar17 + 0x2c) = 0x35;\n              *(undefined4 *)(iVar17 + 0x30) = 0;\n              goto joined_r0x00056729;\n            }\n            pcVar12 = "%P: warning: cannot create .buildid section, --build-id ignored\n";\n          }\n          uVar11 = dcgettext(0,pcVar12,5);\n          FUN_00034d20(uVar11);\n          break;\n        }\n      }" { (if_statement "if (*(int *)(puVar7[1] + 4) == 2) {\n          iVar6 = FUN_00038960(DAT_001cff9c);\n          if (iVar6 == 0) {\n            pcVar12 = "%P: warning: unrecognized --build-id style ignored\n";\n          }\n          else {\n            iVar17 = bfd_make_section_anyway_with_flags\n                               (puVar7,".buildid",\n                                "*/\n  .debug_aranges  0 : { *(.debug_aranges) }\n  .debug_pubnames 0 : { *(.debug_pubnames) }\n  \n  .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }\n  .debug_abbrev   0 : { *(.debug_abbrev) }\n  .debug_line     0 : { *(.debug_line .debug_line.* .debug_line_end ) }\n  .debug_frame    0 : { *(.debug_frame) }\n  .debug_str      0 : { *(.debug_str) }\n  .debug_loc      0 : { *(.debug_loc) }\n  .debug_macinfo  0 : { *(.debug_macinfo) }\n  \n  .debug_weaknames 0 : { *(.debug_weaknames) }\n  .debug_funcnames 0 : { *(.debug_funcnames) }\n  .debug_typenames 0 : { *(.debug_typenames) }\n  .debug_varnames  0 : { *(.debug_varnames) }\n  \n  .debug_pubtypes 0 : { *(.debug_pubtypes) }\n  .debug_ranges   0 : { *(.debug_ranges) }\n  \n  .debug_macro    0 : { *(.debug_macro) }\n  .debug_addr     0 : { *(.debug_addr) }\n  .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) }\n  /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) }\n}\n\n"\n                               );\n            iVar6 = DAT_001d0414;\n            if (iVar17 != 0) {\n              iVar15 = *(int *)(DAT_001d0414 + 0xa0);\n              *(code **)(iVar15 + 0x1dc) = FUN_00055c40;\n              pvVar4 = DAT_001cff9c;\n              iVar13 = *(int *)(iVar15 + 0x58);\n              *(int *)(iVar15 + 0x1e4) = iVar17;\n              *(void **)(iVar15 + 0x1e0) = pvVar4;\n              *(undefined4 *)(iVar17 + 0x2c) = 0x35;\n              *(undefined4 *)(iVar17 + 0x30) = 0;\n              goto joined_r0x00056729;\n            }\n            pcVar12 = "%P: warning: cannot create .buildid section, --build-id ignored\n";\n          }\n          uVar11 = dcgettext(0,pcVar12,5);\n          FUN_00034d20(uVar11);\n          break;\n        }" if (parenthesized_expression "(*(int *)(puVar7[1] + 4) == 2)" ( (binary_expression "*(int *)(puVar7[1] + 4) == 2" (pointer_expression "*(int *)(puVar7[1] + 4)" * (cast_expression "(int *)(puVar7[1] + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7[1] + 4)" ( (binary_expression "puVar7[1] + 4" (subscript_expression "puVar7[1]" identifier [ number_literal ]) + number_literal) )))) == number_literal) )) (compound_statement "{\n          iVar6 = FUN_00038960(DAT_001cff9c);\n          if (iVar6 == 0) {\n            pcVar12 = "%P: warning: unrecognized --build-id style ignored\n";\n          }\n          else {\n            iVar17 = bfd_make_section_anyway_with_flags\n                               (puVar7,".buildid",\n                                "*/\n  .debug_aranges  0 : { *(.debug_aranges) }\n  .debug_pubnames 0 : { *(.debug_pubnames) }\n  \n  .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }\n  .debug_abbrev   0 : { *(.debug_abbrev) }\n  .debug_line     0 : { *(.debug_line .debug_line.* .debug_line_end ) }\n  .debug_frame    0 : { *(.debug_frame) }\n  .debug_str      0 : { *(.debug_str) }\n  .debug_loc      0 : { *(.debug_loc) }\n  .debug_macinfo  0 : { *(.debug_macinfo) }\n  \n  .debug_weaknames 0 : { *(.debug_weaknames) }\n  .debug_funcnames 0 : { *(.debug_funcnames) }\n  .debug_typenames 0 : { *(.debug_typenames) }\n  .debug_varnames  0 : { *(.debug_varnames) }\n  \n  .debug_pubtypes 0 : { *(.debug_pubtypes) }\n  .debug_ranges   0 : { *(.debug_ranges) }\n  \n  .debug_macro    0 : { *(.debug_macro) }\n  .debug_addr     0 : { *(.debug_addr) }\n  .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) }\n  /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) }\n}\n\n"\n                               );\n            iVar6 = DAT_001d0414;\n            if (iVar17 != 0) {\n              iVar15 = *(int *)(DAT_001d0414 + 0xa0);\n              *(code **)(iVar15 + 0x1dc) = FUN_00055c40;\n              pvVar4 = DAT_001cff9c;\n              iVar13 = *(int *)(iVar15 + 0x58);\n              *(int *)(iVar15 + 0x1e4) = iVar17;\n              *(void **)(iVar15 + 0x1e0) = pvVar4;\n              *(undefined4 *)(iVar17 + 0x2c) = 0x35;\n              *(undefined4 *)(iVar17 + 0x30) = 0;\n              goto joined_r0x00056729;\n            }\n            pcVar12 = "%P: warning: cannot create .buildid section, --build-id ignored\n";\n          }\n          uVar11 = dcgettext(0,pcVar12,5);\n          FUN_00034d20(uVar11);\n          break;\n        }" { (expression_statement "iVar6 = FUN_00038960(DAT_001cff9c);" (assignment_expression "iVar6 = FUN_00038960(DAT_001cff9c)" identifier = (call_expression "FUN_00038960(DAT_001cff9c)" identifier (argument_list "(DAT_001cff9c)" ( identifier )))) ;) (if_statement "if (iVar6 == 0) {\n            pcVar12 = "%P: warning: unrecognized --build-id style ignored\n";\n          }\n          else {\n            iVar17 = bfd_make_section_anyway_with_flags\n                               (puVar7,".buildid",\n                                "*/\n  .debug_aranges  0 : { *(.debug_aranges) }\n  .debug_pubnames 0 : { *(.debug_pubnames) }\n  \n  .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }\n  .debug_abbrev   0 : { *(.debug_abbrev) }\n  .debug_line     0 : { *(.debug_line .debug_line.* .debug_line_end ) }\n  .debug_frame    0 : { *(.debug_frame) }\n  .debug_str      0 : { *(.debug_str) }\n  .debug_loc      0 : { *(.debug_loc) }\n  .debug_macinfo  0 : { *(.debug_macinfo) }\n  \n  .debug_weaknames 0 : { *(.debug_weaknames) }\n  .debug_funcnames 0 : { *(.debug_funcnames) }\n  .debug_typenames 0 : { *(.debug_typenames) }\n  .debug_varnames  0 : { *(.debug_varnames) }\n  \n  .debug_pubtypes 0 : { *(.debug_pubtypes) }\n  .debug_ranges   0 : { *(.debug_ranges) }\n  \n  .debug_macro    0 : { *(.debug_macro) }\n  .debug_addr     0 : { *(.debug_addr) }\n  .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) }\n  /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) }\n}\n\n"\n                               );\n            iVar6 = DAT_001d0414;\n            if (iVar17 != 0) {\n              iVar15 = *(int *)(DAT_001d0414 + 0xa0);\n              *(code **)(iVar15 + 0x1dc) = FUN_00055c40;\n              pvVar4 = DAT_001cff9c;\n              iVar13 = *(int *)(iVar15 + 0x58);\n              *(int *)(iVar15 + 0x1e4) = iVar17;\n              *(void **)(iVar15 + 0x1e0) = pvVar4;\n              *(undefined4 *)(iVar17 + 0x2c) = 0x35;\n              *(undefined4 *)(iVar17 + 0x30) = 0;\n              goto joined_r0x00056729;\n            }\n            pcVar12 = "%P: warning: cannot create .buildid section, --build-id ignored\n";\n          }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n            pcVar12 = "%P: warning: unrecognized --build-id style ignored\n";\n          }" { (expression_statement "pcVar12 = "%P: warning: unrecognized --build-id style ignored\n";" (assignment_expression "pcVar12 = "%P: warning: unrecognized --build-id style ignored\n"" identifier = (string_literal ""%P: warning: unrecognized --build-id style ignored\n"" " string_content escape_sequence ")) ;) }) (else_clause "else {\n            iVar17 = bfd_make_section_anyway_with_flags\n                               (puVar7,".buildid",\n                                "*/\n  .debug_aranges  0 : { *(.debug_aranges) }\n  .debug_pubnames 0 : { *(.debug_pubnames) }\n  \n  .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }\n  .debug_abbrev   0 : { *(.debug_abbrev) }\n  .debug_line     0 : { *(.debug_line .debug_line.* .debug_line_end ) }\n  .debug_frame    0 : { *(.debug_frame) }\n  .debug_str      0 : { *(.debug_str) }\n  .debug_loc      0 : { *(.debug_loc) }\n  .debug_macinfo  0 : { *(.debug_macinfo) }\n  \n  .debug_weaknames 0 : { *(.debug_weaknames) }\n  .debug_funcnames 0 : { *(.debug_funcnames) }\n  .debug_typenames 0 : { *(.debug_typenames) }\n  .debug_varnames  0 : { *(.debug_varnames) }\n  \n  .debug_pubtypes 0 : { *(.debug_pubtypes) }\n  .debug_ranges   0 : { *(.debug_ranges) }\n  \n  .debug_macro    0 : { *(.debug_macro) }\n  .debug_addr     0 : { *(.debug_addr) }\n  .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) }\n  /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) }\n}\n\n"\n                               );\n            iVar6 = DAT_001d0414;\n            if (iVar17 != 0) {\n              iVar15 = *(int *)(DAT_001d0414 + 0xa0);\n              *(code **)(iVar15 + 0x1dc) = FUN_00055c40;\n              pvVar4 = DAT_001cff9c;\n              iVar13 = *(int *)(iVar15 + 0x58);\n              *(int *)(iVar15 + 0x1e4) = iVar17;\n              *(void **)(iVar15 + 0x1e0) = pvVar4;\n              *(undefined4 *)(iVar17 + 0x2c) = 0x35;\n              *(undefined4 *)(iVar17 + 0x30) = 0;\n              goto joined_r0x00056729;\n            }\n            pcVar12 = "%P: warning: cannot create .buildid section, --build-id ignored\n";\n          }" else (compound_statement "{\n            iVar17 = bfd_make_section_anyway_with_flags\n                               (puVar7,".buildid",\n                                "*/\n  .debug_aranges  0 : { *(.debug_aranges) }\n  .debug_pubnames 0 : { *(.debug_pubnames) }\n  \n  .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }\n  .debug_abbrev   0 : { *(.debug_abbrev) }\n  .debug_line     0 : { *(.debug_line .debug_line.* .debug_line_end ) }\n  .debug_frame    0 : { *(.debug_frame) }\n  .debug_str      0 : { *(.debug_str) }\n  .debug_loc      0 : { *(.debug_loc) }\n  .debug_macinfo  0 : { *(.debug_macinfo) }\n  \n  .debug_weaknames 0 : { *(.debug_weaknames) }\n  .debug_funcnames 0 : { *(.debug_funcnames) }\n  .debug_typenames 0 : { *(.debug_typenames) }\n  .debug_varnames  0 : { *(.debug_varnames) }\n  \n  .debug_pubtypes 0 : { *(.debug_pubtypes) }\n  .debug_ranges   0 : { *(.debug_ranges) }\n  \n  .debug_macro    0 : { *(.debug_macro) }\n  .debug_addr     0 : { *(.debug_addr) }\n  .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) }\n  /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) }\n}\n\n"\n                               );\n            iVar6 = DAT_001d0414;\n            if (iVar17 != 0) {\n              iVar15 = *(int *)(DAT_001d0414 + 0xa0);\n              *(code **)(iVar15 + 0x1dc) = FUN_00055c40;\n              pvVar4 = DAT_001cff9c;\n              iVar13 = *(int *)(iVar15 + 0x58);\n              *(int *)(iVar15 + 0x1e4) = iVar17;\n              *(void **)(iVar15 + 0x1e0) = pvVar4;\n              *(undefined4 *)(iVar17 + 0x2c) = 0x35;\n              *(undefined4 *)(iVar17 + 0x30) = 0;\n              goto joined_r0x00056729;\n            }\n            pcVar12 = "%P: warning: cannot create .buildid section, --build-id ignored\n";\n          }" { (expression_statement "iVar17 = bfd_make_section_anyway_with_flags\n                               (puVar7,".buildid",\n                                "*/\n  .debug_aranges  0 : { *(.debug_aranges) }\n  .debug_pubnames 0 : { *(.debug_pubnames) }\n  \n  .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }\n  .debug_abbrev   0 : { *(.debug_abbrev) }\n  .debug_line     0 : { *(.debug_line .debug_line.* .debug_line_end ) }\n  .debug_frame    0 : { *(.debug_frame) }\n  .debug_str      0 : { *(.debug_str) }\n  .debug_loc      0 : { *(.debug_loc) }\n  .debug_macinfo  0 : { *(.debug_macinfo) }\n  \n  .debug_weaknames 0 : { *(.debug_weaknames) }\n  .debug_funcnames 0 : { *(.debug_funcnames) }\n  .debug_typenames 0 : { *(.debug_typenames) }\n  .debug_varnames  0 : { *(.debug_varnames) }\n  \n  .debug_pubtypes 0 : { *(.debug_pubtypes) }\n  .debug_ranges   0 : { *(.debug_ranges) }\n  \n  .debug_macro    0 : { *(.debug_macro) }\n  .debug_addr     0 : { *(.debug_addr) }\n  .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) }\n  /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) }\n}\n\n"\n                               );" (assignment_expression "iVar17 = bfd_make_section_anyway_with_flags\n                               (puVar7,".buildid",\n                                "*/\n  .debug_aranges  0 : { *(.debug_aranges) }\n  .debug_pubnames 0 : { *(.debug_pubnames) }\n  \n  .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }\n  .debug_abbrev   0 : { *(.debug_abbrev) }\n  .debug_line     0 : { *(.debug_line .debug_line.* .debug_line_end ) }\n  .debug_frame    0 : { *(.debug_frame) }\n  .debug_str      0 : { *(.debug_str) }\n  .debug_loc      0 : { *(.debug_loc) }\n  .debug_macinfo  0 : { *(.debug_macinfo) }\n  \n  .debug_weaknames 0 : { *(.debug_weaknames) }\n  .debug_funcnames 0 : { *(.debug_funcnames) }\n  .debug_typenames 0 : { *(.debug_typenames) }\n  .debug_varnames  0 : { *(.debug_varnames) }\n  \n  .debug_pubtypes 0 : { *(.debug_pubtypes) }\n  .debug_ranges   0 : { *(.debug_ranges) }\n  \n  .debug_macro    0 : { *(.debug_macro) }\n  .debug_addr     0 : { *(.debug_addr) }\n  .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) }\n  /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) }\n}\n\n"\n                               )" identifier = (call_expression "bfd_make_section_anyway_with_flags\n                               (puVar7,".buildid",\n                                "*/\n  .debug_aranges  0 : { *(.debug_aranges) }\n  .debug_pubnames 0 : { *(.debug_pubnames) }\n  \n  .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }\n  .debug_abbrev   0 : { *(.debug_abbrev) }\n  .debug_line     0 : { *(.debug_line .debug_line.* .debug_line_end ) }\n  .debug_frame    0 : { *(.debug_frame) }\n  .debug_str      0 : { *(.debug_str) }\n  .debug_loc      0 : { *(.debug_loc) }\n  .debug_macinfo  0 : { *(.debug_macinfo) }\n  \n  .debug_weaknames 0 : { *(.debug_weaknames) }\n  .debug_funcnames 0 : { *(.debug_funcnames) }\n  .debug_typenames 0 : { *(.debug_typenames) }\n  .debug_varnames  0 : { *(.debug_varnames) }\n  \n  .debug_pubtypes 0 : { *(.debug_pubtypes) }\n  .debug_ranges   0 : { *(.debug_ranges) }\n  \n  .debug_macro    0 : { *(.debug_macro) }\n  .debug_addr     0 : { *(.debug_addr) }\n  .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) }\n  /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) }\n}\n\n"\n                               )" identifier (argument_list "(puVar7,".buildid",\n                                "*/\n  .debug_aranges  0 : { *(.debug_aranges) }\n  .debug_pubnames 0 : { *(.debug_pubnames) }\n  \n  .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }\n  .debug_abbrev   0 : { *(.debug_abbrev) }\n  .debug_line     0 : { *(.debug_line .debug_line.* .debug_line_end ) }\n  .debug_frame    0 : { *(.debug_frame) }\n  .debug_str      0 : { *(.debug_str) }\n  .debug_loc      0 : { *(.debug_loc) }\n  .debug_macinfo  0 : { *(.debug_macinfo) }\n  \n  .debug_weaknames 0 : { *(.debug_weaknames) }\n  .debug_funcnames 0 : { *(.debug_funcnames) }\n  .debug_typenames 0 : { *(.debug_typenames) }\n  .debug_varnames  0 : { *(.debug_varnames) }\n  \n  .debug_pubtypes 0 : { *(.debug_pubtypes) }\n  .debug_ranges   0 : { *(.debug_ranges) }\n  \n  .debug_macro    0 : { *(.debug_macro) }\n  .debug_addr     0 : { *(.debug_addr) }\n  .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) }\n  /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) }\n}\n\n"\n                               )" ( identifier , (string_literal "".buildid"" " string_content ") , (string_literal ""*/\n  .debug_aranges  0 : { *(.debug_aranges) }\n  .debug_pubnames 0 : { *(.debug_pubnames) }\n  \n  .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }\n  .debug_abbrev   0 : { *(.debug_abbrev) }\n  .debug_line     0 : { *(.debug_line .debug_line.* .debug_line_end ) }\n  .debug_frame    0 : { *(.debug_frame) }\n  .debug_str      0 : { *(.debug_str) }\n  .debug_loc      0 : { *(.debug_loc) }\n  .debug_macinfo  0 : { *(.debug_macinfo) }\n  \n  .debug_weaknames 0 : { *(.debug_weaknames) }\n  .debug_funcnames 0 : { *(.debug_funcnames) }\n  .debug_typenames 0 : { *(.debug_typenames) }\n  .debug_varnames  0 : { *(.debug_varnames) }\n  \n  .debug_pubtypes 0 : { *(.debug_pubtypes) }\n  .debug_ranges   0 : { *(.debug_ranges) }\n  \n  .debug_macro    0 : { *(.debug_macro) }\n  .debug_addr     0 : { *(.debug_addr) }\n  .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) }\n  /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) }\n}\n\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence escape_sequence ") )))) ;) (expression_statement "iVar6 = DAT_001d0414;" (assignment_expression "iVar6 = DAT_001d0414" identifier = identifier) ;) (if_statement "if (iVar17 != 0) {\n              iVar15 = *(int *)(DAT_001d0414 + 0xa0);\n              *(code **)(iVar15 + 0x1dc) = FUN_00055c40;\n              pvVar4 = DAT_001cff9c;\n              iVar13 = *(int *)(iVar15 + 0x58);\n              *(int *)(iVar15 + 0x1e4) = iVar17;\n              *(void **)(iVar15 + 0x1e0) = pvVar4;\n              *(undefined4 *)(iVar17 + 0x2c) = 0x35;\n              *(undefined4 *)(iVar17 + 0x30) = 0;\n              goto joined_r0x00056729;\n            }" if (parenthesized_expression "(iVar17 != 0)" ( (binary_expression "iVar17 != 0" identifier != number_literal) )) (compound_statement "{\n              iVar15 = *(int *)(DAT_001d0414 + 0xa0);\n              *(code **)(iVar15 + 0x1dc) = FUN_00055c40;\n              pvVar4 = DAT_001cff9c;\n              iVar13 = *(int *)(iVar15 + 0x58);\n              *(int *)(iVar15 + 0x1e4) = iVar17;\n              *(void **)(iVar15 + 0x1e0) = pvVar4;\n              *(undefined4 *)(iVar17 + 0x2c) = 0x35;\n              *(undefined4 *)(iVar17 + 0x30) = 0;\n              goto joined_r0x00056729;\n            }" { (expression_statement "iVar15 = *(int *)(DAT_001d0414 + 0xa0);" (assignment_expression "iVar15 = *(int *)(DAT_001d0414 + 0xa0)" identifier = (pointer_expression "*(int *)(DAT_001d0414 + 0xa0)" * (cast_expression "(int *)(DAT_001d0414 + 0xa0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_001d0414 + 0xa0)" ( (binary_expression "DAT_001d0414 + 0xa0" identifier + number_literal) ))))) ;) (expression_statement "*(code **)(iVar15 + 0x1dc) = FUN_00055c40;" (assignment_expression "*(code **)(iVar15 + 0x1dc) = FUN_00055c40" (pointer_expression "*(code **)(iVar15 + 0x1dc)" * (cast_expression "(code **)(iVar15 + 0x1dc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar15 + 0x1dc)" ( (binary_expression "iVar15 + 0x1dc" identifier + number_literal) )))) = identifier) ;) (expression_statement "pvVar4 = DAT_001cff9c;" (assignment_expression "pvVar4 = DAT_001cff9c" identifier = identifier) ;) (expression_statement "iVar13 = *(int *)(iVar15 + 0x58);" (assignment_expression "iVar13 = *(int *)(iVar15 + 0x58)" identifier = (pointer_expression "*(int *)(iVar15 + 0x58)" * (cast_expression "(int *)(iVar15 + 0x58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x58)" ( (binary_expression "iVar15 + 0x58" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(iVar15 + 0x1e4) = iVar17;" (assignment_expression "*(int *)(iVar15 + 0x1e4) = iVar17" (pointer_expression "*(int *)(iVar15 + 0x1e4)" * (cast_expression "(int *)(iVar15 + 0x1e4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x1e4)" ( (binary_expression "iVar15 + 0x1e4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(void **)(iVar15 + 0x1e0) = pvVar4;" (assignment_expression "*(void **)(iVar15 + 0x1e0) = pvVar4" (pointer_expression "*(void **)(iVar15 + 0x1e0)" * (cast_expression "(void **)(iVar15 + 0x1e0)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar15 + 0x1e0)" ( (binary_expression "iVar15 + 0x1e0" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(iVar17 + 0x2c) = 0x35;" (assignment_expression "*(undefined4 *)(iVar17 + 0x2c) = 0x35" (pointer_expression "*(undefined4 *)(iVar17 + 0x2c)" * (cast_expression "(undefined4 *)(iVar17 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x2c)" ( (binary_expression "iVar17 + 0x2c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar17 + 0x30) = 0;" (assignment_expression "*(undefined4 *)(iVar17 + 0x30) = 0" (pointer_expression "*(undefined4 *)(iVar17 + 0x30)" * (cast_expression "(undefined4 *)(iVar17 + 0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x30)" ( (binary_expression "iVar17 + 0x30" identifier + number_literal) )))) = number_literal) ;) (goto_statement "goto joined_r0x00056729;" goto statement_identifier ;) })) (expression_statement "pcVar12 = "%P: warning: cannot create .buildid section, --build-id ignored\n";" (assignment_expression "pcVar12 = "%P: warning: cannot create .buildid section, --build-id ignored\n"" identifier = (string_literal ""%P: warning: cannot create .buildid section, --build-id ignored\n"" " string_content escape_sequence ")) ;) }))) (expression_statement "uVar11 = dcgettext(0,pcVar12,5);" (assignment_expression "uVar11 = dcgettext(0,pcVar12,5)" identifier = (call_expression "dcgettext(0,pcVar12,5)" identifier (argument_list "(0,pcVar12,5)" ( number_literal , identifier , number_literal )))) ;) (expression_statement "FUN_00034d20(uVar11);" (call_expression "FUN_00034d20(uVar11)" identifier (argument_list "(uVar11)" ( identifier ))) ;) (break_statement "break;" break ;) })) })) (labeled_statement "LAB_00056a59:\n      free(DAT_001cff9c);" statement_identifier : (expression_statement "free(DAT_001cff9c);" (call_expression "free(DAT_001cff9c)" identifier (argument_list "(DAT_001cff9c)" ( identifier ))) ;)) (expression_statement "DAT_001cff9c = (void *)0x0;" (assignment_expression "DAT_001cff9c = (void *)0x0" identifier = (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) }) (else_clause "else {\n    printf("%s()\n","gld_i386pe_after_open");\n    for (iVar6 = *(int *)(DAT_001d0400 + 0x1c); iVar6 != 0; iVar6 = *(int *)(iVar6 + 0x10)) {\n      printf("-%s\n",*(undefined4 *)(iVar6 + 4));\n    }\n    bfd_hash_traverse(DAT_001d0400,FUN_00055b20,0);\n    puVar7 = DAT_001d041c;\n    if (DAT_001d041c != (undefined4 *)0x0) {\n      do {\n        printf("*%s\n",*puVar7);\n        puVar18 = puVar7 + 0x27;\n        puVar7 = (undefined4 *)*puVar18;\n      } while ((undefined4 *)*puVar18 != (undefined4 *)0x0);\n      goto LAB_00056682;\n    }\n    if (DAT_001cff9c != (void *)0x0) goto LAB_00056a59;\n  }" else (compound_statement "{\n    printf("%s()\n","gld_i386pe_after_open");\n    for (iVar6 = *(int *)(DAT_001d0400 + 0x1c); iVar6 != 0; iVar6 = *(int *)(iVar6 + 0x10)) {\n      printf("-%s\n",*(undefined4 *)(iVar6 + 4));\n    }\n    bfd_hash_traverse(DAT_001d0400,FUN_00055b20,0);\n    puVar7 = DAT_001d041c;\n    if (DAT_001d041c != (undefined4 *)0x0) {\n      do {\n        printf("*%s\n",*puVar7);\n        puVar18 = puVar7 + 0x27;\n        puVar7 = (undefined4 *)*puVar18;\n      } while ((undefined4 *)*puVar18 != (undefined4 *)0x0);\n      goto LAB_00056682;\n    }\n    if (DAT_001cff9c != (void *)0x0) goto LAB_00056a59;\n  }" { (expression_statement "printf("%s()\n","gld_i386pe_after_open");" (call_expression "printf("%s()\n","gld_i386pe_after_open")" identifier (argument_list "("%s()\n","gld_i386pe_after_open")" ( (string_literal ""%s()\n"" " string_content escape_sequence ") , (string_literal ""gld_i386pe_after_open"" " string_content ") ))) ;) (for_statement "for (iVar6 = *(int *)(DAT_001d0400 + 0x1c); iVar6 != 0; iVar6 = *(int *)(iVar6 + 0x10)) {\n      printf("-%s\n",*(undefined4 *)(iVar6 + 4));\n    }" for ( (assignment_expression "iVar6 = *(int *)(DAT_001d0400 + 0x1c)" identifier = (pointer_expression "*(int *)(DAT_001d0400 + 0x1c)" * (cast_expression "(int *)(DAT_001d0400 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_001d0400 + 0x1c)" ( (binary_expression "DAT_001d0400 + 0x1c" identifier + number_literal) ))))) ; (binary_expression "iVar6 != 0" identifier != number_literal) ; (assignment_expression "iVar6 = *(int *)(iVar6 + 0x10)" identifier = (pointer_expression "*(int *)(iVar6 + 0x10)" * (cast_expression "(int *)(iVar6 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x10)" ( (binary_expression "iVar6 + 0x10" identifier + number_literal) ))))) ) (compound_statement "{\n      printf("-%s\n",*(undefined4 *)(iVar6 + 4));\n    }" { (expression_statement "printf("-%s\n",*(undefined4 *)(iVar6 + 4));" (call_expression "printf("-%s\n",*(undefined4 *)(iVar6 + 4))" identifier (argument_list "("-%s\n",*(undefined4 *)(iVar6 + 4))" ( (string_literal ""-%s\n"" " string_content escape_sequence ") , (pointer_expression "*(undefined4 *)(iVar6 + 4)" * (cast_expression "(undefined4 *)(iVar6 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 4)" ( (binary_expression "iVar6 + 4" identifier + number_literal) )))) ))) ;) })) (expression_statement "bfd_hash_traverse(DAT_001d0400,FUN_00055b20,0);" (call_expression "bfd_hash_traverse(DAT_001d0400,FUN_00055b20,0)" identifier (argument_list "(DAT_001d0400,FUN_00055b20,0)" ( identifier , identifier , number_literal ))) ;) (expression_statement "puVar7 = DAT_001d041c;" (assignment_expression "puVar7 = DAT_001d041c" identifier = identifier) ;) (if_statement "if (DAT_001d041c != (undefined4 *)0x0) {\n      do {\n        printf("*%s\n",*puVar7);\n        puVar18 = puVar7 + 0x27;\n        puVar7 = (undefined4 *)*puVar18;\n      } while ((undefined4 *)*puVar18 != (undefined4 *)0x0);\n      goto LAB_00056682;\n    }" if (parenthesized_expression "(DAT_001d041c != (undefined4 *)0x0)" ( (binary_expression "DAT_001d041c != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      do {\n        printf("*%s\n",*puVar7);\n        puVar18 = puVar7 + 0x27;\n        puVar7 = (undefined4 *)*puVar18;\n      } while ((undefined4 *)*puVar18 != (undefined4 *)0x0);\n      goto LAB_00056682;\n    }" { (do_statement "do {\n        printf("*%s\n",*puVar7);\n        puVar18 = puVar7 + 0x27;\n        puVar7 = (undefined4 *)*puVar18;\n      } while ((undefined4 *)*puVar18 != (undefined4 *)0x0);" do (compound_statement "{\n        printf("*%s\n",*puVar7);\n        puVar18 = puVar7 + 0x27;\n        puVar7 = (undefined4 *)*puVar18;\n      }" { (expression_statement "printf("*%s\n",*puVar7);" (call_expression "printf("*%s\n",*puVar7)" identifier (argument_list "("*%s\n",*puVar7)" ( (string_literal ""*%s\n"" " string_content escape_sequence ") , (pointer_expression "*puVar7" * identifier) ))) ;) (expression_statement "puVar18 = puVar7 + 0x27;" (assignment_expression "puVar18 = puVar7 + 0x27" identifier = (binary_expression "puVar7 + 0x27" identifier + number_literal)) ;) (expression_statement "puVar7 = (undefined4 *)*puVar18;" (assignment_expression "puVar7 = (undefined4 *)*puVar18" identifier = (cast_expression "(undefined4 *)*puVar18" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar18" * identifier))) ;) }) while (parenthesized_expression "((undefined4 *)*puVar18 != (undefined4 *)0x0)" ( (binary_expression "(undefined4 *)*puVar18 != (undefined4 *)0x0" (cast_expression "(undefined4 *)*puVar18" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar18" * identifier)) != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (goto_statement "goto LAB_00056682;" goto statement_identifier ;) })) (if_statement "if (DAT_001cff9c != (void *)0x0) goto LAB_00056a59;" if (parenthesized_expression "(DAT_001cff9c != (void *)0x0)" ( (binary_expression "DAT_001cff9c != (void *)0x0" identifier != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00056a59;" goto statement_identifier ;)) }))) (expression_statement "iVar6 = DAT_001d0414;" (assignment_expression "iVar6 = DAT_001d0414" identifier = identifier) ;) (if_statement "if (*(int *)(DAT_001d0414 + 0xa0) != 0) {\n    iVar13 = *(int *)(*(int *)(DAT_001d0414 + 0xa0) + 0x58);\njoined_r0x00056729:\n    if (iVar13 != 0) goto LAB_00056730;\n  }" if (parenthesized_expression "(*(int *)(DAT_001d0414 + 0xa0) != 0)" ( (binary_expression "*(int *)(DAT_001d0414 + 0xa0) != 0" (pointer_expression "*(int *)(DAT_001d0414 + 0xa0)" * (cast_expression "(int *)(DAT_001d0414 + 0xa0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_001d0414 + 0xa0)" ( (binary_expression "DAT_001d0414 + 0xa0" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    iVar13 = *(int *)(*(int *)(DAT_001d0414 + 0xa0) + 0x58);\njoined_r0x00056729:\n    if (iVar13 != 0) goto LAB_00056730;\n  }" { (expression_statement "iVar13 = *(int *)(*(int *)(DAT_001d0414 + 0xa0) + 0x58);" (assignment_expression "iVar13 = *(int *)(*(int *)(DAT_001d0414 + 0xa0) + 0x58)" identifier = (pointer_expression "*(int *)(*(int *)(DAT_001d0414 + 0xa0) + 0x58)" * (cast_expression "(int *)(*(int *)(DAT_001d0414 + 0xa0) + 0x58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(DAT_001d0414 + 0xa0) + 0x58)" ( (binary_expression "*(int *)(DAT_001d0414 + 0xa0) + 0x58" (pointer_expression "*(int *)(DAT_001d0414 + 0xa0)" * (cast_expression "(int *)(DAT_001d0414 + 0xa0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_001d0414 + 0xa0)" ( (binary_expression "DAT_001d0414 + 0xa0" identifier + number_literal) )))) + number_literal) ))))) ;) (labeled_statement "joined_r0x00056729:\n    if (iVar13 != 0) goto LAB_00056730;" statement_identifier : (if_statement "if (iVar13 != 0) goto LAB_00056730;" if (parenthesized_expression "(iVar13 != 0)" ( (binary_expression "iVar13 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00056730;" goto statement_identifier ;))) })) (expression_statement "uVar11 = dcgettext(0,"%F%P: cannot perform PE operations on non PE output file \'%pB\'\n",5);" (assignment_expression "uVar11 = dcgettext(0,"%F%P: cannot perform PE operations on non PE output file \'%pB\'\n",5)" identifier = (call_expression "dcgettext(0,"%F%P: cannot perform PE operations on non PE output file \'%pB\'\n",5)" identifier (argument_list "(0,"%F%P: cannot perform PE operations on non PE output file \'%pB\'\n",5)" ( number_literal , (string_literal ""%F%P: cannot perform PE operations on non PE output file \'%pB\'\n"" " string_content escape_sequence string_content escape_sequence escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_00034d20(uVar11,iVar6);" (call_expression "FUN_00034d20(uVar11,iVar6)" identifier (argument_list "(uVar11,iVar6)" ( identifier , identifier ))) ;) (labeled_statement "LAB_00056730:\n  iVar17 = DAT_001d0414;" statement_identifier : (expression_statement "iVar17 = DAT_001d0414;" (assignment_expression "iVar17 = DAT_001d0414" identifier = identifier) ;)) (expression_statement "iVar6 = *(int *)(DAT_001d0414 + 0xa0);" (assignment_expression "iVar6 = *(int *)(DAT_001d0414 + 0xa0)" identifier = (pointer_expression "*(int *)(DAT_001d0414 + 0xa0)" * (cast_expression "(int *)(DAT_001d0414 + 0xa0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_001d0414 + 0xa0)" ( (binary_expression "DAT_001d0414 + 0xa0" identifier + number_literal) ))))) ;) (expression_statement "puVar7 = &DAT_001cffc0;" (assignment_expression "puVar7 = &DAT_001cffc0" identifier = (pointer_expression "&DAT_001cffc0" & identifier)) ;) (expression_statement "puVar18 = (undefined4 *)(iVar6 + 0x7c);" (assignment_expression "puVar18 = (undefined4 *)(iVar6 + 0x7c)" identifier = (cast_expression "(undefined4 *)(iVar6 + 0x7c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x7c)" ( (binary_expression "iVar6 + 0x7c" identifier + number_literal) )))) ;) (for_statement "for (iVar15 = 0x52; iVar15 != 0; iVar15 = iVar15 + -1) {\n    *puVar18 = *puVar7;\n    puVar7 = puVar7 + (uint)bVar25 * -2 + 1;\n    puVar18 = puVar18 + (uint)bVar25 * -2 + 1;\n  }" for ( (assignment_expression "iVar15 = 0x52" identifier = number_literal) ; (binary_expression "iVar15 != 0" identifier != number_literal) ; (assignment_expression "iVar15 = iVar15 + -1" identifier = (binary_expression "iVar15 + -1" identifier + number_literal)) ) (compound_statement "{\n    *puVar18 = *puVar7;\n    puVar7 = puVar7 + (uint)bVar25 * -2 + 1;\n    puVar18 = puVar18 + (uint)bVar25 * -2 + 1;\n  }" { (expression_statement "*puVar18 = *puVar7;" (assignment_expression "*puVar18 = *puVar7" (pointer_expression "*puVar18" * identifier) = (pointer_expression "*puVar7" * identifier)) ;) (expression_statement "puVar7 = puVar7 + (uint)bVar25 * -2 + 1;" (assignment_expression "puVar7 = puVar7 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "puVar7 + (uint)bVar25 * -2 + 1" (binary_expression "puVar7 + (uint)bVar25 * -2" identifier + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "puVar18 = puVar18 + (uint)bVar25 * -2 + 1;" (assignment_expression "puVar18 = puVar18 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "puVar18 + (uint)bVar25 * -2 + 1" (binary_expression "puVar18 + (uint)bVar25 * -2" identifier + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) })) (expression_statement "*(undefined4 *)(iVar6 + 0x1c4) = DAT_001cf040;" (assignment_expression "*(undefined4 *)(iVar6 + 0x1c4) = DAT_001cf040" (pointer_expression "*(undefined4 *)(iVar6 + 0x1c4)" * (cast_expression "(undefined4 *)(iVar6 + 0x1c4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x1c4)" ( (binary_expression "iVar6 + 0x1c4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(iVar6 + 0x1d8) = *(uint *)(iVar6 + 0x1d8) | DAT_001cffa8;" (assignment_expression "*(uint *)(iVar6 + 0x1d8) = *(uint *)(iVar6 + 0x1d8) | DAT_001cffa8" (pointer_expression "*(uint *)(iVar6 + 0x1d8)" * (cast_expression "(uint *)(iVar6 + 0x1d8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x1d8)" ( (binary_expression "iVar6 + 0x1d8" identifier + number_literal) )))) = (binary_expression "*(uint *)(iVar6 + 0x1d8) | DAT_001cffa8" (pointer_expression "*(uint *)(iVar6 + 0x1d8)" * (cast_expression "(uint *)(iVar6 + 0x1d8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x1d8)" ( (binary_expression "iVar6 + 0x1d8" identifier + number_literal) )))) | identifier)) ;) (expression_statement "*(undefined4 *)(iVar6 + 0x1d0) = DAT_001cef94;" (assignment_expression "*(undefined4 *)(iVar6 + 0x1d0) = DAT_001cef94" (pointer_expression "*(undefined4 *)(iVar6 + 0x1d0)" * (cast_expression "(undefined4 *)(iVar6 + 0x1d0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x1d0)" ( (binary_expression "iVar6 + 0x1d0" identifier + number_literal) )))) = identifier) ;) (if_statement "if ((DAT_001cf388 < 0) && ((DAT_001d03e1 & 0x60) == 0)) {\n    if ((DAT_001d03e0 & 3) == 2) {\n      DAT_001cf388 = 1;\n    }\n    else if (DAT_001cf6bc != 0) {\n      iVar6 = DAT_001cf6bc;\n      do {\n        local_20[0] = 0;\n        bfd_map_over_sections(*(undefined4 *)(iVar6 + 0x10),FUN_000554f0,local_20);\n        iVar17 = DAT_001d0414;\n        if (local_20[0] != 0) {\n          DAT_001cf388 = 1;\n          break;\n        }\n        iVar6 = *(int *)(iVar6 + 0x18);\n      } while (iVar6 != 0);\n    }\n  }" if (parenthesized_expression "((DAT_001cf388 < 0) && ((DAT_001d03e1 & 0x60) == 0))" ( (binary_expression "(DAT_001cf388 < 0) && ((DAT_001d03e1 & 0x60) == 0)" (parenthesized_expression "(DAT_001cf388 < 0)" ( (binary_expression "DAT_001cf388 < 0" identifier < number_literal) )) && (parenthesized_expression "((DAT_001d03e1 & 0x60) == 0)" ( (binary_expression "(DAT_001d03e1 & 0x60) == 0" (parenthesized_expression "(DAT_001d03e1 & 0x60)" ( (binary_expression "DAT_001d03e1 & 0x60" identifier & number_literal) )) == number_literal) ))) )) (compound_statement "{\n    if ((DAT_001d03e0 & 3) == 2) {\n      DAT_001cf388 = 1;\n    }\n    else if (DAT_001cf6bc != 0) {\n      iVar6 = DAT_001cf6bc;\n      do {\n        local_20[0] = 0;\n        bfd_map_over_sections(*(undefined4 *)(iVar6 + 0x10),FUN_000554f0,local_20);\n        iVar17 = DAT_001d0414;\n        if (local_20[0] != 0) {\n          DAT_001cf388 = 1;\n          break;\n        }\n        iVar6 = *(int *)(iVar6 + 0x18);\n      } while (iVar6 != 0);\n    }\n  }" { (if_statement "if ((DAT_001d03e0 & 3) == 2) {\n      DAT_001cf388 = 1;\n    }\n    else if (DAT_001cf6bc != 0) {\n      iVar6 = DAT_001cf6bc;\n      do {\n        local_20[0] = 0;\n        bfd_map_over_sections(*(undefined4 *)(iVar6 + 0x10),FUN_000554f0,local_20);\n        iVar17 = DAT_001d0414;\n        if (local_20[0] != 0) {\n          DAT_001cf388 = 1;\n          break;\n        }\n        iVar6 = *(int *)(iVar6 + 0x18);\n      } while (iVar6 != 0);\n    }" if (parenthesized_expression "((DAT_001d03e0 & 3) == 2)" ( (binary_expression "(DAT_001d03e0 & 3) == 2" (parenthesized_expression "(DAT_001d03e0 & 3)" ( (binary_expression "DAT_001d03e0 & 3" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      DAT_001cf388 = 1;\n    }" { (expression_statement "DAT_001cf388 = 1;" (assignment_expression "DAT_001cf388 = 1" identifier = number_literal) ;) }) (else_clause "else if (DAT_001cf6bc != 0) {\n      iVar6 = DAT_001cf6bc;\n      do {\n        local_20[0] = 0;\n        bfd_map_over_sections(*(undefined4 *)(iVar6 + 0x10),FUN_000554f0,local_20);\n        iVar17 = DAT_001d0414;\n        if (local_20[0] != 0) {\n          DAT_001cf388 = 1;\n          break;\n        }\n        iVar6 = *(int *)(iVar6 + 0x18);\n      } while (iVar6 != 0);\n    }" else (if_statement "if (DAT_001cf6bc != 0) {\n      iVar6 = DAT_001cf6bc;\n      do {\n        local_20[0] = 0;\n        bfd_map_over_sections(*(undefined4 *)(iVar6 + 0x10),FUN_000554f0,local_20);\n        iVar17 = DAT_001d0414;\n        if (local_20[0] != 0) {\n          DAT_001cf388 = 1;\n          break;\n        }\n        iVar6 = *(int *)(iVar6 + 0x18);\n      } while (iVar6 != 0);\n    }" if (parenthesized_expression "(DAT_001cf6bc != 0)" ( (binary_expression "DAT_001cf6bc != 0" identifier != number_literal) )) (compound_statement "{\n      iVar6 = DAT_001cf6bc;\n      do {\n        local_20[0] = 0;\n        bfd_map_over_sections(*(undefined4 *)(iVar6 + 0x10),FUN_000554f0,local_20);\n        iVar17 = DAT_001d0414;\n        if (local_20[0] != 0) {\n          DAT_001cf388 = 1;\n          break;\n        }\n        iVar6 = *(int *)(iVar6 + 0x18);\n      } while (iVar6 != 0);\n    }" { (expression_statement "iVar6 = DAT_001cf6bc;" (assignment_expression "iVar6 = DAT_001cf6bc" identifier = identifier) ;) (do_statement "do {\n        local_20[0] = 0;\n        bfd_map_over_sections(*(undefined4 *)(iVar6 + 0x10),FUN_000554f0,local_20);\n        iVar17 = DAT_001d0414;\n        if (local_20[0] != 0) {\n          DAT_001cf388 = 1;\n          break;\n        }\n        iVar6 = *(int *)(iVar6 + 0x18);\n      } while (iVar6 != 0);" do (compound_statement "{\n        local_20[0] = 0;\n        bfd_map_over_sections(*(undefined4 *)(iVar6 + 0x10),FUN_000554f0,local_20);\n        iVar17 = DAT_001d0414;\n        if (local_20[0] != 0) {\n          DAT_001cf388 = 1;\n          break;\n        }\n        iVar6 = *(int *)(iVar6 + 0x18);\n      }" { (expression_statement "local_20[0] = 0;" (assignment_expression "local_20[0] = 0" (subscript_expression "local_20[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "bfd_map_over_sections(*(undefined4 *)(iVar6 + 0x10),FUN_000554f0,local_20);" (call_expression "bfd_map_over_sections(*(undefined4 *)(iVar6 + 0x10),FUN_000554f0,local_20)" identifier (argument_list "(*(undefined4 *)(iVar6 + 0x10),FUN_000554f0,local_20)" ( (pointer_expression "*(undefined4 *)(iVar6 + 0x10)" * (cast_expression "(undefined4 *)(iVar6 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x10)" ( (binary_expression "iVar6 + 0x10" identifier + number_literal) )))) , identifier , identifier ))) ;) (expression_statement "iVar17 = DAT_001d0414;" (assignment_expression "iVar17 = DAT_001d0414" identifier = identifier) ;) (if_statement "if (local_20[0] != 0) {\n          DAT_001cf388 = 1;\n          break;\n        }" if (parenthesized_expression "(local_20[0] != 0)" ( (binary_expression "local_20[0] != 0" (subscript_expression "local_20[0]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n          DAT_001cf388 = 1;\n          break;\n        }" { (expression_statement "DAT_001cf388 = 1;" (assignment_expression "DAT_001cf388 = 1" identifier = number_literal) ;) (break_statement "break;" break ;) })) (expression_statement "iVar6 = *(int *)(iVar6 + 0x18);" (assignment_expression "iVar6 = *(int *)(iVar6 + 0x18)" identifier = (pointer_expression "*(int *)(iVar6 + 0x18)" * (cast_expression "(int *)(iVar6 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x18)" ( (binary_expression "iVar6 + 0x18" identifier + number_literal) ))))) ;) }) while (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) ;) })))) })) (expression_statement "FUN_00066c30(iVar17);" (call_expression "FUN_00066c30(iVar17)" identifier (argument_list "(iVar17)" ( identifier ))) ;) (expression_statement "FUN_000656c0(DAT_001d0414,&DAT_001d03e0);" (call_expression "FUN_000656c0(DAT_001d0414,&DAT_001d03e0)" identifier (argument_list "(DAT_001d0414,&DAT_001d03e0)" ( identifier , (pointer_expression "&DAT_001d03e0" & identifier) ))) ;) (if_statement "if (DAT_001d0448 != 0) {\n    iVar6 = FUN_000561f0();\n    pcVar12 = "_head_";\n    if (iVar6 != 0) {\n      pcVar12 = "__head_";\n    }\n    FUN_00063bc0(pcVar12,FUN_00055b50);\n  }" if (parenthesized_expression "(DAT_001d0448 != 0)" ( (binary_expression "DAT_001d0448 != 0" identifier != number_literal) )) (compound_statement "{\n    iVar6 = FUN_000561f0();\n    pcVar12 = "_head_";\n    if (iVar6 != 0) {\n      pcVar12 = "__head_";\n    }\n    FUN_00063bc0(pcVar12,FUN_00055b50);\n  }" { (expression_statement "iVar6 = FUN_000561f0();" (assignment_expression "iVar6 = FUN_000561f0()" identifier = (call_expression "FUN_000561f0()" identifier (argument_list "()" ( )))) ;) (expression_statement "pcVar12 = "_head_";" (assignment_expression "pcVar12 = "_head_"" identifier = (string_literal ""_head_"" " string_content ")) ;) (if_statement "if (iVar6 != 0) {\n      pcVar12 = "__head_";\n    }" if (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) (compound_statement "{\n      pcVar12 = "__head_";\n    }" { (expression_statement "pcVar12 = "__head_";" (assignment_expression "pcVar12 = "__head_"" identifier = (string_literal ""__head_"" " string_content ")) ;) })) (expression_statement "FUN_00063bc0(pcVar12,FUN_00055b50);" (call_expression "FUN_00063bc0(pcVar12,FUN_00055b50)" identifier (argument_list "(pcVar12,FUN_00055b50)" ( identifier , identifier ))) ;) })) (if_statement "if (DAT_001cef90 != 0) {\n    if (DAT_001d01fc != 0) {\n      puts("pe_fixup_stdcalls");\n    }\n    for (iVar6 = *(int *)(DAT_001d0400 + 0x1c); iVar6 != 0; iVar6 = *(int *)(iVar6 + 0x10)) {\n      if (*(char *)(iVar6 + 0xc) == '\x01') {\n        pcVar12 = *(char **)(iVar6 + 4);\n        if (*pcVar12 == '@') {\n          pcVar10 = strchr(pcVar12 + 1,0x40);\n          pcVar12 = (char *)xstrdup(pcVar12);\n          *pcVar12 = '_';\n          if (pcVar10 != (char *)0x0) goto LAB_00057061;\n        }\n        else {\n          pcVar10 = strchr(pcVar12,0x40);\n          if (pcVar10 == (char *)0x0) {\n            DAT_001cff8c = 0;\n            bfd_link_hash_traverse(DAT_001d0400,FUN_00055530,pcVar12);\n            if (DAT_001cff8c != 0) {\n              FUN_00056030();\n            }\n            goto LAB_00056fa8;\n          }\n          pcVar12 = (char *)xstrdup(pcVar12);\nLAB_00057061:\n          pcVar10 = strchr(pcVar12,0x40);\n          *pcVar10 = '\0';\n        }\n        iVar17 = bfd_link_hash_lookup(DAT_001d0400,pcVar12,0,0,1);\n        if ((iVar17 != 0) && (*(char *)(iVar17 + 0xc) == '\x03')) {\n          FUN_00056030();\n        }\n      }\nLAB_00056fa8:\n    }\n  }" if (parenthesized_expression "(DAT_001cef90 != 0)" ( (binary_expression "DAT_001cef90 != 0" identifier != number_literal) )) (compound_statement "{\n    if (DAT_001d01fc != 0) {\n      puts("pe_fixup_stdcalls");\n    }\n    for (iVar6 = *(int *)(DAT_001d0400 + 0x1c); iVar6 != 0; iVar6 = *(int *)(iVar6 + 0x10)) {\n      if (*(char *)(iVar6 + 0xc) == '\x01') {\n        pcVar12 = *(char **)(iVar6 + 4);\n        if (*pcVar12 == '@') {\n          pcVar10 = strchr(pcVar12 + 1,0x40);\n          pcVar12 = (char *)xstrdup(pcVar12);\n          *pcVar12 = '_';\n          if (pcVar10 != (char *)0x0) goto LAB_00057061;\n        }\n        else {\n          pcVar10 = strchr(pcVar12,0x40);\n          if (pcVar10 == (char *)0x0) {\n            DAT_001cff8c = 0;\n            bfd_link_hash_traverse(DAT_001d0400,FUN_00055530,pcVar12);\n            if (DAT_001cff8c != 0) {\n              FUN_00056030();\n            }\n            goto LAB_00056fa8;\n          }\n          pcVar12 = (char *)xstrdup(pcVar12);\nLAB_00057061:\n          pcVar10 = strchr(pcVar12,0x40);\n          *pcVar10 = '\0';\n        }\n        iVar17 = bfd_link_hash_lookup(DAT_001d0400,pcVar12,0,0,1);\n        if ((iVar17 != 0) && (*(char *)(iVar17 + 0xc) == '\x03')) {\n          FUN_00056030();\n        }\n      }\nLAB_00056fa8:\n    }\n  }" { (if_statement "if (DAT_001d01fc != 0) {\n      puts("pe_fixup_stdcalls");\n    }" if (parenthesized_expression "(DAT_001d01fc != 0)" ( (binary_expression "DAT_001d01fc != 0" identifier != number_literal) )) (compound_statement "{\n      puts("pe_fixup_stdcalls");\n    }" { (expression_statement "puts("pe_fixup_stdcalls");" (call_expression "puts("pe_fixup_stdcalls")" identifier (argument_list "("pe_fixup_stdcalls")" ( (string_literal ""pe_fixup_stdcalls"" " string_content ") ))) ;) })) (for_statement "for (iVar6 = *(int *)(DAT_001d0400 + 0x1c); iVar6 != 0; iVar6 = *(int *)(iVar6 + 0x10)) {\n      if (*(char *)(iVar6 + 0xc) == '\x01') {\n        pcVar12 = *(char **)(iVar6 + 4);\n        if (*pcVar12 == '@') {\n          pcVar10 = strchr(pcVar12 + 1,0x40);\n          pcVar12 = (char *)xstrdup(pcVar12);\n          *pcVar12 = '_';\n          if (pcVar10 != (char *)0x0) goto LAB_00057061;\n        }\n        else {\n          pcVar10 = strchr(pcVar12,0x40);\n          if (pcVar10 == (char *)0x0) {\n            DAT_001cff8c = 0;\n            bfd_link_hash_traverse(DAT_001d0400,FUN_00055530,pcVar12);\n            if (DAT_001cff8c != 0) {\n              FUN_00056030();\n            }\n            goto LAB_00056fa8;\n          }\n          pcVar12 = (char *)xstrdup(pcVar12);\nLAB_00057061:\n          pcVar10 = strchr(pcVar12,0x40);\n          *pcVar10 = '\0';\n        }\n        iVar17 = bfd_link_hash_lookup(DAT_001d0400,pcVar12,0,0,1);\n        if ((iVar17 != 0) && (*(char *)(iVar17 + 0xc) == '\x03')) {\n          FUN_00056030();\n        }\n      }\nLAB_00056fa8:\n    }" for ( (assignment_expression "iVar6 = *(int *)(DAT_001d0400 + 0x1c)" identifier = (pointer_expression "*(int *)(DAT_001d0400 + 0x1c)" * (cast_expression "(int *)(DAT_001d0400 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_001d0400 + 0x1c)" ( (binary_expression "DAT_001d0400 + 0x1c" identifier + number_literal) ))))) ; (binary_expression "iVar6 != 0" identifier != number_literal) ; (assignment_expression "iVar6 = *(int *)(iVar6 + 0x10)" identifier = (pointer_expression "*(int *)(iVar6 + 0x10)" * (cast_expression "(int *)(iVar6 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x10)" ( (binary_expression "iVar6 + 0x10" identifier + number_literal) ))))) ) (compound_statement "{\n      if (*(char *)(iVar6 + 0xc) == '\x01') {\n        pcVar12 = *(char **)(iVar6 + 4);\n        if (*pcVar12 == '@') {\n          pcVar10 = strchr(pcVar12 + 1,0x40);\n          pcVar12 = (char *)xstrdup(pcVar12);\n          *pcVar12 = '_';\n          if (pcVar10 != (char *)0x0) goto LAB_00057061;\n        }\n        else {\n          pcVar10 = strchr(pcVar12,0x40);\n          if (pcVar10 == (char *)0x0) {\n            DAT_001cff8c = 0;\n            bfd_link_hash_traverse(DAT_001d0400,FUN_00055530,pcVar12);\n            if (DAT_001cff8c != 0) {\n              FUN_00056030();\n            }\n            goto LAB_00056fa8;\n          }\n          pcVar12 = (char *)xstrdup(pcVar12);\nLAB_00057061:\n          pcVar10 = strchr(pcVar12,0x40);\n          *pcVar10 = '\0';\n        }\n        iVar17 = bfd_link_hash_lookup(DAT_001d0400,pcVar12,0,0,1);\n        if ((iVar17 != 0) && (*(char *)(iVar17 + 0xc) == '\x03')) {\n          FUN_00056030();\n        }\n      }\nLAB_00056fa8:\n    }" { (if_statement "if (*(char *)(iVar6 + 0xc) == '\x01') {\n        pcVar12 = *(char **)(iVar6 + 4);\n        if (*pcVar12 == '@') {\n          pcVar10 = strchr(pcVar12 + 1,0x40);\n          pcVar12 = (char *)xstrdup(pcVar12);\n          *pcVar12 = '_';\n          if (pcVar10 != (char *)0x0) goto LAB_00057061;\n        }\n        else {\n          pcVar10 = strchr(pcVar12,0x40);\n          if (pcVar10 == (char *)0x0) {\n            DAT_001cff8c = 0;\n            bfd_link_hash_traverse(DAT_001d0400,FUN_00055530,pcVar12);\n            if (DAT_001cff8c != 0) {\n              FUN_00056030();\n            }\n            goto LAB_00056fa8;\n          }\n          pcVar12 = (char *)xstrdup(pcVar12);\nLAB_00057061:\n          pcVar10 = strchr(pcVar12,0x40);\n          *pcVar10 = '\0';\n        }\n        iVar17 = bfd_link_hash_lookup(DAT_001d0400,pcVar12,0,0,1);\n        if ((iVar17 != 0) && (*(char *)(iVar17 + 0xc) == '\x03')) {\n          FUN_00056030();\n        }\n      }" if (parenthesized_expression "(*(char *)(iVar6 + 0xc) == '\x01')" ( (binary_expression "*(char *)(iVar6 + 0xc) == '\x01'" (pointer_expression "*(char *)(iVar6 + 0xc)" * (cast_expression "(char *)(iVar6 + 0xc)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0xc)" ( (binary_expression "iVar6 + 0xc" identifier + number_literal) )))) == (char_literal "'\x01'" ' escape_sequence ')) )) (compound_statement "{\n        pcVar12 = *(char **)(iVar6 + 4);\n        if (*pcVar12 == '@') {\n          pcVar10 = strchr(pcVar12 + 1,0x40);\n          pcVar12 = (char *)xstrdup(pcVar12);\n          *pcVar12 = '_';\n          if (pcVar10 != (char *)0x0) goto LAB_00057061;\n        }\n        else {\n          pcVar10 = strchr(pcVar12,0x40);\n          if (pcVar10 == (char *)0x0) {\n            DAT_001cff8c = 0;\n            bfd_link_hash_traverse(DAT_001d0400,FUN_00055530,pcVar12);\n            if (DAT_001cff8c != 0) {\n              FUN_00056030();\n            }\n            goto LAB_00056fa8;\n          }\n          pcVar12 = (char *)xstrdup(pcVar12);\nLAB_00057061:\n          pcVar10 = strchr(pcVar12,0x40);\n          *pcVar10 = '\0';\n        }\n        iVar17 = bfd_link_hash_lookup(DAT_001d0400,pcVar12,0,0,1);\n        if ((iVar17 != 0) && (*(char *)(iVar17 + 0xc) == '\x03')) {\n          FUN_00056030();\n        }\n      }" { (expression_statement "pcVar12 = *(char **)(iVar6 + 4);" (assignment_expression "pcVar12 = *(char **)(iVar6 + 4)" identifier = (pointer_expression "*(char **)(iVar6 + 4)" * (cast_expression "(char **)(iVar6 + 4)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar6 + 4)" ( (binary_expression "iVar6 + 4" identifier + number_literal) ))))) ;) (if_statement "if (*pcVar12 == '@') {\n          pcVar10 = strchr(pcVar12 + 1,0x40);\n          pcVar12 = (char *)xstrdup(pcVar12);\n          *pcVar12 = '_';\n          if (pcVar10 != (char *)0x0) goto LAB_00057061;\n        }\n        else {\n          pcVar10 = strchr(pcVar12,0x40);\n          if (pcVar10 == (char *)0x0) {\n            DAT_001cff8c = 0;\n            bfd_link_hash_traverse(DAT_001d0400,FUN_00055530,pcVar12);\n            if (DAT_001cff8c != 0) {\n              FUN_00056030();\n            }\n            goto LAB_00056fa8;\n          }\n          pcVar12 = (char *)xstrdup(pcVar12);\nLAB_00057061:\n          pcVar10 = strchr(pcVar12,0x40);\n          *pcVar10 = '\0';\n        }" if (parenthesized_expression "(*pcVar12 == '@')" ( (binary_expression "*pcVar12 == '@'" (pointer_expression "*pcVar12" * identifier) == (char_literal "'@'" ' character ')) )) (compound_statement "{\n          pcVar10 = strchr(pcVar12 + 1,0x40);\n          pcVar12 = (char *)xstrdup(pcVar12);\n          *pcVar12 = '_';\n          if (pcVar10 != (char *)0x0) goto LAB_00057061;\n        }" { (expression_statement "pcVar10 = strchr(pcVar12 + 1,0x40);" (assignment_expression "pcVar10 = strchr(pcVar12 + 1,0x40)" identifier = (call_expression "strchr(pcVar12 + 1,0x40)" identifier (argument_list "(pcVar12 + 1,0x40)" ( (binary_expression "pcVar12 + 1" identifier + number_literal) , number_literal )))) ;) (expression_statement "pcVar12 = (char *)xstrdup(pcVar12);" (assignment_expression "pcVar12 = (char *)xstrdup(pcVar12)" identifier = (cast_expression "(char *)xstrdup(pcVar12)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xstrdup(pcVar12)" identifier (argument_list "(pcVar12)" ( identifier ))))) ;) (expression_statement "*pcVar12 = '_';" (assignment_expression "*pcVar12 = '_'" (pointer_expression "*pcVar12" * identifier) = (char_literal "'_'" ' character ')) ;) (if_statement "if (pcVar10 != (char *)0x0) goto LAB_00057061;" if (parenthesized_expression "(pcVar10 != (char *)0x0)" ( (binary_expression "pcVar10 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00057061;" goto statement_identifier ;)) }) (else_clause "else {\n          pcVar10 = strchr(pcVar12,0x40);\n          if (pcVar10 == (char *)0x0) {\n            DAT_001cff8c = 0;\n            bfd_link_hash_traverse(DAT_001d0400,FUN_00055530,pcVar12);\n            if (DAT_001cff8c != 0) {\n              FUN_00056030();\n            }\n            goto LAB_00056fa8;\n          }\n          pcVar12 = (char *)xstrdup(pcVar12);\nLAB_00057061:\n          pcVar10 = strchr(pcVar12,0x40);\n          *pcVar10 = '\0';\n        }" else (compound_statement "{\n          pcVar10 = strchr(pcVar12,0x40);\n          if (pcVar10 == (char *)0x0) {\n            DAT_001cff8c = 0;\n            bfd_link_hash_traverse(DAT_001d0400,FUN_00055530,pcVar12);\n            if (DAT_001cff8c != 0) {\n              FUN_00056030();\n            }\n            goto LAB_00056fa8;\n          }\n          pcVar12 = (char *)xstrdup(pcVar12);\nLAB_00057061:\n          pcVar10 = strchr(pcVar12,0x40);\n          *pcVar10 = '\0';\n        }" { (expression_statement "pcVar10 = strchr(pcVar12,0x40);" (assignment_expression "pcVar10 = strchr(pcVar12,0x40)" identifier = (call_expression "strchr(pcVar12,0x40)" identifier (argument_list "(pcVar12,0x40)" ( identifier , number_literal )))) ;) (if_statement "if (pcVar10 == (char *)0x0) {\n            DAT_001cff8c = 0;\n            bfd_link_hash_traverse(DAT_001d0400,FUN_00055530,pcVar12);\n            if (DAT_001cff8c != 0) {\n              FUN_00056030();\n            }\n            goto LAB_00056fa8;\n          }" if (parenthesized_expression "(pcVar10 == (char *)0x0)" ( (binary_expression "pcVar10 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            DAT_001cff8c = 0;\n            bfd_link_hash_traverse(DAT_001d0400,FUN_00055530,pcVar12);\n            if (DAT_001cff8c != 0) {\n              FUN_00056030();\n            }\n            goto LAB_00056fa8;\n          }" { (expression_statement "DAT_001cff8c = 0;" (assignment_expression "DAT_001cff8c = 0" identifier = number_literal) ;) (expression_statement "bfd_link_hash_traverse(DAT_001d0400,FUN_00055530,pcVar12);" (call_expression "bfd_link_hash_traverse(DAT_001d0400,FUN_00055530,pcVar12)" identifier (argument_list "(DAT_001d0400,FUN_00055530,pcVar12)" ( identifier , identifier , identifier ))) ;) (if_statement "if (DAT_001cff8c != 0) {\n              FUN_00056030();\n            }" if (parenthesized_expression "(DAT_001cff8c != 0)" ( (binary_expression "DAT_001cff8c != 0" identifier != number_literal) )) (compound_statement "{\n              FUN_00056030();\n            }" { (expression_statement "FUN_00056030();" (call_expression "FUN_00056030()" identifier (argument_list "()" ( ))) ;) })) (goto_statement "goto LAB_00056fa8;" goto statement_identifier ;) })) (expression_statement "pcVar12 = (char *)xstrdup(pcVar12);" (assignment_expression "pcVar12 = (char *)xstrdup(pcVar12)" identifier = (cast_expression "(char *)xstrdup(pcVar12)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xstrdup(pcVar12)" identifier (argument_list "(pcVar12)" ( identifier ))))) ;) (labeled_statement "LAB_00057061:\n          pcVar10 = strchr(pcVar12,0x40);" statement_identifier : (expression_statement "pcVar10 = strchr(pcVar12,0x40);" (assignment_expression "pcVar10 = strchr(pcVar12,0x40)" identifier = (call_expression "strchr(pcVar12,0x40)" identifier (argument_list "(pcVar12,0x40)" ( identifier , number_literal )))) ;)) (expression_statement "*pcVar10 = '\0';" (assignment_expression "*pcVar10 = '\0'" (pointer_expression "*pcVar10" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) }))) (expression_statement "iVar17 = bfd_link_hash_lookup(DAT_001d0400,pcVar12,0,0,1);" (assignment_expression "iVar17 = bfd_link_hash_lookup(DAT_001d0400,pcVar12,0,0,1)" identifier = (call_expression "bfd_link_hash_lookup(DAT_001d0400,pcVar12,0,0,1)" identifier (argument_list "(DAT_001d0400,pcVar12,0,0,1)" ( identifier , identifier , number_literal , number_literal , number_literal )))) ;) (if_statement "if ((iVar17 != 0) && (*(char *)(iVar17 + 0xc) == '\x03')) {\n          FUN_00056030();\n        }" if (parenthesized_expression "((iVar17 != 0) && (*(char *)(iVar17 + 0xc) == '\x03'))" ( (binary_expression "(iVar17 != 0) && (*(char *)(iVar17 + 0xc) == '\x03')" (parenthesized_expression "(iVar17 != 0)" ( (binary_expression "iVar17 != 0" identifier != number_literal) )) && (parenthesized_expression "(*(char *)(iVar17 + 0xc) == '\x03')" ( (binary_expression "*(char *)(iVar17 + 0xc) == '\x03'" (pointer_expression "*(char *)(iVar17 + 0xc)" * (cast_expression "(char *)(iVar17 + 0xc)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0xc)" ( (binary_expression "iVar17 + 0xc" identifier + number_literal) )))) == (char_literal "'\x03'" ' escape_sequence ')) ))) )) (compound_statement "{\n          FUN_00056030();\n        }" { (expression_statement "FUN_00056030();" (call_expression "FUN_00056030()" identifier (argument_list "()" ( ))) ;) })) })) (labeled_statement "LAB_00056fa8:" statement_identifier : (expression_statement "" ;)) })) })) (if_statement "if ((DAT_001d03e0 & 3) != 2) {\n    FUN_00066ca0(DAT_001d0414,&DAT_001d03e0);\n  }" if (parenthesized_expression "((DAT_001d03e0 & 3) != 2)" ( (binary_expression "(DAT_001d03e0 & 3) != 2" (parenthesized_expression "(DAT_001d03e0 & 3)" ( (binary_expression "DAT_001d03e0 & 3" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n    FUN_00066ca0(DAT_001d0414,&DAT_001d03e0);\n  }" { (expression_statement "FUN_00066ca0(DAT_001d0414,&DAT_001d03e0);" (call_expression "FUN_00066ca0(DAT_001d0414,&DAT_001d03e0)" identifier (argument_list "(DAT_001d0414,&DAT_001d03e0)" ( identifier , (pointer_expression "&DAT_001d03e0" & identifier) ))) ;) })) (expression_statement "local_40 = DAT_001cf6bc;" (assignment_expression "local_40 = DAT_001cf6bc" identifier = identifier) ;) (if_statement "if (DAT_001cf6bc != 0) {\n    do {\n      iVar6 = *(int *)(local_40 + 0x10);\n      if ((*(int *)(iVar6 + 0x8c) != 0) &&\n         (local_38 = *(undefined4 **)(iVar6 + 0x60), local_38 != (undefined4 *)0x0)) {\n        iVar17 = 0;\n        bVar24 = true;\n        puVar7 = local_38;\n        bVar3 = 0;\n        bVar16 = false;\n        do {\n          bVar22 = false;\n          iVar15 = 9;\n          pbVar19 = (byte *)*puVar7;\n          pbVar21 = (byte *)".idata$2";\n          do {\n            if (iVar15 == 0) break;\n            iVar15 = iVar15 + -1;\n            bVar22 = *pbVar19 < *pbVar21;\n            bVar24 = *pbVar19 == *pbVar21;\n            pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n            pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n          } while (bVar24);\n          bVar23 = false;\n          bVar24 = (!bVar22 && !bVar24) == bVar22;\n          bVar22 = true;\n          if (!bVar24) {\n            bVar22 = bVar16;\n          }\n          iVar15 = 7;\n          pbVar19 = (byte *)*puVar7;\n          pbVar21 = (byte *)".idata$";\n          do {\n            if (iVar15 == 0) break;\n            iVar15 = iVar15 + -1;\n            bVar23 = *pbVar19 < *pbVar21;\n            bVar24 = *pbVar19 == *pbVar21;\n            pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n            pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n          } while (bVar24);\n          bVar5 = 1;\n          if ((!bVar23 && !bVar24) != bVar23) {\n            bVar5 = bVar3;\n          }\n          iVar17 = iVar17 + puVar7[0x19];\n          puVar7 = (undefined4 *)puVar7[3];\n          bVar24 = puVar7 == (undefined4 *)0x0;\n          bVar3 = bVar5;\n          bVar16 = bVar22;\n        } while (!bVar24);\n        if (((bool)(bVar5 & iVar17 != 0)) && (!bVar22)) {\n          while (iVar6 = bfd_get_reloc_upper_bound(iVar6,local_38), 0 < iVar6) {\n            iVar17 = bfd_generic_link_read_symbols(*(undefined4 *)(local_40 + 0x10));\n            local_4c = local_40;\n            if (iVar17 == 0) goto LAB_000570af;\n            uVar11 = *(undefined4 *)(*(int *)(local_40 + 0x10) + 0x78);\n            puVar7 = (undefined4 *)xmalloc(iVar6);\n            iVar6 = bfd_canonicalize_reloc(*(undefined4 *)(local_40 + 0x10),local_38,puVar7,uVar11);\n            if (iVar6 < 0) {\n              free(puVar7);\n              uVar11 = dcgettext(0,"%X%P: unable to process relocs: %E\n",5);\n              FUN_00034d20(uVar11);\n              return;\n            }\n            puVar18 = puVar7;\n            if (iVar6 != 0) {\n              do {\n                if ((((*(byte *)(**(int **)*puVar18 + 0x10) & 1) == 0) &&\n                    (iVar17 = bfd_link_hash_lookup\n                                        (DAT_001d0400,*(undefined4 *)(**(int **)*puVar18 + 4),0,0,1)\n                    , iVar17 != 0)) && (*(char *)(iVar17 + 0xc) == '\x03')) {\n                  puVar2 = *(undefined4 **)(*(int *)(iVar17 + 0x14) + 0xac);\n                  puVar8 = (undefined4 *)puVar2[0x23];\n                  if (puVar8 == (undefined4 *)0x0) {\n                    puVar8 = puVar2;\n                  }\n                  pcVar12 = (char *)*puVar8;\n                  iVar17 = filename_cmp(**(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c),pcVar12)\n                  ;\n                  if (iVar17 != 0) {\n                    sVar9 = strlen(pcVar12);\n                    pcVar10 = (char *)xmalloc(sVar9 + 1);\n                    strcpy(pcVar10,pcVar12);\n                    **(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c) = pcVar10;\n                  }\n                }\n                puVar18 = puVar18 + 1;\n              } while (puVar7 + iVar6 != puVar18);\n            }\n            free(puVar7);\n            local_38 = (undefined4 *)local_38[3];\n            if (local_38 == (undefined4 *)0x0) break;\n            iVar6 = *(int *)(local_40 + 0x10);\n          }\n        }\n      }\n      local_40 = *(int *)(local_40 + 0x18);\n    } while (local_40 != 0);\n    local_50 = DAT_001cf6bc;\n    if (DAT_001cf6bc != 0) {\n      bVar16 = false;\n      local_40 = 0;\n      do {\n        iVar6 = (*(undefined4 **)(local_50 + 0x10))[0x23];\n        if (iVar6 != 0) {\n          pcVar12 = strrchr((char *)**(undefined4 **)(local_50 + 0x10),0x2e);\n          iVar17 = local_50;\n          if (iVar6 == local_40) {\n            if (!bVar16) goto LAB_00056b08;\n          }\n          else {\n            while ((iVar15 = local_50, local_40 = iVar6, pcVar12 == (char *)0x0 ||\n                   (iVar13 = filename_cmp(pcVar12,".dll"), iVar13 != 0))) {\n              iVar17 = *(int *)(iVar17 + 0x18);\n              if (iVar17 == 0) {\n                local_50 = *(int *)(local_50 + 0x18);\n                bVar16 = false;\n                goto joined_r0x00056b15;\n              }\n              if (iVar6 != (*(undefined4 **)(iVar17 + 0x10))[0x23]) break;\n              pcVar12 = strrchr((char *)**(undefined4 **)(iVar17 + 0x10),0x2e);\n            }\n            do {\n              if (iVar6 != (*(undefined4 **)(iVar15 + 0x10))[0x23]) break;\n              pcVar12 = (char *)**(undefined4 **)(iVar15 + 0x10);\n              pcVar10 = strrchr(pcVar12,0x2e);\n              if (pcVar10 == (char *)0x0) {\nLAB_00056d20:\n                iVar13 = filename_cmp(**(undefined4 **)(iVar17 + 0x10),pcVar12);\n                if (iVar13 != 0) {\n                  bVar16 = false;\n                  goto LAB_00056b08;\n                }\n              }\n              else {\n                iVar13 = filename_cmp(pcVar10,&DAT_00192ed1);\n                if (iVar13 != 0) {\n                  pcVar12 = (char *)**(undefined4 **)(iVar15 + 0x10);\n                  goto LAB_00056d20;\n                }\n              }\n              piVar20 = (int *)(iVar15 + 0x18);\n              iVar15 = *piVar20;\n            } while (*piVar20 != 0);\n            pcVar12 = strrchr((char *)**(undefined4 **)(local_50 + 0x10),0x2e);\n          }\n          bVar16 = true;\n          iVar6 = filename_cmp(pcVar12,".dll");\n          if (iVar6 == 0) {\n            puVar7 = (undefined4 *)(*(undefined4 **)(local_50 + 0x10))[0x18];\n            if (puVar7 == (undefined4 *)0x0) {\n              iVar6 = 99;\n            }\n            else {\n              iVar17 = 0;\n              bVar24 = true;\n              bVar16 = false;\n              do {\n                bVar22 = false;\n                iVar6 = 9;\n                pbVar19 = (byte *)*puVar7;\n                pbVar21 = (byte *)".idata$2";\n                do {\n                  if (iVar6 == 0) break;\n                  iVar6 = iVar6 + -1;\n                  bVar22 = *pbVar19 < *pbVar21;\n                  bVar24 = *pbVar19 == *pbVar21;\n                  pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n                  pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n                } while (bVar24);\n                if ((!bVar22 && !bVar24) == bVar22) {\n                  bVar16 = true;\n                }\n                iVar17 = iVar17 + puVar7[0x19];\n                puVar7 = (undefined4 *)puVar7[3];\n                bVar24 = puVar7 == (undefined4 *)0x0;\n              } while (!bVar24);\n              iVar6 = 0x61;\n              if (!bVar16) {\n                iVar6 = (iVar17 < 1) + 0x62;\n              }\n            }\n            sVar9 = strlen((char *)**(undefined4 **)(local_50 + 0x10));\n            pcVar12 = (char *)xmalloc(sVar9 + 3);\n            sprintf(pcVar12,"%s.%c",**(undefined4 **)(local_50 + 0x10),iVar6);\n            **(undefined4 **)(local_50 + 0x10) = pcVar12;\n            sVar9 = strlen(*(char **)(local_50 + 8));\n            pcVar12 = (char *)xmalloc(sVar9 + 3);\n            sprintf(pcVar12,"%s.%c",*(undefined4 *)(local_50 + 8),iVar6);\n            *(char **)(local_50 + 8) = pcVar12;\n            bVar16 = true;\n          }\n        }\nLAB_00056b08:\n        local_50 = *(int *)(local_50 + 0x18);\njoined_r0x00056b15:\n      } while (local_50 != 0);\n      local_4c = DAT_001cf6bc;\n      if (DAT_001cf6bc != 0) {\n        do {\n          iVar6 = *(int *)(local_4c + 0x10);\n          if ((*(int *)(iVar6 + 0x8c) != 0) &&\n             (puVar7 = *(undefined4 **)(iVar6 + 0x60), puVar7 != (undefined4 *)0x0)) {\n            puVar18 = (undefined4 *)0x0;\n            bVar16 = false;\n            bVar24 = true;\n            do {\n              bVar22 = false;\n              iVar17 = 7;\n              pbVar19 = (byte *)*puVar7;\n              pbVar21 = (byte *)".idata$";\n              do {\n                if (iVar17 == 0) break;\n                iVar17 = iVar17 + -1;\n                bVar22 = *pbVar19 < *pbVar21;\n                bVar24 = *pbVar19 == *pbVar21;\n                pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n                pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n              } while (bVar24);\n              if ((!bVar22 && !bVar24) == bVar22) {\n                bVar16 = true;\n              }\n              if (((*(byte *)(puVar7 + 5) & 0x10) != 0) && (puVar7[0x19] != 0)) {\n                puVar18 = puVar7;\n              }\n              puVar7 = (undefined4 *)puVar7[3];\n              bVar24 = puVar7 == (undefined4 *)0x0;\n            } while (!bVar24);\n            if ((puVar18 != (undefined4 *)0x0) && (bVar16)) {\n              iVar6 = bfd_generic_link_read_symbols(iVar6);\n              if (iVar6 == 0) {\nLAB_000570af:\n                uVar11 = *(undefined4 *)(local_4c + 0x10);\n                uVar14 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n                FUN_00034d20(uVar14,uVar11);\n                return;\n              }\n              piVar20 = *(int **)(*(int *)(local_4c + 0x10) + 0x78);\n              iVar6 = *(int *)(*(int *)(local_4c + 0x10) + 0x7c);\n              if (0 < iVar6) {\n                piVar1 = piVar20 + iVar6;\n                do {\n                  if ((((*(int *)(*(int *)(*piVar20 + 0x14) + 4) == puVar18[1]) &&\n                       (iVar6 = bfd_link_hash_lookup\n                                          (DAT_001d0400,*(undefined4 *)(*piVar20 + 4),0,0,1),\n                       iVar6 != 0)) && (*(char *)(iVar6 + 0xc) == '\x03')) &&\n                     ((*(int *)(iVar6 + 0x10) == 0 && (*(int *)(DAT_001d0400 + 0x20) != iVar6)))) {\n                    puVar18[5] = puVar18[5] | 0x8000;\n                  }\n                  piVar20 = piVar20 + 1;\n                } while (piVar1 != piVar20);\n              }\n            }\n          }\n          local_4c = *(int *)(local_4c + 0x18);\n        } while (local_4c != 0);\n      }\n    }\n  }\n  return;\n}" if (parenthesized_expression "(DAT_001cf6bc != 0)" ( (binary_expression "DAT_001cf6bc != 0" identifier != number_literal) )) (compound_statement "{\n    do {\n      iVar6 = *(int *)(local_40 + 0x10);\n      if ((*(int *)(iVar6 + 0x8c) != 0) &&\n         (local_38 = *(undefined4 **)(iVar6 + 0x60), local_38 != (undefined4 *)0x0)) {\n        iVar17 = 0;\n        bVar24 = true;\n        puVar7 = local_38;\n        bVar3 = 0;\n        bVar16 = false;\n        do {\n          bVar22 = false;\n          iVar15 = 9;\n          pbVar19 = (byte *)*puVar7;\n          pbVar21 = (byte *)".idata$2";\n          do {\n            if (iVar15 == 0) break;\n            iVar15 = iVar15 + -1;\n            bVar22 = *pbVar19 < *pbVar21;\n            bVar24 = *pbVar19 == *pbVar21;\n            pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n            pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n          } while (bVar24);\n          bVar23 = false;\n          bVar24 = (!bVar22 && !bVar24) == bVar22;\n          bVar22 = true;\n          if (!bVar24) {\n            bVar22 = bVar16;\n          }\n          iVar15 = 7;\n          pbVar19 = (byte *)*puVar7;\n          pbVar21 = (byte *)".idata$";\n          do {\n            if (iVar15 == 0) break;\n            iVar15 = iVar15 + -1;\n            bVar23 = *pbVar19 < *pbVar21;\n            bVar24 = *pbVar19 == *pbVar21;\n            pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n            pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n          } while (bVar24);\n          bVar5 = 1;\n          if ((!bVar23 && !bVar24) != bVar23) {\n            bVar5 = bVar3;\n          }\n          iVar17 = iVar17 + puVar7[0x19];\n          puVar7 = (undefined4 *)puVar7[3];\n          bVar24 = puVar7 == (undefined4 *)0x0;\n          bVar3 = bVar5;\n          bVar16 = bVar22;\n        } while (!bVar24);\n        if (((bool)(bVar5 & iVar17 != 0)) && (!bVar22)) {\n          while (iVar6 = bfd_get_reloc_upper_bound(iVar6,local_38), 0 < iVar6) {\n            iVar17 = bfd_generic_link_read_symbols(*(undefined4 *)(local_40 + 0x10));\n            local_4c = local_40;\n            if (iVar17 == 0) goto LAB_000570af;\n            uVar11 = *(undefined4 *)(*(int *)(local_40 + 0x10) + 0x78);\n            puVar7 = (undefined4 *)xmalloc(iVar6);\n            iVar6 = bfd_canonicalize_reloc(*(undefined4 *)(local_40 + 0x10),local_38,puVar7,uVar11);\n            if (iVar6 < 0) {\n              free(puVar7);\n              uVar11 = dcgettext(0,"%X%P: unable to process relocs: %E\n",5);\n              FUN_00034d20(uVar11);\n              return;\n            }\n            puVar18 = puVar7;\n            if (iVar6 != 0) {\n              do {\n                if ((((*(byte *)(**(int **)*puVar18 + 0x10) & 1) == 0) &&\n                    (iVar17 = bfd_link_hash_lookup\n                                        (DAT_001d0400,*(undefined4 *)(**(int **)*puVar18 + 4),0,0,1)\n                    , iVar17 != 0)) && (*(char *)(iVar17 + 0xc) == '\x03')) {\n                  puVar2 = *(undefined4 **)(*(int *)(iVar17 + 0x14) + 0xac);\n                  puVar8 = (undefined4 *)puVar2[0x23];\n                  if (puVar8 == (undefined4 *)0x0) {\n                    puVar8 = puVar2;\n                  }\n                  pcVar12 = (char *)*puVar8;\n                  iVar17 = filename_cmp(**(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c),pcVar12)\n                  ;\n                  if (iVar17 != 0) {\n                    sVar9 = strlen(pcVar12);\n                    pcVar10 = (char *)xmalloc(sVar9 + 1);\n                    strcpy(pcVar10,pcVar12);\n                    **(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c) = pcVar10;\n                  }\n                }\n                puVar18 = puVar18 + 1;\n              } while (puVar7 + iVar6 != puVar18);\n            }\n            free(puVar7);\n            local_38 = (undefined4 *)local_38[3];\n            if (local_38 == (undefined4 *)0x0) break;\n            iVar6 = *(int *)(local_40 + 0x10);\n          }\n        }\n      }\n      local_40 = *(int *)(local_40 + 0x18);\n    } while (local_40 != 0);\n    local_50 = DAT_001cf6bc;\n    if (DAT_001cf6bc != 0) {\n      bVar16 = false;\n      local_40 = 0;\n      do {\n        iVar6 = (*(undefined4 **)(local_50 + 0x10))[0x23];\n        if (iVar6 != 0) {\n          pcVar12 = strrchr((char *)**(undefined4 **)(local_50 + 0x10),0x2e);\n          iVar17 = local_50;\n          if (iVar6 == local_40) {\n            if (!bVar16) goto LAB_00056b08;\n          }\n          else {\n            while ((iVar15 = local_50, local_40 = iVar6, pcVar12 == (char *)0x0 ||\n                   (iVar13 = filename_cmp(pcVar12,".dll"), iVar13 != 0))) {\n              iVar17 = *(int *)(iVar17 + 0x18);\n              if (iVar17 == 0) {\n                local_50 = *(int *)(local_50 + 0x18);\n                bVar16 = false;\n                goto joined_r0x00056b15;\n              }\n              if (iVar6 != (*(undefined4 **)(iVar17 + 0x10))[0x23]) break;\n              pcVar12 = strrchr((char *)**(undefined4 **)(iVar17 + 0x10),0x2e);\n            }\n            do {\n              if (iVar6 != (*(undefined4 **)(iVar15 + 0x10))[0x23]) break;\n              pcVar12 = (char *)**(undefined4 **)(iVar15 + 0x10);\n              pcVar10 = strrchr(pcVar12,0x2e);\n              if (pcVar10 == (char *)0x0) {\nLAB_00056d20:\n                iVar13 = filename_cmp(**(undefined4 **)(iVar17 + 0x10),pcVar12);\n                if (iVar13 != 0) {\n                  bVar16 = false;\n                  goto LAB_00056b08;\n                }\n              }\n              else {\n                iVar13 = filename_cmp(pcVar10,&DAT_00192ed1);\n                if (iVar13 != 0) {\n                  pcVar12 = (char *)**(undefined4 **)(iVar15 + 0x10);\n                  goto LAB_00056d20;\n                }\n              }\n              piVar20 = (int *)(iVar15 + 0x18);\n              iVar15 = *piVar20;\n            } while (*piVar20 != 0);\n            pcVar12 = strrchr((char *)**(undefined4 **)(local_50 + 0x10),0x2e);\n          }\n          bVar16 = true;\n          iVar6 = filename_cmp(pcVar12,".dll");\n          if (iVar6 == 0) {\n            puVar7 = (undefined4 *)(*(undefined4 **)(local_50 + 0x10))[0x18];\n            if (puVar7 == (undefined4 *)0x0) {\n              iVar6 = 99;\n            }\n            else {\n              iVar17 = 0;\n              bVar24 = true;\n              bVar16 = false;\n              do {\n                bVar22 = false;\n                iVar6 = 9;\n                pbVar19 = (byte *)*puVar7;\n                pbVar21 = (byte *)".idata$2";\n                do {\n                  if (iVar6 == 0) break;\n                  iVar6 = iVar6 + -1;\n                  bVar22 = *pbVar19 < *pbVar21;\n                  bVar24 = *pbVar19 == *pbVar21;\n                  pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n                  pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n                } while (bVar24);\n                if ((!bVar22 && !bVar24) == bVar22) {\n                  bVar16 = true;\n                }\n                iVar17 = iVar17 + puVar7[0x19];\n                puVar7 = (undefined4 *)puVar7[3];\n                bVar24 = puVar7 == (undefined4 *)0x0;\n              } while (!bVar24);\n              iVar6 = 0x61;\n              if (!bVar16) {\n                iVar6 = (iVar17 < 1) + 0x62;\n              }\n            }\n            sVar9 = strlen((char *)**(undefined4 **)(local_50 + 0x10));\n            pcVar12 = (char *)xmalloc(sVar9 + 3);\n            sprintf(pcVar12,"%s.%c",**(undefined4 **)(local_50 + 0x10),iVar6);\n            **(undefined4 **)(local_50 + 0x10) = pcVar12;\n            sVar9 = strlen(*(char **)(local_50 + 8));\n            pcVar12 = (char *)xmalloc(sVar9 + 3);\n            sprintf(pcVar12,"%s.%c",*(undefined4 *)(local_50 + 8),iVar6);\n            *(char **)(local_50 + 8) = pcVar12;\n            bVar16 = true;\n          }\n        }\nLAB_00056b08:\n        local_50 = *(int *)(local_50 + 0x18);\njoined_r0x00056b15:\n      } while (local_50 != 0);\n      local_4c = DAT_001cf6bc;\n      if (DAT_001cf6bc != 0) {\n        do {\n          iVar6 = *(int *)(local_4c + 0x10);\n          if ((*(int *)(iVar6 + 0x8c) != 0) &&\n             (puVar7 = *(undefined4 **)(iVar6 + 0x60), puVar7 != (undefined4 *)0x0)) {\n            puVar18 = (undefined4 *)0x0;\n            bVar16 = false;\n            bVar24 = true;\n            do {\n              bVar22 = false;\n              iVar17 = 7;\n              pbVar19 = (byte *)*puVar7;\n              pbVar21 = (byte *)".idata$";\n              do {\n                if (iVar17 == 0) break;\n                iVar17 = iVar17 + -1;\n                bVar22 = *pbVar19 < *pbVar21;\n                bVar24 = *pbVar19 == *pbVar21;\n                pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n                pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n              } while (bVar24);\n              if ((!bVar22 && !bVar24) == bVar22) {\n                bVar16 = true;\n              }\n              if (((*(byte *)(puVar7 + 5) & 0x10) != 0) && (puVar7[0x19] != 0)) {\n                puVar18 = puVar7;\n              }\n              puVar7 = (undefined4 *)puVar7[3];\n              bVar24 = puVar7 == (undefined4 *)0x0;\n            } while (!bVar24);\n            if ((puVar18 != (undefined4 *)0x0) && (bVar16)) {\n              iVar6 = bfd_generic_link_read_symbols(iVar6);\n              if (iVar6 == 0) {\nLAB_000570af:\n                uVar11 = *(undefined4 *)(local_4c + 0x10);\n                uVar14 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n                FUN_00034d20(uVar14,uVar11);\n                return;\n              }\n              piVar20 = *(int **)(*(int *)(local_4c + 0x10) + 0x78);\n              iVar6 = *(int *)(*(int *)(local_4c + 0x10) + 0x7c);\n              if (0 < iVar6) {\n                piVar1 = piVar20 + iVar6;\n                do {\n                  if ((((*(int *)(*(int *)(*piVar20 + 0x14) + 4) == puVar18[1]) &&\n                       (iVar6 = bfd_link_hash_lookup\n                                          (DAT_001d0400,*(undefined4 *)(*piVar20 + 4),0,0,1),\n                       iVar6 != 0)) && (*(char *)(iVar6 + 0xc) == '\x03')) &&\n                     ((*(int *)(iVar6 + 0x10) == 0 && (*(int *)(DAT_001d0400 + 0x20) != iVar6)))) {\n                    puVar18[5] = puVar18[5] | 0x8000;\n                  }\n                  piVar20 = piVar20 + 1;\n                } while (piVar1 != piVar20);\n              }\n            }\n          }\n          local_4c = *(int *)(local_4c + 0x18);\n        } while (local_4c != 0);\n      }\n    }\n  }\n  return;\n}" { (do_statement "do {\n      iVar6 = *(int *)(local_40 + 0x10);\n      if ((*(int *)(iVar6 + 0x8c) != 0) &&\n         (local_38 = *(undefined4 **)(iVar6 + 0x60), local_38 != (undefined4 *)0x0)) {\n        iVar17 = 0;\n        bVar24 = true;\n        puVar7 = local_38;\n        bVar3 = 0;\n        bVar16 = false;\n        do {\n          bVar22 = false;\n          iVar15 = 9;\n          pbVar19 = (byte *)*puVar7;\n          pbVar21 = (byte *)".idata$2";\n          do {\n            if (iVar15 == 0) break;\n            iVar15 = iVar15 + -1;\n            bVar22 = *pbVar19 < *pbVar21;\n            bVar24 = *pbVar19 == *pbVar21;\n            pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n            pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n          } while (bVar24);\n          bVar23 = false;\n          bVar24 = (!bVar22 && !bVar24) == bVar22;\n          bVar22 = true;\n          if (!bVar24) {\n            bVar22 = bVar16;\n          }\n          iVar15 = 7;\n          pbVar19 = (byte *)*puVar7;\n          pbVar21 = (byte *)".idata$";\n          do {\n            if (iVar15 == 0) break;\n            iVar15 = iVar15 + -1;\n            bVar23 = *pbVar19 < *pbVar21;\n            bVar24 = *pbVar19 == *pbVar21;\n            pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n            pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n          } while (bVar24);\n          bVar5 = 1;\n          if ((!bVar23 && !bVar24) != bVar23) {\n            bVar5 = bVar3;\n          }\n          iVar17 = iVar17 + puVar7[0x19];\n          puVar7 = (undefined4 *)puVar7[3];\n          bVar24 = puVar7 == (undefined4 *)0x0;\n          bVar3 = bVar5;\n          bVar16 = bVar22;\n        } while (!bVar24);\n        if (((bool)(bVar5 & iVar17 != 0)) && (!bVar22)) {\n          while (iVar6 = bfd_get_reloc_upper_bound(iVar6,local_38), 0 < iVar6) {\n            iVar17 = bfd_generic_link_read_symbols(*(undefined4 *)(local_40 + 0x10));\n            local_4c = local_40;\n            if (iVar17 == 0) goto LAB_000570af;\n            uVar11 = *(undefined4 *)(*(int *)(local_40 + 0x10) + 0x78);\n            puVar7 = (undefined4 *)xmalloc(iVar6);\n            iVar6 = bfd_canonicalize_reloc(*(undefined4 *)(local_40 + 0x10),local_38,puVar7,uVar11);\n            if (iVar6 < 0) {\n              free(puVar7);\n              uVar11 = dcgettext(0,"%X%P: unable to process relocs: %E\n",5);\n              FUN_00034d20(uVar11);\n              return;\n            }\n            puVar18 = puVar7;\n            if (iVar6 != 0) {\n              do {\n                if ((((*(byte *)(**(int **)*puVar18 + 0x10) & 1) == 0) &&\n                    (iVar17 = bfd_link_hash_lookup\n                                        (DAT_001d0400,*(undefined4 *)(**(int **)*puVar18 + 4),0,0,1)\n                    , iVar17 != 0)) && (*(char *)(iVar17 + 0xc) == '\x03')) {\n                  puVar2 = *(undefined4 **)(*(int *)(iVar17 + 0x14) + 0xac);\n                  puVar8 = (undefined4 *)puVar2[0x23];\n                  if (puVar8 == (undefined4 *)0x0) {\n                    puVar8 = puVar2;\n                  }\n                  pcVar12 = (char *)*puVar8;\n                  iVar17 = filename_cmp(**(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c),pcVar12)\n                  ;\n                  if (iVar17 != 0) {\n                    sVar9 = strlen(pcVar12);\n                    pcVar10 = (char *)xmalloc(sVar9 + 1);\n                    strcpy(pcVar10,pcVar12);\n                    **(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c) = pcVar10;\n                  }\n                }\n                puVar18 = puVar18 + 1;\n              } while (puVar7 + iVar6 != puVar18);\n            }\n            free(puVar7);\n            local_38 = (undefined4 *)local_38[3];\n            if (local_38 == (undefined4 *)0x0) break;\n            iVar6 = *(int *)(local_40 + 0x10);\n          }\n        }\n      }\n      local_40 = *(int *)(local_40 + 0x18);\n    } while (local_40 != 0);" do (compound_statement "{\n      iVar6 = *(int *)(local_40 + 0x10);\n      if ((*(int *)(iVar6 + 0x8c) != 0) &&\n         (local_38 = *(undefined4 **)(iVar6 + 0x60), local_38 != (undefined4 *)0x0)) {\n        iVar17 = 0;\n        bVar24 = true;\n        puVar7 = local_38;\n        bVar3 = 0;\n        bVar16 = false;\n        do {\n          bVar22 = false;\n          iVar15 = 9;\n          pbVar19 = (byte *)*puVar7;\n          pbVar21 = (byte *)".idata$2";\n          do {\n            if (iVar15 == 0) break;\n            iVar15 = iVar15 + -1;\n            bVar22 = *pbVar19 < *pbVar21;\n            bVar24 = *pbVar19 == *pbVar21;\n            pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n            pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n          } while (bVar24);\n          bVar23 = false;\n          bVar24 = (!bVar22 && !bVar24) == bVar22;\n          bVar22 = true;\n          if (!bVar24) {\n            bVar22 = bVar16;\n          }\n          iVar15 = 7;\n          pbVar19 = (byte *)*puVar7;\n          pbVar21 = (byte *)".idata$";\n          do {\n            if (iVar15 == 0) break;\n            iVar15 = iVar15 + -1;\n            bVar23 = *pbVar19 < *pbVar21;\n            bVar24 = *pbVar19 == *pbVar21;\n            pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n            pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n          } while (bVar24);\n          bVar5 = 1;\n          if ((!bVar23 && !bVar24) != bVar23) {\n            bVar5 = bVar3;\n          }\n          iVar17 = iVar17 + puVar7[0x19];\n          puVar7 = (undefined4 *)puVar7[3];\n          bVar24 = puVar7 == (undefined4 *)0x0;\n          bVar3 = bVar5;\n          bVar16 = bVar22;\n        } while (!bVar24);\n        if (((bool)(bVar5 & iVar17 != 0)) && (!bVar22)) {\n          while (iVar6 = bfd_get_reloc_upper_bound(iVar6,local_38), 0 < iVar6) {\n            iVar17 = bfd_generic_link_read_symbols(*(undefined4 *)(local_40 + 0x10));\n            local_4c = local_40;\n            if (iVar17 == 0) goto LAB_000570af;\n            uVar11 = *(undefined4 *)(*(int *)(local_40 + 0x10) + 0x78);\n            puVar7 = (undefined4 *)xmalloc(iVar6);\n            iVar6 = bfd_canonicalize_reloc(*(undefined4 *)(local_40 + 0x10),local_38,puVar7,uVar11);\n            if (iVar6 < 0) {\n              free(puVar7);\n              uVar11 = dcgettext(0,"%X%P: unable to process relocs: %E\n",5);\n              FUN_00034d20(uVar11);\n              return;\n            }\n            puVar18 = puVar7;\n            if (iVar6 != 0) {\n              do {\n                if ((((*(byte *)(**(int **)*puVar18 + 0x10) & 1) == 0) &&\n                    (iVar17 = bfd_link_hash_lookup\n                                        (DAT_001d0400,*(undefined4 *)(**(int **)*puVar18 + 4),0,0,1)\n                    , iVar17 != 0)) && (*(char *)(iVar17 + 0xc) == '\x03')) {\n                  puVar2 = *(undefined4 **)(*(int *)(iVar17 + 0x14) + 0xac);\n                  puVar8 = (undefined4 *)puVar2[0x23];\n                  if (puVar8 == (undefined4 *)0x0) {\n                    puVar8 = puVar2;\n                  }\n                  pcVar12 = (char *)*puVar8;\n                  iVar17 = filename_cmp(**(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c),pcVar12)\n                  ;\n                  if (iVar17 != 0) {\n                    sVar9 = strlen(pcVar12);\n                    pcVar10 = (char *)xmalloc(sVar9 + 1);\n                    strcpy(pcVar10,pcVar12);\n                    **(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c) = pcVar10;\n                  }\n                }\n                puVar18 = puVar18 + 1;\n              } while (puVar7 + iVar6 != puVar18);\n            }\n            free(puVar7);\n            local_38 = (undefined4 *)local_38[3];\n            if (local_38 == (undefined4 *)0x0) break;\n            iVar6 = *(int *)(local_40 + 0x10);\n          }\n        }\n      }\n      local_40 = *(int *)(local_40 + 0x18);\n    }" { (expression_statement "iVar6 = *(int *)(local_40 + 0x10);" (assignment_expression "iVar6 = *(int *)(local_40 + 0x10)" identifier = (pointer_expression "*(int *)(local_40 + 0x10)" * (cast_expression "(int *)(local_40 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_40 + 0x10)" ( (binary_expression "local_40 + 0x10" identifier + number_literal) ))))) ;) (if_statement "if ((*(int *)(iVar6 + 0x8c) != 0) &&\n         (local_38 = *(undefined4 **)(iVar6 + 0x60), local_38 != (undefined4 *)0x0)) {\n        iVar17 = 0;\n        bVar24 = true;\n        puVar7 = local_38;\n        bVar3 = 0;\n        bVar16 = false;\n        do {\n          bVar22 = false;\n          iVar15 = 9;\n          pbVar19 = (byte *)*puVar7;\n          pbVar21 = (byte *)".idata$2";\n          do {\n            if (iVar15 == 0) break;\n            iVar15 = iVar15 + -1;\n            bVar22 = *pbVar19 < *pbVar21;\n            bVar24 = *pbVar19 == *pbVar21;\n            pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n            pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n          } while (bVar24);\n          bVar23 = false;\n          bVar24 = (!bVar22 && !bVar24) == bVar22;\n          bVar22 = true;\n          if (!bVar24) {\n            bVar22 = bVar16;\n          }\n          iVar15 = 7;\n          pbVar19 = (byte *)*puVar7;\n          pbVar21 = (byte *)".idata$";\n          do {\n            if (iVar15 == 0) break;\n            iVar15 = iVar15 + -1;\n            bVar23 = *pbVar19 < *pbVar21;\n            bVar24 = *pbVar19 == *pbVar21;\n            pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n            pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n          } while (bVar24);\n          bVar5 = 1;\n          if ((!bVar23 && !bVar24) != bVar23) {\n            bVar5 = bVar3;\n          }\n          iVar17 = iVar17 + puVar7[0x19];\n          puVar7 = (undefined4 *)puVar7[3];\n          bVar24 = puVar7 == (undefined4 *)0x0;\n          bVar3 = bVar5;\n          bVar16 = bVar22;\n        } while (!bVar24);\n        if (((bool)(bVar5 & iVar17 != 0)) && (!bVar22)) {\n          while (iVar6 = bfd_get_reloc_upper_bound(iVar6,local_38), 0 < iVar6) {\n            iVar17 = bfd_generic_link_read_symbols(*(undefined4 *)(local_40 + 0x10));\n            local_4c = local_40;\n            if (iVar17 == 0) goto LAB_000570af;\n            uVar11 = *(undefined4 *)(*(int *)(local_40 + 0x10) + 0x78);\n            puVar7 = (undefined4 *)xmalloc(iVar6);\n            iVar6 = bfd_canonicalize_reloc(*(undefined4 *)(local_40 + 0x10),local_38,puVar7,uVar11);\n            if (iVar6 < 0) {\n              free(puVar7);\n              uVar11 = dcgettext(0,"%X%P: unable to process relocs: %E\n",5);\n              FUN_00034d20(uVar11);\n              return;\n            }\n            puVar18 = puVar7;\n            if (iVar6 != 0) {\n              do {\n                if ((((*(byte *)(**(int **)*puVar18 + 0x10) & 1) == 0) &&\n                    (iVar17 = bfd_link_hash_lookup\n                                        (DAT_001d0400,*(undefined4 *)(**(int **)*puVar18 + 4),0,0,1)\n                    , iVar17 != 0)) && (*(char *)(iVar17 + 0xc) == '\x03')) {\n                  puVar2 = *(undefined4 **)(*(int *)(iVar17 + 0x14) + 0xac);\n                  puVar8 = (undefined4 *)puVar2[0x23];\n                  if (puVar8 == (undefined4 *)0x0) {\n                    puVar8 = puVar2;\n                  }\n                  pcVar12 = (char *)*puVar8;\n                  iVar17 = filename_cmp(**(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c),pcVar12)\n                  ;\n                  if (iVar17 != 0) {\n                    sVar9 = strlen(pcVar12);\n                    pcVar10 = (char *)xmalloc(sVar9 + 1);\n                    strcpy(pcVar10,pcVar12);\n                    **(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c) = pcVar10;\n                  }\n                }\n                puVar18 = puVar18 + 1;\n              } while (puVar7 + iVar6 != puVar18);\n            }\n            free(puVar7);\n            local_38 = (undefined4 *)local_38[3];\n            if (local_38 == (undefined4 *)0x0) break;\n            iVar6 = *(int *)(local_40 + 0x10);\n          }\n        }\n      }" if (parenthesized_expression "((*(int *)(iVar6 + 0x8c) != 0) &&\n         (local_38 = *(undefined4 **)(iVar6 + 0x60), local_38 != (undefined4 *)0x0))" ( (binary_expression "(*(int *)(iVar6 + 0x8c) != 0) &&\n         (local_38 = *(undefined4 **)(iVar6 + 0x60), local_38 != (undefined4 *)0x0)" (parenthesized_expression "(*(int *)(iVar6 + 0x8c) != 0)" ( (binary_expression "*(int *)(iVar6 + 0x8c) != 0" (pointer_expression "*(int *)(iVar6 + 0x8c)" * (cast_expression "(int *)(iVar6 + 0x8c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x8c)" ( (binary_expression "iVar6 + 0x8c" identifier + number_literal) )))) != number_literal) )) && (parenthesized_expression "(local_38 = *(undefined4 **)(iVar6 + 0x60), local_38 != (undefined4 *)0x0)" ( (comma_expression "local_38 = *(undefined4 **)(iVar6 + 0x60), local_38 != (undefined4 *)0x0" (assignment_expression "local_38 = *(undefined4 **)(iVar6 + 0x60)" identifier = (pointer_expression "*(undefined4 **)(iVar6 + 0x60)" * (cast_expression "(undefined4 **)(iVar6 + 0x60)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar6 + 0x60)" ( (binary_expression "iVar6 + 0x60" identifier + number_literal) ))))) , (binary_expression "local_38 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n        iVar17 = 0;\n        bVar24 = true;\n        puVar7 = local_38;\n        bVar3 = 0;\n        bVar16 = false;\n        do {\n          bVar22 = false;\n          iVar15 = 9;\n          pbVar19 = (byte *)*puVar7;\n          pbVar21 = (byte *)".idata$2";\n          do {\n            if (iVar15 == 0) break;\n            iVar15 = iVar15 + -1;\n            bVar22 = *pbVar19 < *pbVar21;\n            bVar24 = *pbVar19 == *pbVar21;\n            pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n            pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n          } while (bVar24);\n          bVar23 = false;\n          bVar24 = (!bVar22 && !bVar24) == bVar22;\n          bVar22 = true;\n          if (!bVar24) {\n            bVar22 = bVar16;\n          }\n          iVar15 = 7;\n          pbVar19 = (byte *)*puVar7;\n          pbVar21 = (byte *)".idata$";\n          do {\n            if (iVar15 == 0) break;\n            iVar15 = iVar15 + -1;\n            bVar23 = *pbVar19 < *pbVar21;\n            bVar24 = *pbVar19 == *pbVar21;\n            pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n            pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n          } while (bVar24);\n          bVar5 = 1;\n          if ((!bVar23 && !bVar24) != bVar23) {\n            bVar5 = bVar3;\n          }\n          iVar17 = iVar17 + puVar7[0x19];\n          puVar7 = (undefined4 *)puVar7[3];\n          bVar24 = puVar7 == (undefined4 *)0x0;\n          bVar3 = bVar5;\n          bVar16 = bVar22;\n        } while (!bVar24);\n        if (((bool)(bVar5 & iVar17 != 0)) && (!bVar22)) {\n          while (iVar6 = bfd_get_reloc_upper_bound(iVar6,local_38), 0 < iVar6) {\n            iVar17 = bfd_generic_link_read_symbols(*(undefined4 *)(local_40 + 0x10));\n            local_4c = local_40;\n            if (iVar17 == 0) goto LAB_000570af;\n            uVar11 = *(undefined4 *)(*(int *)(local_40 + 0x10) + 0x78);\n            puVar7 = (undefined4 *)xmalloc(iVar6);\n            iVar6 = bfd_canonicalize_reloc(*(undefined4 *)(local_40 + 0x10),local_38,puVar7,uVar11);\n            if (iVar6 < 0) {\n              free(puVar7);\n              uVar11 = dcgettext(0,"%X%P: unable to process relocs: %E\n",5);\n              FUN_00034d20(uVar11);\n              return;\n            }\n            puVar18 = puVar7;\n            if (iVar6 != 0) {\n              do {\n                if ((((*(byte *)(**(int **)*puVar18 + 0x10) & 1) == 0) &&\n                    (iVar17 = bfd_link_hash_lookup\n                                        (DAT_001d0400,*(undefined4 *)(**(int **)*puVar18 + 4),0,0,1)\n                    , iVar17 != 0)) && (*(char *)(iVar17 + 0xc) == '\x03')) {\n                  puVar2 = *(undefined4 **)(*(int *)(iVar17 + 0x14) + 0xac);\n                  puVar8 = (undefined4 *)puVar2[0x23];\n                  if (puVar8 == (undefined4 *)0x0) {\n                    puVar8 = puVar2;\n                  }\n                  pcVar12 = (char *)*puVar8;\n                  iVar17 = filename_cmp(**(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c),pcVar12)\n                  ;\n                  if (iVar17 != 0) {\n                    sVar9 = strlen(pcVar12);\n                    pcVar10 = (char *)xmalloc(sVar9 + 1);\n                    strcpy(pcVar10,pcVar12);\n                    **(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c) = pcVar10;\n                  }\n                }\n                puVar18 = puVar18 + 1;\n              } while (puVar7 + iVar6 != puVar18);\n            }\n            free(puVar7);\n            local_38 = (undefined4 *)local_38[3];\n            if (local_38 == (undefined4 *)0x0) break;\n            iVar6 = *(int *)(local_40 + 0x10);\n          }\n        }\n      }" { (expression_statement "iVar17 = 0;" (assignment_expression "iVar17 = 0" identifier = number_literal) ;) (expression_statement "bVar24 = true;" (assignment_expression "bVar24 = true" identifier = true) ;) (expression_statement "puVar7 = local_38;" (assignment_expression "puVar7 = local_38" identifier = identifier) ;) (expression_statement "bVar3 = 0;" (assignment_expression "bVar3 = 0" identifier = number_literal) ;) (expression_statement "bVar16 = false;" (assignment_expression "bVar16 = false" identifier = false) ;) (do_statement "do {\n          bVar22 = false;\n          iVar15 = 9;\n          pbVar19 = (byte *)*puVar7;\n          pbVar21 = (byte *)".idata$2";\n          do {\n            if (iVar15 == 0) break;\n            iVar15 = iVar15 + -1;\n            bVar22 = *pbVar19 < *pbVar21;\n            bVar24 = *pbVar19 == *pbVar21;\n            pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n            pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n          } while (bVar24);\n          bVar23 = false;\n          bVar24 = (!bVar22 && !bVar24) == bVar22;\n          bVar22 = true;\n          if (!bVar24) {\n            bVar22 = bVar16;\n          }\n          iVar15 = 7;\n          pbVar19 = (byte *)*puVar7;\n          pbVar21 = (byte *)".idata$";\n          do {\n            if (iVar15 == 0) break;\n            iVar15 = iVar15 + -1;\n            bVar23 = *pbVar19 < *pbVar21;\n            bVar24 = *pbVar19 == *pbVar21;\n            pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n            pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n          } while (bVar24);\n          bVar5 = 1;\n          if ((!bVar23 && !bVar24) != bVar23) {\n            bVar5 = bVar3;\n          }\n          iVar17 = iVar17 + puVar7[0x19];\n          puVar7 = (undefined4 *)puVar7[3];\n          bVar24 = puVar7 == (undefined4 *)0x0;\n          bVar3 = bVar5;\n          bVar16 = bVar22;\n        } while (!bVar24);" do (compound_statement "{\n          bVar22 = false;\n          iVar15 = 9;\n          pbVar19 = (byte *)*puVar7;\n          pbVar21 = (byte *)".idata$2";\n          do {\n            if (iVar15 == 0) break;\n            iVar15 = iVar15 + -1;\n            bVar22 = *pbVar19 < *pbVar21;\n            bVar24 = *pbVar19 == *pbVar21;\n            pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n            pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n          } while (bVar24);\n          bVar23 = false;\n          bVar24 = (!bVar22 && !bVar24) == bVar22;\n          bVar22 = true;\n          if (!bVar24) {\n            bVar22 = bVar16;\n          }\n          iVar15 = 7;\n          pbVar19 = (byte *)*puVar7;\n          pbVar21 = (byte *)".idata$";\n          do {\n            if (iVar15 == 0) break;\n            iVar15 = iVar15 + -1;\n            bVar23 = *pbVar19 < *pbVar21;\n            bVar24 = *pbVar19 == *pbVar21;\n            pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n            pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n          } while (bVar24);\n          bVar5 = 1;\n          if ((!bVar23 && !bVar24) != bVar23) {\n            bVar5 = bVar3;\n          }\n          iVar17 = iVar17 + puVar7[0x19];\n          puVar7 = (undefined4 *)puVar7[3];\n          bVar24 = puVar7 == (undefined4 *)0x0;\n          bVar3 = bVar5;\n          bVar16 = bVar22;\n        }" { (expression_statement "bVar22 = false;" (assignment_expression "bVar22 = false" identifier = false) ;) (expression_statement "iVar15 = 9;" (assignment_expression "iVar15 = 9" identifier = number_literal) ;) (expression_statement "pbVar19 = (byte *)*puVar7;" (assignment_expression "pbVar19 = (byte *)*puVar7" identifier = (cast_expression "(byte *)*puVar7" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar7" * identifier))) ;) (expression_statement "pbVar21 = (byte *)".idata$2";" (assignment_expression "pbVar21 = (byte *)".idata$2"" identifier = (cast_expression "(byte *)".idata$2"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".idata$2"" " string_content "))) ;) (do_statement "do {\n            if (iVar15 == 0) break;\n            iVar15 = iVar15 + -1;\n            bVar22 = *pbVar19 < *pbVar21;\n            bVar24 = *pbVar19 == *pbVar21;\n            pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n            pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n          } while (bVar24);" do (compound_statement "{\n            if (iVar15 == 0) break;\n            iVar15 = iVar15 + -1;\n            bVar22 = *pbVar19 < *pbVar21;\n            bVar24 = *pbVar19 == *pbVar21;\n            pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n            pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n          }" { (if_statement "if (iVar15 == 0) break;" if (parenthesized_expression "(iVar15 == 0)" ( (binary_expression "iVar15 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar15 = iVar15 + -1;" (assignment_expression "iVar15 = iVar15 + -1" identifier = (binary_expression "iVar15 + -1" identifier + number_literal)) ;) (expression_statement "bVar22 = *pbVar19 < *pbVar21;" (assignment_expression "bVar22 = *pbVar19 < *pbVar21" identifier = (binary_expression "*pbVar19 < *pbVar21" (pointer_expression "*pbVar19" * identifier) < (pointer_expression "*pbVar21" * identifier))) ;) (expression_statement "bVar24 = *pbVar19 == *pbVar21;" (assignment_expression "bVar24 = *pbVar19 == *pbVar21" identifier = (binary_expression "*pbVar19 == *pbVar21" (pointer_expression "*pbVar19" * identifier) == (pointer_expression "*pbVar21" * identifier))) ;) (expression_statement "pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pbVar19 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar19 + (uint)bVar25 * -2" identifier + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pbVar21 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar21 + (uint)bVar25 * -2" identifier + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar24)" ( identifier )) ;) (expression_statement "bVar23 = false;" (assignment_expression "bVar23 = false" identifier = false) ;) (expression_statement "bVar24 = (!bVar22 && !bVar24) == bVar22;" (assignment_expression "bVar24 = (!bVar22 && !bVar24) == bVar22" identifier = (binary_expression "(!bVar22 && !bVar24) == bVar22" (parenthesized_expression "(!bVar22 && !bVar24)" ( (binary_expression "!bVar22 && !bVar24" (unary_expression "!bVar22" ! identifier) && (unary_expression "!bVar24" ! identifier)) )) == identifier)) ;) (expression_statement "bVar22 = true;" (assignment_expression "bVar22 = true" identifier = true) ;) (if_statement "if (!bVar24) {\n            bVar22 = bVar16;\n          }" if (parenthesized_expression "(!bVar24)" ( (unary_expression "!bVar24" ! identifier) )) (compound_statement "{\n            bVar22 = bVar16;\n          }" { (expression_statement "bVar22 = bVar16;" (assignment_expression "bVar22 = bVar16" identifier = identifier) ;) })) (expression_statement "iVar15 = 7;" (assignment_expression "iVar15 = 7" identifier = number_literal) ;) (expression_statement "pbVar19 = (byte *)*puVar7;" (assignment_expression "pbVar19 = (byte *)*puVar7" identifier = (cast_expression "(byte *)*puVar7" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar7" * identifier))) ;) (expression_statement "pbVar21 = (byte *)".idata$";" (assignment_expression "pbVar21 = (byte *)".idata$"" identifier = (cast_expression "(byte *)".idata$"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".idata$"" " string_content "))) ;) (do_statement "do {\n            if (iVar15 == 0) break;\n            iVar15 = iVar15 + -1;\n            bVar23 = *pbVar19 < *pbVar21;\n            bVar24 = *pbVar19 == *pbVar21;\n            pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n            pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n          } while (bVar24);" do (compound_statement "{\n            if (iVar15 == 0) break;\n            iVar15 = iVar15 + -1;\n            bVar23 = *pbVar19 < *pbVar21;\n            bVar24 = *pbVar19 == *pbVar21;\n            pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n            pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n          }" { (if_statement "if (iVar15 == 0) break;" if (parenthesized_expression "(iVar15 == 0)" ( (binary_expression "iVar15 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar15 = iVar15 + -1;" (assignment_expression "iVar15 = iVar15 + -1" identifier = (binary_expression "iVar15 + -1" identifier + number_literal)) ;) (expression_statement "bVar23 = *pbVar19 < *pbVar21;" (assignment_expression "bVar23 = *pbVar19 < *pbVar21" identifier = (binary_expression "*pbVar19 < *pbVar21" (pointer_expression "*pbVar19" * identifier) < (pointer_expression "*pbVar21" * identifier))) ;) (expression_statement "bVar24 = *pbVar19 == *pbVar21;" (assignment_expression "bVar24 = *pbVar19 == *pbVar21" identifier = (binary_expression "*pbVar19 == *pbVar21" (pointer_expression "*pbVar19" * identifier) == (pointer_expression "*pbVar21" * identifier))) ;) (expression_statement "pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pbVar19 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar19 + (uint)bVar25 * -2" identifier + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pbVar21 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar21 + (uint)bVar25 * -2" identifier + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar24)" ( identifier )) ;) (expression_statement "bVar5 = 1;" (assignment_expression "bVar5 = 1" identifier = number_literal) ;) (if_statement "if ((!bVar23 && !bVar24) != bVar23) {\n            bVar5 = bVar3;\n          }" if (parenthesized_expression "((!bVar23 && !bVar24) != bVar23)" ( (binary_expression "(!bVar23 && !bVar24) != bVar23" (parenthesized_expression "(!bVar23 && !bVar24)" ( (binary_expression "!bVar23 && !bVar24" (unary_expression "!bVar23" ! identifier) && (unary_expression "!bVar24" ! identifier)) )) != identifier) )) (compound_statement "{\n            bVar5 = bVar3;\n          }" { (expression_statement "bVar5 = bVar3;" (assignment_expression "bVar5 = bVar3" identifier = identifier) ;) })) (expression_statement "iVar17 = iVar17 + puVar7[0x19];" (assignment_expression "iVar17 = iVar17 + puVar7[0x19]" identifier = (binary_expression "iVar17 + puVar7[0x19]" identifier + (subscript_expression "puVar7[0x19]" identifier [ number_literal ]))) ;) (expression_statement "puVar7 = (undefined4 *)puVar7[3];" (assignment_expression "puVar7 = (undefined4 *)puVar7[3]" identifier = (cast_expression "(undefined4 *)puVar7[3]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar7[3]" identifier [ number_literal ]))) ;) (expression_statement "bVar24 = puVar7 == (undefined4 *)0x0;" (assignment_expression "bVar24 = puVar7 == (undefined4 *)0x0" identifier = (binary_expression "puVar7 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "bVar3 = bVar5;" (assignment_expression "bVar3 = bVar5" identifier = identifier) ;) (expression_statement "bVar16 = bVar22;" (assignment_expression "bVar16 = bVar22" identifier = identifier) ;) }) while (parenthesized_expression "(!bVar24)" ( (unary_expression "!bVar24" ! identifier) )) ;) (if_statement "if (((bool)(bVar5 & iVar17 != 0)) && (!bVar22)) {\n          while (iVar6 = bfd_get_reloc_upper_bound(iVar6,local_38), 0 < iVar6) {\n            iVar17 = bfd_generic_link_read_symbols(*(undefined4 *)(local_40 + 0x10));\n            local_4c = local_40;\n            if (iVar17 == 0) goto LAB_000570af;\n            uVar11 = *(undefined4 *)(*(int *)(local_40 + 0x10) + 0x78);\n            puVar7 = (undefined4 *)xmalloc(iVar6);\n            iVar6 = bfd_canonicalize_reloc(*(undefined4 *)(local_40 + 0x10),local_38,puVar7,uVar11);\n            if (iVar6 < 0) {\n              free(puVar7);\n              uVar11 = dcgettext(0,"%X%P: unable to process relocs: %E\n",5);\n              FUN_00034d20(uVar11);\n              return;\n            }\n            puVar18 = puVar7;\n            if (iVar6 != 0) {\n              do {\n                if ((((*(byte *)(**(int **)*puVar18 + 0x10) & 1) == 0) &&\n                    (iVar17 = bfd_link_hash_lookup\n                                        (DAT_001d0400,*(undefined4 *)(**(int **)*puVar18 + 4),0,0,1)\n                    , iVar17 != 0)) && (*(char *)(iVar17 + 0xc) == '\x03')) {\n                  puVar2 = *(undefined4 **)(*(int *)(iVar17 + 0x14) + 0xac);\n                  puVar8 = (undefined4 *)puVar2[0x23];\n                  if (puVar8 == (undefined4 *)0x0) {\n                    puVar8 = puVar2;\n                  }\n                  pcVar12 = (char *)*puVar8;\n                  iVar17 = filename_cmp(**(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c),pcVar12)\n                  ;\n                  if (iVar17 != 0) {\n                    sVar9 = strlen(pcVar12);\n                    pcVar10 = (char *)xmalloc(sVar9 + 1);\n                    strcpy(pcVar10,pcVar12);\n                    **(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c) = pcVar10;\n                  }\n                }\n                puVar18 = puVar18 + 1;\n              } while (puVar7 + iVar6 != puVar18);\n            }\n            free(puVar7);\n            local_38 = (undefined4 *)local_38[3];\n            if (local_38 == (undefined4 *)0x0) break;\n            iVar6 = *(int *)(local_40 + 0x10);\n          }\n        }" if (parenthesized_expression "(((bool)(bVar5 & iVar17 != 0)) && (!bVar22))" ( (binary_expression "((bool)(bVar5 & iVar17 != 0)) && (!bVar22)" (parenthesized_expression "((bool)(bVar5 & iVar17 != 0))" ( (cast_expression "(bool)(bVar5 & iVar17 != 0)" ( (type_descriptor "bool" primitive_type) ) (parenthesized_expression "(bVar5 & iVar17 != 0)" ( (binary_expression "bVar5 & iVar17 != 0" identifier & (binary_expression "iVar17 != 0" identifier != number_literal)) ))) )) && (parenthesized_expression "(!bVar22)" ( (unary_expression "!bVar22" ! identifier) ))) )) (compound_statement "{\n          while (iVar6 = bfd_get_reloc_upper_bound(iVar6,local_38), 0 < iVar6) {\n            iVar17 = bfd_generic_link_read_symbols(*(undefined4 *)(local_40 + 0x10));\n            local_4c = local_40;\n            if (iVar17 == 0) goto LAB_000570af;\n            uVar11 = *(undefined4 *)(*(int *)(local_40 + 0x10) + 0x78);\n            puVar7 = (undefined4 *)xmalloc(iVar6);\n            iVar6 = bfd_canonicalize_reloc(*(undefined4 *)(local_40 + 0x10),local_38,puVar7,uVar11);\n            if (iVar6 < 0) {\n              free(puVar7);\n              uVar11 = dcgettext(0,"%X%P: unable to process relocs: %E\n",5);\n              FUN_00034d20(uVar11);\n              return;\n            }\n            puVar18 = puVar7;\n            if (iVar6 != 0) {\n              do {\n                if ((((*(byte *)(**(int **)*puVar18 + 0x10) & 1) == 0) &&\n                    (iVar17 = bfd_link_hash_lookup\n                                        (DAT_001d0400,*(undefined4 *)(**(int **)*puVar18 + 4),0,0,1)\n                    , iVar17 != 0)) && (*(char *)(iVar17 + 0xc) == '\x03')) {\n                  puVar2 = *(undefined4 **)(*(int *)(iVar17 + 0x14) + 0xac);\n                  puVar8 = (undefined4 *)puVar2[0x23];\n                  if (puVar8 == (undefined4 *)0x0) {\n                    puVar8 = puVar2;\n                  }\n                  pcVar12 = (char *)*puVar8;\n                  iVar17 = filename_cmp(**(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c),pcVar12)\n                  ;\n                  if (iVar17 != 0) {\n                    sVar9 = strlen(pcVar12);\n                    pcVar10 = (char *)xmalloc(sVar9 + 1);\n                    strcpy(pcVar10,pcVar12);\n                    **(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c) = pcVar10;\n                  }\n                }\n                puVar18 = puVar18 + 1;\n              } while (puVar7 + iVar6 != puVar18);\n            }\n            free(puVar7);\n            local_38 = (undefined4 *)local_38[3];\n            if (local_38 == (undefined4 *)0x0) break;\n            iVar6 = *(int *)(local_40 + 0x10);\n          }\n        }" { (while_statement "while (iVar6 = bfd_get_reloc_upper_bound(iVar6,local_38), 0 < iVar6) {\n            iVar17 = bfd_generic_link_read_symbols(*(undefined4 *)(local_40 + 0x10));\n            local_4c = local_40;\n            if (iVar17 == 0) goto LAB_000570af;\n            uVar11 = *(undefined4 *)(*(int *)(local_40 + 0x10) + 0x78);\n            puVar7 = (undefined4 *)xmalloc(iVar6);\n            iVar6 = bfd_canonicalize_reloc(*(undefined4 *)(local_40 + 0x10),local_38,puVar7,uVar11);\n            if (iVar6 < 0) {\n              free(puVar7);\n              uVar11 = dcgettext(0,"%X%P: unable to process relocs: %E\n",5);\n              FUN_00034d20(uVar11);\n              return;\n            }\n            puVar18 = puVar7;\n            if (iVar6 != 0) {\n              do {\n                if ((((*(byte *)(**(int **)*puVar18 + 0x10) & 1) == 0) &&\n                    (iVar17 = bfd_link_hash_lookup\n                                        (DAT_001d0400,*(undefined4 *)(**(int **)*puVar18 + 4),0,0,1)\n                    , iVar17 != 0)) && (*(char *)(iVar17 + 0xc) == '\x03')) {\n                  puVar2 = *(undefined4 **)(*(int *)(iVar17 + 0x14) + 0xac);\n                  puVar8 = (undefined4 *)puVar2[0x23];\n                  if (puVar8 == (undefined4 *)0x0) {\n                    puVar8 = puVar2;\n                  }\n                  pcVar12 = (char *)*puVar8;\n                  iVar17 = filename_cmp(**(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c),pcVar12)\n                  ;\n                  if (iVar17 != 0) {\n                    sVar9 = strlen(pcVar12);\n                    pcVar10 = (char *)xmalloc(sVar9 + 1);\n                    strcpy(pcVar10,pcVar12);\n                    **(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c) = pcVar10;\n                  }\n                }\n                puVar18 = puVar18 + 1;\n              } while (puVar7 + iVar6 != puVar18);\n            }\n            free(puVar7);\n            local_38 = (undefined4 *)local_38[3];\n            if (local_38 == (undefined4 *)0x0) break;\n            iVar6 = *(int *)(local_40 + 0x10);\n          }" while (parenthesized_expression "(iVar6 = bfd_get_reloc_upper_bound(iVar6,local_38), 0 < iVar6)" ( (comma_expression "iVar6 = bfd_get_reloc_upper_bound(iVar6,local_38), 0 < iVar6" (assignment_expression "iVar6 = bfd_get_reloc_upper_bound(iVar6,local_38)" identifier = (call_expression "bfd_get_reloc_upper_bound(iVar6,local_38)" identifier (argument_list "(iVar6,local_38)" ( identifier , identifier )))) , (binary_expression "0 < iVar6" number_literal < identifier)) )) (compound_statement "{\n            iVar17 = bfd_generic_link_read_symbols(*(undefined4 *)(local_40 + 0x10));\n            local_4c = local_40;\n            if (iVar17 == 0) goto LAB_000570af;\n            uVar11 = *(undefined4 *)(*(int *)(local_40 + 0x10) + 0x78);\n            puVar7 = (undefined4 *)xmalloc(iVar6);\n            iVar6 = bfd_canonicalize_reloc(*(undefined4 *)(local_40 + 0x10),local_38,puVar7,uVar11);\n            if (iVar6 < 0) {\n              free(puVar7);\n              uVar11 = dcgettext(0,"%X%P: unable to process relocs: %E\n",5);\n              FUN_00034d20(uVar11);\n              return;\n            }\n            puVar18 = puVar7;\n            if (iVar6 != 0) {\n              do {\n                if ((((*(byte *)(**(int **)*puVar18 + 0x10) & 1) == 0) &&\n                    (iVar17 = bfd_link_hash_lookup\n                                        (DAT_001d0400,*(undefined4 *)(**(int **)*puVar18 + 4),0,0,1)\n                    , iVar17 != 0)) && (*(char *)(iVar17 + 0xc) == '\x03')) {\n                  puVar2 = *(undefined4 **)(*(int *)(iVar17 + 0x14) + 0xac);\n                  puVar8 = (undefined4 *)puVar2[0x23];\n                  if (puVar8 == (undefined4 *)0x0) {\n                    puVar8 = puVar2;\n                  }\n                  pcVar12 = (char *)*puVar8;\n                  iVar17 = filename_cmp(**(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c),pcVar12)\n                  ;\n                  if (iVar17 != 0) {\n                    sVar9 = strlen(pcVar12);\n                    pcVar10 = (char *)xmalloc(sVar9 + 1);\n                    strcpy(pcVar10,pcVar12);\n                    **(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c) = pcVar10;\n                  }\n                }\n                puVar18 = puVar18 + 1;\n              } while (puVar7 + iVar6 != puVar18);\n            }\n            free(puVar7);\n            local_38 = (undefined4 *)local_38[3];\n            if (local_38 == (undefined4 *)0x0) break;\n            iVar6 = *(int *)(local_40 + 0x10);\n          }" { (expression_statement "iVar17 = bfd_generic_link_read_symbols(*(undefined4 *)(local_40 + 0x10));" (assignment_expression "iVar17 = bfd_generic_link_read_symbols(*(undefined4 *)(local_40 + 0x10))" identifier = (call_expression "bfd_generic_link_read_symbols(*(undefined4 *)(local_40 + 0x10))" identifier (argument_list "(*(undefined4 *)(local_40 + 0x10))" ( (pointer_expression "*(undefined4 *)(local_40 + 0x10)" * (cast_expression "(undefined4 *)(local_40 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_40 + 0x10)" ( (binary_expression "local_40 + 0x10" identifier + number_literal) )))) )))) ;) (expression_statement "local_4c = local_40;" (assignment_expression "local_4c = local_40" identifier = identifier) ;) (if_statement "if (iVar17 == 0) goto LAB_000570af;" if (parenthesized_expression "(iVar17 == 0)" ( (binary_expression "iVar17 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000570af;" goto statement_identifier ;)) (expression_statement "uVar11 = *(undefined4 *)(*(int *)(local_40 + 0x10) + 0x78);" (assignment_expression "uVar11 = *(undefined4 *)(*(int *)(local_40 + 0x10) + 0x78)" identifier = (pointer_expression "*(undefined4 *)(*(int *)(local_40 + 0x10) + 0x78)" * (cast_expression "(undefined4 *)(*(int *)(local_40 + 0x10) + 0x78)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(local_40 + 0x10) + 0x78)" ( (binary_expression "*(int *)(local_40 + 0x10) + 0x78" (pointer_expression "*(int *)(local_40 + 0x10)" * (cast_expression "(int *)(local_40 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_40 + 0x10)" ( (binary_expression "local_40 + 0x10" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "puVar7 = (undefined4 *)xmalloc(iVar6);" (assignment_expression "puVar7 = (undefined4 *)xmalloc(iVar6)" identifier = (cast_expression "(undefined4 *)xmalloc(iVar6)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(iVar6)" identifier (argument_list "(iVar6)" ( identifier ))))) ;) (expression_statement "iVar6 = bfd_canonicalize_reloc(*(undefined4 *)(local_40 + 0x10),local_38,puVar7,uVar11);" (assignment_expression "iVar6 = bfd_canonicalize_reloc(*(undefined4 *)(local_40 + 0x10),local_38,puVar7,uVar11)" identifier = (call_expression "bfd_canonicalize_reloc(*(undefined4 *)(local_40 + 0x10),local_38,puVar7,uVar11)" identifier (argument_list "(*(undefined4 *)(local_40 + 0x10),local_38,puVar7,uVar11)" ( (pointer_expression "*(undefined4 *)(local_40 + 0x10)" * (cast_expression "(undefined4 *)(local_40 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_40 + 0x10)" ( (binary_expression "local_40 + 0x10" identifier + number_literal) )))) , identifier , identifier , identifier )))) ;) (if_statement "if (iVar6 < 0) {\n              free(puVar7);\n              uVar11 = dcgettext(0,"%X%P: unable to process relocs: %E\n",5);\n              FUN_00034d20(uVar11);\n              return;\n            }" if (parenthesized_expression "(iVar6 < 0)" ( (binary_expression "iVar6 < 0" identifier < number_literal) )) (compound_statement "{\n              free(puVar7);\n              uVar11 = dcgettext(0,"%X%P: unable to process relocs: %E\n",5);\n              FUN_00034d20(uVar11);\n              return;\n            }" { (expression_statement "free(puVar7);" (call_expression "free(puVar7)" identifier (argument_list "(puVar7)" ( identifier ))) ;) (expression_statement "uVar11 = dcgettext(0,"%X%P: unable to process relocs: %E\n",5);" (assignment_expression "uVar11 = dcgettext(0,"%X%P: unable to process relocs: %E\n",5)" identifier = (call_expression "dcgettext(0,"%X%P: unable to process relocs: %E\n",5)" identifier (argument_list "(0,"%X%P: unable to process relocs: %E\n",5)" ( number_literal , (string_literal ""%X%P: unable to process relocs: %E\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_00034d20(uVar11);" (call_expression "FUN_00034d20(uVar11)" identifier (argument_list "(uVar11)" ( identifier ))) ;) (return_statement "return;" return ;) })) (expression_statement "puVar18 = puVar7;" (assignment_expression "puVar18 = puVar7" identifier = identifier) ;) (if_statement "if (iVar6 != 0) {\n              do {\n                if ((((*(byte *)(**(int **)*puVar18 + 0x10) & 1) == 0) &&\n                    (iVar17 = bfd_link_hash_lookup\n                                        (DAT_001d0400,*(undefined4 *)(**(int **)*puVar18 + 4),0,0,1)\n                    , iVar17 != 0)) && (*(char *)(iVar17 + 0xc) == '\x03')) {\n                  puVar2 = *(undefined4 **)(*(int *)(iVar17 + 0x14) + 0xac);\n                  puVar8 = (undefined4 *)puVar2[0x23];\n                  if (puVar8 == (undefined4 *)0x0) {\n                    puVar8 = puVar2;\n                  }\n                  pcVar12 = (char *)*puVar8;\n                  iVar17 = filename_cmp(**(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c),pcVar12)\n                  ;\n                  if (iVar17 != 0) {\n                    sVar9 = strlen(pcVar12);\n                    pcVar10 = (char *)xmalloc(sVar9 + 1);\n                    strcpy(pcVar10,pcVar12);\n                    **(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c) = pcVar10;\n                  }\n                }\n                puVar18 = puVar18 + 1;\n              } while (puVar7 + iVar6 != puVar18);\n            }" if (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) (compound_statement "{\n              do {\n                if ((((*(byte *)(**(int **)*puVar18 + 0x10) & 1) == 0) &&\n                    (iVar17 = bfd_link_hash_lookup\n                                        (DAT_001d0400,*(undefined4 *)(**(int **)*puVar18 + 4),0,0,1)\n                    , iVar17 != 0)) && (*(char *)(iVar17 + 0xc) == '\x03')) {\n                  puVar2 = *(undefined4 **)(*(int *)(iVar17 + 0x14) + 0xac);\n                  puVar8 = (undefined4 *)puVar2[0x23];\n                  if (puVar8 == (undefined4 *)0x0) {\n                    puVar8 = puVar2;\n                  }\n                  pcVar12 = (char *)*puVar8;\n                  iVar17 = filename_cmp(**(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c),pcVar12)\n                  ;\n                  if (iVar17 != 0) {\n                    sVar9 = strlen(pcVar12);\n                    pcVar10 = (char *)xmalloc(sVar9 + 1);\n                    strcpy(pcVar10,pcVar12);\n                    **(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c) = pcVar10;\n                  }\n                }\n                puVar18 = puVar18 + 1;\n              } while (puVar7 + iVar6 != puVar18);\n            }" { (do_statement "do {\n                if ((((*(byte *)(**(int **)*puVar18 + 0x10) & 1) == 0) &&\n                    (iVar17 = bfd_link_hash_lookup\n                                        (DAT_001d0400,*(undefined4 *)(**(int **)*puVar18 + 4),0,0,1)\n                    , iVar17 != 0)) && (*(char *)(iVar17 + 0xc) == '\x03')) {\n                  puVar2 = *(undefined4 **)(*(int *)(iVar17 + 0x14) + 0xac);\n                  puVar8 = (undefined4 *)puVar2[0x23];\n                  if (puVar8 == (undefined4 *)0x0) {\n                    puVar8 = puVar2;\n                  }\n                  pcVar12 = (char *)*puVar8;\n                  iVar17 = filename_cmp(**(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c),pcVar12)\n                  ;\n                  if (iVar17 != 0) {\n                    sVar9 = strlen(pcVar12);\n                    pcVar10 = (char *)xmalloc(sVar9 + 1);\n                    strcpy(pcVar10,pcVar12);\n                    **(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c) = pcVar10;\n                  }\n                }\n                puVar18 = puVar18 + 1;\n              } while (puVar7 + iVar6 != puVar18);" do (compound_statement "{\n                if ((((*(byte *)(**(int **)*puVar18 + 0x10) & 1) == 0) &&\n                    (iVar17 = bfd_link_hash_lookup\n                                        (DAT_001d0400,*(undefined4 *)(**(int **)*puVar18 + 4),0,0,1)\n                    , iVar17 != 0)) && (*(char *)(iVar17 + 0xc) == '\x03')) {\n                  puVar2 = *(undefined4 **)(*(int *)(iVar17 + 0x14) + 0xac);\n                  puVar8 = (undefined4 *)puVar2[0x23];\n                  if (puVar8 == (undefined4 *)0x0) {\n                    puVar8 = puVar2;\n                  }\n                  pcVar12 = (char *)*puVar8;\n                  iVar17 = filename_cmp(**(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c),pcVar12)\n                  ;\n                  if (iVar17 != 0) {\n                    sVar9 = strlen(pcVar12);\n                    pcVar10 = (char *)xmalloc(sVar9 + 1);\n                    strcpy(pcVar10,pcVar12);\n                    **(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c) = pcVar10;\n                  }\n                }\n                puVar18 = puVar18 + 1;\n              }" { (if_statement "if ((((*(byte *)(**(int **)*puVar18 + 0x10) & 1) == 0) &&\n                    (iVar17 = bfd_link_hash_lookup\n                                        (DAT_001d0400,*(undefined4 *)(**(int **)*puVar18 + 4),0,0,1)\n                    , iVar17 != 0)) && (*(char *)(iVar17 + 0xc) == '\x03')) {\n                  puVar2 = *(undefined4 **)(*(int *)(iVar17 + 0x14) + 0xac);\n                  puVar8 = (undefined4 *)puVar2[0x23];\n                  if (puVar8 == (undefined4 *)0x0) {\n                    puVar8 = puVar2;\n                  }\n                  pcVar12 = (char *)*puVar8;\n                  iVar17 = filename_cmp(**(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c),pcVar12)\n                  ;\n                  if (iVar17 != 0) {\n                    sVar9 = strlen(pcVar12);\n                    pcVar10 = (char *)xmalloc(sVar9 + 1);\n                    strcpy(pcVar10,pcVar12);\n                    **(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c) = pcVar10;\n                  }\n                }" if (parenthesized_expression "((((*(byte *)(**(int **)*puVar18 + 0x10) & 1) == 0) &&\n                    (iVar17 = bfd_link_hash_lookup\n                                        (DAT_001d0400,*(undefined4 *)(**(int **)*puVar18 + 4),0,0,1)\n                    , iVar17 != 0)) && (*(char *)(iVar17 + 0xc) == '\x03'))" ( (binary_expression "(((*(byte *)(**(int **)*puVar18 + 0x10) & 1) == 0) &&\n                    (iVar17 = bfd_link_hash_lookup\n                                        (DAT_001d0400,*(undefined4 *)(**(int **)*puVar18 + 4),0,0,1)\n                    , iVar17 != 0)) && (*(char *)(iVar17 + 0xc) == '\x03')" (parenthesized_expression "(((*(byte *)(**(int **)*puVar18 + 0x10) & 1) == 0) &&\n                    (iVar17 = bfd_link_hash_lookup\n                                        (DAT_001d0400,*(undefined4 *)(**(int **)*puVar18 + 4),0,0,1)\n                    , iVar17 != 0))" ( (binary_expression "((*(byte *)(**(int **)*puVar18 + 0x10) & 1) == 0) &&\n                    (iVar17 = bfd_link_hash_lookup\n                                        (DAT_001d0400,*(undefined4 *)(**(int **)*puVar18 + 4),0,0,1)\n                    , iVar17 != 0)" (parenthesized_expression "((*(byte *)(**(int **)*puVar18 + 0x10) & 1) == 0)" ( (binary_expression "(*(byte *)(**(int **)*puVar18 + 0x10) & 1) == 0" (parenthesized_expression "(*(byte *)(**(int **)*puVar18 + 0x10) & 1)" ( (binary_expression "*(byte *)(**(int **)*puVar18 + 0x10) & 1" (pointer_expression "*(byte *)(**(int **)*puVar18 + 0x10)" * (cast_expression "(byte *)(**(int **)*puVar18 + 0x10)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(**(int **)*puVar18 + 0x10)" ( (binary_expression "**(int **)*puVar18 + 0x10" (pointer_expression "**(int **)*puVar18" * (pointer_expression "*(int **)*puVar18" * (cast_expression "(int **)*puVar18" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "*puVar18" * identifier)))) + number_literal) )))) & number_literal) )) == number_literal) )) && (parenthesized_expression "(iVar17 = bfd_link_hash_lookup\n                                        (DAT_001d0400,*(undefined4 *)(**(int **)*puVar18 + 4),0,0,1)\n                    , iVar17 != 0)" ( (comma_expression "iVar17 = bfd_link_hash_lookup\n                                        (DAT_001d0400,*(undefined4 *)(**(int **)*puVar18 + 4),0,0,1)\n                    , iVar17 != 0" (assignment_expression "iVar17 = bfd_link_hash_lookup\n                                        (DAT_001d0400,*(undefined4 *)(**(int **)*puVar18 + 4),0,0,1)" identifier = (call_expression "bfd_link_hash_lookup\n                                        (DAT_001d0400,*(undefined4 *)(**(int **)*puVar18 + 4),0,0,1)" identifier (argument_list "(DAT_001d0400,*(undefined4 *)(**(int **)*puVar18 + 4),0,0,1)" ( identifier , (pointer_expression "*(undefined4 *)(**(int **)*puVar18 + 4)" * (cast_expression "(undefined4 *)(**(int **)*puVar18 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(**(int **)*puVar18 + 4)" ( (binary_expression "**(int **)*puVar18 + 4" (pointer_expression "**(int **)*puVar18" * (pointer_expression "*(int **)*puVar18" * (cast_expression "(int **)*puVar18" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "*puVar18" * identifier)))) + number_literal) )))) , number_literal , number_literal , number_literal )))) , (binary_expression "iVar17 != 0" identifier != number_literal)) ))) )) && (parenthesized_expression "(*(char *)(iVar17 + 0xc) == '\x03')" ( (binary_expression "*(char *)(iVar17 + 0xc) == '\x03'" (pointer_expression "*(char *)(iVar17 + 0xc)" * (cast_expression "(char *)(iVar17 + 0xc)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0xc)" ( (binary_expression "iVar17 + 0xc" identifier + number_literal) )))) == (char_literal "'\x03'" ' escape_sequence ')) ))) )) (compound_statement "{\n                  puVar2 = *(undefined4 **)(*(int *)(iVar17 + 0x14) + 0xac);\n                  puVar8 = (undefined4 *)puVar2[0x23];\n                  if (puVar8 == (undefined4 *)0x0) {\n                    puVar8 = puVar2;\n                  }\n                  pcVar12 = (char *)*puVar8;\n                  iVar17 = filename_cmp(**(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c),pcVar12)\n                  ;\n                  if (iVar17 != 0) {\n                    sVar9 = strlen(pcVar12);\n                    pcVar10 = (char *)xmalloc(sVar9 + 1);\n                    strcpy(pcVar10,pcVar12);\n                    **(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c) = pcVar10;\n                  }\n                }" { (expression_statement "puVar2 = *(undefined4 **)(*(int *)(iVar17 + 0x14) + 0xac);" (assignment_expression "puVar2 = *(undefined4 **)(*(int *)(iVar17 + 0x14) + 0xac)" identifier = (pointer_expression "*(undefined4 **)(*(int *)(iVar17 + 0x14) + 0xac)" * (cast_expression "(undefined4 **)(*(int *)(iVar17 + 0x14) + 0xac)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(iVar17 + 0x14) + 0xac)" ( (binary_expression "*(int *)(iVar17 + 0x14) + 0xac" (pointer_expression "*(int *)(iVar17 + 0x14)" * (cast_expression "(int *)(iVar17 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x14)" ( (binary_expression "iVar17 + 0x14" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "puVar8 = (undefined4 *)puVar2[0x23];" (assignment_expression "puVar8 = (undefined4 *)puVar2[0x23]" identifier = (cast_expression "(undefined4 *)puVar2[0x23]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar2[0x23]" identifier [ number_literal ]))) ;) (if_statement "if (puVar8 == (undefined4 *)0x0) {\n                    puVar8 = puVar2;\n                  }" if (parenthesized_expression "(puVar8 == (undefined4 *)0x0)" ( (binary_expression "puVar8 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    puVar8 = puVar2;\n                  }" { (expression_statement "puVar8 = puVar2;" (assignment_expression "puVar8 = puVar2" identifier = identifier) ;) })) (expression_statement "pcVar12 = (char *)*puVar8;" (assignment_expression "pcVar12 = (char *)*puVar8" identifier = (cast_expression "(char *)*puVar8" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar8" * identifier))) ;) (expression_statement "iVar17 = filename_cmp(**(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c),pcVar12)\n                  ;" (assignment_expression "iVar17 = filename_cmp(**(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c),pcVar12)" identifier = (call_expression "filename_cmp(**(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c),pcVar12)" identifier (argument_list "(**(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c),pcVar12)" ( (pointer_expression "**(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c)" * (pointer_expression "*(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c)" * (cast_expression "(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(local_40 + 0x10) + 0x8c)" ( (binary_expression "*(int *)(local_40 + 0x10) + 0x8c" (pointer_expression "*(int *)(local_40 + 0x10)" * (cast_expression "(int *)(local_40 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_40 + 0x10)" ( (binary_expression "local_40 + 0x10" identifier + number_literal) )))) + number_literal) ))))) , identifier )))) ;) (if_statement "if (iVar17 != 0) {\n                    sVar9 = strlen(pcVar12);\n                    pcVar10 = (char *)xmalloc(sVar9 + 1);\n                    strcpy(pcVar10,pcVar12);\n                    **(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c) = pcVar10;\n                  }" if (parenthesized_expression "(iVar17 != 0)" ( (binary_expression "iVar17 != 0" identifier != number_literal) )) (compound_statement "{\n                    sVar9 = strlen(pcVar12);\n                    pcVar10 = (char *)xmalloc(sVar9 + 1);\n                    strcpy(pcVar10,pcVar12);\n                    **(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c) = pcVar10;\n                  }" { (expression_statement "sVar9 = strlen(pcVar12);" (assignment_expression "sVar9 = strlen(pcVar12)" identifier = (call_expression "strlen(pcVar12)" identifier (argument_list "(pcVar12)" ( identifier )))) ;) (expression_statement "pcVar10 = (char *)xmalloc(sVar9 + 1);" (assignment_expression "pcVar10 = (char *)xmalloc(sVar9 + 1)" identifier = (cast_expression "(char *)xmalloc(sVar9 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(sVar9 + 1)" identifier (argument_list "(sVar9 + 1)" ( (binary_expression "sVar9 + 1" identifier + number_literal) ))))) ;) (expression_statement "strcpy(pcVar10,pcVar12);" (call_expression "strcpy(pcVar10,pcVar12)" identifier (argument_list "(pcVar10,pcVar12)" ( identifier , identifier ))) ;) (expression_statement "**(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c) = pcVar10;" (assignment_expression "**(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c) = pcVar10" (pointer_expression "**(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c)" * (pointer_expression "*(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c)" * (cast_expression "(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(local_40 + 0x10) + 0x8c)" ( (binary_expression "*(int *)(local_40 + 0x10) + 0x8c" (pointer_expression "*(int *)(local_40 + 0x10)" * (cast_expression "(int *)(local_40 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_40 + 0x10)" ( (binary_expression "local_40 + 0x10" identifier + number_literal) )))) + number_literal) ))))) = identifier) ;) })) })) (expression_statement "puVar18 = puVar18 + 1;" (assignment_expression "puVar18 = puVar18 + 1" identifier = (binary_expression "puVar18 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar7 + iVar6 != puVar18)" ( (binary_expression "puVar7 + iVar6 != puVar18" (binary_expression "puVar7 + iVar6" identifier + identifier) != identifier) )) ;) })) (expression_statement "free(puVar7);" (call_expression "free(puVar7)" identifier (argument_list "(puVar7)" ( identifier ))) ;) (expression_statement "local_38 = (undefined4 *)local_38[3];" (assignment_expression "local_38 = (undefined4 *)local_38[3]" identifier = (cast_expression "(undefined4 *)local_38[3]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_38[3]" identifier [ number_literal ]))) ;) (if_statement "if (local_38 == (undefined4 *)0x0) break;" if (parenthesized_expression "(local_38 == (undefined4 *)0x0)" ( (binary_expression "local_38 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "iVar6 = *(int *)(local_40 + 0x10);" (assignment_expression "iVar6 = *(int *)(local_40 + 0x10)" identifier = (pointer_expression "*(int *)(local_40 + 0x10)" * (cast_expression "(int *)(local_40 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_40 + 0x10)" ( (binary_expression "local_40 + 0x10" identifier + number_literal) ))))) ;) })) })) })) (expression_statement "local_40 = *(int *)(local_40 + 0x18);" (assignment_expression "local_40 = *(int *)(local_40 + 0x18)" identifier = (pointer_expression "*(int *)(local_40 + 0x18)" * (cast_expression "(int *)(local_40 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_40 + 0x18)" ( (binary_expression "local_40 + 0x18" identifier + number_literal) ))))) ;) }) while (parenthesized_expression "(local_40 != 0)" ( (binary_expression "local_40 != 0" identifier != number_literal) )) ;) (expression_statement "local_50 = DAT_001cf6bc;" (assignment_expression "local_50 = DAT_001cf6bc" identifier = identifier) ;) (if_statement "if (DAT_001cf6bc != 0) {\n      bVar16 = false;\n      local_40 = 0;\n      do {\n        iVar6 = (*(undefined4 **)(local_50 + 0x10))[0x23];\n        if (iVar6 != 0) {\n          pcVar12 = strrchr((char *)**(undefined4 **)(local_50 + 0x10),0x2e);\n          iVar17 = local_50;\n          if (iVar6 == local_40) {\n            if (!bVar16) goto LAB_00056b08;\n          }\n          else {\n            while ((iVar15 = local_50, local_40 = iVar6, pcVar12 == (char *)0x0 ||\n                   (iVar13 = filename_cmp(pcVar12,".dll"), iVar13 != 0))) {\n              iVar17 = *(int *)(iVar17 + 0x18);\n              if (iVar17 == 0) {\n                local_50 = *(int *)(local_50 + 0x18);\n                bVar16 = false;\n                goto joined_r0x00056b15;\n              }\n              if (iVar6 != (*(undefined4 **)(iVar17 + 0x10))[0x23]) break;\n              pcVar12 = strrchr((char *)**(undefined4 **)(iVar17 + 0x10),0x2e);\n            }\n            do {\n              if (iVar6 != (*(undefined4 **)(iVar15 + 0x10))[0x23]) break;\n              pcVar12 = (char *)**(undefined4 **)(iVar15 + 0x10);\n              pcVar10 = strrchr(pcVar12,0x2e);\n              if (pcVar10 == (char *)0x0) {\nLAB_00056d20:\n                iVar13 = filename_cmp(**(undefined4 **)(iVar17 + 0x10),pcVar12);\n                if (iVar13 != 0) {\n                  bVar16 = false;\n                  goto LAB_00056b08;\n                }\n              }\n              else {\n                iVar13 = filename_cmp(pcVar10,&DAT_00192ed1);\n                if (iVar13 != 0) {\n                  pcVar12 = (char *)**(undefined4 **)(iVar15 + 0x10);\n                  goto LAB_00056d20;\n                }\n              }\n              piVar20 = (int *)(iVar15 + 0x18);\n              iVar15 = *piVar20;\n            } while (*piVar20 != 0);\n            pcVar12 = strrchr((char *)**(undefined4 **)(local_50 + 0x10),0x2e);\n          }\n          bVar16 = true;\n          iVar6 = filename_cmp(pcVar12,".dll");\n          if (iVar6 == 0) {\n            puVar7 = (undefined4 *)(*(undefined4 **)(local_50 + 0x10))[0x18];\n            if (puVar7 == (undefined4 *)0x0) {\n              iVar6 = 99;\n            }\n            else {\n              iVar17 = 0;\n              bVar24 = true;\n              bVar16 = false;\n              do {\n                bVar22 = false;\n                iVar6 = 9;\n                pbVar19 = (byte *)*puVar7;\n                pbVar21 = (byte *)".idata$2";\n                do {\n                  if (iVar6 == 0) break;\n                  iVar6 = iVar6 + -1;\n                  bVar22 = *pbVar19 < *pbVar21;\n                  bVar24 = *pbVar19 == *pbVar21;\n                  pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n                  pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n                } while (bVar24);\n                if ((!bVar22 && !bVar24) == bVar22) {\n                  bVar16 = true;\n                }\n                iVar17 = iVar17 + puVar7[0x19];\n                puVar7 = (undefined4 *)puVar7[3];\n                bVar24 = puVar7 == (undefined4 *)0x0;\n              } while (!bVar24);\n              iVar6 = 0x61;\n              if (!bVar16) {\n                iVar6 = (iVar17 < 1) + 0x62;\n              }\n            }\n            sVar9 = strlen((char *)**(undefined4 **)(local_50 + 0x10));\n            pcVar12 = (char *)xmalloc(sVar9 + 3);\n            sprintf(pcVar12,"%s.%c",**(undefined4 **)(local_50 + 0x10),iVar6);\n            **(undefined4 **)(local_50 + 0x10) = pcVar12;\n            sVar9 = strlen(*(char **)(local_50 + 8));\n            pcVar12 = (char *)xmalloc(sVar9 + 3);\n            sprintf(pcVar12,"%s.%c",*(undefined4 *)(local_50 + 8),iVar6);\n            *(char **)(local_50 + 8) = pcVar12;\n            bVar16 = true;\n          }\n        }\nLAB_00056b08:\n        local_50 = *(int *)(local_50 + 0x18);\njoined_r0x00056b15:\n      } while (local_50 != 0);\n      local_4c = DAT_001cf6bc;\n      if (DAT_001cf6bc != 0) {\n        do {\n          iVar6 = *(int *)(local_4c + 0x10);\n          if ((*(int *)(iVar6 + 0x8c) != 0) &&\n             (puVar7 = *(undefined4 **)(iVar6 + 0x60), puVar7 != (undefined4 *)0x0)) {\n            puVar18 = (undefined4 *)0x0;\n            bVar16 = false;\n            bVar24 = true;\n            do {\n              bVar22 = false;\n              iVar17 = 7;\n              pbVar19 = (byte *)*puVar7;\n              pbVar21 = (byte *)".idata$";\n              do {\n                if (iVar17 == 0) break;\n                iVar17 = iVar17 + -1;\n                bVar22 = *pbVar19 < *pbVar21;\n                bVar24 = *pbVar19 == *pbVar21;\n                pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n                pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n              } while (bVar24);\n              if ((!bVar22 && !bVar24) == bVar22) {\n                bVar16 = true;\n              }\n              if (((*(byte *)(puVar7 + 5) & 0x10) != 0) && (puVar7[0x19] != 0)) {\n                puVar18 = puVar7;\n              }\n              puVar7 = (undefined4 *)puVar7[3];\n              bVar24 = puVar7 == (undefined4 *)0x0;\n            } while (!bVar24);\n            if ((puVar18 != (undefined4 *)0x0) && (bVar16)) {\n              iVar6 = bfd_generic_link_read_symbols(iVar6);\n              if (iVar6 == 0) {\nLAB_000570af:\n                uVar11 = *(undefined4 *)(local_4c + 0x10);\n                uVar14 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n                FUN_00034d20(uVar14,uVar11);\n                return;\n              }\n              piVar20 = *(int **)(*(int *)(local_4c + 0x10) + 0x78);\n              iVar6 = *(int *)(*(int *)(local_4c + 0x10) + 0x7c);\n              if (0 < iVar6) {\n                piVar1 = piVar20 + iVar6;\n                do {\n                  if ((((*(int *)(*(int *)(*piVar20 + 0x14) + 4) == puVar18[1]) &&\n                       (iVar6 = bfd_link_hash_lookup\n                                          (DAT_001d0400,*(undefined4 *)(*piVar20 + 4),0,0,1),\n                       iVar6 != 0)) && (*(char *)(iVar6 + 0xc) == '\x03')) &&\n                     ((*(int *)(iVar6 + 0x10) == 0 && (*(int *)(DAT_001d0400 + 0x20) != iVar6)))) {\n                    puVar18[5] = puVar18[5] | 0x8000;\n                  }\n                  piVar20 = piVar20 + 1;\n                } while (piVar1 != piVar20);\n              }\n            }\n          }\n          local_4c = *(int *)(local_4c + 0x18);\n        } while (local_4c != 0);\n      }\n    }\n  }" if (parenthesized_expression "(DAT_001cf6bc != 0)" ( (binary_expression "DAT_001cf6bc != 0" identifier != number_literal) )) (compound_statement "{\n      bVar16 = false;\n      local_40 = 0;\n      do {\n        iVar6 = (*(undefined4 **)(local_50 + 0x10))[0x23];\n        if (iVar6 != 0) {\n          pcVar12 = strrchr((char *)**(undefined4 **)(local_50 + 0x10),0x2e);\n          iVar17 = local_50;\n          if (iVar6 == local_40) {\n            if (!bVar16) goto LAB_00056b08;\n          }\n          else {\n            while ((iVar15 = local_50, local_40 = iVar6, pcVar12 == (char *)0x0 ||\n                   (iVar13 = filename_cmp(pcVar12,".dll"), iVar13 != 0))) {\n              iVar17 = *(int *)(iVar17 + 0x18);\n              if (iVar17 == 0) {\n                local_50 = *(int *)(local_50 + 0x18);\n                bVar16 = false;\n                goto joined_r0x00056b15;\n              }\n              if (iVar6 != (*(undefined4 **)(iVar17 + 0x10))[0x23]) break;\n              pcVar12 = strrchr((char *)**(undefined4 **)(iVar17 + 0x10),0x2e);\n            }\n            do {\n              if (iVar6 != (*(undefined4 **)(iVar15 + 0x10))[0x23]) break;\n              pcVar12 = (char *)**(undefined4 **)(iVar15 + 0x10);\n              pcVar10 = strrchr(pcVar12,0x2e);\n              if (pcVar10 == (char *)0x0) {\nLAB_00056d20:\n                iVar13 = filename_cmp(**(undefined4 **)(iVar17 + 0x10),pcVar12);\n                if (iVar13 != 0) {\n                  bVar16 = false;\n                  goto LAB_00056b08;\n                }\n              }\n              else {\n                iVar13 = filename_cmp(pcVar10,&DAT_00192ed1);\n                if (iVar13 != 0) {\n                  pcVar12 = (char *)**(undefined4 **)(iVar15 + 0x10);\n                  goto LAB_00056d20;\n                }\n              }\n              piVar20 = (int *)(iVar15 + 0x18);\n              iVar15 = *piVar20;\n            } while (*piVar20 != 0);\n            pcVar12 = strrchr((char *)**(undefined4 **)(local_50 + 0x10),0x2e);\n          }\n          bVar16 = true;\n          iVar6 = filename_cmp(pcVar12,".dll");\n          if (iVar6 == 0) {\n            puVar7 = (undefined4 *)(*(undefined4 **)(local_50 + 0x10))[0x18];\n            if (puVar7 == (undefined4 *)0x0) {\n              iVar6 = 99;\n            }\n            else {\n              iVar17 = 0;\n              bVar24 = true;\n              bVar16 = false;\n              do {\n                bVar22 = false;\n                iVar6 = 9;\n                pbVar19 = (byte *)*puVar7;\n                pbVar21 = (byte *)".idata$2";\n                do {\n                  if (iVar6 == 0) break;\n                  iVar6 = iVar6 + -1;\n                  bVar22 = *pbVar19 < *pbVar21;\n                  bVar24 = *pbVar19 == *pbVar21;\n                  pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n                  pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n                } while (bVar24);\n                if ((!bVar22 && !bVar24) == bVar22) {\n                  bVar16 = true;\n                }\n                iVar17 = iVar17 + puVar7[0x19];\n                puVar7 = (undefined4 *)puVar7[3];\n                bVar24 = puVar7 == (undefined4 *)0x0;\n              } while (!bVar24);\n              iVar6 = 0x61;\n              if (!bVar16) {\n                iVar6 = (iVar17 < 1) + 0x62;\n              }\n            }\n            sVar9 = strlen((char *)**(undefined4 **)(local_50 + 0x10));\n            pcVar12 = (char *)xmalloc(sVar9 + 3);\n            sprintf(pcVar12,"%s.%c",**(undefined4 **)(local_50 + 0x10),iVar6);\n            **(undefined4 **)(local_50 + 0x10) = pcVar12;\n            sVar9 = strlen(*(char **)(local_50 + 8));\n            pcVar12 = (char *)xmalloc(sVar9 + 3);\n            sprintf(pcVar12,"%s.%c",*(undefined4 *)(local_50 + 8),iVar6);\n            *(char **)(local_50 + 8) = pcVar12;\n            bVar16 = true;\n          }\n        }\nLAB_00056b08:\n        local_50 = *(int *)(local_50 + 0x18);\njoined_r0x00056b15:\n      } while (local_50 != 0);\n      local_4c = DAT_001cf6bc;\n      if (DAT_001cf6bc != 0) {\n        do {\n          iVar6 = *(int *)(local_4c + 0x10);\n          if ((*(int *)(iVar6 + 0x8c) != 0) &&\n             (puVar7 = *(undefined4 **)(iVar6 + 0x60), puVar7 != (undefined4 *)0x0)) {\n            puVar18 = (undefined4 *)0x0;\n            bVar16 = false;\n            bVar24 = true;\n            do {\n              bVar22 = false;\n              iVar17 = 7;\n              pbVar19 = (byte *)*puVar7;\n              pbVar21 = (byte *)".idata$";\n              do {\n                if (iVar17 == 0) break;\n                iVar17 = iVar17 + -1;\n                bVar22 = *pbVar19 < *pbVar21;\n                bVar24 = *pbVar19 == *pbVar21;\n                pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n                pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n              } while (bVar24);\n              if ((!bVar22 && !bVar24) == bVar22) {\n                bVar16 = true;\n              }\n              if (((*(byte *)(puVar7 + 5) & 0x10) != 0) && (puVar7[0x19] != 0)) {\n                puVar18 = puVar7;\n              }\n              puVar7 = (undefined4 *)puVar7[3];\n              bVar24 = puVar7 == (undefined4 *)0x0;\n            } while (!bVar24);\n            if ((puVar18 != (undefined4 *)0x0) && (bVar16)) {\n              iVar6 = bfd_generic_link_read_symbols(iVar6);\n              if (iVar6 == 0) {\nLAB_000570af:\n                uVar11 = *(undefined4 *)(local_4c + 0x10);\n                uVar14 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n                FUN_00034d20(uVar14,uVar11);\n                return;\n              }\n              piVar20 = *(int **)(*(int *)(local_4c + 0x10) + 0x78);\n              iVar6 = *(int *)(*(int *)(local_4c + 0x10) + 0x7c);\n              if (0 < iVar6) {\n                piVar1 = piVar20 + iVar6;\n                do {\n                  if ((((*(int *)(*(int *)(*piVar20 + 0x14) + 4) == puVar18[1]) &&\n                       (iVar6 = bfd_link_hash_lookup\n                                          (DAT_001d0400,*(undefined4 *)(*piVar20 + 4),0,0,1),\n                       iVar6 != 0)) && (*(char *)(iVar6 + 0xc) == '\x03')) &&\n                     ((*(int *)(iVar6 + 0x10) == 0 && (*(int *)(DAT_001d0400 + 0x20) != iVar6)))) {\n                    puVar18[5] = puVar18[5] | 0x8000;\n                  }\n                  piVar20 = piVar20 + 1;\n                } while (piVar1 != piVar20);\n              }\n            }\n          }\n          local_4c = *(int *)(local_4c + 0x18);\n        } while (local_4c != 0);\n      }\n    }\n  }" { (expression_statement "bVar16 = false;" (assignment_expression "bVar16 = false" identifier = false) ;) (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" identifier = number_literal) ;) (ERROR "do {\n        iVar6 = (*(undefined4 **)(local_50 + 0x10))[0x23];\n        if (iVar6 != 0) {\n          pcVar12 = strrchr((char *)**(undefined4 **)(local_50 + 0x10),0x2e);\n          iVar17 = local_50;\n          if (iVar6 == local_40) {\n            if (!bVar16) goto LAB_00056b08;\n          }\n          else {\n            while ((iVar15 = local_50, local_40 = iVar6, pcVar12 == (char *)0x0 ||\n                   (iVar13 = filename_cmp(pcVar12,".dll"), iVar13 != 0))) {\n              iVar17 = *(int *)(iVar17 + 0x18);\n              if (iVar17 == 0) {\n                local_50 = *(int *)(local_50 + 0x18);\n                bVar16 = false;\n                goto joined_r0x00056b15;\n              }\n              if (iVar6 != (*(undefined4 **)(iVar17 + 0x10))[0x23]) break;\n              pcVar12 = strrchr((char *)**(undefined4 **)(iVar17 + 0x10),0x2e);\n            }\n            do {\n              if (iVar6 != (*(undefined4 **)(iVar15 + 0x10))[0x23]) break;\n              pcVar12 = (char *)**(undefined4 **)(iVar15 + 0x10);\n              pcVar10 = strrchr(pcVar12,0x2e);\n              if (pcVar10 == (char *)0x0) {\nLAB_00056d20:\n                iVar13 = filename_cmp(**(undefined4 **)(iVar17 + 0x10),pcVar12);\n                if (iVar13 != 0) {\n                  bVar16 = false;\n                  goto LAB_00056b08;\n                }\n              }\n              else {\n                iVar13 = filename_cmp(pcVar10,&DAT_00192ed1);\n                if (iVar13 != 0) {\n                  pcVar12 = (char *)**(undefined4 **)(iVar15 + 0x10);\n                  goto LAB_00056d20;\n                }\n              }\n              piVar20 = (int *)(iVar15 + 0x18);\n              iVar15 = *piVar20;\n            } while (*piVar20 != 0);\n            pcVar12 = strrchr((char *)**(undefined4 **)(local_50 + 0x10),0x2e);\n          }\n          bVar16 = true;\n          iVar6 = filename_cmp(pcVar12,".dll");\n          if (iVar6 == 0) {\n            puVar7 = (undefined4 *)(*(undefined4 **)(local_50 + 0x10))[0x18];\n            if (puVar7 == (undefined4 *)0x0) {\n              iVar6 = 99;\n            }\n            else {\n              iVar17 = 0;\n              bVar24 = true;\n              bVar16 = false;\n              do {\n                bVar22 = false;\n                iVar6 = 9;\n                pbVar19 = (byte *)*puVar7;\n                pbVar21 = (byte *)".idata$2";\n                do {\n                  if (iVar6 == 0) break;\n                  iVar6 = iVar6 + -1;\n                  bVar22 = *pbVar19 < *pbVar21;\n                  bVar24 = *pbVar19 == *pbVar21;\n                  pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n                  pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n                } while (bVar24);\n                if ((!bVar22 && !bVar24) == bVar22) {\n                  bVar16 = true;\n                }\n                iVar17 = iVar17 + puVar7[0x19];\n                puVar7 = (undefined4 *)puVar7[3];\n                bVar24 = puVar7 == (undefined4 *)0x0;\n              } while (!bVar24);\n              iVar6 = 0x61;\n              if (!bVar16) {\n                iVar6 = (iVar17 < 1) + 0x62;\n              }\n            }\n            sVar9 = strlen((char *)**(undefined4 **)(local_50 + 0x10));\n            pcVar12 = (char *)xmalloc(sVar9 + 3);\n            sprintf(pcVar12,"%s.%c",**(undefined4 **)(local_50 + 0x10),iVar6);\n            **(undefined4 **)(local_50 + 0x10) = pcVar12;\n            sVar9 = strlen(*(char **)(local_50 + 8));\n            pcVar12 = (char *)xmalloc(sVar9 + 3);\n            sprintf(pcVar12,"%s.%c",*(undefined4 *)(local_50 + 8),iVar6);\n            *(char **)(local_50 + 8) = pcVar12;\n            bVar16 = true;\n          }\n        }\nLAB_00056b08:\n        local_50 = *(int *)(local_50 + 0x18);\njoined_r0x00056b15:\n      } while (local_50 != 0);\n      local_4c = DAT_001cf6bc;\n      if (DAT_001cf6bc != 0) {\n        do {\n          iVar6 = *(int *)(local_4c + 0x10);\n          if ((*(int *)(iVar6 + 0x8c) != 0) &&\n             (puVar7 = *(undefined4 **)(iVar6 + 0x60), puVar7 != (undefined4 *)0x0)) {\n            puVar18 = (undefined4 *)0x0;\n            bVar16 = false;\n            bVar24 = true;\n            do {\n              bVar22 = false;\n              iVar17 = 7;\n              pbVar19 = (byte *)*puVar7;\n              pbVar21 = (byte *)".idata$";\n              do {\n                if (iVar17 == 0) break;\n                iVar17 = iVar17 + -1;\n                bVar22 = *pbVar19 < *pbVar21;\n                bVar24 = *pbVar19 == *pbVar21;\n                pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n                pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n              } while (bVar24);\n              if ((!bVar22 && !bVar24) == bVar22) {\n                bVar16 = true;\n              }\n              if (((*(byte *)(puVar7 + 5) & 0x10) != 0) && (puVar7[0x19] != 0)) {\n                puVar18 = puVar7;\n              }\n              puVar7 = (undefined4 *)puVar7[3];\n              bVar24 = puVar7 == (undefined4 *)0x0;\n            } while (!bVar24);\n            if ((puVar18 != (undefined4 *)0x0) && (bVar16)) {\n              iVar6 = bfd_generic_link_read_symbols(iVar6);\n              if (iVar6 == 0) {\nLAB_000570af:\n                uVar11 = *(undefined4 *)(local_4c + 0x10);\n                uVar14 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n                FUN_00034d20(uVar14,uVar11);\n                return;\n              }\n              piVar20 = *(int **)(*(int *)(local_4c + 0x10) + 0x78);\n              iVar6 = *(int *)(*(int *)(local_4c + 0x10) + 0x7c);\n              if (0 < iVar6) {\n                piVar1 = piVar20 + iVar6;\n                do {\n                  if ((((*(int *)(*(int *)(*piVar20 + 0x14) + 4) == puVar18[1]) &&\n                       (iVar6 = bfd_link_hash_lookup\n                                          (DAT_001d0400,*(undefined4 *)(*piVar20 + 4),0,0,1),\n                       iVar6 != 0)) && (*(char *)(iVar6 + 0xc) == '\x03')) &&\n                     ((*(int *)(iVar6 + 0x10) == 0 && (*(int *)(DAT_001d0400 + 0x20) != iVar6)))) {\n                    puVar18[5] = puVar18[5] | 0x8000;\n                  }\n                  piVar20 = piVar20 + 1;\n                } while (piVar1 != piVar20);\n              }\n            }\n          }\n          local_4c = *(int *)(local_4c + 0x18);\n        } while (local_4c != 0);\n      }\n    }" do (compound_statement "{\n        iVar6 = (*(undefined4 **)(local_50 + 0x10))[0x23];\n        if (iVar6 != 0) {\n          pcVar12 = strrchr((char *)**(undefined4 **)(local_50 + 0x10),0x2e);\n          iVar17 = local_50;\n          if (iVar6 == local_40) {\n            if (!bVar16) goto LAB_00056b08;\n          }\n          else {\n            while ((iVar15 = local_50, local_40 = iVar6, pcVar12 == (char *)0x0 ||\n                   (iVar13 = filename_cmp(pcVar12,".dll"), iVar13 != 0))) {\n              iVar17 = *(int *)(iVar17 + 0x18);\n              if (iVar17 == 0) {\n                local_50 = *(int *)(local_50 + 0x18);\n                bVar16 = false;\n                goto joined_r0x00056b15;\n              }\n              if (iVar6 != (*(undefined4 **)(iVar17 + 0x10))[0x23]) break;\n              pcVar12 = strrchr((char *)**(undefined4 **)(iVar17 + 0x10),0x2e);\n            }\n            do {\n              if (iVar6 != (*(undefined4 **)(iVar15 + 0x10))[0x23]) break;\n              pcVar12 = (char *)**(undefined4 **)(iVar15 + 0x10);\n              pcVar10 = strrchr(pcVar12,0x2e);\n              if (pcVar10 == (char *)0x0) {\nLAB_00056d20:\n                iVar13 = filename_cmp(**(undefined4 **)(iVar17 + 0x10),pcVar12);\n                if (iVar13 != 0) {\n                  bVar16 = false;\n                  goto LAB_00056b08;\n                }\n              }\n              else {\n                iVar13 = filename_cmp(pcVar10,&DAT_00192ed1);\n                if (iVar13 != 0) {\n                  pcVar12 = (char *)**(undefined4 **)(iVar15 + 0x10);\n                  goto LAB_00056d20;\n                }\n              }\n              piVar20 = (int *)(iVar15 + 0x18);\n              iVar15 = *piVar20;\n            } while (*piVar20 != 0);\n            pcVar12 = strrchr((char *)**(undefined4 **)(local_50 + 0x10),0x2e);\n          }\n          bVar16 = true;\n          iVar6 = filename_cmp(pcVar12,".dll");\n          if (iVar6 == 0) {\n            puVar7 = (undefined4 *)(*(undefined4 **)(local_50 + 0x10))[0x18];\n            if (puVar7 == (undefined4 *)0x0) {\n              iVar6 = 99;\n            }\n            else {\n              iVar17 = 0;\n              bVar24 = true;\n              bVar16 = false;\n              do {\n                bVar22 = false;\n                iVar6 = 9;\n                pbVar19 = (byte *)*puVar7;\n                pbVar21 = (byte *)".idata$2";\n                do {\n                  if (iVar6 == 0) break;\n                  iVar6 = iVar6 + -1;\n                  bVar22 = *pbVar19 < *pbVar21;\n                  bVar24 = *pbVar19 == *pbVar21;\n                  pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n                  pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n                } while (bVar24);\n                if ((!bVar22 && !bVar24) == bVar22) {\n                  bVar16 = true;\n                }\n                iVar17 = iVar17 + puVar7[0x19];\n                puVar7 = (undefined4 *)puVar7[3];\n                bVar24 = puVar7 == (undefined4 *)0x0;\n              } while (!bVar24);\n              iVar6 = 0x61;\n              if (!bVar16) {\n                iVar6 = (iVar17 < 1) + 0x62;\n              }\n            }\n            sVar9 = strlen((char *)**(undefined4 **)(local_50 + 0x10));\n            pcVar12 = (char *)xmalloc(sVar9 + 3);\n            sprintf(pcVar12,"%s.%c",**(undefined4 **)(local_50 + 0x10),iVar6);\n            **(undefined4 **)(local_50 + 0x10) = pcVar12;\n            sVar9 = strlen(*(char **)(local_50 + 8));\n            pcVar12 = (char *)xmalloc(sVar9 + 3);\n            sprintf(pcVar12,"%s.%c",*(undefined4 *)(local_50 + 8),iVar6);\n            *(char **)(local_50 + 8) = pcVar12;\n            bVar16 = true;\n          }\n        }\nLAB_00056b08:\n        local_50 = *(int *)(local_50 + 0x18);\njoined_r0x00056b15:\n      } while (local_50 != 0);\n      local_4c = DAT_001cf6bc;\n      if (DAT_001cf6bc != 0) {\n        do {\n          iVar6 = *(int *)(local_4c + 0x10);\n          if ((*(int *)(iVar6 + 0x8c) != 0) &&\n             (puVar7 = *(undefined4 **)(iVar6 + 0x60), puVar7 != (undefined4 *)0x0)) {\n            puVar18 = (undefined4 *)0x0;\n            bVar16 = false;\n            bVar24 = true;\n            do {\n              bVar22 = false;\n              iVar17 = 7;\n              pbVar19 = (byte *)*puVar7;\n              pbVar21 = (byte *)".idata$";\n              do {\n                if (iVar17 == 0) break;\n                iVar17 = iVar17 + -1;\n                bVar22 = *pbVar19 < *pbVar21;\n                bVar24 = *pbVar19 == *pbVar21;\n                pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n                pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n              } while (bVar24);\n              if ((!bVar22 && !bVar24) == bVar22) {\n                bVar16 = true;\n              }\n              if (((*(byte *)(puVar7 + 5) & 0x10) != 0) && (puVar7[0x19] != 0)) {\n                puVar18 = puVar7;\n              }\n              puVar7 = (undefined4 *)puVar7[3];\n              bVar24 = puVar7 == (undefined4 *)0x0;\n            } while (!bVar24);\n            if ((puVar18 != (undefined4 *)0x0) && (bVar16)) {\n              iVar6 = bfd_generic_link_read_symbols(iVar6);\n              if (iVar6 == 0) {\nLAB_000570af:\n                uVar11 = *(undefined4 *)(local_4c + 0x10);\n                uVar14 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n                FUN_00034d20(uVar14,uVar11);\n                return;\n              }\n              piVar20 = *(int **)(*(int *)(local_4c + 0x10) + 0x78);\n              iVar6 = *(int *)(*(int *)(local_4c + 0x10) + 0x7c);\n              if (0 < iVar6) {\n                piVar1 = piVar20 + iVar6;\n                do {\n                  if ((((*(int *)(*(int *)(*piVar20 + 0x14) + 4) == puVar18[1]) &&\n                       (iVar6 = bfd_link_hash_lookup\n                                          (DAT_001d0400,*(undefined4 *)(*piVar20 + 4),0,0,1),\n                       iVar6 != 0)) && (*(char *)(iVar6 + 0xc) == '\x03')) &&\n                     ((*(int *)(iVar6 + 0x10) == 0 && (*(int *)(DAT_001d0400 + 0x20) != iVar6)))) {\n                    puVar18[5] = puVar18[5] | 0x8000;\n                  }\n                  piVar20 = piVar20 + 1;\n                } while (piVar1 != piVar20);\n              }\n            }\n          }\n          local_4c = *(int *)(local_4c + 0x18);\n        } while (local_4c != 0);\n      }\n    }" { (expression_statement "iVar6 = (*(undefined4 **)(local_50 + 0x10))[0x23];" (assignment_expression "iVar6 = (*(undefined4 **)(local_50 + 0x10))[0x23]" identifier = (subscript_expression "(*(undefined4 **)(local_50 + 0x10))[0x23]" (parenthesized_expression "(*(undefined4 **)(local_50 + 0x10))" ( (pointer_expression "*(undefined4 **)(local_50 + 0x10)" * (cast_expression "(undefined4 **)(local_50 + 0x10)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_50 + 0x10)" ( (binary_expression "local_50 + 0x10" identifier + number_literal) )))) )) [ number_literal ])) ;) (if_statement "if (iVar6 != 0) {\n          pcVar12 = strrchr((char *)**(undefined4 **)(local_50 + 0x10),0x2e);\n          iVar17 = local_50;\n          if (iVar6 == local_40) {\n            if (!bVar16) goto LAB_00056b08;\n          }\n          else {\n            while ((iVar15 = local_50, local_40 = iVar6, pcVar12 == (char *)0x0 ||\n                   (iVar13 = filename_cmp(pcVar12,".dll"), iVar13 != 0))) {\n              iVar17 = *(int *)(iVar17 + 0x18);\n              if (iVar17 == 0) {\n                local_50 = *(int *)(local_50 + 0x18);\n                bVar16 = false;\n                goto joined_r0x00056b15;\n              }\n              if (iVar6 != (*(undefined4 **)(iVar17 + 0x10))[0x23]) break;\n              pcVar12 = strrchr((char *)**(undefined4 **)(iVar17 + 0x10),0x2e);\n            }\n            do {\n              if (iVar6 != (*(undefined4 **)(iVar15 + 0x10))[0x23]) break;\n              pcVar12 = (char *)**(undefined4 **)(iVar15 + 0x10);\n              pcVar10 = strrchr(pcVar12,0x2e);\n              if (pcVar10 == (char *)0x0) {\nLAB_00056d20:\n                iVar13 = filename_cmp(**(undefined4 **)(iVar17 + 0x10),pcVar12);\n                if (iVar13 != 0) {\n                  bVar16 = false;\n                  goto LAB_00056b08;\n                }\n              }\n              else {\n                iVar13 = filename_cmp(pcVar10,&DAT_00192ed1);\n                if (iVar13 != 0) {\n                  pcVar12 = (char *)**(undefined4 **)(iVar15 + 0x10);\n                  goto LAB_00056d20;\n                }\n              }\n              piVar20 = (int *)(iVar15 + 0x18);\n              iVar15 = *piVar20;\n            } while (*piVar20 != 0);\n            pcVar12 = strrchr((char *)**(undefined4 **)(local_50 + 0x10),0x2e);\n          }\n          bVar16 = true;\n          iVar6 = filename_cmp(pcVar12,".dll");\n          if (iVar6 == 0) {\n            puVar7 = (undefined4 *)(*(undefined4 **)(local_50 + 0x10))[0x18];\n            if (puVar7 == (undefined4 *)0x0) {\n              iVar6 = 99;\n            }\n            else {\n              iVar17 = 0;\n              bVar24 = true;\n              bVar16 = false;\n              do {\n                bVar22 = false;\n                iVar6 = 9;\n                pbVar19 = (byte *)*puVar7;\n                pbVar21 = (byte *)".idata$2";\n                do {\n                  if (iVar6 == 0) break;\n                  iVar6 = iVar6 + -1;\n                  bVar22 = *pbVar19 < *pbVar21;\n                  bVar24 = *pbVar19 == *pbVar21;\n                  pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n                  pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n                } while (bVar24);\n                if ((!bVar22 && !bVar24) == bVar22) {\n                  bVar16 = true;\n                }\n                iVar17 = iVar17 + puVar7[0x19];\n                puVar7 = (undefined4 *)puVar7[3];\n                bVar24 = puVar7 == (undefined4 *)0x0;\n              } while (!bVar24);\n              iVar6 = 0x61;\n              if (!bVar16) {\n                iVar6 = (iVar17 < 1) + 0x62;\n              }\n            }\n            sVar9 = strlen((char *)**(undefined4 **)(local_50 + 0x10));\n            pcVar12 = (char *)xmalloc(sVar9 + 3);\n            sprintf(pcVar12,"%s.%c",**(undefined4 **)(local_50 + 0x10),iVar6);\n            **(undefined4 **)(local_50 + 0x10) = pcVar12;\n            sVar9 = strlen(*(char **)(local_50 + 8));\n            pcVar12 = (char *)xmalloc(sVar9 + 3);\n            sprintf(pcVar12,"%s.%c",*(undefined4 *)(local_50 + 8),iVar6);\n            *(char **)(local_50 + 8) = pcVar12;\n            bVar16 = true;\n          }\n        }" if (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) (compound_statement "{\n          pcVar12 = strrchr((char *)**(undefined4 **)(local_50 + 0x10),0x2e);\n          iVar17 = local_50;\n          if (iVar6 == local_40) {\n            if (!bVar16) goto LAB_00056b08;\n          }\n          else {\n            while ((iVar15 = local_50, local_40 = iVar6, pcVar12 == (char *)0x0 ||\n                   (iVar13 = filename_cmp(pcVar12,".dll"), iVar13 != 0))) {\n              iVar17 = *(int *)(iVar17 + 0x18);\n              if (iVar17 == 0) {\n                local_50 = *(int *)(local_50 + 0x18);\n                bVar16 = false;\n                goto joined_r0x00056b15;\n              }\n              if (iVar6 != (*(undefined4 **)(iVar17 + 0x10))[0x23]) break;\n              pcVar12 = strrchr((char *)**(undefined4 **)(iVar17 + 0x10),0x2e);\n            }\n            do {\n              if (iVar6 != (*(undefined4 **)(iVar15 + 0x10))[0x23]) break;\n              pcVar12 = (char *)**(undefined4 **)(iVar15 + 0x10);\n              pcVar10 = strrchr(pcVar12,0x2e);\n              if (pcVar10 == (char *)0x0) {\nLAB_00056d20:\n                iVar13 = filename_cmp(**(undefined4 **)(iVar17 + 0x10),pcVar12);\n                if (iVar13 != 0) {\n                  bVar16 = false;\n                  goto LAB_00056b08;\n                }\n              }\n              else {\n                iVar13 = filename_cmp(pcVar10,&DAT_00192ed1);\n                if (iVar13 != 0) {\n                  pcVar12 = (char *)**(undefined4 **)(iVar15 + 0x10);\n                  goto LAB_00056d20;\n                }\n              }\n              piVar20 = (int *)(iVar15 + 0x18);\n              iVar15 = *piVar20;\n            } while (*piVar20 != 0);\n            pcVar12 = strrchr((char *)**(undefined4 **)(local_50 + 0x10),0x2e);\n          }\n          bVar16 = true;\n          iVar6 = filename_cmp(pcVar12,".dll");\n          if (iVar6 == 0) {\n            puVar7 = (undefined4 *)(*(undefined4 **)(local_50 + 0x10))[0x18];\n            if (puVar7 == (undefined4 *)0x0) {\n              iVar6 = 99;\n            }\n            else {\n              iVar17 = 0;\n              bVar24 = true;\n              bVar16 = false;\n              do {\n                bVar22 = false;\n                iVar6 = 9;\n                pbVar19 = (byte *)*puVar7;\n                pbVar21 = (byte *)".idata$2";\n                do {\n                  if (iVar6 == 0) break;\n                  iVar6 = iVar6 + -1;\n                  bVar22 = *pbVar19 < *pbVar21;\n                  bVar24 = *pbVar19 == *pbVar21;\n                  pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n                  pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n                } while (bVar24);\n                if ((!bVar22 && !bVar24) == bVar22) {\n                  bVar16 = true;\n                }\n                iVar17 = iVar17 + puVar7[0x19];\n                puVar7 = (undefined4 *)puVar7[3];\n                bVar24 = puVar7 == (undefined4 *)0x0;\n              } while (!bVar24);\n              iVar6 = 0x61;\n              if (!bVar16) {\n                iVar6 = (iVar17 < 1) + 0x62;\n              }\n            }\n            sVar9 = strlen((char *)**(undefined4 **)(local_50 + 0x10));\n            pcVar12 = (char *)xmalloc(sVar9 + 3);\n            sprintf(pcVar12,"%s.%c",**(undefined4 **)(local_50 + 0x10),iVar6);\n            **(undefined4 **)(local_50 + 0x10) = pcVar12;\n            sVar9 = strlen(*(char **)(local_50 + 8));\n            pcVar12 = (char *)xmalloc(sVar9 + 3);\n            sprintf(pcVar12,"%s.%c",*(undefined4 *)(local_50 + 8),iVar6);\n            *(char **)(local_50 + 8) = pcVar12;\n            bVar16 = true;\n          }\n        }" { (expression_statement "pcVar12 = strrchr((char *)**(undefined4 **)(local_50 + 0x10),0x2e);" (assignment_expression "pcVar12 = strrchr((char *)**(undefined4 **)(local_50 + 0x10),0x2e)" identifier = (call_expression "strrchr((char *)**(undefined4 **)(local_50 + 0x10),0x2e)" identifier (argument_list "((char *)**(undefined4 **)(local_50 + 0x10),0x2e)" ( (cast_expression "(char *)**(undefined4 **)(local_50 + 0x10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(local_50 + 0x10)" * (pointer_expression "*(undefined4 **)(local_50 + 0x10)" * (cast_expression "(undefined4 **)(local_50 + 0x10)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_50 + 0x10)" ( (binary_expression "local_50 + 0x10" identifier + number_literal) )))))) , number_literal )))) ;) (expression_statement "iVar17 = local_50;" (assignment_expression "iVar17 = local_50" identifier = identifier) ;) (if_statement "if (iVar6 == local_40) {\n            if (!bVar16) goto LAB_00056b08;\n          }\n          else {\n            while ((iVar15 = local_50, local_40 = iVar6, pcVar12 == (char *)0x0 ||\n                   (iVar13 = filename_cmp(pcVar12,".dll"), iVar13 != 0))) {\n              iVar17 = *(int *)(iVar17 + 0x18);\n              if (iVar17 == 0) {\n                local_50 = *(int *)(local_50 + 0x18);\n                bVar16 = false;\n                goto joined_r0x00056b15;\n              }\n              if (iVar6 != (*(undefined4 **)(iVar17 + 0x10))[0x23]) break;\n              pcVar12 = strrchr((char *)**(undefined4 **)(iVar17 + 0x10),0x2e);\n            }\n            do {\n              if (iVar6 != (*(undefined4 **)(iVar15 + 0x10))[0x23]) break;\n              pcVar12 = (char *)**(undefined4 **)(iVar15 + 0x10);\n              pcVar10 = strrchr(pcVar12,0x2e);\n              if (pcVar10 == (char *)0x0) {\nLAB_00056d20:\n                iVar13 = filename_cmp(**(undefined4 **)(iVar17 + 0x10),pcVar12);\n                if (iVar13 != 0) {\n                  bVar16 = false;\n                  goto LAB_00056b08;\n                }\n              }\n              else {\n                iVar13 = filename_cmp(pcVar10,&DAT_00192ed1);\n                if (iVar13 != 0) {\n                  pcVar12 = (char *)**(undefined4 **)(iVar15 + 0x10);\n                  goto LAB_00056d20;\n                }\n              }\n              piVar20 = (int *)(iVar15 + 0x18);\n              iVar15 = *piVar20;\n            } while (*piVar20 != 0);\n            pcVar12 = strrchr((char *)**(undefined4 **)(local_50 + 0x10),0x2e);\n          }" if (parenthesized_expression "(iVar6 == local_40)" ( (binary_expression "iVar6 == local_40" identifier == identifier) )) (compound_statement "{\n            if (!bVar16) goto LAB_00056b08;\n          }" { (if_statement "if (!bVar16) goto LAB_00056b08;" if (parenthesized_expression "(!bVar16)" ( (unary_expression "!bVar16" ! identifier) )) (goto_statement "goto LAB_00056b08;" goto statement_identifier ;)) }) (else_clause "else {\n            while ((iVar15 = local_50, local_40 = iVar6, pcVar12 == (char *)0x0 ||\n                   (iVar13 = filename_cmp(pcVar12,".dll"), iVar13 != 0))) {\n              iVar17 = *(int *)(iVar17 + 0x18);\n              if (iVar17 == 0) {\n                local_50 = *(int *)(local_50 + 0x18);\n                bVar16 = false;\n                goto joined_r0x00056b15;\n              }\n              if (iVar6 != (*(undefined4 **)(iVar17 + 0x10))[0x23]) break;\n              pcVar12 = strrchr((char *)**(undefined4 **)(iVar17 + 0x10),0x2e);\n            }\n            do {\n              if (iVar6 != (*(undefined4 **)(iVar15 + 0x10))[0x23]) break;\n              pcVar12 = (char *)**(undefined4 **)(iVar15 + 0x10);\n              pcVar10 = strrchr(pcVar12,0x2e);\n              if (pcVar10 == (char *)0x0) {\nLAB_00056d20:\n                iVar13 = filename_cmp(**(undefined4 **)(iVar17 + 0x10),pcVar12);\n                if (iVar13 != 0) {\n                  bVar16 = false;\n                  goto LAB_00056b08;\n                }\n              }\n              else {\n                iVar13 = filename_cmp(pcVar10,&DAT_00192ed1);\n                if (iVar13 != 0) {\n                  pcVar12 = (char *)**(undefined4 **)(iVar15 + 0x10);\n                  goto LAB_00056d20;\n                }\n              }\n              piVar20 = (int *)(iVar15 + 0x18);\n              iVar15 = *piVar20;\n            } while (*piVar20 != 0);\n            pcVar12 = strrchr((char *)**(undefined4 **)(local_50 + 0x10),0x2e);\n          }" else (compound_statement "{\n            while ((iVar15 = local_50, local_40 = iVar6, pcVar12 == (char *)0x0 ||\n                   (iVar13 = filename_cmp(pcVar12,".dll"), iVar13 != 0))) {\n              iVar17 = *(int *)(iVar17 + 0x18);\n              if (iVar17 == 0) {\n                local_50 = *(int *)(local_50 + 0x18);\n                bVar16 = false;\n                goto joined_r0x00056b15;\n              }\n              if (iVar6 != (*(undefined4 **)(iVar17 + 0x10))[0x23]) break;\n              pcVar12 = strrchr((char *)**(undefined4 **)(iVar17 + 0x10),0x2e);\n            }\n            do {\n              if (iVar6 != (*(undefined4 **)(iVar15 + 0x10))[0x23]) break;\n              pcVar12 = (char *)**(undefined4 **)(iVar15 + 0x10);\n              pcVar10 = strrchr(pcVar12,0x2e);\n              if (pcVar10 == (char *)0x0) {\nLAB_00056d20:\n                iVar13 = filename_cmp(**(undefined4 **)(iVar17 + 0x10),pcVar12);\n                if (iVar13 != 0) {\n                  bVar16 = false;\n                  goto LAB_00056b08;\n                }\n              }\n              else {\n                iVar13 = filename_cmp(pcVar10,&DAT_00192ed1);\n                if (iVar13 != 0) {\n                  pcVar12 = (char *)**(undefined4 **)(iVar15 + 0x10);\n                  goto LAB_00056d20;\n                }\n              }\n              piVar20 = (int *)(iVar15 + 0x18);\n              iVar15 = *piVar20;\n            } while (*piVar20 != 0);\n            pcVar12 = strrchr((char *)**(undefined4 **)(local_50 + 0x10),0x2e);\n          }" { (while_statement "while ((iVar15 = local_50, local_40 = iVar6, pcVar12 == (char *)0x0 ||\n                   (iVar13 = filename_cmp(pcVar12,".dll"), iVar13 != 0))) {\n              iVar17 = *(int *)(iVar17 + 0x18);\n              if (iVar17 == 0) {\n                local_50 = *(int *)(local_50 + 0x18);\n                bVar16 = false;\n                goto joined_r0x00056b15;\n              }\n              if (iVar6 != (*(undefined4 **)(iVar17 + 0x10))[0x23]) break;\n              pcVar12 = strrchr((char *)**(undefined4 **)(iVar17 + 0x10),0x2e);\n            }" while (parenthesized_expression "((iVar15 = local_50, local_40 = iVar6, pcVar12 == (char *)0x0 ||\n                   (iVar13 = filename_cmp(pcVar12,".dll"), iVar13 != 0)))" ( (parenthesized_expression "(iVar15 = local_50, local_40 = iVar6, pcVar12 == (char *)0x0 ||\n                   (iVar13 = filename_cmp(pcVar12,".dll"), iVar13 != 0))" ( (comma_expression "iVar15 = local_50, local_40 = iVar6, pcVar12 == (char *)0x0 ||\n                   (iVar13 = filename_cmp(pcVar12,".dll"), iVar13 != 0)" (assignment_expression "iVar15 = local_50" identifier = identifier) , (comma_expression "local_40 = iVar6, pcVar12 == (char *)0x0 ||\n                   (iVar13 = filename_cmp(pcVar12,".dll"), iVar13 != 0)" (assignment_expression "local_40 = iVar6" identifier = identifier) , (binary_expression "pcVar12 == (char *)0x0 ||\n                   (iVar13 = filename_cmp(pcVar12,".dll"), iVar13 != 0)" (binary_expression "pcVar12 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) || (parenthesized_expression "(iVar13 = filename_cmp(pcVar12,".dll"), iVar13 != 0)" ( (comma_expression "iVar13 = filename_cmp(pcVar12,".dll"), iVar13 != 0" (assignment_expression "iVar13 = filename_cmp(pcVar12,".dll")" identifier = (call_expression "filename_cmp(pcVar12,".dll")" identifier (argument_list "(pcVar12,".dll")" ( identifier , (string_literal "".dll"" " string_content ") )))) , (binary_expression "iVar13 != 0" identifier != number_literal)) ))))) )) )) (compound_statement "{\n              iVar17 = *(int *)(iVar17 + 0x18);\n              if (iVar17 == 0) {\n                local_50 = *(int *)(local_50 + 0x18);\n                bVar16 = false;\n                goto joined_r0x00056b15;\n              }\n              if (iVar6 != (*(undefined4 **)(iVar17 + 0x10))[0x23]) break;\n              pcVar12 = strrchr((char *)**(undefined4 **)(iVar17 + 0x10),0x2e);\n            }" { (expression_statement "iVar17 = *(int *)(iVar17 + 0x18);" (assignment_expression "iVar17 = *(int *)(iVar17 + 0x18)" identifier = (pointer_expression "*(int *)(iVar17 + 0x18)" * (cast_expression "(int *)(iVar17 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x18)" ( (binary_expression "iVar17 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if (iVar17 == 0) {\n                local_50 = *(int *)(local_50 + 0x18);\n                bVar16 = false;\n                goto joined_r0x00056b15;\n              }" if (parenthesized_expression "(iVar17 == 0)" ( (binary_expression "iVar17 == 0" identifier == number_literal) )) (compound_statement "{\n                local_50 = *(int *)(local_50 + 0x18);\n                bVar16 = false;\n                goto joined_r0x00056b15;\n              }" { (expression_statement "local_50 = *(int *)(local_50 + 0x18);" (assignment_expression "local_50 = *(int *)(local_50 + 0x18)" identifier = (pointer_expression "*(int *)(local_50 + 0x18)" * (cast_expression "(int *)(local_50 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_50 + 0x18)" ( (binary_expression "local_50 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "bVar16 = false;" (assignment_expression "bVar16 = false" identifier = false) ;) (goto_statement "goto joined_r0x00056b15;" goto statement_identifier ;) })) (if_statement "if (iVar6 != (*(undefined4 **)(iVar17 + 0x10))[0x23]) break;" if (parenthesized_expression "(iVar6 != (*(undefined4 **)(iVar17 + 0x10))[0x23])" ( (binary_expression "iVar6 != (*(undefined4 **)(iVar17 + 0x10))[0x23]" identifier != (subscript_expression "(*(undefined4 **)(iVar17 + 0x10))[0x23]" (parenthesized_expression "(*(undefined4 **)(iVar17 + 0x10))" ( (pointer_expression "*(undefined4 **)(iVar17 + 0x10)" * (cast_expression "(undefined4 **)(iVar17 + 0x10)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar17 + 0x10)" ( (binary_expression "iVar17 + 0x10" identifier + number_literal) )))) )) [ number_literal ])) )) (break_statement "break;" break ;)) (expression_statement "pcVar12 = strrchr((char *)**(undefined4 **)(iVar17 + 0x10),0x2e);" (assignment_expression "pcVar12 = strrchr((char *)**(undefined4 **)(iVar17 + 0x10),0x2e)" identifier = (call_expression "strrchr((char *)**(undefined4 **)(iVar17 + 0x10),0x2e)" identifier (argument_list "((char *)**(undefined4 **)(iVar17 + 0x10),0x2e)" ( (cast_expression "(char *)**(undefined4 **)(iVar17 + 0x10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(iVar17 + 0x10)" * (pointer_expression "*(undefined4 **)(iVar17 + 0x10)" * (cast_expression "(undefined4 **)(iVar17 + 0x10)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar17 + 0x10)" ( (binary_expression "iVar17 + 0x10" identifier + number_literal) )))))) , number_literal )))) ;) })) (do_statement "do {\n              if (iVar6 != (*(undefined4 **)(iVar15 + 0x10))[0x23]) break;\n              pcVar12 = (char *)**(undefined4 **)(iVar15 + 0x10);\n              pcVar10 = strrchr(pcVar12,0x2e);\n              if (pcVar10 == (char *)0x0) {\nLAB_00056d20:\n                iVar13 = filename_cmp(**(undefined4 **)(iVar17 + 0x10),pcVar12);\n                if (iVar13 != 0) {\n                  bVar16 = false;\n                  goto LAB_00056b08;\n                }\n              }\n              else {\n                iVar13 = filename_cmp(pcVar10,&DAT_00192ed1);\n                if (iVar13 != 0) {\n                  pcVar12 = (char *)**(undefined4 **)(iVar15 + 0x10);\n                  goto LAB_00056d20;\n                }\n              }\n              piVar20 = (int *)(iVar15 + 0x18);\n              iVar15 = *piVar20;\n            } while (*piVar20 != 0);" do (compound_statement "{\n              if (iVar6 != (*(undefined4 **)(iVar15 + 0x10))[0x23]) break;\n              pcVar12 = (char *)**(undefined4 **)(iVar15 + 0x10);\n              pcVar10 = strrchr(pcVar12,0x2e);\n              if (pcVar10 == (char *)0x0) {\nLAB_00056d20:\n                iVar13 = filename_cmp(**(undefined4 **)(iVar17 + 0x10),pcVar12);\n                if (iVar13 != 0) {\n                  bVar16 = false;\n                  goto LAB_00056b08;\n                }\n              }\n              else {\n                iVar13 = filename_cmp(pcVar10,&DAT_00192ed1);\n                if (iVar13 != 0) {\n                  pcVar12 = (char *)**(undefined4 **)(iVar15 + 0x10);\n                  goto LAB_00056d20;\n                }\n              }\n              piVar20 = (int *)(iVar15 + 0x18);\n              iVar15 = *piVar20;\n            }" { (if_statement "if (iVar6 != (*(undefined4 **)(iVar15 + 0x10))[0x23]) break;" if (parenthesized_expression "(iVar6 != (*(undefined4 **)(iVar15 + 0x10))[0x23])" ( (binary_expression "iVar6 != (*(undefined4 **)(iVar15 + 0x10))[0x23]" identifier != (subscript_expression "(*(undefined4 **)(iVar15 + 0x10))[0x23]" (parenthesized_expression "(*(undefined4 **)(iVar15 + 0x10))" ( (pointer_expression "*(undefined4 **)(iVar15 + 0x10)" * (cast_expression "(undefined4 **)(iVar15 + 0x10)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar15 + 0x10)" ( (binary_expression "iVar15 + 0x10" identifier + number_literal) )))) )) [ number_literal ])) )) (break_statement "break;" break ;)) (expression_statement "pcVar12 = (char *)**(undefined4 **)(iVar15 + 0x10);" (assignment_expression "pcVar12 = (char *)**(undefined4 **)(iVar15 + 0x10)" identifier = (cast_expression "(char *)**(undefined4 **)(iVar15 + 0x10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(iVar15 + 0x10)" * (pointer_expression "*(undefined4 **)(iVar15 + 0x10)" * (cast_expression "(undefined4 **)(iVar15 + 0x10)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar15 + 0x10)" ( (binary_expression "iVar15 + 0x10" identifier + number_literal) ))))))) ;) (expression_statement "pcVar10 = strrchr(pcVar12,0x2e);" (assignment_expression "pcVar10 = strrchr(pcVar12,0x2e)" identifier = (call_expression "strrchr(pcVar12,0x2e)" identifier (argument_list "(pcVar12,0x2e)" ( identifier , number_literal )))) ;) (if_statement "if (pcVar10 == (char *)0x0) {\nLAB_00056d20:\n                iVar13 = filename_cmp(**(undefined4 **)(iVar17 + 0x10),pcVar12);\n                if (iVar13 != 0) {\n                  bVar16 = false;\n                  goto LAB_00056b08;\n                }\n              }\n              else {\n                iVar13 = filename_cmp(pcVar10,&DAT_00192ed1);\n                if (iVar13 != 0) {\n                  pcVar12 = (char *)**(undefined4 **)(iVar15 + 0x10);\n                  goto LAB_00056d20;\n                }\n              }" if (parenthesized_expression "(pcVar10 == (char *)0x0)" ( (binary_expression "pcVar10 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_00056d20:\n                iVar13 = filename_cmp(**(undefined4 **)(iVar17 + 0x10),pcVar12);\n                if (iVar13 != 0) {\n                  bVar16 = false;\n                  goto LAB_00056b08;\n                }\n              }" { (labeled_statement "LAB_00056d20:\n                iVar13 = filename_cmp(**(undefined4 **)(iVar17 + 0x10),pcVar12);" statement_identifier : (expression_statement "iVar13 = filename_cmp(**(undefined4 **)(iVar17 + 0x10),pcVar12);" (assignment_expression "iVar13 = filename_cmp(**(undefined4 **)(iVar17 + 0x10),pcVar12)" identifier = (call_expression "filename_cmp(**(undefined4 **)(iVar17 + 0x10),pcVar12)" identifier (argument_list "(**(undefined4 **)(iVar17 + 0x10),pcVar12)" ( (pointer_expression "**(undefined4 **)(iVar17 + 0x10)" * (pointer_expression "*(undefined4 **)(iVar17 + 0x10)" * (cast_expression "(undefined4 **)(iVar17 + 0x10)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar17 + 0x10)" ( (binary_expression "iVar17 + 0x10" identifier + number_literal) ))))) , identifier )))) ;)) (if_statement "if (iVar13 != 0) {\n                  bVar16 = false;\n                  goto LAB_00056b08;\n                }" if (parenthesized_expression "(iVar13 != 0)" ( (binary_expression "iVar13 != 0" identifier != number_literal) )) (compound_statement "{\n                  bVar16 = false;\n                  goto LAB_00056b08;\n                }" { (expression_statement "bVar16 = false;" (assignment_expression "bVar16 = false" identifier = false) ;) (goto_statement "goto LAB_00056b08;" goto statement_identifier ;) })) }) (else_clause "else {\n                iVar13 = filename_cmp(pcVar10,&DAT_00192ed1);\n                if (iVar13 != 0) {\n                  pcVar12 = (char *)**(undefined4 **)(iVar15 + 0x10);\n                  goto LAB_00056d20;\n                }\n              }" else (compound_statement "{\n                iVar13 = filename_cmp(pcVar10,&DAT_00192ed1);\n                if (iVar13 != 0) {\n                  pcVar12 = (char *)**(undefined4 **)(iVar15 + 0x10);\n                  goto LAB_00056d20;\n                }\n              }" { (expression_statement "iVar13 = filename_cmp(pcVar10,&DAT_00192ed1);" (assignment_expression "iVar13 = filename_cmp(pcVar10,&DAT_00192ed1)" identifier = (call_expression "filename_cmp(pcVar10,&DAT_00192ed1)" identifier (argument_list "(pcVar10,&DAT_00192ed1)" ( identifier , (pointer_expression "&DAT_00192ed1" & identifier) )))) ;) (if_statement "if (iVar13 != 0) {\n                  pcVar12 = (char *)**(undefined4 **)(iVar15 + 0x10);\n                  goto LAB_00056d20;\n                }" if (parenthesized_expression "(iVar13 != 0)" ( (binary_expression "iVar13 != 0" identifier != number_literal) )) (compound_statement "{\n                  pcVar12 = (char *)**(undefined4 **)(iVar15 + 0x10);\n                  goto LAB_00056d20;\n                }" { (expression_statement "pcVar12 = (char *)**(undefined4 **)(iVar15 + 0x10);" (assignment_expression "pcVar12 = (char *)**(undefined4 **)(iVar15 + 0x10)" identifier = (cast_expression "(char *)**(undefined4 **)(iVar15 + 0x10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(iVar15 + 0x10)" * (pointer_expression "*(undefined4 **)(iVar15 + 0x10)" * (cast_expression "(undefined4 **)(iVar15 + 0x10)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar15 + 0x10)" ( (binary_expression "iVar15 + 0x10" identifier + number_literal) ))))))) ;) (goto_statement "goto LAB_00056d20;" goto statement_identifier ;) })) }))) (expression_statement "piVar20 = (int *)(iVar15 + 0x18);" (assignment_expression "piVar20 = (int *)(iVar15 + 0x18)" identifier = (cast_expression "(int *)(iVar15 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x18)" ( (binary_expression "iVar15 + 0x18" identifier + number_literal) )))) ;) (expression_statement "iVar15 = *piVar20;" (assignment_expression "iVar15 = *piVar20" identifier = (pointer_expression "*piVar20" * identifier)) ;) }) while (parenthesized_expression "(*piVar20 != 0)" ( (binary_expression "*piVar20 != 0" (pointer_expression "*piVar20" * identifier) != number_literal) )) ;) (expression_statement "pcVar12 = strrchr((char *)**(undefined4 **)(local_50 + 0x10),0x2e);" (assignment_expression "pcVar12 = strrchr((char *)**(undefined4 **)(local_50 + 0x10),0x2e)" identifier = (call_expression "strrchr((char *)**(undefined4 **)(local_50 + 0x10),0x2e)" identifier (argument_list "((char *)**(undefined4 **)(local_50 + 0x10),0x2e)" ( (cast_expression "(char *)**(undefined4 **)(local_50 + 0x10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(local_50 + 0x10)" * (pointer_expression "*(undefined4 **)(local_50 + 0x10)" * (cast_expression "(undefined4 **)(local_50 + 0x10)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_50 + 0x10)" ( (binary_expression "local_50 + 0x10" identifier + number_literal) )))))) , number_literal )))) ;) }))) (expression_statement "bVar16 = true;" (assignment_expression "bVar16 = true" identifier = true) ;) (expression_statement "iVar6 = filename_cmp(pcVar12,".dll");" (assignment_expression "iVar6 = filename_cmp(pcVar12,".dll")" identifier = (call_expression "filename_cmp(pcVar12,".dll")" identifier (argument_list "(pcVar12,".dll")" ( identifier , (string_literal "".dll"" " string_content ") )))) ;) (if_statement "if (iVar6 == 0) {\n            puVar7 = (undefined4 *)(*(undefined4 **)(local_50 + 0x10))[0x18];\n            if (puVar7 == (undefined4 *)0x0) {\n              iVar6 = 99;\n            }\n            else {\n              iVar17 = 0;\n              bVar24 = true;\n              bVar16 = false;\n              do {\n                bVar22 = false;\n                iVar6 = 9;\n                pbVar19 = (byte *)*puVar7;\n                pbVar21 = (byte *)".idata$2";\n                do {\n                  if (iVar6 == 0) break;\n                  iVar6 = iVar6 + -1;\n                  bVar22 = *pbVar19 < *pbVar21;\n                  bVar24 = *pbVar19 == *pbVar21;\n                  pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n                  pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n                } while (bVar24);\n                if ((!bVar22 && !bVar24) == bVar22) {\n                  bVar16 = true;\n                }\n                iVar17 = iVar17 + puVar7[0x19];\n                puVar7 = (undefined4 *)puVar7[3];\n                bVar24 = puVar7 == (undefined4 *)0x0;\n              } while (!bVar24);\n              iVar6 = 0x61;\n              if (!bVar16) {\n                iVar6 = (iVar17 < 1) + 0x62;\n              }\n            }\n            sVar9 = strlen((char *)**(undefined4 **)(local_50 + 0x10));\n            pcVar12 = (char *)xmalloc(sVar9 + 3);\n            sprintf(pcVar12,"%s.%c",**(undefined4 **)(local_50 + 0x10),iVar6);\n            **(undefined4 **)(local_50 + 0x10) = pcVar12;\n            sVar9 = strlen(*(char **)(local_50 + 8));\n            pcVar12 = (char *)xmalloc(sVar9 + 3);\n            sprintf(pcVar12,"%s.%c",*(undefined4 *)(local_50 + 8),iVar6);\n            *(char **)(local_50 + 8) = pcVar12;\n            bVar16 = true;\n          }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n            puVar7 = (undefined4 *)(*(undefined4 **)(local_50 + 0x10))[0x18];\n            if (puVar7 == (undefined4 *)0x0) {\n              iVar6 = 99;\n            }\n            else {\n              iVar17 = 0;\n              bVar24 = true;\n              bVar16 = false;\n              do {\n                bVar22 = false;\n                iVar6 = 9;\n                pbVar19 = (byte *)*puVar7;\n                pbVar21 = (byte *)".idata$2";\n                do {\n                  if (iVar6 == 0) break;\n                  iVar6 = iVar6 + -1;\n                  bVar22 = *pbVar19 < *pbVar21;\n                  bVar24 = *pbVar19 == *pbVar21;\n                  pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n                  pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n                } while (bVar24);\n                if ((!bVar22 && !bVar24) == bVar22) {\n                  bVar16 = true;\n                }\n                iVar17 = iVar17 + puVar7[0x19];\n                puVar7 = (undefined4 *)puVar7[3];\n                bVar24 = puVar7 == (undefined4 *)0x0;\n              } while (!bVar24);\n              iVar6 = 0x61;\n              if (!bVar16) {\n                iVar6 = (iVar17 < 1) + 0x62;\n              }\n            }\n            sVar9 = strlen((char *)**(undefined4 **)(local_50 + 0x10));\n            pcVar12 = (char *)xmalloc(sVar9 + 3);\n            sprintf(pcVar12,"%s.%c",**(undefined4 **)(local_50 + 0x10),iVar6);\n            **(undefined4 **)(local_50 + 0x10) = pcVar12;\n            sVar9 = strlen(*(char **)(local_50 + 8));\n            pcVar12 = (char *)xmalloc(sVar9 + 3);\n            sprintf(pcVar12,"%s.%c",*(undefined4 *)(local_50 + 8),iVar6);\n            *(char **)(local_50 + 8) = pcVar12;\n            bVar16 = true;\n          }" { (expression_statement "puVar7 = (undefined4 *)(*(undefined4 **)(local_50 + 0x10))[0x18];" (assignment_expression "puVar7 = (undefined4 *)(*(undefined4 **)(local_50 + 0x10))[0x18]" identifier = (cast_expression "(undefined4 *)(*(undefined4 **)(local_50 + 0x10))[0x18]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "(*(undefined4 **)(local_50 + 0x10))[0x18]" (parenthesized_expression "(*(undefined4 **)(local_50 + 0x10))" ( (pointer_expression "*(undefined4 **)(local_50 + 0x10)" * (cast_expression "(undefined4 **)(local_50 + 0x10)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_50 + 0x10)" ( (binary_expression "local_50 + 0x10" identifier + number_literal) )))) )) [ number_literal ]))) ;) (if_statement "if (puVar7 == (undefined4 *)0x0) {\n              iVar6 = 99;\n            }\n            else {\n              iVar17 = 0;\n              bVar24 = true;\n              bVar16 = false;\n              do {\n                bVar22 = false;\n                iVar6 = 9;\n                pbVar19 = (byte *)*puVar7;\n                pbVar21 = (byte *)".idata$2";\n                do {\n                  if (iVar6 == 0) break;\n                  iVar6 = iVar6 + -1;\n                  bVar22 = *pbVar19 < *pbVar21;\n                  bVar24 = *pbVar19 == *pbVar21;\n                  pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n                  pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n                } while (bVar24);\n                if ((!bVar22 && !bVar24) == bVar22) {\n                  bVar16 = true;\n                }\n                iVar17 = iVar17 + puVar7[0x19];\n                puVar7 = (undefined4 *)puVar7[3];\n                bVar24 = puVar7 == (undefined4 *)0x0;\n              } while (!bVar24);\n              iVar6 = 0x61;\n              if (!bVar16) {\n                iVar6 = (iVar17 < 1) + 0x62;\n              }\n            }" if (parenthesized_expression "(puVar7 == (undefined4 *)0x0)" ( (binary_expression "puVar7 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              iVar6 = 99;\n            }" { (expression_statement "iVar6 = 99;" (assignment_expression "iVar6 = 99" identifier = number_literal) ;) }) (else_clause "else {\n              iVar17 = 0;\n              bVar24 = true;\n              bVar16 = false;\n              do {\n                bVar22 = false;\n                iVar6 = 9;\n                pbVar19 = (byte *)*puVar7;\n                pbVar21 = (byte *)".idata$2";\n                do {\n                  if (iVar6 == 0) break;\n                  iVar6 = iVar6 + -1;\n                  bVar22 = *pbVar19 < *pbVar21;\n                  bVar24 = *pbVar19 == *pbVar21;\n                  pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n                  pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n                } while (bVar24);\n                if ((!bVar22 && !bVar24) == bVar22) {\n                  bVar16 = true;\n                }\n                iVar17 = iVar17 + puVar7[0x19];\n                puVar7 = (undefined4 *)puVar7[3];\n                bVar24 = puVar7 == (undefined4 *)0x0;\n              } while (!bVar24);\n              iVar6 = 0x61;\n              if (!bVar16) {\n                iVar6 = (iVar17 < 1) + 0x62;\n              }\n            }" else (compound_statement "{\n              iVar17 = 0;\n              bVar24 = true;\n              bVar16 = false;\n              do {\n                bVar22 = false;\n                iVar6 = 9;\n                pbVar19 = (byte *)*puVar7;\n                pbVar21 = (byte *)".idata$2";\n                do {\n                  if (iVar6 == 0) break;\n                  iVar6 = iVar6 + -1;\n                  bVar22 = *pbVar19 < *pbVar21;\n                  bVar24 = *pbVar19 == *pbVar21;\n                  pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n                  pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n                } while (bVar24);\n                if ((!bVar22 && !bVar24) == bVar22) {\n                  bVar16 = true;\n                }\n                iVar17 = iVar17 + puVar7[0x19];\n                puVar7 = (undefined4 *)puVar7[3];\n                bVar24 = puVar7 == (undefined4 *)0x0;\n              } while (!bVar24);\n              iVar6 = 0x61;\n              if (!bVar16) {\n                iVar6 = (iVar17 < 1) + 0x62;\n              }\n            }" { (expression_statement "iVar17 = 0;" (assignment_expression "iVar17 = 0" identifier = number_literal) ;) (expression_statement "bVar24 = true;" (assignment_expression "bVar24 = true" identifier = true) ;) (expression_statement "bVar16 = false;" (assignment_expression "bVar16 = false" identifier = false) ;) (do_statement "do {\n                bVar22 = false;\n                iVar6 = 9;\n                pbVar19 = (byte *)*puVar7;\n                pbVar21 = (byte *)".idata$2";\n                do {\n                  if (iVar6 == 0) break;\n                  iVar6 = iVar6 + -1;\n                  bVar22 = *pbVar19 < *pbVar21;\n                  bVar24 = *pbVar19 == *pbVar21;\n                  pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n                  pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n                } while (bVar24);\n                if ((!bVar22 && !bVar24) == bVar22) {\n                  bVar16 = true;\n                }\n                iVar17 = iVar17 + puVar7[0x19];\n                puVar7 = (undefined4 *)puVar7[3];\n                bVar24 = puVar7 == (undefined4 *)0x0;\n              } while (!bVar24);" do (compound_statement "{\n                bVar22 = false;\n                iVar6 = 9;\n                pbVar19 = (byte *)*puVar7;\n                pbVar21 = (byte *)".idata$2";\n                do {\n                  if (iVar6 == 0) break;\n                  iVar6 = iVar6 + -1;\n                  bVar22 = *pbVar19 < *pbVar21;\n                  bVar24 = *pbVar19 == *pbVar21;\n                  pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n                  pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n                } while (bVar24);\n                if ((!bVar22 && !bVar24) == bVar22) {\n                  bVar16 = true;\n                }\n                iVar17 = iVar17 + puVar7[0x19];\n                puVar7 = (undefined4 *)puVar7[3];\n                bVar24 = puVar7 == (undefined4 *)0x0;\n              }" { (expression_statement "bVar22 = false;" (assignment_expression "bVar22 = false" identifier = false) ;) (expression_statement "iVar6 = 9;" (assignment_expression "iVar6 = 9" identifier = number_literal) ;) (expression_statement "pbVar19 = (byte *)*puVar7;" (assignment_expression "pbVar19 = (byte *)*puVar7" identifier = (cast_expression "(byte *)*puVar7" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar7" * identifier))) ;) (expression_statement "pbVar21 = (byte *)".idata$2";" (assignment_expression "pbVar21 = (byte *)".idata$2"" identifier = (cast_expression "(byte *)".idata$2"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".idata$2"" " string_content "))) ;) (do_statement "do {\n                  if (iVar6 == 0) break;\n                  iVar6 = iVar6 + -1;\n                  bVar22 = *pbVar19 < *pbVar21;\n                  bVar24 = *pbVar19 == *pbVar21;\n                  pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n                  pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n                } while (bVar24);" do (compound_statement "{\n                  if (iVar6 == 0) break;\n                  iVar6 = iVar6 + -1;\n                  bVar22 = *pbVar19 < *pbVar21;\n                  bVar24 = *pbVar19 == *pbVar21;\n                  pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n                  pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n                }" { (if_statement "if (iVar6 == 0) break;" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar6 = iVar6 + -1;" (assignment_expression "iVar6 = iVar6 + -1" identifier = (binary_expression "iVar6 + -1" identifier + number_literal)) ;) (expression_statement "bVar22 = *pbVar19 < *pbVar21;" (assignment_expression "bVar22 = *pbVar19 < *pbVar21" identifier = (binary_expression "*pbVar19 < *pbVar21" (pointer_expression "*pbVar19" * identifier) < (pointer_expression "*pbVar21" * identifier))) ;) (expression_statement "bVar24 = *pbVar19 == *pbVar21;" (assignment_expression "bVar24 = *pbVar19 == *pbVar21" identifier = (binary_expression "*pbVar19 == *pbVar21" (pointer_expression "*pbVar19" * identifier) == (pointer_expression "*pbVar21" * identifier))) ;) (expression_statement "pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pbVar19 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar19 + (uint)bVar25 * -2" identifier + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pbVar21 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar21 + (uint)bVar25 * -2" identifier + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar24)" ( identifier )) ;) (if_statement "if ((!bVar22 && !bVar24) == bVar22) {\n                  bVar16 = true;\n                }" if (parenthesized_expression "((!bVar22 && !bVar24) == bVar22)" ( (binary_expression "(!bVar22 && !bVar24) == bVar22" (parenthesized_expression "(!bVar22 && !bVar24)" ( (binary_expression "!bVar22 && !bVar24" (unary_expression "!bVar22" ! identifier) && (unary_expression "!bVar24" ! identifier)) )) == identifier) )) (compound_statement "{\n                  bVar16 = true;\n                }" { (expression_statement "bVar16 = true;" (assignment_expression "bVar16 = true" identifier = true) ;) })) (expression_statement "iVar17 = iVar17 + puVar7[0x19];" (assignment_expression "iVar17 = iVar17 + puVar7[0x19]" identifier = (binary_expression "iVar17 + puVar7[0x19]" identifier + (subscript_expression "puVar7[0x19]" identifier [ number_literal ]))) ;) (expression_statement "puVar7 = (undefined4 *)puVar7[3];" (assignment_expression "puVar7 = (undefined4 *)puVar7[3]" identifier = (cast_expression "(undefined4 *)puVar7[3]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar7[3]" identifier [ number_literal ]))) ;) (expression_statement "bVar24 = puVar7 == (undefined4 *)0x0;" (assignment_expression "bVar24 = puVar7 == (undefined4 *)0x0" identifier = (binary_expression "puVar7 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) }) while (parenthesized_expression "(!bVar24)" ( (unary_expression "!bVar24" ! identifier) )) ;) (expression_statement "iVar6 = 0x61;" (assignment_expression "iVar6 = 0x61" identifier = number_literal) ;) (if_statement "if (!bVar16) {\n                iVar6 = (iVar17 < 1) + 0x62;\n              }" if (parenthesized_expression "(!bVar16)" ( (unary_expression "!bVar16" ! identifier) )) (compound_statement "{\n                iVar6 = (iVar17 < 1) + 0x62;\n              }" { (expression_statement "iVar6 = (iVar17 < 1) + 0x62;" (assignment_expression "iVar6 = (iVar17 < 1) + 0x62" identifier = (binary_expression "(iVar17 < 1) + 0x62" (parenthesized_expression "(iVar17 < 1)" ( (binary_expression "iVar17 < 1" identifier < number_literal) )) + number_literal)) ;) })) }))) (expression_statement "sVar9 = strlen((char *)**(undefined4 **)(local_50 + 0x10));" (assignment_expression "sVar9 = strlen((char *)**(undefined4 **)(local_50 + 0x10))" identifier = (call_expression "strlen((char *)**(undefined4 **)(local_50 + 0x10))" identifier (argument_list "((char *)**(undefined4 **)(local_50 + 0x10))" ( (cast_expression "(char *)**(undefined4 **)(local_50 + 0x10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(local_50 + 0x10)" * (pointer_expression "*(undefined4 **)(local_50 + 0x10)" * (cast_expression "(undefined4 **)(local_50 + 0x10)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_50 + 0x10)" ( (binary_expression "local_50 + 0x10" identifier + number_literal) )))))) )))) ;) (expression_statement "pcVar12 = (char *)xmalloc(sVar9 + 3);" (assignment_expression "pcVar12 = (char *)xmalloc(sVar9 + 3)" identifier = (cast_expression "(char *)xmalloc(sVar9 + 3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(sVar9 + 3)" identifier (argument_list "(sVar9 + 3)" ( (binary_expression "sVar9 + 3" identifier + number_literal) ))))) ;) (expression_statement "sprintf(pcVar12,"%s.%c",**(undefined4 **)(local_50 + 0x10),iVar6);" (call_expression "sprintf(pcVar12,"%s.%c",**(undefined4 **)(local_50 + 0x10),iVar6)" identifier (argument_list "(pcVar12,"%s.%c",**(undefined4 **)(local_50 + 0x10),iVar6)" ( identifier , (string_literal ""%s.%c"" " string_content ") , (pointer_expression "**(undefined4 **)(local_50 + 0x10)" * (pointer_expression "*(undefined4 **)(local_50 + 0x10)" * (cast_expression "(undefined4 **)(local_50 + 0x10)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_50 + 0x10)" ( (binary_expression "local_50 + 0x10" identifier + number_literal) ))))) , identifier ))) ;) (expression_statement "**(undefined4 **)(local_50 + 0x10) = pcVar12;" (assignment_expression "**(undefined4 **)(local_50 + 0x10) = pcVar12" (pointer_expression "**(undefined4 **)(local_50 + 0x10)" * (pointer_expression "*(undefined4 **)(local_50 + 0x10)" * (cast_expression "(undefined4 **)(local_50 + 0x10)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_50 + 0x10)" ( (binary_expression "local_50 + 0x10" identifier + number_literal) ))))) = identifier) ;) (expression_statement "sVar9 = strlen(*(char **)(local_50 + 8));" (assignment_expression "sVar9 = strlen(*(char **)(local_50 + 8))" identifier = (call_expression "strlen(*(char **)(local_50 + 8))" identifier (argument_list "(*(char **)(local_50 + 8))" ( (pointer_expression "*(char **)(local_50 + 8)" * (cast_expression "(char **)(local_50 + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_50 + 8)" ( (binary_expression "local_50 + 8" identifier + number_literal) )))) )))) ;) (expression_statement "pcVar12 = (char *)xmalloc(sVar9 + 3);" (assignment_expression "pcVar12 = (char *)xmalloc(sVar9 + 3)" identifier = (cast_expression "(char *)xmalloc(sVar9 + 3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(sVar9 + 3)" identifier (argument_list "(sVar9 + 3)" ( (binary_expression "sVar9 + 3" identifier + number_literal) ))))) ;) (expression_statement "sprintf(pcVar12,"%s.%c",*(undefined4 *)(local_50 + 8),iVar6);" (call_expression "sprintf(pcVar12,"%s.%c",*(undefined4 *)(local_50 + 8),iVar6)" identifier (argument_list "(pcVar12,"%s.%c",*(undefined4 *)(local_50 + 8),iVar6)" ( identifier , (string_literal ""%s.%c"" " string_content ") , (pointer_expression "*(undefined4 *)(local_50 + 8)" * (cast_expression "(undefined4 *)(local_50 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_50 + 8)" ( (binary_expression "local_50 + 8" identifier + number_literal) )))) , identifier ))) ;) (expression_statement "*(char **)(local_50 + 8) = pcVar12;" (assignment_expression "*(char **)(local_50 + 8) = pcVar12" (pointer_expression "*(char **)(local_50 + 8)" * (cast_expression "(char **)(local_50 + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_50 + 8)" ( (binary_expression "local_50 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "bVar16 = true;" (assignment_expression "bVar16 = true" identifier = true) ;) })) })) (labeled_statement "LAB_00056b08:\n        local_50 = *(int *)(local_50 + 0x18);" statement_identifier : (expression_statement "local_50 = *(int *)(local_50 + 0x18);" (assignment_expression "local_50 = *(int *)(local_50 + 0x18)" identifier = (pointer_expression "*(int *)(local_50 + 0x18)" * (cast_expression "(int *)(local_50 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_50 + 0x18)" ( (binary_expression "local_50 + 0x18" identifier + number_literal) ))))) ;)) (labeled_statement "joined_r0x00056b15:\n      } while (local_50 != 0);" statement_identifier : (ERROR "}" }) (while_statement "while (local_50 != 0);" while (parenthesized_expression "(local_50 != 0)" ( (binary_expression "local_50 != 0" identifier != number_literal) )) (expression_statement ";" ;))) (expression_statement "local_4c = DAT_001cf6bc;" (assignment_expression "local_4c = DAT_001cf6bc" identifier = identifier) ;) (if_statement "if (DAT_001cf6bc != 0) {\n        do {\n          iVar6 = *(int *)(local_4c + 0x10);\n          if ((*(int *)(iVar6 + 0x8c) != 0) &&\n             (puVar7 = *(undefined4 **)(iVar6 + 0x60), puVar7 != (undefined4 *)0x0)) {\n            puVar18 = (undefined4 *)0x0;\n            bVar16 = false;\n            bVar24 = true;\n            do {\n              bVar22 = false;\n              iVar17 = 7;\n              pbVar19 = (byte *)*puVar7;\n              pbVar21 = (byte *)".idata$";\n              do {\n                if (iVar17 == 0) break;\n                iVar17 = iVar17 + -1;\n                bVar22 = *pbVar19 < *pbVar21;\n                bVar24 = *pbVar19 == *pbVar21;\n                pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n                pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n              } while (bVar24);\n              if ((!bVar22 && !bVar24) == bVar22) {\n                bVar16 = true;\n              }\n              if (((*(byte *)(puVar7 + 5) & 0x10) != 0) && (puVar7[0x19] != 0)) {\n                puVar18 = puVar7;\n              }\n              puVar7 = (undefined4 *)puVar7[3];\n              bVar24 = puVar7 == (undefined4 *)0x0;\n            } while (!bVar24);\n            if ((puVar18 != (undefined4 *)0x0) && (bVar16)) {\n              iVar6 = bfd_generic_link_read_symbols(iVar6);\n              if (iVar6 == 0) {\nLAB_000570af:\n                uVar11 = *(undefined4 *)(local_4c + 0x10);\n                uVar14 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n                FUN_00034d20(uVar14,uVar11);\n                return;\n              }\n              piVar20 = *(int **)(*(int *)(local_4c + 0x10) + 0x78);\n              iVar6 = *(int *)(*(int *)(local_4c + 0x10) + 0x7c);\n              if (0 < iVar6) {\n                piVar1 = piVar20 + iVar6;\n                do {\n                  if ((((*(int *)(*(int *)(*piVar20 + 0x14) + 4) == puVar18[1]) &&\n                       (iVar6 = bfd_link_hash_lookup\n                                          (DAT_001d0400,*(undefined4 *)(*piVar20 + 4),0,0,1),\n                       iVar6 != 0)) && (*(char *)(iVar6 + 0xc) == '\x03')) &&\n                     ((*(int *)(iVar6 + 0x10) == 0 && (*(int *)(DAT_001d0400 + 0x20) != iVar6)))) {\n                    puVar18[5] = puVar18[5] | 0x8000;\n                  }\n                  piVar20 = piVar20 + 1;\n                } while (piVar1 != piVar20);\n              }\n            }\n          }\n          local_4c = *(int *)(local_4c + 0x18);\n        } while (local_4c != 0);\n      }" if (parenthesized_expression "(DAT_001cf6bc != 0)" ( (binary_expression "DAT_001cf6bc != 0" identifier != number_literal) )) (compound_statement "{\n        do {\n          iVar6 = *(int *)(local_4c + 0x10);\n          if ((*(int *)(iVar6 + 0x8c) != 0) &&\n             (puVar7 = *(undefined4 **)(iVar6 + 0x60), puVar7 != (undefined4 *)0x0)) {\n            puVar18 = (undefined4 *)0x0;\n            bVar16 = false;\n            bVar24 = true;\n            do {\n              bVar22 = false;\n              iVar17 = 7;\n              pbVar19 = (byte *)*puVar7;\n              pbVar21 = (byte *)".idata$";\n              do {\n                if (iVar17 == 0) break;\n                iVar17 = iVar17 + -1;\n                bVar22 = *pbVar19 < *pbVar21;\n                bVar24 = *pbVar19 == *pbVar21;\n                pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n                pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n              } while (bVar24);\n              if ((!bVar22 && !bVar24) == bVar22) {\n                bVar16 = true;\n              }\n              if (((*(byte *)(puVar7 + 5) & 0x10) != 0) && (puVar7[0x19] != 0)) {\n                puVar18 = puVar7;\n              }\n              puVar7 = (undefined4 *)puVar7[3];\n              bVar24 = puVar7 == (undefined4 *)0x0;\n            } while (!bVar24);\n            if ((puVar18 != (undefined4 *)0x0) && (bVar16)) {\n              iVar6 = bfd_generic_link_read_symbols(iVar6);\n              if (iVar6 == 0) {\nLAB_000570af:\n                uVar11 = *(undefined4 *)(local_4c + 0x10);\n                uVar14 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n                FUN_00034d20(uVar14,uVar11);\n                return;\n              }\n              piVar20 = *(int **)(*(int *)(local_4c + 0x10) + 0x78);\n              iVar6 = *(int *)(*(int *)(local_4c + 0x10) + 0x7c);\n              if (0 < iVar6) {\n                piVar1 = piVar20 + iVar6;\n                do {\n                  if ((((*(int *)(*(int *)(*piVar20 + 0x14) + 4) == puVar18[1]) &&\n                       (iVar6 = bfd_link_hash_lookup\n                                          (DAT_001d0400,*(undefined4 *)(*piVar20 + 4),0,0,1),\n                       iVar6 != 0)) && (*(char *)(iVar6 + 0xc) == '\x03')) &&\n                     ((*(int *)(iVar6 + 0x10) == 0 && (*(int *)(DAT_001d0400 + 0x20) != iVar6)))) {\n                    puVar18[5] = puVar18[5] | 0x8000;\n                  }\n                  piVar20 = piVar20 + 1;\n                } while (piVar1 != piVar20);\n              }\n            }\n          }\n          local_4c = *(int *)(local_4c + 0x18);\n        } while (local_4c != 0);\n      }" { (do_statement "do {\n          iVar6 = *(int *)(local_4c + 0x10);\n          if ((*(int *)(iVar6 + 0x8c) != 0) &&\n             (puVar7 = *(undefined4 **)(iVar6 + 0x60), puVar7 != (undefined4 *)0x0)) {\n            puVar18 = (undefined4 *)0x0;\n            bVar16 = false;\n            bVar24 = true;\n            do {\n              bVar22 = false;\n              iVar17 = 7;\n              pbVar19 = (byte *)*puVar7;\n              pbVar21 = (byte *)".idata$";\n              do {\n                if (iVar17 == 0) break;\n                iVar17 = iVar17 + -1;\n                bVar22 = *pbVar19 < *pbVar21;\n                bVar24 = *pbVar19 == *pbVar21;\n                pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n                pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n              } while (bVar24);\n              if ((!bVar22 && !bVar24) == bVar22) {\n                bVar16 = true;\n              }\n              if (((*(byte *)(puVar7 + 5) & 0x10) != 0) && (puVar7[0x19] != 0)) {\n                puVar18 = puVar7;\n              }\n              puVar7 = (undefined4 *)puVar7[3];\n              bVar24 = puVar7 == (undefined4 *)0x0;\n            } while (!bVar24);\n            if ((puVar18 != (undefined4 *)0x0) && (bVar16)) {\n              iVar6 = bfd_generic_link_read_symbols(iVar6);\n              if (iVar6 == 0) {\nLAB_000570af:\n                uVar11 = *(undefined4 *)(local_4c + 0x10);\n                uVar14 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n                FUN_00034d20(uVar14,uVar11);\n                return;\n              }\n              piVar20 = *(int **)(*(int *)(local_4c + 0x10) + 0x78);\n              iVar6 = *(int *)(*(int *)(local_4c + 0x10) + 0x7c);\n              if (0 < iVar6) {\n                piVar1 = piVar20 + iVar6;\n                do {\n                  if ((((*(int *)(*(int *)(*piVar20 + 0x14) + 4) == puVar18[1]) &&\n                       (iVar6 = bfd_link_hash_lookup\n                                          (DAT_001d0400,*(undefined4 *)(*piVar20 + 4),0,0,1),\n                       iVar6 != 0)) && (*(char *)(iVar6 + 0xc) == '\x03')) &&\n                     ((*(int *)(iVar6 + 0x10) == 0 && (*(int *)(DAT_001d0400 + 0x20) != iVar6)))) {\n                    puVar18[5] = puVar18[5] | 0x8000;\n                  }\n                  piVar20 = piVar20 + 1;\n                } while (piVar1 != piVar20);\n              }\n            }\n          }\n          local_4c = *(int *)(local_4c + 0x18);\n        } while (local_4c != 0);" do (compound_statement "{\n          iVar6 = *(int *)(local_4c + 0x10);\n          if ((*(int *)(iVar6 + 0x8c) != 0) &&\n             (puVar7 = *(undefined4 **)(iVar6 + 0x60), puVar7 != (undefined4 *)0x0)) {\n            puVar18 = (undefined4 *)0x0;\n            bVar16 = false;\n            bVar24 = true;\n            do {\n              bVar22 = false;\n              iVar17 = 7;\n              pbVar19 = (byte *)*puVar7;\n              pbVar21 = (byte *)".idata$";\n              do {\n                if (iVar17 == 0) break;\n                iVar17 = iVar17 + -1;\n                bVar22 = *pbVar19 < *pbVar21;\n                bVar24 = *pbVar19 == *pbVar21;\n                pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n                pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n              } while (bVar24);\n              if ((!bVar22 && !bVar24) == bVar22) {\n                bVar16 = true;\n              }\n              if (((*(byte *)(puVar7 + 5) & 0x10) != 0) && (puVar7[0x19] != 0)) {\n                puVar18 = puVar7;\n              }\n              puVar7 = (undefined4 *)puVar7[3];\n              bVar24 = puVar7 == (undefined4 *)0x0;\n            } while (!bVar24);\n            if ((puVar18 != (undefined4 *)0x0) && (bVar16)) {\n              iVar6 = bfd_generic_link_read_symbols(iVar6);\n              if (iVar6 == 0) {\nLAB_000570af:\n                uVar11 = *(undefined4 *)(local_4c + 0x10);\n                uVar14 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n                FUN_00034d20(uVar14,uVar11);\n                return;\n              }\n              piVar20 = *(int **)(*(int *)(local_4c + 0x10) + 0x78);\n              iVar6 = *(int *)(*(int *)(local_4c + 0x10) + 0x7c);\n              if (0 < iVar6) {\n                piVar1 = piVar20 + iVar6;\n                do {\n                  if ((((*(int *)(*(int *)(*piVar20 + 0x14) + 4) == puVar18[1]) &&\n                       (iVar6 = bfd_link_hash_lookup\n                                          (DAT_001d0400,*(undefined4 *)(*piVar20 + 4),0,0,1),\n                       iVar6 != 0)) && (*(char *)(iVar6 + 0xc) == '\x03')) &&\n                     ((*(int *)(iVar6 + 0x10) == 0 && (*(int *)(DAT_001d0400 + 0x20) != iVar6)))) {\n                    puVar18[5] = puVar18[5] | 0x8000;\n                  }\n                  piVar20 = piVar20 + 1;\n                } while (piVar1 != piVar20);\n              }\n            }\n          }\n          local_4c = *(int *)(local_4c + 0x18);\n        }" { (expression_statement "iVar6 = *(int *)(local_4c + 0x10);" (assignment_expression "iVar6 = *(int *)(local_4c + 0x10)" identifier = (pointer_expression "*(int *)(local_4c + 0x10)" * (cast_expression "(int *)(local_4c + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_4c + 0x10)" ( (binary_expression "local_4c + 0x10" identifier + number_literal) ))))) ;) (if_statement "if ((*(int *)(iVar6 + 0x8c) != 0) &&\n             (puVar7 = *(undefined4 **)(iVar6 + 0x60), puVar7 != (undefined4 *)0x0)) {\n            puVar18 = (undefined4 *)0x0;\n            bVar16 = false;\n            bVar24 = true;\n            do {\n              bVar22 = false;\n              iVar17 = 7;\n              pbVar19 = (byte *)*puVar7;\n              pbVar21 = (byte *)".idata$";\n              do {\n                if (iVar17 == 0) break;\n                iVar17 = iVar17 + -1;\n                bVar22 = *pbVar19 < *pbVar21;\n                bVar24 = *pbVar19 == *pbVar21;\n                pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n                pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n              } while (bVar24);\n              if ((!bVar22 && !bVar24) == bVar22) {\n                bVar16 = true;\n              }\n              if (((*(byte *)(puVar7 + 5) & 0x10) != 0) && (puVar7[0x19] != 0)) {\n                puVar18 = puVar7;\n              }\n              puVar7 = (undefined4 *)puVar7[3];\n              bVar24 = puVar7 == (undefined4 *)0x0;\n            } while (!bVar24);\n            if ((puVar18 != (undefined4 *)0x0) && (bVar16)) {\n              iVar6 = bfd_generic_link_read_symbols(iVar6);\n              if (iVar6 == 0) {\nLAB_000570af:\n                uVar11 = *(undefined4 *)(local_4c + 0x10);\n                uVar14 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n                FUN_00034d20(uVar14,uVar11);\n                return;\n              }\n              piVar20 = *(int **)(*(int *)(local_4c + 0x10) + 0x78);\n              iVar6 = *(int *)(*(int *)(local_4c + 0x10) + 0x7c);\n              if (0 < iVar6) {\n                piVar1 = piVar20 + iVar6;\n                do {\n                  if ((((*(int *)(*(int *)(*piVar20 + 0x14) + 4) == puVar18[1]) &&\n                       (iVar6 = bfd_link_hash_lookup\n                                          (DAT_001d0400,*(undefined4 *)(*piVar20 + 4),0,0,1),\n                       iVar6 != 0)) && (*(char *)(iVar6 + 0xc) == '\x03')) &&\n                     ((*(int *)(iVar6 + 0x10) == 0 && (*(int *)(DAT_001d0400 + 0x20) != iVar6)))) {\n                    puVar18[5] = puVar18[5] | 0x8000;\n                  }\n                  piVar20 = piVar20 + 1;\n                } while (piVar1 != piVar20);\n              }\n            }\n          }" if (parenthesized_expression "((*(int *)(iVar6 + 0x8c) != 0) &&\n             (puVar7 = *(undefined4 **)(iVar6 + 0x60), puVar7 != (undefined4 *)0x0))" ( (binary_expression "(*(int *)(iVar6 + 0x8c) != 0) &&\n             (puVar7 = *(undefined4 **)(iVar6 + 0x60), puVar7 != (undefined4 *)0x0)" (parenthesized_expression "(*(int *)(iVar6 + 0x8c) != 0)" ( (binary_expression "*(int *)(iVar6 + 0x8c) != 0" (pointer_expression "*(int *)(iVar6 + 0x8c)" * (cast_expression "(int *)(iVar6 + 0x8c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x8c)" ( (binary_expression "iVar6 + 0x8c" identifier + number_literal) )))) != number_literal) )) && (parenthesized_expression "(puVar7 = *(undefined4 **)(iVar6 + 0x60), puVar7 != (undefined4 *)0x0)" ( (comma_expression "puVar7 = *(undefined4 **)(iVar6 + 0x60), puVar7 != (undefined4 *)0x0" (assignment_expression "puVar7 = *(undefined4 **)(iVar6 + 0x60)" identifier = (pointer_expression "*(undefined4 **)(iVar6 + 0x60)" * (cast_expression "(undefined4 **)(iVar6 + 0x60)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar6 + 0x60)" ( (binary_expression "iVar6 + 0x60" identifier + number_literal) ))))) , (binary_expression "puVar7 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n            puVar18 = (undefined4 *)0x0;\n            bVar16 = false;\n            bVar24 = true;\n            do {\n              bVar22 = false;\n              iVar17 = 7;\n              pbVar19 = (byte *)*puVar7;\n              pbVar21 = (byte *)".idata$";\n              do {\n                if (iVar17 == 0) break;\n                iVar17 = iVar17 + -1;\n                bVar22 = *pbVar19 < *pbVar21;\n                bVar24 = *pbVar19 == *pbVar21;\n                pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n                pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n              } while (bVar24);\n              if ((!bVar22 && !bVar24) == bVar22) {\n                bVar16 = true;\n              }\n              if (((*(byte *)(puVar7 + 5) & 0x10) != 0) && (puVar7[0x19] != 0)) {\n                puVar18 = puVar7;\n              }\n              puVar7 = (undefined4 *)puVar7[3];\n              bVar24 = puVar7 == (undefined4 *)0x0;\n            } while (!bVar24);\n            if ((puVar18 != (undefined4 *)0x0) && (bVar16)) {\n              iVar6 = bfd_generic_link_read_symbols(iVar6);\n              if (iVar6 == 0) {\nLAB_000570af:\n                uVar11 = *(undefined4 *)(local_4c + 0x10);\n                uVar14 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n                FUN_00034d20(uVar14,uVar11);\n                return;\n              }\n              piVar20 = *(int **)(*(int *)(local_4c + 0x10) + 0x78);\n              iVar6 = *(int *)(*(int *)(local_4c + 0x10) + 0x7c);\n              if (0 < iVar6) {\n                piVar1 = piVar20 + iVar6;\n                do {\n                  if ((((*(int *)(*(int *)(*piVar20 + 0x14) + 4) == puVar18[1]) &&\n                       (iVar6 = bfd_link_hash_lookup\n                                          (DAT_001d0400,*(undefined4 *)(*piVar20 + 4),0,0,1),\n                       iVar6 != 0)) && (*(char *)(iVar6 + 0xc) == '\x03')) &&\n                     ((*(int *)(iVar6 + 0x10) == 0 && (*(int *)(DAT_001d0400 + 0x20) != iVar6)))) {\n                    puVar18[5] = puVar18[5] | 0x8000;\n                  }\n                  piVar20 = piVar20 + 1;\n                } while (piVar1 != piVar20);\n              }\n            }\n          }" { (expression_statement "puVar18 = (undefined4 *)0x0;" (assignment_expression "puVar18 = (undefined4 *)0x0" identifier = (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "bVar16 = false;" (assignment_expression "bVar16 = false" identifier = false) ;) (expression_statement "bVar24 = true;" (assignment_expression "bVar24 = true" identifier = true) ;) (do_statement "do {\n              bVar22 = false;\n              iVar17 = 7;\n              pbVar19 = (byte *)*puVar7;\n              pbVar21 = (byte *)".idata$";\n              do {\n                if (iVar17 == 0) break;\n                iVar17 = iVar17 + -1;\n                bVar22 = *pbVar19 < *pbVar21;\n                bVar24 = *pbVar19 == *pbVar21;\n                pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n                pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n              } while (bVar24);\n              if ((!bVar22 && !bVar24) == bVar22) {\n                bVar16 = true;\n              }\n              if (((*(byte *)(puVar7 + 5) & 0x10) != 0) && (puVar7[0x19] != 0)) {\n                puVar18 = puVar7;\n              }\n              puVar7 = (undefined4 *)puVar7[3];\n              bVar24 = puVar7 == (undefined4 *)0x0;\n            } while (!bVar24);" do (compound_statement "{\n              bVar22 = false;\n              iVar17 = 7;\n              pbVar19 = (byte *)*puVar7;\n              pbVar21 = (byte *)".idata$";\n              do {\n                if (iVar17 == 0) break;\n                iVar17 = iVar17 + -1;\n                bVar22 = *pbVar19 < *pbVar21;\n                bVar24 = *pbVar19 == *pbVar21;\n                pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n                pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n              } while (bVar24);\n              if ((!bVar22 && !bVar24) == bVar22) {\n                bVar16 = true;\n              }\n              if (((*(byte *)(puVar7 + 5) & 0x10) != 0) && (puVar7[0x19] != 0)) {\n                puVar18 = puVar7;\n              }\n              puVar7 = (undefined4 *)puVar7[3];\n              bVar24 = puVar7 == (undefined4 *)0x0;\n            }" { (expression_statement "bVar22 = false;" (assignment_expression "bVar22 = false" identifier = false) ;) (expression_statement "iVar17 = 7;" (assignment_expression "iVar17 = 7" identifier = number_literal) ;) (expression_statement "pbVar19 = (byte *)*puVar7;" (assignment_expression "pbVar19 = (byte *)*puVar7" identifier = (cast_expression "(byte *)*puVar7" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar7" * identifier))) ;) (expression_statement "pbVar21 = (byte *)".idata$";" (assignment_expression "pbVar21 = (byte *)".idata$"" identifier = (cast_expression "(byte *)".idata$"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".idata$"" " string_content "))) ;) (do_statement "do {\n                if (iVar17 == 0) break;\n                iVar17 = iVar17 + -1;\n                bVar22 = *pbVar19 < *pbVar21;\n                bVar24 = *pbVar19 == *pbVar21;\n                pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n                pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n              } while (bVar24);" do (compound_statement "{\n                if (iVar17 == 0) break;\n                iVar17 = iVar17 + -1;\n                bVar22 = *pbVar19 < *pbVar21;\n                bVar24 = *pbVar19 == *pbVar21;\n                pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n                pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n              }" { (if_statement "if (iVar17 == 0) break;" if (parenthesized_expression "(iVar17 == 0)" ( (binary_expression "iVar17 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar17 = iVar17 + -1;" (assignment_expression "iVar17 = iVar17 + -1" identifier = (binary_expression "iVar17 + -1" identifier + number_literal)) ;) (expression_statement "bVar22 = *pbVar19 < *pbVar21;" (assignment_expression "bVar22 = *pbVar19 < *pbVar21" identifier = (binary_expression "*pbVar19 < *pbVar21" (pointer_expression "*pbVar19" * identifier) < (pointer_expression "*pbVar21" * identifier))) ;) (expression_statement "bVar24 = *pbVar19 == *pbVar21;" (assignment_expression "bVar24 = *pbVar19 == *pbVar21" identifier = (binary_expression "*pbVar19 == *pbVar21" (pointer_expression "*pbVar19" * identifier) == (pointer_expression "*pbVar21" * identifier))) ;) (expression_statement "pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pbVar19 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar19 + (uint)bVar25 * -2" identifier + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pbVar21 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar21 + (uint)bVar25 * -2" identifier + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar24)" ( identifier )) ;) (if_statement "if ((!bVar22 && !bVar24) == bVar22) {\n                bVar16 = true;\n              }" if (parenthesized_expression "((!bVar22 && !bVar24) == bVar22)" ( (binary_expression "(!bVar22 && !bVar24) == bVar22" (parenthesized_expression "(!bVar22 && !bVar24)" ( (binary_expression "!bVar22 && !bVar24" (unary_expression "!bVar22" ! identifier) && (unary_expression "!bVar24" ! identifier)) )) == identifier) )) (compound_statement "{\n                bVar16 = true;\n              }" { (expression_statement "bVar16 = true;" (assignment_expression "bVar16 = true" identifier = true) ;) })) (if_statement "if (((*(byte *)(puVar7 + 5) & 0x10) != 0) && (puVar7[0x19] != 0)) {\n                puVar18 = puVar7;\n              }" if (parenthesized_expression "(((*(byte *)(puVar7 + 5) & 0x10) != 0) && (puVar7[0x19] != 0))" ( (binary_expression "((*(byte *)(puVar7 + 5) & 0x10) != 0) && (puVar7[0x19] != 0)" (parenthesized_expression "((*(byte *)(puVar7 + 5) & 0x10) != 0)" ( (binary_expression "(*(byte *)(puVar7 + 5) & 0x10) != 0" (parenthesized_expression "(*(byte *)(puVar7 + 5) & 0x10)" ( (binary_expression "*(byte *)(puVar7 + 5) & 0x10" (pointer_expression "*(byte *)(puVar7 + 5)" * (cast_expression "(byte *)(puVar7 + 5)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 5)" ( (binary_expression "puVar7 + 5" identifier + number_literal) )))) & number_literal) )) != number_literal) )) && (parenthesized_expression "(puVar7[0x19] != 0)" ( (binary_expression "puVar7[0x19] != 0" (subscript_expression "puVar7[0x19]" identifier [ number_literal ]) != number_literal) ))) )) (compound_statement "{\n                puVar18 = puVar7;\n              }" { (expression_statement "puVar18 = puVar7;" (assignment_expression "puVar18 = puVar7" identifier = identifier) ;) })) (expression_statement "puVar7 = (undefined4 *)puVar7[3];" (assignment_expression "puVar7 = (undefined4 *)puVar7[3]" identifier = (cast_expression "(undefined4 *)puVar7[3]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar7[3]" identifier [ number_literal ]))) ;) (expression_statement "bVar24 = puVar7 == (undefined4 *)0x0;" (assignment_expression "bVar24 = puVar7 == (undefined4 *)0x0" identifier = (binary_expression "puVar7 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) }) while (parenthesized_expression "(!bVar24)" ( (unary_expression "!bVar24" ! identifier) )) ;) (if_statement "if ((puVar18 != (undefined4 *)0x0) && (bVar16)) {\n              iVar6 = bfd_generic_link_read_symbols(iVar6);\n              if (iVar6 == 0) {\nLAB_000570af:\n                uVar11 = *(undefined4 *)(local_4c + 0x10);\n                uVar14 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n                FUN_00034d20(uVar14,uVar11);\n                return;\n              }\n              piVar20 = *(int **)(*(int *)(local_4c + 0x10) + 0x78);\n              iVar6 = *(int *)(*(int *)(local_4c + 0x10) + 0x7c);\n              if (0 < iVar6) {\n                piVar1 = piVar20 + iVar6;\n                do {\n                  if ((((*(int *)(*(int *)(*piVar20 + 0x14) + 4) == puVar18[1]) &&\n                       (iVar6 = bfd_link_hash_lookup\n                                          (DAT_001d0400,*(undefined4 *)(*piVar20 + 4),0,0,1),\n                       iVar6 != 0)) && (*(char *)(iVar6 + 0xc) == '\x03')) &&\n                     ((*(int *)(iVar6 + 0x10) == 0 && (*(int *)(DAT_001d0400 + 0x20) != iVar6)))) {\n                    puVar18[5] = puVar18[5] | 0x8000;\n                  }\n                  piVar20 = piVar20 + 1;\n                } while (piVar1 != piVar20);\n              }\n            }" if (parenthesized_expression "((puVar18 != (undefined4 *)0x0) && (bVar16))" ( (binary_expression "(puVar18 != (undefined4 *)0x0) && (bVar16)" (parenthesized_expression "(puVar18 != (undefined4 *)0x0)" ( (binary_expression "puVar18 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(bVar16)" ( identifier ))) )) (compound_statement "{\n              iVar6 = bfd_generic_link_read_symbols(iVar6);\n              if (iVar6 == 0) {\nLAB_000570af:\n                uVar11 = *(undefined4 *)(local_4c + 0x10);\n                uVar14 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n                FUN_00034d20(uVar14,uVar11);\n                return;\n              }\n              piVar20 = *(int **)(*(int *)(local_4c + 0x10) + 0x78);\n              iVar6 = *(int *)(*(int *)(local_4c + 0x10) + 0x7c);\n              if (0 < iVar6) {\n                piVar1 = piVar20 + iVar6;\n                do {\n                  if ((((*(int *)(*(int *)(*piVar20 + 0x14) + 4) == puVar18[1]) &&\n                       (iVar6 = bfd_link_hash_lookup\n                                          (DAT_001d0400,*(undefined4 *)(*piVar20 + 4),0,0,1),\n                       iVar6 != 0)) && (*(char *)(iVar6 + 0xc) == '\x03')) &&\n                     ((*(int *)(iVar6 + 0x10) == 0 && (*(int *)(DAT_001d0400 + 0x20) != iVar6)))) {\n                    puVar18[5] = puVar18[5] | 0x8000;\n                  }\n                  piVar20 = piVar20 + 1;\n                } while (piVar1 != piVar20);\n              }\n            }" { (expression_statement "iVar6 = bfd_generic_link_read_symbols(iVar6);" (assignment_expression "iVar6 = bfd_generic_link_read_symbols(iVar6)" identifier = (call_expression "bfd_generic_link_read_symbols(iVar6)" identifier (argument_list "(iVar6)" ( identifier )))) ;) (if_statement "if (iVar6 == 0) {\nLAB_000570af:\n                uVar11 = *(undefined4 *)(local_4c + 0x10);\n                uVar14 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n                FUN_00034d20(uVar14,uVar11);\n                return;\n              }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_000570af:\n                uVar11 = *(undefined4 *)(local_4c + 0x10);\n                uVar14 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n                FUN_00034d20(uVar14,uVar11);\n                return;\n              }" { (labeled_statement "LAB_000570af:\n                uVar11 = *(undefined4 *)(local_4c + 0x10);" statement_identifier : (expression_statement "uVar11 = *(undefined4 *)(local_4c + 0x10);" (assignment_expression "uVar11 = *(undefined4 *)(local_4c + 0x10)" identifier = (pointer_expression "*(undefined4 *)(local_4c + 0x10)" * (cast_expression "(undefined4 *)(local_4c + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_4c + 0x10)" ( (binary_expression "local_4c + 0x10" identifier + number_literal) ))))) ;)) (expression_statement "uVar14 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);" (assignment_expression "uVar14 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5)" identifier = (call_expression "dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5)" identifier (argument_list "(0,"%F%P: %pB: could not read symbols: %E\n",5)" ( number_literal , (string_literal ""%F%P: %pB: could not read symbols: %E\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_00034d20(uVar14,uVar11);" (call_expression "FUN_00034d20(uVar14,uVar11)" identifier (argument_list "(uVar14,uVar11)" ( identifier , identifier ))) ;) (return_statement "return;" return ;) })) (expression_statement "piVar20 = *(int **)(*(int *)(local_4c + 0x10) + 0x78);" (assignment_expression "piVar20 = *(int **)(*(int *)(local_4c + 0x10) + 0x78)" identifier = (pointer_expression "*(int **)(*(int *)(local_4c + 0x10) + 0x78)" * (cast_expression "(int **)(*(int *)(local_4c + 0x10) + 0x78)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(local_4c + 0x10) + 0x78)" ( (binary_expression "*(int *)(local_4c + 0x10) + 0x78" (pointer_expression "*(int *)(local_4c + 0x10)" * (cast_expression "(int *)(local_4c + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_4c + 0x10)" ( (binary_expression "local_4c + 0x10" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "iVar6 = *(int *)(*(int *)(local_4c + 0x10) + 0x7c);" (assignment_expression "iVar6 = *(int *)(*(int *)(local_4c + 0x10) + 0x7c)" identifier = (pointer_expression "*(int *)(*(int *)(local_4c + 0x10) + 0x7c)" * (cast_expression "(int *)(*(int *)(local_4c + 0x10) + 0x7c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(local_4c + 0x10) + 0x7c)" ( (binary_expression "*(int *)(local_4c + 0x10) + 0x7c" (pointer_expression "*(int *)(local_4c + 0x10)" * (cast_expression "(int *)(local_4c + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_4c + 0x10)" ( (binary_expression "local_4c + 0x10" identifier + number_literal) )))) + number_literal) ))))) ;) (if_statement "if (0 < iVar6) {\n                piVar1 = piVar20 + iVar6;\n                do {\n                  if ((((*(int *)(*(int *)(*piVar20 + 0x14) + 4) == puVar18[1]) &&\n                       (iVar6 = bfd_link_hash_lookup\n                                          (DAT_001d0400,*(undefined4 *)(*piVar20 + 4),0,0,1),\n                       iVar6 != 0)) && (*(char *)(iVar6 + 0xc) == '\x03')) &&\n                     ((*(int *)(iVar6 + 0x10) == 0 && (*(int *)(DAT_001d0400 + 0x20) != iVar6)))) {\n                    puVar18[5] = puVar18[5] | 0x8000;\n                  }\n                  piVar20 = piVar20 + 1;\n                } while (piVar1 != piVar20);\n              }" if (parenthesized_expression "(0 < iVar6)" ( (binary_expression "0 < iVar6" number_literal < identifier) )) (compound_statement "{\n                piVar1 = piVar20 + iVar6;\n                do {\n                  if ((((*(int *)(*(int *)(*piVar20 + 0x14) + 4) == puVar18[1]) &&\n                       (iVar6 = bfd_link_hash_lookup\n                                          (DAT_001d0400,*(undefined4 *)(*piVar20 + 4),0,0,1),\n                       iVar6 != 0)) && (*(char *)(iVar6 + 0xc) == '\x03')) &&\n                     ((*(int *)(iVar6 + 0x10) == 0 && (*(int *)(DAT_001d0400 + 0x20) != iVar6)))) {\n                    puVar18[5] = puVar18[5] | 0x8000;\n                  }\n                  piVar20 = piVar20 + 1;\n                } while (piVar1 != piVar20);\n              }" { (expression_statement "piVar1 = piVar20 + iVar6;" (assignment_expression "piVar1 = piVar20 + iVar6" identifier = (binary_expression "piVar20 + iVar6" identifier + identifier)) ;) (do_statement "do {\n                  if ((((*(int *)(*(int *)(*piVar20 + 0x14) + 4) == puVar18[1]) &&\n                       (iVar6 = bfd_link_hash_lookup\n                                          (DAT_001d0400,*(undefined4 *)(*piVar20 + 4),0,0,1),\n                       iVar6 != 0)) && (*(char *)(iVar6 + 0xc) == '\x03')) &&\n                     ((*(int *)(iVar6 + 0x10) == 0 && (*(int *)(DAT_001d0400 + 0x20) != iVar6)))) {\n                    puVar18[5] = puVar18[5] | 0x8000;\n                  }\n                  piVar20 = piVar20 + 1;\n                } while (piVar1 != piVar20);" do (compound_statement "{\n                  if ((((*(int *)(*(int *)(*piVar20 + 0x14) + 4) == puVar18[1]) &&\n                       (iVar6 = bfd_link_hash_lookup\n                                          (DAT_001d0400,*(undefined4 *)(*piVar20 + 4),0,0,1),\n                       iVar6 != 0)) && (*(char *)(iVar6 + 0xc) == '\x03')) &&\n                     ((*(int *)(iVar6 + 0x10) == 0 && (*(int *)(DAT_001d0400 + 0x20) != iVar6)))) {\n                    puVar18[5] = puVar18[5] | 0x8000;\n                  }\n                  piVar20 = piVar20 + 1;\n                }" { (if_statement "if ((((*(int *)(*(int *)(*piVar20 + 0x14) + 4) == puVar18[1]) &&\n                       (iVar6 = bfd_link_hash_lookup\n                                          (DAT_001d0400,*(undefined4 *)(*piVar20 + 4),0,0,1),\n                       iVar6 != 0)) && (*(char *)(iVar6 + 0xc) == '\x03')) &&\n                     ((*(int *)(iVar6 + 0x10) == 0 && (*(int *)(DAT_001d0400 + 0x20) != iVar6)))) {\n                    puVar18[5] = puVar18[5] | 0x8000;\n                  }" if (parenthesized_expression "((((*(int *)(*(int *)(*piVar20 + 0x14) + 4) == puVar18[1]) &&\n                       (iVar6 = bfd_link_hash_lookup\n                                          (DAT_001d0400,*(undefined4 *)(*piVar20 + 4),0,0,1),\n                       iVar6 != 0)) && (*(char *)(iVar6 + 0xc) == '\x03')) &&\n                     ((*(int *)(iVar6 + 0x10) == 0 && (*(int *)(DAT_001d0400 + 0x20) != iVar6))))" ( (binary_expression "(((*(int *)(*(int *)(*piVar20 + 0x14) + 4) == puVar18[1]) &&\n                       (iVar6 = bfd_link_hash_lookup\n                                          (DAT_001d0400,*(undefined4 *)(*piVar20 + 4),0,0,1),\n                       iVar6 != 0)) && (*(char *)(iVar6 + 0xc) == '\x03')) &&\n                     ((*(int *)(iVar6 + 0x10) == 0 && (*(int *)(DAT_001d0400 + 0x20) != iVar6)))" (parenthesized_expression "(((*(int *)(*(int *)(*piVar20 + 0x14) + 4) == puVar18[1]) &&\n                       (iVar6 = bfd_link_hash_lookup\n                                          (DAT_001d0400,*(undefined4 *)(*piVar20 + 4),0,0,1),\n                       iVar6 != 0)) && (*(char *)(iVar6 + 0xc) == '\x03'))" ( (binary_expression "((*(int *)(*(int *)(*piVar20 + 0x14) + 4) == puVar18[1]) &&\n                       (iVar6 = bfd_link_hash_lookup\n                                          (DAT_001d0400,*(undefined4 *)(*piVar20 + 4),0,0,1),\n                       iVar6 != 0)) && (*(char *)(iVar6 + 0xc) == '\x03')" (parenthesized_expression "((*(int *)(*(int *)(*piVar20 + 0x14) + 4) == puVar18[1]) &&\n                       (iVar6 = bfd_link_hash_lookup\n                                          (DAT_001d0400,*(undefined4 *)(*piVar20 + 4),0,0,1),\n                       iVar6 != 0))" ( (binary_expression "(*(int *)(*(int *)(*piVar20 + 0x14) + 4) == puVar18[1]) &&\n                       (iVar6 = bfd_link_hash_lookup\n                                          (DAT_001d0400,*(undefined4 *)(*piVar20 + 4),0,0,1),\n                       iVar6 != 0)" (parenthesized_expression "(*(int *)(*(int *)(*piVar20 + 0x14) + 4) == puVar18[1])" ( (binary_expression "*(int *)(*(int *)(*piVar20 + 0x14) + 4) == puVar18[1]" (pointer_expression "*(int *)(*(int *)(*piVar20 + 0x14) + 4)" * (cast_expression "(int *)(*(int *)(*piVar20 + 0x14) + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*piVar20 + 0x14) + 4)" ( (binary_expression "*(int *)(*piVar20 + 0x14) + 4" (pointer_expression "*(int *)(*piVar20 + 0x14)" * (cast_expression "(int *)(*piVar20 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar20 + 0x14)" ( (binary_expression "*piVar20 + 0x14" (pointer_expression "*piVar20" * identifier) + number_literal) )))) + number_literal) )))) == (subscript_expression "puVar18[1]" identifier [ number_literal ])) )) && (parenthesized_expression "(iVar6 = bfd_link_hash_lookup\n                                          (DAT_001d0400,*(undefined4 *)(*piVar20 + 4),0,0,1),\n                       iVar6 != 0)" ( (comma_expression "iVar6 = bfd_link_hash_lookup\n                                          (DAT_001d0400,*(undefined4 *)(*piVar20 + 4),0,0,1),\n                       iVar6 != 0" (assignment_expression "iVar6 = bfd_link_hash_lookup\n                                          (DAT_001d0400,*(undefined4 *)(*piVar20 + 4),0,0,1)" identifier = (call_expression "bfd_link_hash_lookup\n                                          (DAT_001d0400,*(undefined4 *)(*piVar20 + 4),0,0,1)" identifier (argument_list "(DAT_001d0400,*(undefined4 *)(*piVar20 + 4),0,0,1)" ( identifier , (pointer_expression "*(undefined4 *)(*piVar20 + 4)" * (cast_expression "(undefined4 *)(*piVar20 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar20 + 4)" ( (binary_expression "*piVar20 + 4" (pointer_expression "*piVar20" * identifier) + number_literal) )))) , number_literal , number_literal , number_literal )))) , (binary_expression "iVar6 != 0" identifier != number_literal)) ))) )) && (parenthesized_expression "(*(char *)(iVar6 + 0xc) == '\x03')" ( (binary_expression "*(char *)(iVar6 + 0xc) == '\x03'" (pointer_expression "*(char *)(iVar6 + 0xc)" * (cast_expression "(char *)(iVar6 + 0xc)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0xc)" ( (binary_expression "iVar6 + 0xc" identifier + number_literal) )))) == (char_literal "'\x03'" ' escape_sequence ')) ))) )) && (parenthesized_expression "((*(int *)(iVar6 + 0x10) == 0 && (*(int *)(DAT_001d0400 + 0x20) != iVar6)))" ( (parenthesized_expression "(*(int *)(iVar6 + 0x10) == 0 && (*(int *)(DAT_001d0400 + 0x20) != iVar6))" ( (binary_expression "*(int *)(iVar6 + 0x10) == 0 && (*(int *)(DAT_001d0400 + 0x20) != iVar6)" (binary_expression "*(int *)(iVar6 + 0x10) == 0" (pointer_expression "*(int *)(iVar6 + 0x10)" * (cast_expression "(int *)(iVar6 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x10)" ( (binary_expression "iVar6 + 0x10" identifier + number_literal) )))) == number_literal) && (parenthesized_expression "(*(int *)(DAT_001d0400 + 0x20) != iVar6)" ( (binary_expression "*(int *)(DAT_001d0400 + 0x20) != iVar6" (pointer_expression "*(int *)(DAT_001d0400 + 0x20)" * (cast_expression "(int *)(DAT_001d0400 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_001d0400 + 0x20)" ( (binary_expression "DAT_001d0400 + 0x20" identifier + number_literal) )))) != identifier) ))) )) ))) )) (compound_statement "{\n                    puVar18[5] = puVar18[5] | 0x8000;\n                  }" { (expression_statement "puVar18[5] = puVar18[5] | 0x8000;" (assignment_expression "puVar18[5] = puVar18[5] | 0x8000" (subscript_expression "puVar18[5]" identifier [ number_literal ]) = (binary_expression "puVar18[5] | 0x8000" (subscript_expression "puVar18[5]" identifier [ number_literal ]) | number_literal)) ;) })) (expression_statement "piVar20 = piVar20 + 1;" (assignment_expression "piVar20 = piVar20 + 1" identifier = (binary_expression "piVar20 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(piVar1 != piVar20)" ( (binary_expression "piVar1 != piVar20" identifier != identifier) )) ;) })) })) })) (expression_statement "local_4c = *(int *)(local_4c + 0x18);" (assignment_expression "local_4c = *(int *)(local_4c + 0x18)" identifier = (pointer_expression "*(int *)(local_4c + 0x18)" * (cast_expression "(int *)(local_4c + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_4c + 0x18)" ( (binary_expression "local_4c + 0x18" identifier + number_literal) ))))) ;) }) while (parenthesized_expression "(local_4c != 0)" ( (binary_expression "local_4c != 0" identifier != number_literal) )) ;) })) })) })) (return_statement "return;" return ;) })) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (for_statement for ( ; (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ; (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content escape_sequence ")) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") , (string_literal " string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence escape_sequence ") )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (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 (assignment_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 = (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 ))) ;) (break_statement break ;) })) })) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) })) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence ") , (string_literal " string_content ") ))) ;) (for_statement for ( (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ; (binary_expression IDENT != LIT) ; (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence ") , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , LIT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence ") , (pointer_expression * IDENT) ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) }) while (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;))) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence string_content escape_sequence escape_sequence ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (for_statement for ( (assignment_expression IDENT = LIT) ; (binary_expression IDENT != LIT) ; (assignment_expression IDENT = (binary_expression IDENT + LIT)) ) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) | IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT < LIT) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (break_statement break ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) })))) })) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (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 = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , 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 (call_expression IDENT (argument_list ( (string_literal " string_content ") ))) ;) })) (for_statement for ( (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ; (binary_expression IDENT != LIT) ; (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (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 = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , LIT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (char_literal ' character ')) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;)) (expression_statement (assignment_expression (pointer_expression * IDENT) = (char_literal ' escape_sequence ')) ;) }))) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) })) (labeled_statement statement_identifier : (expression_statement ;)) })) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) ))) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) , (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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 )) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) == IDENT)) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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 )) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) != IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (unary_expression ! IDENT) )) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT & (binary_expression IDENT != LIT)) ))) )) && (parenthesized_expression ( (unary_expression ! IDENT) ))) )) (compound_statement { (while_statement while (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) , (binary_expression LIT < IDENT)) )) (compound_statement { (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 = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (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 TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (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) )))) , IDENT , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( 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 ))) ;) (return_statement return ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (pointer_expression * IDENT)))) + LIT) )))) & LIT) )) == LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (pointer_expression * IDENT)))) + LIT) )))) , LIT , LIT , LIT )))) , (binary_expression IDENT != LIT)) ))) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression 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)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (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 , IDENT ))) ;) (expression_statement (assignment_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) = IDENT) ;) })) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (binary_expression IDENT + IDENT) != IDENT) )) ;) })) (expression_statement (call_expression IDENT (argument_list ( 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 ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })) })) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (ERROR do (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) , LIT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (while_statement while (parenthesized_expression ( (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") )))) , (binary_expression IDENT != LIT)) ))))) )) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (subscript_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) [ LIT ])) )) (break_statement break ;)) (expression_statement (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) )))))) , LIT )))) ;) })) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != (subscript_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) [ LIT ])) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) , IDENT )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) (goto_statement goto statement_identifier ;) })) }) (else_clause else (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 = (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) ))))))) ;) (goto_statement goto statement_identifier ;) })) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) }) while (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) )) ;) (expression_statement (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) )))))) , LIT )))) ;) }))) (expression_statement (assignment_expression IDENT = BOOL) ;) (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 = (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 IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 = BOOL) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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 { (expression_statement (assignment_expression IDENT = BOOL) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ;) }) while (parenthesized_expression ( (unary_expression ! IDENT) )) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT < LIT) )) + LIT)) ;) })) }))) (expression_statement (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) )))))) )))) ;) (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 ") , (pointer_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 * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (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 ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") , (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 IDENT = BOOL) ;) })) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (labeled_statement statement_identifier : (ERROR }) (while_statement while (parenthesized_expression ( (binary_expression IDENT != LIT) )) (expression_statement ;))) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) , (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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 { (expression_statement (assignment_expression IDENT = BOOL) ;) })) (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 (subscript_expression IDENT [ LIT ]) != LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ;) }) while (parenthesized_expression ( (unary_expression ! IDENT) )) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) && (parenthesized_expression ( IDENT ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (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 ))) ;) (return_statement return ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) + LIT) )))) == (subscript_expression IDENT [ LIT ])) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) , LIT , LIT , LIT )))) , (binary_expression IDENT != LIT)) ))) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) ))) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != IDENT) ))) )) ))) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (subscript_expression IDENT [ LIT ]) | LIT)) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) })) })) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) })) })) })) (return_statement return ;) })) })))
(function_definition "void FUN_00056650(void)\n\n{\n  int *piVar1;\n  undefined4 *puVar2;\n  byte bVar3;\n  void *pvVar4;\n  byte bVar5;\n  int iVar6;\n  undefined4 *puVar7;\n  undefined4 *puVar8;\n  size_t sVar9;\n  char *pcVar10;\n  undefined4 uVar11;\n  char *pcVar12;\n  int iVar13;\n  undefined4 uVar14;\n  int iVar15;\n  bool bVar16;\n  int iVar17;\n  undefined4 *puVar18;\n  byte *pbVar19;\n  int *piVar20;\n  byte *pbVar21;\n  bool bVar22;\n  bool bVar23;\n  bool bVar24;\n  byte bVar25;\n  int local_50;\n  int local_4c;\n  int local_40;\n  undefined4 *local_38;\n  int local_20 [3];\n  undefined4 uStack_14;\n  \n  bVar25 = 0;\n  uStack_14 = 0x56659;\n  FUN_00033940();\n  if (DAT_001d01fc == 0) {\nLAB_00056682:\n    puVar7 = DAT_001d041c;\n    if (DAT_001cff9c != (void *)0x0) {\n      for (; puVar7 != (undefined4 *)0x0; puVar7 = (undefined4 *)puVar7[0x27]) {\n        if (*(int *)(puVar7[1] + 4) == 2) {\n          iVar6 = FUN_00038960(DAT_001cff9c);\n          if (iVar6 == 0) {\n            pcVar12 = "%P: warning: unrecognized --build-id style ignored\n";\n          }\n          else {\n            iVar17 = bfd_make_section_anyway_with_flags\n                               (puVar7,".buildid",\n                                "*/\n  .debug_aranges  0 : { *(.debug_aranges) }\n  .debug_pubnames 0 : { *(.debug_pubnames) }\n  \n  .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }\n  .debug_abbrev   0 : { *(.debug_abbrev) }\n  .debug_line     0 : { *(.debug_line .debug_line.* .debug_line_end ) }\n  .debug_frame    0 : { *(.debug_frame) }\n  .debug_str      0 : { *(.debug_str) }\n  .debug_loc      0 : { *(.debug_loc) }\n  .debug_macinfo  0 : { *(.debug_macinfo) }\n  \n  .debug_weaknames 0 : { *(.debug_weaknames) }\n  .debug_funcnames 0 : { *(.debug_funcnames) }\n  .debug_typenames 0 : { *(.debug_typenames) }\n  .debug_varnames  0 : { *(.debug_varnames) }\n  \n  .debug_pubtypes 0 : { *(.debug_pubtypes) }\n  .debug_ranges   0 : { *(.debug_ranges) }\n  \n  .debug_macro    0 : { *(.debug_macro) }\n  .debug_addr     0 : { *(.debug_addr) }\n  .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) }\n  /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) }\n}\n\n"\n                               );\n            iVar6 = DAT_001d0414;\n            if (iVar17 != 0) {\n              iVar15 = *(int *)(DAT_001d0414 + 0xa0);\n              *(code **)(iVar15 + 0x1dc) = FUN_00055c40;\n              pvVar4 = DAT_001cff9c;\n              iVar13 = *(int *)(iVar15 + 0x58);\n              *(int *)(iVar15 + 0x1e4) = iVar17;\n              *(void **)(iVar15 + 0x1e0) = pvVar4;\n              *(undefined4 *)(iVar17 + 0x2c) = 0x35;\n              *(undefined4 *)(iVar17 + 0x30) = 0;\n              goto joined_r0x00056729;\n            }\n            pcVar12 = "%P: warning: cannot create .buildid section, --build-id ignored\n";\n          }\n          uVar11 = dcgettext(0,pcVar12,5);\n          FUN_00034d20(uVar11);\n          break;\n        }\n      }\nLAB_00056a59:\n      free(DAT_001cff9c);\n      DAT_001cff9c = (void *)0x0;\n    }\n  }\n  else {\n    printf("%s()\n","gld_i386pe_after_open");\n    for (iVar6 = *(int *)(DAT_001d0400 + 0x1c); iVar6 != 0; iVar6 = *(int *)(iVar6 + 0x10)) {\n      printf("-%s\n",*(undefined4 *)(iVar6 + 4));\n    }\n    bfd_hash_traverse(DAT_001d0400,FUN_00055b20,0);\n    puVar7 = DAT_001d041c;\n    if (DAT_001d041c != (undefined4 *)0x0) {\n      do {\n        printf("*%s\n",*puVar7);\n        puVar18 = puVar7 + 0x27;\n        puVar7 = (undefined4 *)*puVar18;\n      } while ((undefined4 *)*puVar18 != (undefined4 *)0x0);\n      goto LAB_00056682;\n    }\n    if (DAT_001cff9c != (void *)0x0) goto LAB_00056a59;\n  }\n  iVar6 = DAT_001d0414;\n  if (*(int *)(DAT_001d0414 + 0xa0) != 0) {\n    iVar13 = *(int *)(*(int *)(DAT_001d0414 + 0xa0) + 0x58);\njoined_r0x00056729:\n    if (iVar13 != 0) goto LAB_00056730;\n  }\n  uVar11 = dcgettext(0,"%F%P: cannot perform PE operations on non PE output file \'%pB\'\n",5);\n  FUN_00034d20(uVar11,iVar6);\nLAB_00056730:\n  iVar17 = DAT_001d0414;\n  iVar6 = *(int *)(DAT_001d0414 + 0xa0);\n  puVar7 = &DAT_001cffc0;\n  puVar18 = (undefined4 *)(iVar6 + 0x7c);\n  for (iVar15 = 0x52; iVar15 != 0; iVar15 = iVar15 + -1) {\n    *puVar18 = *puVar7;\n    puVar7 = puVar7 + (uint)bVar25 * -2 + 1;\n    puVar18 = puVar18 + (uint)bVar25 * -2 + 1;\n  }\n  *(undefined4 *)(iVar6 + 0x1c4) = DAT_001cf040;\n  *(uint *)(iVar6 + 0x1d8) = *(uint *)(iVar6 + 0x1d8) | DAT_001cffa8;\n  *(undefined4 *)(iVar6 + 0x1d0) = DAT_001cef94;\n  if ((DAT_001cf388 < 0) && ((DAT_001d03e1 & 0x60) == 0)) {\n    if ((DAT_001d03e0 & 3) == 2) {\n      DAT_001cf388 = 1;\n    }\n    else if (DAT_001cf6bc != 0) {\n      iVar6 = DAT_001cf6bc;\n      do {\n        local_20[0] = 0;\n        bfd_map_over_sections(*(undefined4 *)(iVar6 + 0x10),FUN_000554f0,local_20);\n        iVar17 = DAT_001d0414;\n        if (local_20[0] != 0) {\n          DAT_001cf388 = 1;\n          break;\n        }\n        iVar6 = *(int *)(iVar6 + 0x18);\n      } while (iVar6 != 0);\n    }\n  }\n  FUN_00066c30(iVar17);\n  FUN_000656c0(DAT_001d0414,&DAT_001d03e0);\n  if (DAT_001d0448 != 0) {\n    iVar6 = FUN_000561f0();\n    pcVar12 = "_head_";\n    if (iVar6 != 0) {\n      pcVar12 = "__head_";\n    }\n    FUN_00063bc0(pcVar12,FUN_00055b50);\n  }\n  if (DAT_001cef90 != 0) {\n    if (DAT_001d01fc != 0) {\n      puts("pe_fixup_stdcalls");\n    }\n    for (iVar6 = *(int *)(DAT_001d0400 + 0x1c); iVar6 != 0; iVar6 = *(int *)(iVar6 + 0x10)) {\n      if (*(char *)(iVar6 + 0xc) == '\x01') {\n        pcVar12 = *(char **)(iVar6 + 4);\n        if (*pcVar12 == '@') {\n          pcVar10 = strchr(pcVar12 + 1,0x40);\n          pcVar12 = (char *)xstrdup(pcVar12);\n          *pcVar12 = '_';\n          if (pcVar10 != (char *)0x0) goto LAB_00057061;\n        }\n        else {\n          pcVar10 = strchr(pcVar12,0x40);\n          if (pcVar10 == (char *)0x0) {\n            DAT_001cff8c = 0;\n            bfd_link_hash_traverse(DAT_001d0400,FUN_00055530,pcVar12);\n            if (DAT_001cff8c != 0) {\n              FUN_00056030();\n            }\n            goto LAB_00056fa8;\n          }\n          pcVar12 = (char *)xstrdup(pcVar12);\nLAB_00057061:\n          pcVar10 = strchr(pcVar12,0x40);\n          *pcVar10 = '\0';\n        }\n        iVar17 = bfd_link_hash_lookup(DAT_001d0400,pcVar12,0,0,1);\n        if ((iVar17 != 0) && (*(char *)(iVar17 + 0xc) == '\x03')) {\n          FUN_00056030();\n        }\n      }\nLAB_00056fa8:\n    }\n  }\n  if ((DAT_001d03e0 & 3) != 2) {\n    FUN_00066ca0(DAT_001d0414,&DAT_001d03e0);\n  }\n  local_40 = DAT_001cf6bc;\n  if (DAT_001cf6bc != 0) {\n    do {\n      iVar6 = *(int *)(local_40 + 0x10);\n      if ((*(int *)(iVar6 + 0x8c) != 0) &&\n         (local_38 = *(undefined4 **)(iVar6 + 0x60), local_38 != (undefined4 *)0x0)) {\n        iVar17 = 0;\n        bVar24 = true;\n        puVar7 = local_38;\n        bVar3 = 0;\n        bVar16 = false;\n        do {\n          bVar22 = false;\n          iVar15 = 9;\n          pbVar19 = (byte *)*puVar7;\n          pbVar21 = (byte *)".idata$2";\n          do {\n            if (iVar15 == 0) break;\n            iVar15 = iVar15 + -1;\n            bVar22 = *pbVar19 < *pbVar21;\n            bVar24 = *pbVar19 == *pbVar21;\n            pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n            pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n          } while (bVar24);\n          bVar23 = false;\n          bVar24 = (!bVar22 && !bVar24) == bVar22;\n          bVar22 = true;\n          if (!bVar24) {\n            bVar22 = bVar16;\n          }\n          iVar15 = 7;\n          pbVar19 = (byte *)*puVar7;\n          pbVar21 = (byte *)".idata$";\n          do {\n            if (iVar15 == 0) break;\n            iVar15 = iVar15 + -1;\n            bVar23 = *pbVar19 < *pbVar21;\n            bVar24 = *pbVar19 == *pbVar21;\n            pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n            pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n          } while (bVar24);\n          bVar5 = 1;\n          if ((!bVar23 && !bVar24) != bVar23) {\n            bVar5 = bVar3;\n          }\n          iVar17 = iVar17 + puVar7[0x19];\n          puVar7 = (undefined4 *)puVar7[3];\n          bVar24 = puVar7 == (undefined4 *)0x0;\n          bVar3 = bVar5;\n          bVar16 = bVar22;\n        } while (!bVar24);\n        if (((bool)(bVar5 & iVar17 != 0)) && (!bVar22)) {\n          while (iVar6 = bfd_get_reloc_upper_bound(iVar6,local_38), 0 < iVar6) {\n            iVar17 = bfd_generic_link_read_symbols(*(undefined4 *)(local_40 + 0x10));\n            local_4c = local_40;\n            if (iVar17 == 0) goto LAB_000570af;\n            uVar11 = *(undefined4 *)(*(int *)(local_40 + 0x10) + 0x78);\n            puVar7 = (undefined4 *)xmalloc(iVar6);\n            iVar6 = bfd_canonicalize_reloc(*(undefined4 *)(local_40 + 0x10),local_38,puVar7,uVar11);\n            if (iVar6 < 0) {\n              free(puVar7);\n              uVar11 = dcgettext(0,"%X%P: unable to process relocs: %E\n",5);\n              FUN_00034d20(uVar11);\n              return;\n            }\n            puVar18 = puVar7;\n            if (iVar6 != 0) {\n              do {\n                if ((((*(byte *)(**(int **)*puVar18 + 0x10) & 1) == 0) &&\n                    (iVar17 = bfd_link_hash_lookup\n                                        (DAT_001d0400,*(undefined4 *)(**(int **)*puVar18 + 4),0,0,1)\n                    , iVar17 != 0)) && (*(char *)(iVar17 + 0xc) == '\x03')) {\n                  puVar2 = *(undefined4 **)(*(int *)(iVar17 + 0x14) + 0xac);\n                  puVar8 = (undefined4 *)puVar2[0x23];\n                  if (puVar8 == (undefined4 *)0x0) {\n                    puVar8 = puVar2;\n                  }\n                  pcVar12 = (char *)*puVar8;\n                  iVar17 = filename_cmp(**(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c),pcVar12)\n                  ;\n                  if (iVar17 != 0) {\n                    sVar9 = strlen(pcVar12);\n                    pcVar10 = (char *)xmalloc(sVar9 + 1);\n                    strcpy(pcVar10,pcVar12);\n                    **(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c) = pcVar10;\n                  }\n                }\n                puVar18 = puVar18 + 1;\n              } while (puVar7 + iVar6 != puVar18);\n            }\n            free(puVar7);\n            local_38 = (undefined4 *)local_38[3];\n            if (local_38 == (undefined4 *)0x0) break;\n            iVar6 = *(int *)(local_40 + 0x10);\n          }\n        }\n      }\n      local_40 = *(int *)(local_40 + 0x18);\n    } while (local_40 != 0);\n    local_50 = DAT_001cf6bc;\n    if (DAT_001cf6bc != 0) {\n      bVar16 = false;\n      local_40 = 0;\n      do {\n        iVar6 = (*(undefined4 **)(local_50 + 0x10))[0x23];\n        if (iVar6 != 0) {\n          pcVar12 = strrchr((char *)**(undefined4 **)(local_50 + 0x10),0x2e);\n          iVar17 = local_50;\n          if (iVar6 == local_40) {\n            if (!bVar16) goto LAB_00056b08;\n          }\n          else {\n            while ((iVar15 = local_50, local_40 = iVar6, pcVar12 == (char *)0x0 ||\n                   (iVar13 = filename_cmp(pcVar12,".dll"), iVar13 != 0))) {\n              iVar17 = *(int *)(iVar17 + 0x18);\n              if (iVar17 == 0) {\n                local_50 = *(int *)(local_50 + 0x18);\n                bVar16 = false;\n                goto joined_r0x00056b15;\n              }\n              if (iVar6 != (*(undefined4 **)(iVar17 + 0x10))[0x23]) break;\n              pcVar12 = strrchr((char *)**(undefined4 **)(iVar17 + 0x10),0x2e);\n            }\n            do {\n              if (iVar6 != (*(undefined4 **)(iVar15 + 0x10))[0x23]) break;\n              pcVar12 = (char *)**(undefined4 **)(iVar15 + 0x10);\n              pcVar10 = strrchr(pcVar12,0x2e);\n              if (pcVar10 == (char *)0x0) {\nLAB_00056d20:\n                iVar13 = filename_cmp(**(undefined4 **)(iVar17 + 0x10),pcVar12);\n                if (iVar13 != 0) {\n                  bVar16 = false;\n                  goto LAB_00056b08;\n                }\n              }\n              else {\n                iVar13 = filename_cmp(pcVar10,&DAT_00192ed1);\n                if (iVar13 != 0) {\n                  pcVar12 = (char *)**(undefined4 **)(iVar15 + 0x10);\n                  goto LAB_00056d20;\n                }\n              }\n              piVar20 = (int *)(iVar15 + 0x18);\n              iVar15 = *piVar20;\n            } while (*piVar20 != 0);\n            pcVar12 = strrchr((char *)**(undefined4 **)(local_50 + 0x10),0x2e);\n          }\n          bVar16 = true;\n          iVar6 = filename_cmp(pcVar12,".dll");\n          if (iVar6 == 0) {\n            puVar7 = (undefined4 *)(*(undefined4 **)(local_50 + 0x10))[0x18];\n            if (puVar7 == (undefined4 *)0x0) {\n              iVar6 = 99;\n            }\n            else {\n              iVar17 = 0;\n              bVar24 = true;\n              bVar16 = false;\n              do {\n                bVar22 = false;\n                iVar6 = 9;\n                pbVar19 = (byte *)*puVar7;\n                pbVar21 = (byte *)".idata$2";\n                do {\n                  if (iVar6 == 0) break;\n                  iVar6 = iVar6 + -1;\n                  bVar22 = *pbVar19 < *pbVar21;\n                  bVar24 = *pbVar19 == *pbVar21;\n                  pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n                  pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n                } while (bVar24);\n                if ((!bVar22 && !bVar24) == bVar22) {\n                  bVar16 = true;\n                }\n                iVar17 = iVar17 + puVar7[0x19];\n                puVar7 = (undefined4 *)puVar7[3];\n                bVar24 = puVar7 == (undefined4 *)0x0;\n              } while (!bVar24);\n              iVar6 = 0x61;\n              if (!bVar16) {\n                iVar6 = (iVar17 < 1) + 0x62;\n              }\n            }\n            sVar9 = strlen((char *)**(undefined4 **)(local_50 + 0x10));\n            pcVar12 = (char *)xmalloc(sVar9 + 3);\n            sprintf(pcVar12,"%s.%c",**(undefined4 **)(local_50 + 0x10),iVar6);\n            **(undefined4 **)(local_50 + 0x10) = pcVar12;\n            sVar9 = strlen(*(char **)(local_50 + 8));\n            pcVar12 = (char *)xmalloc(sVar9 + 3);\n            sprintf(pcVar12,"%s.%c",*(undefined4 *)(local_50 + 8),iVar6);\n            *(char **)(local_50 + 8) = pcVar12;\n            bVar16 = true;\n          }\n        }\nLAB_00056b08:\n        local_50 = *(int *)(local_50 + 0x18);\njoined_r0x00056b15:\n      } while (local_50 != 0);\n      local_4c = DAT_001cf6bc;\n      if (DAT_001cf6bc != 0) {\n        do {\n          iVar6 = *(int *)(local_4c + 0x10);\n          if ((*(int *)(iVar6 + 0x8c) != 0) &&\n             (puVar7 = *(undefined4 **)(iVar6 + 0x60), puVar7 != (undefined4 *)0x0)) {\n            puVar18 = (undefined4 *)0x0;\n            bVar16 = false;\n            bVar24 = true;\n            do {\n              bVar22 = false;\n              iVar17 = 7;\n              pbVar19 = (byte *)*puVar7;\n              pbVar21 = (byte *)".idata$";\n              do {\n                if (iVar17 == 0) break;\n                iVar17 = iVar17 + -1;\n                bVar22 = *pbVar19 < *pbVar21;\n                bVar24 = *pbVar19 == *pbVar21;\n                pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n                pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n              } while (bVar24);\n              if ((!bVar22 && !bVar24) == bVar22) {\n                bVar16 = true;\n              }\n              if (((*(byte *)(puVar7 + 5) & 0x10) != 0) && (puVar7[0x19] != 0)) {\n                puVar18 = puVar7;\n              }\n              puVar7 = (undefined4 *)puVar7[3];\n              bVar24 = puVar7 == (undefined4 *)0x0;\n            } while (!bVar24);\n            if ((puVar18 != (undefined4 *)0x0) && (bVar16)) {\n              iVar6 = bfd_generic_link_read_symbols(iVar6);\n              if (iVar6 == 0) {\nLAB_000570af:\n                uVar11 = *(undefined4 *)(local_4c + 0x10);\n                uVar14 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n                FUN_00034d20(uVar14,uVar11);\n                return;\n              }\n              piVar20 = *(int **)(*(int *)(local_4c + 0x10) + 0x78);\n              iVar6 = *(int *)(*(int *)(local_4c + 0x10) + 0x7c);\n              if (0 < iVar6) {\n                piVar1 = piVar20 + iVar6;\n                do {\n                  if ((((*(int *)(*(int *)(*piVar20 + 0x14) + 4) == puVar18[1]) &&\n                       (iVar6 = bfd_link_hash_lookup\n                                          (DAT_001d0400,*(undefined4 *)(*piVar20 + 4),0,0,1),\n                       iVar6 != 0)) && (*(char *)(iVar6 + 0xc) == '\x03')) &&\n                     ((*(int *)(iVar6 + 0x10) == 0 && (*(int *)(DAT_001d0400 + 0x20) != iVar6)))) {\n                    puVar18[5] = puVar18[5] | 0x8000;\n                  }\n                  piVar20 = piVar20 + 1;\n                } while (piVar1 != piVar20);\n              }\n            }\n          }\n          local_4c = *(int *)(local_4c + 0x18);\n        } while (local_4c != 0);\n      }\n    }\n  }\n  return;\n}" (primitive_type "void") (function_declarator "FUN_00056650(void)" (identifier "FUN_00056650") (parameter_list "(void)" (( "(") (parameter_declaration "void" (primitive_type "void")) () ")"))) (compound_statement "{\n  int *piVar1;\n  undefined4 *puVar2;\n  byte bVar3;\n  void *pvVar4;\n  byte bVar5;\n  int iVar6;\n  undefined4 *puVar7;\n  undefined4 *puVar8;\n  size_t sVar9;\n  char *pcVar10;\n  undefined4 uVar11;\n  char *pcVar12;\n  int iVar13;\n  undefined4 uVar14;\n  int iVar15;\n  bool bVar16;\n  int iVar17;\n  undefined4 *puVar18;\n  byte *pbVar19;\n  int *piVar20;\n  byte *pbVar21;\n  bool bVar22;\n  bool bVar23;\n  bool bVar24;\n  byte bVar25;\n  int local_50;\n  int local_4c;\n  int local_40;\n  undefined4 *local_38;\n  int local_20 [3];\n  undefined4 uStack_14;\n  \n  bVar25 = 0;\n  uStack_14 = 0x56659;\n  FUN_00033940();\n  if (DAT_001d01fc == 0) {\nLAB_00056682:\n    puVar7 = DAT_001d041c;\n    if (DAT_001cff9c != (void *)0x0) {\n      for (; puVar7 != (undefined4 *)0x0; puVar7 = (undefined4 *)puVar7[0x27]) {\n        if (*(int *)(puVar7[1] + 4) == 2) {\n          iVar6 = FUN_00038960(DAT_001cff9c);\n          if (iVar6 == 0) {\n            pcVar12 = "%P: warning: unrecognized --build-id style ignored\n";\n          }\n          else {\n            iVar17 = bfd_make_section_anyway_with_flags\n                               (puVar7,".buildid",\n                                "*/\n  .debug_aranges  0 : { *(.debug_aranges) }\n  .debug_pubnames 0 : { *(.debug_pubnames) }\n  \n  .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }\n  .debug_abbrev   0 : { *(.debug_abbrev) }\n  .debug_line     0 : { *(.debug_line .debug_line.* .debug_line_end ) }\n  .debug_frame    0 : { *(.debug_frame) }\n  .debug_str      0 : { *(.debug_str) }\n  .debug_loc      0 : { *(.debug_loc) }\n  .debug_macinfo  0 : { *(.debug_macinfo) }\n  \n  .debug_weaknames 0 : { *(.debug_weaknames) }\n  .debug_funcnames 0 : { *(.debug_funcnames) }\n  .debug_typenames 0 : { *(.debug_typenames) }\n  .debug_varnames  0 : { *(.debug_varnames) }\n  \n  .debug_pubtypes 0 : { *(.debug_pubtypes) }\n  .debug_ranges   0 : { *(.debug_ranges) }\n  \n  .debug_macro    0 : { *(.debug_macro) }\n  .debug_addr     0 : { *(.debug_addr) }\n  .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) }\n  /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) }\n}\n\n"\n                               );\n            iVar6 = DAT_001d0414;\n            if (iVar17 != 0) {\n              iVar15 = *(int *)(DAT_001d0414 + 0xa0);\n              *(code **)(iVar15 + 0x1dc) = FUN_00055c40;\n              pvVar4 = DAT_001cff9c;\n              iVar13 = *(int *)(iVar15 + 0x58);\n              *(int *)(iVar15 + 0x1e4) = iVar17;\n              *(void **)(iVar15 + 0x1e0) = pvVar4;\n              *(undefined4 *)(iVar17 + 0x2c) = 0x35;\n              *(undefined4 *)(iVar17 + 0x30) = 0;\n              goto joined_r0x00056729;\n            }\n            pcVar12 = "%P: warning: cannot create .buildid section, --build-id ignored\n";\n          }\n          uVar11 = dcgettext(0,pcVar12,5);\n          FUN_00034d20(uVar11);\n          break;\n        }\n      }\nLAB_00056a59:\n      free(DAT_001cff9c);\n      DAT_001cff9c = (void *)0x0;\n    }\n  }\n  else {\n    printf("%s()\n","gld_i386pe_after_open");\n    for (iVar6 = *(int *)(DAT_001d0400 + 0x1c); iVar6 != 0; iVar6 = *(int *)(iVar6 + 0x10)) {\n      printf("-%s\n",*(undefined4 *)(iVar6 + 4));\n    }\n    bfd_hash_traverse(DAT_001d0400,FUN_00055b20,0);\n    puVar7 = DAT_001d041c;\n    if (DAT_001d041c != (undefined4 *)0x0) {\n      do {\n        printf("*%s\n",*puVar7);\n        puVar18 = puVar7 + 0x27;\n        puVar7 = (undefined4 *)*puVar18;\n      } while ((undefined4 *)*puVar18 != (undefined4 *)0x0);\n      goto LAB_00056682;\n    }\n    if (DAT_001cff9c != (void *)0x0) goto LAB_00056a59;\n  }\n  iVar6 = DAT_001d0414;\n  if (*(int *)(DAT_001d0414 + 0xa0) != 0) {\n    iVar13 = *(int *)(*(int *)(DAT_001d0414 + 0xa0) + 0x58);\njoined_r0x00056729:\n    if (iVar13 != 0) goto LAB_00056730;\n  }\n  uVar11 = dcgettext(0,"%F%P: cannot perform PE operations on non PE output file \'%pB\'\n",5);\n  FUN_00034d20(uVar11,iVar6);\nLAB_00056730:\n  iVar17 = DAT_001d0414;\n  iVar6 = *(int *)(DAT_001d0414 + 0xa0);\n  puVar7 = &DAT_001cffc0;\n  puVar18 = (undefined4 *)(iVar6 + 0x7c);\n  for (iVar15 = 0x52; iVar15 != 0; iVar15 = iVar15 + -1) {\n    *puVar18 = *puVar7;\n    puVar7 = puVar7 + (uint)bVar25 * -2 + 1;\n    puVar18 = puVar18 + (uint)bVar25 * -2 + 1;\n  }\n  *(undefined4 *)(iVar6 + 0x1c4) = DAT_001cf040;\n  *(uint *)(iVar6 + 0x1d8) = *(uint *)(iVar6 + 0x1d8) | DAT_001cffa8;\n  *(undefined4 *)(iVar6 + 0x1d0) = DAT_001cef94;\n  if ((DAT_001cf388 < 0) && ((DAT_001d03e1 & 0x60) == 0)) {\n    if ((DAT_001d03e0 & 3) == 2) {\n      DAT_001cf388 = 1;\n    }\n    else if (DAT_001cf6bc != 0) {\n      iVar6 = DAT_001cf6bc;\n      do {\n        local_20[0] = 0;\n        bfd_map_over_sections(*(undefined4 *)(iVar6 + 0x10),FUN_000554f0,local_20);\n        iVar17 = DAT_001d0414;\n        if (local_20[0] != 0) {\n          DAT_001cf388 = 1;\n          break;\n        }\n        iVar6 = *(int *)(iVar6 + 0x18);\n      } while (iVar6 != 0);\n    }\n  }\n  FUN_00066c30(iVar17);\n  FUN_000656c0(DAT_001d0414,&DAT_001d03e0);\n  if (DAT_001d0448 != 0) {\n    iVar6 = FUN_000561f0();\n    pcVar12 = "_head_";\n    if (iVar6 != 0) {\n      pcVar12 = "__head_";\n    }\n    FUN_00063bc0(pcVar12,FUN_00055b50);\n  }\n  if (DAT_001cef90 != 0) {\n    if (DAT_001d01fc != 0) {\n      puts("pe_fixup_stdcalls");\n    }\n    for (iVar6 = *(int *)(DAT_001d0400 + 0x1c); iVar6 != 0; iVar6 = *(int *)(iVar6 + 0x10)) {\n      if (*(char *)(iVar6 + 0xc) == '\x01') {\n        pcVar12 = *(char **)(iVar6 + 4);\n        if (*pcVar12 == '@') {\n          pcVar10 = strchr(pcVar12 + 1,0x40);\n          pcVar12 = (char *)xstrdup(pcVar12);\n          *pcVar12 = '_';\n          if (pcVar10 != (char *)0x0) goto LAB_00057061;\n        }\n        else {\n          pcVar10 = strchr(pcVar12,0x40);\n          if (pcVar10 == (char *)0x0) {\n            DAT_001cff8c = 0;\n            bfd_link_hash_traverse(DAT_001d0400,FUN_00055530,pcVar12);\n            if (DAT_001cff8c != 0) {\n              FUN_00056030();\n            }\n            goto LAB_00056fa8;\n          }\n          pcVar12 = (char *)xstrdup(pcVar12);\nLAB_00057061:\n          pcVar10 = strchr(pcVar12,0x40);\n          *pcVar10 = '\0';\n        }\n        iVar17 = bfd_link_hash_lookup(DAT_001d0400,pcVar12,0,0,1);\n        if ((iVar17 != 0) && (*(char *)(iVar17 + 0xc) == '\x03')) {\n          FUN_00056030();\n        }\n      }\nLAB_00056fa8:\n    }\n  }\n  if ((DAT_001d03e0 & 3) != 2) {\n    FUN_00066ca0(DAT_001d0414,&DAT_001d03e0);\n  }\n  local_40 = DAT_001cf6bc;\n  if (DAT_001cf6bc != 0) {\n    do {\n      iVar6 = *(int *)(local_40 + 0x10);\n      if ((*(int *)(iVar6 + 0x8c) != 0) &&\n         (local_38 = *(undefined4 **)(iVar6 + 0x60), local_38 != (undefined4 *)0x0)) {\n        iVar17 = 0;\n        bVar24 = true;\n        puVar7 = local_38;\n        bVar3 = 0;\n        bVar16 = false;\n        do {\n          bVar22 = false;\n          iVar15 = 9;\n          pbVar19 = (byte *)*puVar7;\n          pbVar21 = (byte *)".idata$2";\n          do {\n            if (iVar15 == 0) break;\n            iVar15 = iVar15 + -1;\n            bVar22 = *pbVar19 < *pbVar21;\n            bVar24 = *pbVar19 == *pbVar21;\n            pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n            pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n          } while (bVar24);\n          bVar23 = false;\n          bVar24 = (!bVar22 && !bVar24) == bVar22;\n          bVar22 = true;\n          if (!bVar24) {\n            bVar22 = bVar16;\n          }\n          iVar15 = 7;\n          pbVar19 = (byte *)*puVar7;\n          pbVar21 = (byte *)".idata$";\n          do {\n            if (iVar15 == 0) break;\n            iVar15 = iVar15 + -1;\n            bVar23 = *pbVar19 < *pbVar21;\n            bVar24 = *pbVar19 == *pbVar21;\n            pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n            pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n          } while (bVar24);\n          bVar5 = 1;\n          if ((!bVar23 && !bVar24) != bVar23) {\n            bVar5 = bVar3;\n          }\n          iVar17 = iVar17 + puVar7[0x19];\n          puVar7 = (undefined4 *)puVar7[3];\n          bVar24 = puVar7 == (undefined4 *)0x0;\n          bVar3 = bVar5;\n          bVar16 = bVar22;\n        } while (!bVar24);\n        if (((bool)(bVar5 & iVar17 != 0)) && (!bVar22)) {\n          while (iVar6 = bfd_get_reloc_upper_bound(iVar6,local_38), 0 < iVar6) {\n            iVar17 = bfd_generic_link_read_symbols(*(undefined4 *)(local_40 + 0x10));\n            local_4c = local_40;\n            if (iVar17 == 0) goto LAB_000570af;\n            uVar11 = *(undefined4 *)(*(int *)(local_40 + 0x10) + 0x78);\n            puVar7 = (undefined4 *)xmalloc(iVar6);\n            iVar6 = bfd_canonicalize_reloc(*(undefined4 *)(local_40 + 0x10),local_38,puVar7,uVar11);\n            if (iVar6 < 0) {\n              free(puVar7);\n              uVar11 = dcgettext(0,"%X%P: unable to process relocs: %E\n",5);\n              FUN_00034d20(uVar11);\n              return;\n            }\n            puVar18 = puVar7;\n            if (iVar6 != 0) {\n              do {\n                if ((((*(byte *)(**(int **)*puVar18 + 0x10) & 1) == 0) &&\n                    (iVar17 = bfd_link_hash_lookup\n                                        (DAT_001d0400,*(undefined4 *)(**(int **)*puVar18 + 4),0,0,1)\n                    , iVar17 != 0)) && (*(char *)(iVar17 + 0xc) == '\x03')) {\n                  puVar2 = *(undefined4 **)(*(int *)(iVar17 + 0x14) + 0xac);\n                  puVar8 = (undefined4 *)puVar2[0x23];\n                  if (puVar8 == (undefined4 *)0x0) {\n                    puVar8 = puVar2;\n                  }\n                  pcVar12 = (char *)*puVar8;\n                  iVar17 = filename_cmp(**(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c),pcVar12)\n                  ;\n                  if (iVar17 != 0) {\n                    sVar9 = strlen(pcVar12);\n                    pcVar10 = (char *)xmalloc(sVar9 + 1);\n                    strcpy(pcVar10,pcVar12);\n                    **(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c) = pcVar10;\n                  }\n                }\n                puVar18 = puVar18 + 1;\n              } while (puVar7 + iVar6 != puVar18);\n            }\n            free(puVar7);\n            local_38 = (undefined4 *)local_38[3];\n            if (local_38 == (undefined4 *)0x0) break;\n            iVar6 = *(int *)(local_40 + 0x10);\n          }\n        }\n      }\n      local_40 = *(int *)(local_40 + 0x18);\n    } while (local_40 != 0);\n    local_50 = DAT_001cf6bc;\n    if (DAT_001cf6bc != 0) {\n      bVar16 = false;\n      local_40 = 0;\n      do {\n        iVar6 = (*(undefined4 **)(local_50 + 0x10))[0x23];\n        if (iVar6 != 0) {\n          pcVar12 = strrchr((char *)**(undefined4 **)(local_50 + 0x10),0x2e);\n          iVar17 = local_50;\n          if (iVar6 == local_40) {\n            if (!bVar16) goto LAB_00056b08;\n          }\n          else {\n            while ((iVar15 = local_50, local_40 = iVar6, pcVar12 == (char *)0x0 ||\n                   (iVar13 = filename_cmp(pcVar12,".dll"), iVar13 != 0))) {\n              iVar17 = *(int *)(iVar17 + 0x18);\n              if (iVar17 == 0) {\n                local_50 = *(int *)(local_50 + 0x18);\n                bVar16 = false;\n                goto joined_r0x00056b15;\n              }\n              if (iVar6 != (*(undefined4 **)(iVar17 + 0x10))[0x23]) break;\n              pcVar12 = strrchr((char *)**(undefined4 **)(iVar17 + 0x10),0x2e);\n            }\n            do {\n              if (iVar6 != (*(undefined4 **)(iVar15 + 0x10))[0x23]) break;\n              pcVar12 = (char *)**(undefined4 **)(iVar15 + 0x10);\n              pcVar10 = strrchr(pcVar12,0x2e);\n              if (pcVar10 == (char *)0x0) {\nLAB_00056d20:\n                iVar13 = filename_cmp(**(undefined4 **)(iVar17 + 0x10),pcVar12);\n                if (iVar13 != 0) {\n                  bVar16 = false;\n                  goto LAB_00056b08;\n                }\n              }\n              else {\n                iVar13 = filename_cmp(pcVar10,&DAT_00192ed1);\n                if (iVar13 != 0) {\n                  pcVar12 = (char *)**(undefined4 **)(iVar15 + 0x10);\n                  goto LAB_00056d20;\n                }\n              }\n              piVar20 = (int *)(iVar15 + 0x18);\n              iVar15 = *piVar20;\n            } while (*piVar20 != 0);\n            pcVar12 = strrchr((char *)**(undefined4 **)(local_50 + 0x10),0x2e);\n          }\n          bVar16 = true;\n          iVar6 = filename_cmp(pcVar12,".dll");\n          if (iVar6 == 0) {\n            puVar7 = (undefined4 *)(*(undefined4 **)(local_50 + 0x10))[0x18];\n            if (puVar7 == (undefined4 *)0x0) {\n              iVar6 = 99;\n            }\n            else {\n              iVar17 = 0;\n              bVar24 = true;\n              bVar16 = false;\n              do {\n                bVar22 = false;\n                iVar6 = 9;\n                pbVar19 = (byte *)*puVar7;\n                pbVar21 = (byte *)".idata$2";\n                do {\n                  if (iVar6 == 0) break;\n                  iVar6 = iVar6 + -1;\n                  bVar22 = *pbVar19 < *pbVar21;\n                  bVar24 = *pbVar19 == *pbVar21;\n                  pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n                  pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n                } while (bVar24);\n                if ((!bVar22 && !bVar24) == bVar22) {\n                  bVar16 = true;\n                }\n                iVar17 = iVar17 + puVar7[0x19];\n                puVar7 = (undefined4 *)puVar7[3];\n                bVar24 = puVar7 == (undefined4 *)0x0;\n              } while (!bVar24);\n              iVar6 = 0x61;\n              if (!bVar16) {\n                iVar6 = (iVar17 < 1) + 0x62;\n              }\n            }\n            sVar9 = strlen((char *)**(undefined4 **)(local_50 + 0x10));\n            pcVar12 = (char *)xmalloc(sVar9 + 3);\n            sprintf(pcVar12,"%s.%c",**(undefined4 **)(local_50 + 0x10),iVar6);\n            **(undefined4 **)(local_50 + 0x10) = pcVar12;\n            sVar9 = strlen(*(char **)(local_50 + 8));\n            pcVar12 = (char *)xmalloc(sVar9 + 3);\n            sprintf(pcVar12,"%s.%c",*(undefined4 *)(local_50 + 8),iVar6);\n            *(char **)(local_50 + 8) = pcVar12;\n            bVar16 = true;\n          }\n        }\nLAB_00056b08:\n        local_50 = *(int *)(local_50 + 0x18);\njoined_r0x00056b15:\n      } while (local_50 != 0);\n      local_4c = DAT_001cf6bc;\n      if (DAT_001cf6bc != 0) {\n        do {\n          iVar6 = *(int *)(local_4c + 0x10);\n          if ((*(int *)(iVar6 + 0x8c) != 0) &&\n             (puVar7 = *(undefined4 **)(iVar6 + 0x60), puVar7 != (undefined4 *)0x0)) {\n            puVar18 = (undefined4 *)0x0;\n            bVar16 = false;\n            bVar24 = true;\n            do {\n              bVar22 = false;\n              iVar17 = 7;\n              pbVar19 = (byte *)*puVar7;\n              pbVar21 = (byte *)".idata$";\n              do {\n                if (iVar17 == 0) break;\n                iVar17 = iVar17 + -1;\n                bVar22 = *pbVar19 < *pbVar21;\n                bVar24 = *pbVar19 == *pbVar21;\n                pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n                pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n              } while (bVar24);\n              if ((!bVar22 && !bVar24) == bVar22) {\n                bVar16 = true;\n              }\n              if (((*(byte *)(puVar7 + 5) & 0x10) != 0) && (puVar7[0x19] != 0)) {\n                puVar18 = puVar7;\n              }\n              puVar7 = (undefined4 *)puVar7[3];\n              bVar24 = puVar7 == (undefined4 *)0x0;\n            } while (!bVar24);\n            if ((puVar18 != (undefined4 *)0x0) && (bVar16)) {\n              iVar6 = bfd_generic_link_read_symbols(iVar6);\n              if (iVar6 == 0) {\nLAB_000570af:\n                uVar11 = *(undefined4 *)(local_4c + 0x10);\n                uVar14 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n                FUN_00034d20(uVar14,uVar11);\n                return;\n              }\n              piVar20 = *(int **)(*(int *)(local_4c + 0x10) + 0x78);\n              iVar6 = *(int *)(*(int *)(local_4c + 0x10) + 0x7c);\n              if (0 < iVar6) {\n                piVar1 = piVar20 + iVar6;\n                do {\n                  if ((((*(int *)(*(int *)(*piVar20 + 0x14) + 4) == puVar18[1]) &&\n                       (iVar6 = bfd_link_hash_lookup\n                                          (DAT_001d0400,*(undefined4 *)(*piVar20 + 4),0,0,1),\n                       iVar6 != 0)) && (*(char *)(iVar6 + 0xc) == '\x03')) &&\n                     ((*(int *)(iVar6 + 0x10) == 0 && (*(int *)(DAT_001d0400 + 0x20) != iVar6)))) {\n                    puVar18[5] = puVar18[5] | 0x8000;\n                  }\n                  piVar20 = piVar20 + 1;\n                } while (piVar1 != piVar20);\n              }\n            }\n          }\n          local_4c = *(int *)(local_4c + 0x18);\n        } while (local_4c != 0);\n      }\n    }\n  }\n  return;\n}" ({ "{") (declaration "int *piVar1;" (primitive_type "int") (pointer_declarator "*piVar1" (* "*") (identifier "piVar1")) (; ";")) (declaration "undefined4 *puVar2;" (type_identifier "undefined4") (pointer_declarator "*puVar2" (* "*") (identifier "puVar2")) (; ";")) (declaration "byte bVar3;" (type_identifier "byte") (identifier "bVar3") (; ";")) (declaration "void *pvVar4;" (primitive_type "void") (pointer_declarator "*pvVar4" (* "*") (identifier "pvVar4")) (; ";")) (declaration "byte bVar5;" (type_identifier "byte") (identifier "bVar5") (; ";")) (declaration "int iVar6;" (primitive_type "int") (identifier "iVar6") (; ";")) (declaration "undefined4 *puVar7;" (type_identifier "undefined4") (pointer_declarator "*puVar7" (* "*") (identifier "puVar7")) (; ";")) (declaration "undefined4 *puVar8;" (type_identifier "undefined4") (pointer_declarator "*puVar8" (* "*") (identifier "puVar8")) (; ";")) (declaration "size_t sVar9;" (primitive_type "size_t") (identifier "sVar9") (; ";")) (declaration "char *pcVar10;" (primitive_type "char") (pointer_declarator "*pcVar10" (* "*") (identifier "pcVar10")) (; ";")) (declaration "undefined4 uVar11;" (type_identifier "undefined4") (identifier "uVar11") (; ";")) (declaration "char *pcVar12;" (primitive_type "char") (pointer_declarator "*pcVar12" (* "*") (identifier "pcVar12")) (; ";")) (declaration "int iVar13;" (primitive_type "int") (identifier "iVar13") (; ";")) (declaration "undefined4 uVar14;" (type_identifier "undefined4") (identifier "uVar14") (; ";")) (declaration "int iVar15;" (primitive_type "int") (identifier "iVar15") (; ";")) (declaration "bool bVar16;" (primitive_type "bool") (identifier "bVar16") (; ";")) (declaration "int iVar17;" (primitive_type "int") (identifier "iVar17") (; ";")) (declaration "undefined4 *puVar18;" (type_identifier "undefined4") (pointer_declarator "*puVar18" (* "*") (identifier "puVar18")) (; ";")) (declaration "byte *pbVar19;" (type_identifier "byte") (pointer_declarator "*pbVar19" (* "*") (identifier "pbVar19")) (; ";")) (declaration "int *piVar20;" (primitive_type "int") (pointer_declarator "*piVar20" (* "*") (identifier "piVar20")) (; ";")) (declaration "byte *pbVar21;" (type_identifier "byte") (pointer_declarator "*pbVar21" (* "*") (identifier "pbVar21")) (; ";")) (declaration "bool bVar22;" (primitive_type "bool") (identifier "bVar22") (; ";")) (declaration "bool bVar23;" (primitive_type "bool") (identifier "bVar23") (; ";")) (declaration "bool bVar24;" (primitive_type "bool") (identifier "bVar24") (; ";")) (declaration "byte bVar25;" (type_identifier "byte") (identifier "bVar25") (; ";")) (declaration "int local_50;" (primitive_type "int") (identifier "local_50") (; ";")) (declaration "int local_4c;" (primitive_type "int") (identifier "local_4c") (; ";")) (declaration "int local_40;" (primitive_type "int") (identifier "local_40") (; ";")) (declaration "undefined4 *local_38;" (type_identifier "undefined4") (pointer_declarator "*local_38" (* "*") (identifier "local_38")) (; ";")) (declaration "int local_20 [3];" (primitive_type "int") (array_declarator "local_20 [3]" (identifier "local_20") ([ "[") (number_literal "3") (] "]")) (; ";")) (declaration "undefined4 uStack_14;" (type_identifier "undefined4") (identifier "uStack_14") (; ";")) (expression_statement "bVar25 = 0;" (assignment_expression "bVar25 = 0" (identifier "bVar25") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_14 = 0x56659;" (assignment_expression "uStack_14 = 0x56659" (identifier "uStack_14") (= "=") (number_literal "0x56659")) (; ";")) (expression_statement "FUN_00033940();" (call_expression "FUN_00033940()" (identifier "FUN_00033940") (argument_list "()" (( "(") () ")"))) (; ";")) (if_statement "if (DAT_001d01fc == 0) {\nLAB_00056682:\n    puVar7 = DAT_001d041c;\n    if (DAT_001cff9c != (void *)0x0) {\n      for (; puVar7 != (undefined4 *)0x0; puVar7 = (undefined4 *)puVar7[0x27]) {\n        if (*(int *)(puVar7[1] + 4) == 2) {\n          iVar6 = FUN_00038960(DAT_001cff9c);\n          if (iVar6 == 0) {\n            pcVar12 = "%P: warning: unrecognized --build-id style ignored\n";\n          }\n          else {\n            iVar17 = bfd_make_section_anyway_with_flags\n                               (puVar7,".buildid",\n                                "*/\n  .debug_aranges  0 : { *(.debug_aranges) }\n  .debug_pubnames 0 : { *(.debug_pubnames) }\n  \n  .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }\n  .debug_abbrev   0 : { *(.debug_abbrev) }\n  .debug_line     0 : { *(.debug_line .debug_line.* .debug_line_end ) }\n  .debug_frame    0 : { *(.debug_frame) }\n  .debug_str      0 : { *(.debug_str) }\n  .debug_loc      0 : { *(.debug_loc) }\n  .debug_macinfo  0 : { *(.debug_macinfo) }\n  \n  .debug_weaknames 0 : { *(.debug_weaknames) }\n  .debug_funcnames 0 : { *(.debug_funcnames) }\n  .debug_typenames 0 : { *(.debug_typenames) }\n  .debug_varnames  0 : { *(.debug_varnames) }\n  \n  .debug_pubtypes 0 : { *(.debug_pubtypes) }\n  .debug_ranges   0 : { *(.debug_ranges) }\n  \n  .debug_macro    0 : { *(.debug_macro) }\n  .debug_addr     0 : { *(.debug_addr) }\n  .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) }\n  /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) }\n}\n\n"\n                               );\n            iVar6 = DAT_001d0414;\n            if (iVar17 != 0) {\n              iVar15 = *(int *)(DAT_001d0414 + 0xa0);\n              *(code **)(iVar15 + 0x1dc) = FUN_00055c40;\n              pvVar4 = DAT_001cff9c;\n              iVar13 = *(int *)(iVar15 + 0x58);\n              *(int *)(iVar15 + 0x1e4) = iVar17;\n              *(void **)(iVar15 + 0x1e0) = pvVar4;\n              *(undefined4 *)(iVar17 + 0x2c) = 0x35;\n              *(undefined4 *)(iVar17 + 0x30) = 0;\n              goto joined_r0x00056729;\n            }\n            pcVar12 = "%P: warning: cannot create .buildid section, --build-id ignored\n";\n          }\n          uVar11 = dcgettext(0,pcVar12,5);\n          FUN_00034d20(uVar11);\n          break;\n        }\n      }\nLAB_00056a59:\n      free(DAT_001cff9c);\n      DAT_001cff9c = (void *)0x0;\n    }\n  }\n  else {\n    printf("%s()\n","gld_i386pe_after_open");\n    for (iVar6 = *(int *)(DAT_001d0400 + 0x1c); iVar6 != 0; iVar6 = *(int *)(iVar6 + 0x10)) {\n      printf("-%s\n",*(undefined4 *)(iVar6 + 4));\n    }\n    bfd_hash_traverse(DAT_001d0400,FUN_00055b20,0);\n    puVar7 = DAT_001d041c;\n    if (DAT_001d041c != (undefined4 *)0x0) {\n      do {\n        printf("*%s\n",*puVar7);\n        puVar18 = puVar7 + 0x27;\n        puVar7 = (undefined4 *)*puVar18;\n      } while ((undefined4 *)*puVar18 != (undefined4 *)0x0);\n      goto LAB_00056682;\n    }\n    if (DAT_001cff9c != (void *)0x0) goto LAB_00056a59;\n  }" (if "if") (parenthesized_expression "(DAT_001d01fc == 0)" (( "(") (binary_expression "DAT_001d01fc == 0" (identifier "DAT_001d01fc") (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_00056682:\n    puVar7 = DAT_001d041c;\n    if (DAT_001cff9c != (void *)0x0) {\n      for (; puVar7 != (undefined4 *)0x0; puVar7 = (undefined4 *)puVar7[0x27]) {\n        if (*(int *)(puVar7[1] + 4) == 2) {\n          iVar6 = FUN_00038960(DAT_001cff9c);\n          if (iVar6 == 0) {\n            pcVar12 = "%P: warning: unrecognized --build-id style ignored\n";\n          }\n          else {\n            iVar17 = bfd_make_section_anyway_with_flags\n                               (puVar7,".buildid",\n                                "*/\n  .debug_aranges  0 : { *(.debug_aranges) }\n  .debug_pubnames 0 : { *(.debug_pubnames) }\n  \n  .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }\n  .debug_abbrev   0 : { *(.debug_abbrev) }\n  .debug_line     0 : { *(.debug_line .debug_line.* .debug_line_end ) }\n  .debug_frame    0 : { *(.debug_frame) }\n  .debug_str      0 : { *(.debug_str) }\n  .debug_loc      0 : { *(.debug_loc) }\n  .debug_macinfo  0 : { *(.debug_macinfo) }\n  \n  .debug_weaknames 0 : { *(.debug_weaknames) }\n  .debug_funcnames 0 : { *(.debug_funcnames) }\n  .debug_typenames 0 : { *(.debug_typenames) }\n  .debug_varnames  0 : { *(.debug_varnames) }\n  \n  .debug_pubtypes 0 : { *(.debug_pubtypes) }\n  .debug_ranges   0 : { *(.debug_ranges) }\n  \n  .debug_macro    0 : { *(.debug_macro) }\n  .debug_addr     0 : { *(.debug_addr) }\n  .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) }\n  /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) }\n}\n\n"\n                               );\n            iVar6 = DAT_001d0414;\n            if (iVar17 != 0) {\n              iVar15 = *(int *)(DAT_001d0414 + 0xa0);\n              *(code **)(iVar15 + 0x1dc) = FUN_00055c40;\n              pvVar4 = DAT_001cff9c;\n              iVar13 = *(int *)(iVar15 + 0x58);\n              *(int *)(iVar15 + 0x1e4) = iVar17;\n              *(void **)(iVar15 + 0x1e0) = pvVar4;\n              *(undefined4 *)(iVar17 + 0x2c) = 0x35;\n              *(undefined4 *)(iVar17 + 0x30) = 0;\n              goto joined_r0x00056729;\n            }\n            pcVar12 = "%P: warning: cannot create .buildid section, --build-id ignored\n";\n          }\n          uVar11 = dcgettext(0,pcVar12,5);\n          FUN_00034d20(uVar11);\n          break;\n        }\n      }\nLAB_00056a59:\n      free(DAT_001cff9c);\n      DAT_001cff9c = (void *)0x0;\n    }\n  }" ({ "{") (labeled_statement "LAB_00056682:\n    puVar7 = DAT_001d041c;" (statement_identifier "LAB_00056682") (: ":") (expression_statement "puVar7 = DAT_001d041c;" (assignment_expression "puVar7 = DAT_001d041c" (identifier "puVar7") (= "=") (identifier "DAT_001d041c")) (; ";"))) (if_statement "if (DAT_001cff9c != (void *)0x0) {\n      for (; puVar7 != (undefined4 *)0x0; puVar7 = (undefined4 *)puVar7[0x27]) {\n        if (*(int *)(puVar7[1] + 4) == 2) {\n          iVar6 = FUN_00038960(DAT_001cff9c);\n          if (iVar6 == 0) {\n            pcVar12 = "%P: warning: unrecognized --build-id style ignored\n";\n          }\n          else {\n            iVar17 = bfd_make_section_anyway_with_flags\n                               (puVar7,".buildid",\n                                "*/\n  .debug_aranges  0 : { *(.debug_aranges) }\n  .debug_pubnames 0 : { *(.debug_pubnames) }\n  \n  .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }\n  .debug_abbrev   0 : { *(.debug_abbrev) }\n  .debug_line     0 : { *(.debug_line .debug_line.* .debug_line_end ) }\n  .debug_frame    0 : { *(.debug_frame) }\n  .debug_str      0 : { *(.debug_str) }\n  .debug_loc      0 : { *(.debug_loc) }\n  .debug_macinfo  0 : { *(.debug_macinfo) }\n  \n  .debug_weaknames 0 : { *(.debug_weaknames) }\n  .debug_funcnames 0 : { *(.debug_funcnames) }\n  .debug_typenames 0 : { *(.debug_typenames) }\n  .debug_varnames  0 : { *(.debug_varnames) }\n  \n  .debug_pubtypes 0 : { *(.debug_pubtypes) }\n  .debug_ranges   0 : { *(.debug_ranges) }\n  \n  .debug_macro    0 : { *(.debug_macro) }\n  .debug_addr     0 : { *(.debug_addr) }\n  .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) }\n  /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) }\n}\n\n"\n                               );\n            iVar6 = DAT_001d0414;\n            if (iVar17 != 0) {\n              iVar15 = *(int *)(DAT_001d0414 + 0xa0);\n              *(code **)(iVar15 + 0x1dc) = FUN_00055c40;\n              pvVar4 = DAT_001cff9c;\n              iVar13 = *(int *)(iVar15 + 0x58);\n              *(int *)(iVar15 + 0x1e4) = iVar17;\n              *(void **)(iVar15 + 0x1e0) = pvVar4;\n              *(undefined4 *)(iVar17 + 0x2c) = 0x35;\n              *(undefined4 *)(iVar17 + 0x30) = 0;\n              goto joined_r0x00056729;\n            }\n            pcVar12 = "%P: warning: cannot create .buildid section, --build-id ignored\n";\n          }\n          uVar11 = dcgettext(0,pcVar12,5);\n          FUN_00034d20(uVar11);\n          break;\n        }\n      }\nLAB_00056a59:\n      free(DAT_001cff9c);\n      DAT_001cff9c = (void *)0x0;\n    }" (if "if") (parenthesized_expression "(DAT_001cff9c != (void *)0x0)" (( "(") (binary_expression "DAT_001cff9c != (void *)0x0" (identifier "DAT_001cff9c") (!= "!=") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      for (; puVar7 != (undefined4 *)0x0; puVar7 = (undefined4 *)puVar7[0x27]) {\n        if (*(int *)(puVar7[1] + 4) == 2) {\n          iVar6 = FUN_00038960(DAT_001cff9c);\n          if (iVar6 == 0) {\n            pcVar12 = "%P: warning: unrecognized --build-id style ignored\n";\n          }\n          else {\n            iVar17 = bfd_make_section_anyway_with_flags\n                               (puVar7,".buildid",\n                                "*/\n  .debug_aranges  0 : { *(.debug_aranges) }\n  .debug_pubnames 0 : { *(.debug_pubnames) }\n  \n  .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }\n  .debug_abbrev   0 : { *(.debug_abbrev) }\n  .debug_line     0 : { *(.debug_line .debug_line.* .debug_line_end ) }\n  .debug_frame    0 : { *(.debug_frame) }\n  .debug_str      0 : { *(.debug_str) }\n  .debug_loc      0 : { *(.debug_loc) }\n  .debug_macinfo  0 : { *(.debug_macinfo) }\n  \n  .debug_weaknames 0 : { *(.debug_weaknames) }\n  .debug_funcnames 0 : { *(.debug_funcnames) }\n  .debug_typenames 0 : { *(.debug_typenames) }\n  .debug_varnames  0 : { *(.debug_varnames) }\n  \n  .debug_pubtypes 0 : { *(.debug_pubtypes) }\n  .debug_ranges   0 : { *(.debug_ranges) }\n  \n  .debug_macro    0 : { *(.debug_macro) }\n  .debug_addr     0 : { *(.debug_addr) }\n  .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) }\n  /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) }\n}\n\n"\n                               );\n            iVar6 = DAT_001d0414;\n            if (iVar17 != 0) {\n              iVar15 = *(int *)(DAT_001d0414 + 0xa0);\n              *(code **)(iVar15 + 0x1dc) = FUN_00055c40;\n              pvVar4 = DAT_001cff9c;\n              iVar13 = *(int *)(iVar15 + 0x58);\n              *(int *)(iVar15 + 0x1e4) = iVar17;\n              *(void **)(iVar15 + 0x1e0) = pvVar4;\n              *(undefined4 *)(iVar17 + 0x2c) = 0x35;\n              *(undefined4 *)(iVar17 + 0x30) = 0;\n              goto joined_r0x00056729;\n            }\n            pcVar12 = "%P: warning: cannot create .buildid section, --build-id ignored\n";\n          }\n          uVar11 = dcgettext(0,pcVar12,5);\n          FUN_00034d20(uVar11);\n          break;\n        }\n      }\nLAB_00056a59:\n      free(DAT_001cff9c);\n      DAT_001cff9c = (void *)0x0;\n    }" ({ "{") (for_statement "for (; puVar7 != (undefined4 *)0x0; puVar7 = (undefined4 *)puVar7[0x27]) {\n        if (*(int *)(puVar7[1] + 4) == 2) {\n          iVar6 = FUN_00038960(DAT_001cff9c);\n          if (iVar6 == 0) {\n            pcVar12 = "%P: warning: unrecognized --build-id style ignored\n";\n          }\n          else {\n            iVar17 = bfd_make_section_anyway_with_flags\n                               (puVar7,".buildid",\n                                "*/\n  .debug_aranges  0 : { *(.debug_aranges) }\n  .debug_pubnames 0 : { *(.debug_pubnames) }\n  \n  .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }\n  .debug_abbrev   0 : { *(.debug_abbrev) }\n  .debug_line     0 : { *(.debug_line .debug_line.* .debug_line_end ) }\n  .debug_frame    0 : { *(.debug_frame) }\n  .debug_str      0 : { *(.debug_str) }\n  .debug_loc      0 : { *(.debug_loc) }\n  .debug_macinfo  0 : { *(.debug_macinfo) }\n  \n  .debug_weaknames 0 : { *(.debug_weaknames) }\n  .debug_funcnames 0 : { *(.debug_funcnames) }\n  .debug_typenames 0 : { *(.debug_typenames) }\n  .debug_varnames  0 : { *(.debug_varnames) }\n  \n  .debug_pubtypes 0 : { *(.debug_pubtypes) }\n  .debug_ranges   0 : { *(.debug_ranges) }\n  \n  .debug_macro    0 : { *(.debug_macro) }\n  .debug_addr     0 : { *(.debug_addr) }\n  .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) }\n  /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) }\n}\n\n"\n                               );\n            iVar6 = DAT_001d0414;\n            if (iVar17 != 0) {\n              iVar15 = *(int *)(DAT_001d0414 + 0xa0);\n              *(code **)(iVar15 + 0x1dc) = FUN_00055c40;\n              pvVar4 = DAT_001cff9c;\n              iVar13 = *(int *)(iVar15 + 0x58);\n              *(int *)(iVar15 + 0x1e4) = iVar17;\n              *(void **)(iVar15 + 0x1e0) = pvVar4;\n              *(undefined4 *)(iVar17 + 0x2c) = 0x35;\n              *(undefined4 *)(iVar17 + 0x30) = 0;\n              goto joined_r0x00056729;\n            }\n            pcVar12 = "%P: warning: cannot create .buildid section, --build-id ignored\n";\n          }\n          uVar11 = dcgettext(0,pcVar12,5);\n          FUN_00034d20(uVar11);\n          break;\n        }\n      }" (for "for") (( "(") (; ";") (binary_expression "puVar7 != (undefined4 *)0x0" (identifier "puVar7") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";") (assignment_expression "puVar7 = (undefined4 *)puVar7[0x27]" (identifier "puVar7") (= "=") (cast_expression "(undefined4 *)puVar7[0x27]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar7[0x27]" (identifier "puVar7") ([ "[") (number_literal "0x27") (] "]")))) () ")") (compound_statement "{\n        if (*(int *)(puVar7[1] + 4) == 2) {\n          iVar6 = FUN_00038960(DAT_001cff9c);\n          if (iVar6 == 0) {\n            pcVar12 = "%P: warning: unrecognized --build-id style ignored\n";\n          }\n          else {\n            iVar17 = bfd_make_section_anyway_with_flags\n                               (puVar7,".buildid",\n                                "*/\n  .debug_aranges  0 : { *(.debug_aranges) }\n  .debug_pubnames 0 : { *(.debug_pubnames) }\n  \n  .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }\n  .debug_abbrev   0 : { *(.debug_abbrev) }\n  .debug_line     0 : { *(.debug_line .debug_line.* .debug_line_end ) }\n  .debug_frame    0 : { *(.debug_frame) }\n  .debug_str      0 : { *(.debug_str) }\n  .debug_loc      0 : { *(.debug_loc) }\n  .debug_macinfo  0 : { *(.debug_macinfo) }\n  \n  .debug_weaknames 0 : { *(.debug_weaknames) }\n  .debug_funcnames 0 : { *(.debug_funcnames) }\n  .debug_typenames 0 : { *(.debug_typenames) }\n  .debug_varnames  0 : { *(.debug_varnames) }\n  \n  .debug_pubtypes 0 : { *(.debug_pubtypes) }\n  .debug_ranges   0 : { *(.debug_ranges) }\n  \n  .debug_macro    0 : { *(.debug_macro) }\n  .debug_addr     0 : { *(.debug_addr) }\n  .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) }\n  /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) }\n}\n\n"\n                               );\n            iVar6 = DAT_001d0414;\n            if (iVar17 != 0) {\n              iVar15 = *(int *)(DAT_001d0414 + 0xa0);\n              *(code **)(iVar15 + 0x1dc) = FUN_00055c40;\n              pvVar4 = DAT_001cff9c;\n              iVar13 = *(int *)(iVar15 + 0x58);\n              *(int *)(iVar15 + 0x1e4) = iVar17;\n              *(void **)(iVar15 + 0x1e0) = pvVar4;\n              *(undefined4 *)(iVar17 + 0x2c) = 0x35;\n              *(undefined4 *)(iVar17 + 0x30) = 0;\n              goto joined_r0x00056729;\n            }\n            pcVar12 = "%P: warning: cannot create .buildid section, --build-id ignored\n";\n          }\n          uVar11 = dcgettext(0,pcVar12,5);\n          FUN_00034d20(uVar11);\n          break;\n        }\n      }" ({ "{") (if_statement "if (*(int *)(puVar7[1] + 4) == 2) {\n          iVar6 = FUN_00038960(DAT_001cff9c);\n          if (iVar6 == 0) {\n            pcVar12 = "%P: warning: unrecognized --build-id style ignored\n";\n          }\n          else {\n            iVar17 = bfd_make_section_anyway_with_flags\n                               (puVar7,".buildid",\n                                "*/\n  .debug_aranges  0 : { *(.debug_aranges) }\n  .debug_pubnames 0 : { *(.debug_pubnames) }\n  \n  .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }\n  .debug_abbrev   0 : { *(.debug_abbrev) }\n  .debug_line     0 : { *(.debug_line .debug_line.* .debug_line_end ) }\n  .debug_frame    0 : { *(.debug_frame) }\n  .debug_str      0 : { *(.debug_str) }\n  .debug_loc      0 : { *(.debug_loc) }\n  .debug_macinfo  0 : { *(.debug_macinfo) }\n  \n  .debug_weaknames 0 : { *(.debug_weaknames) }\n  .debug_funcnames 0 : { *(.debug_funcnames) }\n  .debug_typenames 0 : { *(.debug_typenames) }\n  .debug_varnames  0 : { *(.debug_varnames) }\n  \n  .debug_pubtypes 0 : { *(.debug_pubtypes) }\n  .debug_ranges   0 : { *(.debug_ranges) }\n  \n  .debug_macro    0 : { *(.debug_macro) }\n  .debug_addr     0 : { *(.debug_addr) }\n  .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) }\n  /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) }\n}\n\n"\n                               );\n            iVar6 = DAT_001d0414;\n            if (iVar17 != 0) {\n              iVar15 = *(int *)(DAT_001d0414 + 0xa0);\n              *(code **)(iVar15 + 0x1dc) = FUN_00055c40;\n              pvVar4 = DAT_001cff9c;\n              iVar13 = *(int *)(iVar15 + 0x58);\n              *(int *)(iVar15 + 0x1e4) = iVar17;\n              *(void **)(iVar15 + 0x1e0) = pvVar4;\n              *(undefined4 *)(iVar17 + 0x2c) = 0x35;\n              *(undefined4 *)(iVar17 + 0x30) = 0;\n              goto joined_r0x00056729;\n            }\n            pcVar12 = "%P: warning: cannot create .buildid section, --build-id ignored\n";\n          }\n          uVar11 = dcgettext(0,pcVar12,5);\n          FUN_00034d20(uVar11);\n          break;\n        }" (if "if") (parenthesized_expression "(*(int *)(puVar7[1] + 4) == 2)" (( "(") (binary_expression "*(int *)(puVar7[1] + 4) == 2" (pointer_expression "*(int *)(puVar7[1] + 4)" (* "*") (cast_expression "(int *)(puVar7[1] + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7[1] + 4)" (( "(") (binary_expression "puVar7[1] + 4" (subscript_expression "puVar7[1]" (identifier "puVar7") ([ "[") (number_literal "1") (] "]")) (+ "+") (number_literal "4")) () ")")))) (== "==") (number_literal "2")) () ")")) (compound_statement "{\n          iVar6 = FUN_00038960(DAT_001cff9c);\n          if (iVar6 == 0) {\n            pcVar12 = "%P: warning: unrecognized --build-id style ignored\n";\n          }\n          else {\n            iVar17 = bfd_make_section_anyway_with_flags\n                               (puVar7,".buildid",\n                                "*/\n  .debug_aranges  0 : { *(.debug_aranges) }\n  .debug_pubnames 0 : { *(.debug_pubnames) }\n  \n  .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }\n  .debug_abbrev   0 : { *(.debug_abbrev) }\n  .debug_line     0 : { *(.debug_line .debug_line.* .debug_line_end ) }\n  .debug_frame    0 : { *(.debug_frame) }\n  .debug_str      0 : { *(.debug_str) }\n  .debug_loc      0 : { *(.debug_loc) }\n  .debug_macinfo  0 : { *(.debug_macinfo) }\n  \n  .debug_weaknames 0 : { *(.debug_weaknames) }\n  .debug_funcnames 0 : { *(.debug_funcnames) }\n  .debug_typenames 0 : { *(.debug_typenames) }\n  .debug_varnames  0 : { *(.debug_varnames) }\n  \n  .debug_pubtypes 0 : { *(.debug_pubtypes) }\n  .debug_ranges   0 : { *(.debug_ranges) }\n  \n  .debug_macro    0 : { *(.debug_macro) }\n  .debug_addr     0 : { *(.debug_addr) }\n  .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) }\n  /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) }\n}\n\n"\n                               );\n            iVar6 = DAT_001d0414;\n            if (iVar17 != 0) {\n              iVar15 = *(int *)(DAT_001d0414 + 0xa0);\n              *(code **)(iVar15 + 0x1dc) = FUN_00055c40;\n              pvVar4 = DAT_001cff9c;\n              iVar13 = *(int *)(iVar15 + 0x58);\n              *(int *)(iVar15 + 0x1e4) = iVar17;\n              *(void **)(iVar15 + 0x1e0) = pvVar4;\n              *(undefined4 *)(iVar17 + 0x2c) = 0x35;\n              *(undefined4 *)(iVar17 + 0x30) = 0;\n              goto joined_r0x00056729;\n            }\n            pcVar12 = "%P: warning: cannot create .buildid section, --build-id ignored\n";\n          }\n          uVar11 = dcgettext(0,pcVar12,5);\n          FUN_00034d20(uVar11);\n          break;\n        }" ({ "{") (expression_statement "iVar6 = FUN_00038960(DAT_001cff9c);" (assignment_expression "iVar6 = FUN_00038960(DAT_001cff9c)" (identifier "iVar6") (= "=") (call_expression "FUN_00038960(DAT_001cff9c)" (identifier "FUN_00038960") (argument_list "(DAT_001cff9c)" (( "(") (identifier "DAT_001cff9c") () ")")))) (; ";")) (if_statement "if (iVar6 == 0) {\n            pcVar12 = "%P: warning: unrecognized --build-id style ignored\n";\n          }\n          else {\n            iVar17 = bfd_make_section_anyway_with_flags\n                               (puVar7,".buildid",\n                                "*/\n  .debug_aranges  0 : { *(.debug_aranges) }\n  .debug_pubnames 0 : { *(.debug_pubnames) }\n  \n  .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }\n  .debug_abbrev   0 : { *(.debug_abbrev) }\n  .debug_line     0 : { *(.debug_line .debug_line.* .debug_line_end ) }\n  .debug_frame    0 : { *(.debug_frame) }\n  .debug_str      0 : { *(.debug_str) }\n  .debug_loc      0 : { *(.debug_loc) }\n  .debug_macinfo  0 : { *(.debug_macinfo) }\n  \n  .debug_weaknames 0 : { *(.debug_weaknames) }\n  .debug_funcnames 0 : { *(.debug_funcnames) }\n  .debug_typenames 0 : { *(.debug_typenames) }\n  .debug_varnames  0 : { *(.debug_varnames) }\n  \n  .debug_pubtypes 0 : { *(.debug_pubtypes) }\n  .debug_ranges   0 : { *(.debug_ranges) }\n  \n  .debug_macro    0 : { *(.debug_macro) }\n  .debug_addr     0 : { *(.debug_addr) }\n  .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) }\n  /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) }\n}\n\n"\n                               );\n            iVar6 = DAT_001d0414;\n            if (iVar17 != 0) {\n              iVar15 = *(int *)(DAT_001d0414 + 0xa0);\n              *(code **)(iVar15 + 0x1dc) = FUN_00055c40;\n              pvVar4 = DAT_001cff9c;\n              iVar13 = *(int *)(iVar15 + 0x58);\n              *(int *)(iVar15 + 0x1e4) = iVar17;\n              *(void **)(iVar15 + 0x1e0) = pvVar4;\n              *(undefined4 *)(iVar17 + 0x2c) = 0x35;\n              *(undefined4 *)(iVar17 + 0x30) = 0;\n              goto joined_r0x00056729;\n            }\n            pcVar12 = "%P: warning: cannot create .buildid section, --build-id ignored\n";\n          }" (if "if") (parenthesized_expression "(iVar6 == 0)" (( "(") (binary_expression "iVar6 == 0" (identifier "iVar6") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            pcVar12 = "%P: warning: unrecognized --build-id style ignored\n";\n          }" ({ "{") (expression_statement "pcVar12 = "%P: warning: unrecognized --build-id style ignored\n";" (assignment_expression "pcVar12 = "%P: warning: unrecognized --build-id style ignored\n"" (identifier "pcVar12") (= "=") (string_literal ""%P: warning: unrecognized --build-id style ignored\n"" (" """) (string_content "%P: warning: unrecognized --build-id style ignored") (escape_sequence "\n") (" """))) (; ";")) (} "}")) (else_clause "else {\n            iVar17 = bfd_make_section_anyway_with_flags\n                               (puVar7,".buildid",\n                                "*/\n  .debug_aranges  0 : { *(.debug_aranges) }\n  .debug_pubnames 0 : { *(.debug_pubnames) }\n  \n  .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }\n  .debug_abbrev   0 : { *(.debug_abbrev) }\n  .debug_line     0 : { *(.debug_line .debug_line.* .debug_line_end ) }\n  .debug_frame    0 : { *(.debug_frame) }\n  .debug_str      0 : { *(.debug_str) }\n  .debug_loc      0 : { *(.debug_loc) }\n  .debug_macinfo  0 : { *(.debug_macinfo) }\n  \n  .debug_weaknames 0 : { *(.debug_weaknames) }\n  .debug_funcnames 0 : { *(.debug_funcnames) }\n  .debug_typenames 0 : { *(.debug_typenames) }\n  .debug_varnames  0 : { *(.debug_varnames) }\n  \n  .debug_pubtypes 0 : { *(.debug_pubtypes) }\n  .debug_ranges   0 : { *(.debug_ranges) }\n  \n  .debug_macro    0 : { *(.debug_macro) }\n  .debug_addr     0 : { *(.debug_addr) }\n  .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) }\n  /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) }\n}\n\n"\n                               );\n            iVar6 = DAT_001d0414;\n            if (iVar17 != 0) {\n              iVar15 = *(int *)(DAT_001d0414 + 0xa0);\n              *(code **)(iVar15 + 0x1dc) = FUN_00055c40;\n              pvVar4 = DAT_001cff9c;\n              iVar13 = *(int *)(iVar15 + 0x58);\n              *(int *)(iVar15 + 0x1e4) = iVar17;\n              *(void **)(iVar15 + 0x1e0) = pvVar4;\n              *(undefined4 *)(iVar17 + 0x2c) = 0x35;\n              *(undefined4 *)(iVar17 + 0x30) = 0;\n              goto joined_r0x00056729;\n            }\n            pcVar12 = "%P: warning: cannot create .buildid section, --build-id ignored\n";\n          }" (else "else") (compound_statement "{\n            iVar17 = bfd_make_section_anyway_with_flags\n                               (puVar7,".buildid",\n                                "*/\n  .debug_aranges  0 : { *(.debug_aranges) }\n  .debug_pubnames 0 : { *(.debug_pubnames) }\n  \n  .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }\n  .debug_abbrev   0 : { *(.debug_abbrev) }\n  .debug_line     0 : { *(.debug_line .debug_line.* .debug_line_end ) }\n  .debug_frame    0 : { *(.debug_frame) }\n  .debug_str      0 : { *(.debug_str) }\n  .debug_loc      0 : { *(.debug_loc) }\n  .debug_macinfo  0 : { *(.debug_macinfo) }\n  \n  .debug_weaknames 0 : { *(.debug_weaknames) }\n  .debug_funcnames 0 : { *(.debug_funcnames) }\n  .debug_typenames 0 : { *(.debug_typenames) }\n  .debug_varnames  0 : { *(.debug_varnames) }\n  \n  .debug_pubtypes 0 : { *(.debug_pubtypes) }\n  .debug_ranges   0 : { *(.debug_ranges) }\n  \n  .debug_macro    0 : { *(.debug_macro) }\n  .debug_addr     0 : { *(.debug_addr) }\n  .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) }\n  /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) }\n}\n\n"\n                               );\n            iVar6 = DAT_001d0414;\n            if (iVar17 != 0) {\n              iVar15 = *(int *)(DAT_001d0414 + 0xa0);\n              *(code **)(iVar15 + 0x1dc) = FUN_00055c40;\n              pvVar4 = DAT_001cff9c;\n              iVar13 = *(int *)(iVar15 + 0x58);\n              *(int *)(iVar15 + 0x1e4) = iVar17;\n              *(void **)(iVar15 + 0x1e0) = pvVar4;\n              *(undefined4 *)(iVar17 + 0x2c) = 0x35;\n              *(undefined4 *)(iVar17 + 0x30) = 0;\n              goto joined_r0x00056729;\n            }\n            pcVar12 = "%P: warning: cannot create .buildid section, --build-id ignored\n";\n          }" ({ "{") (expression_statement "iVar17 = bfd_make_section_anyway_with_flags\n                               (puVar7,".buildid",\n                                "*/\n  .debug_aranges  0 : { *(.debug_aranges) }\n  .debug_pubnames 0 : { *(.debug_pubnames) }\n  \n  .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }\n  .debug_abbrev   0 : { *(.debug_abbrev) }\n  .debug_line     0 : { *(.debug_line .debug_line.* .debug_line_end ) }\n  .debug_frame    0 : { *(.debug_frame) }\n  .debug_str      0 : { *(.debug_str) }\n  .debug_loc      0 : { *(.debug_loc) }\n  .debug_macinfo  0 : { *(.debug_macinfo) }\n  \n  .debug_weaknames 0 : { *(.debug_weaknames) }\n  .debug_funcnames 0 : { *(.debug_funcnames) }\n  .debug_typenames 0 : { *(.debug_typenames) }\n  .debug_varnames  0 : { *(.debug_varnames) }\n  \n  .debug_pubtypes 0 : { *(.debug_pubtypes) }\n  .debug_ranges   0 : { *(.debug_ranges) }\n  \n  .debug_macro    0 : { *(.debug_macro) }\n  .debug_addr     0 : { *(.debug_addr) }\n  .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) }\n  /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) }\n}\n\n"\n                               );" (assignment_expression "iVar17 = bfd_make_section_anyway_with_flags\n                               (puVar7,".buildid",\n                                "*/\n  .debug_aranges  0 : { *(.debug_aranges) }\n  .debug_pubnames 0 : { *(.debug_pubnames) }\n  \n  .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }\n  .debug_abbrev   0 : { *(.debug_abbrev) }\n  .debug_line     0 : { *(.debug_line .debug_line.* .debug_line_end ) }\n  .debug_frame    0 : { *(.debug_frame) }\n  .debug_str      0 : { *(.debug_str) }\n  .debug_loc      0 : { *(.debug_loc) }\n  .debug_macinfo  0 : { *(.debug_macinfo) }\n  \n  .debug_weaknames 0 : { *(.debug_weaknames) }\n  .debug_funcnames 0 : { *(.debug_funcnames) }\n  .debug_typenames 0 : { *(.debug_typenames) }\n  .debug_varnames  0 : { *(.debug_varnames) }\n  \n  .debug_pubtypes 0 : { *(.debug_pubtypes) }\n  .debug_ranges   0 : { *(.debug_ranges) }\n  \n  .debug_macro    0 : { *(.debug_macro) }\n  .debug_addr     0 : { *(.debug_addr) }\n  .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) }\n  /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) }\n}\n\n"\n                               )" (identifier "iVar17") (= "=") (call_expression "bfd_make_section_anyway_with_flags\n                               (puVar7,".buildid",\n                                "*/\n  .debug_aranges  0 : { *(.debug_aranges) }\n  .debug_pubnames 0 : { *(.debug_pubnames) }\n  \n  .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }\n  .debug_abbrev   0 : { *(.debug_abbrev) }\n  .debug_line     0 : { *(.debug_line .debug_line.* .debug_line_end ) }\n  .debug_frame    0 : { *(.debug_frame) }\n  .debug_str      0 : { *(.debug_str) }\n  .debug_loc      0 : { *(.debug_loc) }\n  .debug_macinfo  0 : { *(.debug_macinfo) }\n  \n  .debug_weaknames 0 : { *(.debug_weaknames) }\n  .debug_funcnames 0 : { *(.debug_funcnames) }\n  .debug_typenames 0 : { *(.debug_typenames) }\n  .debug_varnames  0 : { *(.debug_varnames) }\n  \n  .debug_pubtypes 0 : { *(.debug_pubtypes) }\n  .debug_ranges   0 : { *(.debug_ranges) }\n  \n  .debug_macro    0 : { *(.debug_macro) }\n  .debug_addr     0 : { *(.debug_addr) }\n  .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) }\n  /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) }\n}\n\n"\n                               )" (identifier "bfd_make_section_anyway_with_flags") (argument_list "(puVar7,".buildid",\n                                "*/\n  .debug_aranges  0 : { *(.debug_aranges) }\n  .debug_pubnames 0 : { *(.debug_pubnames) }\n  \n  .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }\n  .debug_abbrev   0 : { *(.debug_abbrev) }\n  .debug_line     0 : { *(.debug_line .debug_line.* .debug_line_end ) }\n  .debug_frame    0 : { *(.debug_frame) }\n  .debug_str      0 : { *(.debug_str) }\n  .debug_loc      0 : { *(.debug_loc) }\n  .debug_macinfo  0 : { *(.debug_macinfo) }\n  \n  .debug_weaknames 0 : { *(.debug_weaknames) }\n  .debug_funcnames 0 : { *(.debug_funcnames) }\n  .debug_typenames 0 : { *(.debug_typenames) }\n  .debug_varnames  0 : { *(.debug_varnames) }\n  \n  .debug_pubtypes 0 : { *(.debug_pubtypes) }\n  .debug_ranges   0 : { *(.debug_ranges) }\n  \n  .debug_macro    0 : { *(.debug_macro) }\n  .debug_addr     0 : { *(.debug_addr) }\n  .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) }\n  /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) }\n}\n\n"\n                               )" (( "(") (identifier "puVar7") (, ",") (string_literal "".buildid"" (" """) (string_content ".buildid") (" """)) (, ",") (string_literal ""*/\n  .debug_aranges  0 : { *(.debug_aranges) }\n  .debug_pubnames 0 : { *(.debug_pubnames) }\n  \n  .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }\n  .debug_abbrev   0 : { *(.debug_abbrev) }\n  .debug_line     0 : { *(.debug_line .debug_line.* .debug_line_end ) }\n  .debug_frame    0 : { *(.debug_frame) }\n  .debug_str      0 : { *(.debug_str) }\n  .debug_loc      0 : { *(.debug_loc) }\n  .debug_macinfo  0 : { *(.debug_macinfo) }\n  \n  .debug_weaknames 0 : { *(.debug_weaknames) }\n  .debug_funcnames 0 : { *(.debug_funcnames) }\n  .debug_typenames 0 : { *(.debug_typenames) }\n  .debug_varnames  0 : { *(.debug_varnames) }\n  \n  .debug_pubtypes 0 : { *(.debug_pubtypes) }\n  .debug_ranges   0 : { *(.debug_ranges) }\n  \n  .debug_macro    0 : { *(.debug_macro) }\n  .debug_addr     0 : { *(.debug_addr) }\n  .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) }\n  /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) }\n}\n\n"" (" """) (string_content "*/") (escape_sequence "\n") (string_content "  .debug_aranges  0 : { *(.debug_aranges) }") (escape_sequence "\n") (string_content "  .debug_pubnames 0 : { *(.debug_pubnames) }") (escape_sequence "\n") (string_content "  ") (escape_sequence "\n") (string_content "  .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }") (escape_sequence "\n") (string_content "  .debug_abbrev   0 : { *(.debug_abbrev) }") (escape_sequence "\n") (string_content "  .debug_line     0 : { *(.debug_line .debug_line.* .debug_line_end ) }") (escape_sequence "\n") (string_content "  .debug_frame    0 : { *(.debug_frame) }") (escape_sequence "\n") (string_content "  .debug_str      0 : { *(.debug_str) }") (escape_sequence "\n") (string_content "  .debug_loc      0 : { *(.debug_loc) }") (escape_sequence "\n") (string_content "  .debug_macinfo  0 : { *(.debug_macinfo) }") (escape_sequence "\n") (string_content "  ") (escape_sequence "\n") (string_content "  .debug_weaknames 0 : { *(.debug_weaknames) }") (escape_sequence "\n") (string_content "  .debug_funcnames 0 : { *(.debug_funcnames) }") (escape_sequence "\n") (string_content "  .debug_typenames 0 : { *(.debug_typenames) }") (escape_sequence "\n") (string_content "  .debug_varnames  0 : { *(.debug_varnames) }") (escape_sequence "\n") (string_content "  ") (escape_sequence "\n") (string_content "  .debug_pubtypes 0 : { *(.debug_pubtypes) }") (escape_sequence "\n") (string_content "  .debug_ranges   0 : { *(.debug_ranges) }") (escape_sequence "\n") (string_content "  ") (escape_sequence "\n") (string_content "  .debug_macro    0 : { *(.debug_macro) }") (escape_sequence "\n") (string_content "  .debug_addr     0 : { *(.debug_addr) }") (escape_sequence "\n") (string_content "  .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) }") (escape_sequence "\n") (string_content "  /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) }") (escape_sequence "\n") (string_content "}") (escape_sequence "\n") (escape_sequence "\n") (" """)) () ")")))) (; ";")) (expression_statement "iVar6 = DAT_001d0414;" (assignment_expression "iVar6 = DAT_001d0414" (identifier "iVar6") (= "=") (identifier "DAT_001d0414")) (; ";")) (if_statement "if (iVar17 != 0) {\n              iVar15 = *(int *)(DAT_001d0414 + 0xa0);\n              *(code **)(iVar15 + 0x1dc) = FUN_00055c40;\n              pvVar4 = DAT_001cff9c;\n              iVar13 = *(int *)(iVar15 + 0x58);\n              *(int *)(iVar15 + 0x1e4) = iVar17;\n              *(void **)(iVar15 + 0x1e0) = pvVar4;\n              *(undefined4 *)(iVar17 + 0x2c) = 0x35;\n              *(undefined4 *)(iVar17 + 0x30) = 0;\n              goto joined_r0x00056729;\n            }" (if "if") (parenthesized_expression "(iVar17 != 0)" (( "(") (binary_expression "iVar17 != 0" (identifier "iVar17") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              iVar15 = *(int *)(DAT_001d0414 + 0xa0);\n              *(code **)(iVar15 + 0x1dc) = FUN_00055c40;\n              pvVar4 = DAT_001cff9c;\n              iVar13 = *(int *)(iVar15 + 0x58);\n              *(int *)(iVar15 + 0x1e4) = iVar17;\n              *(void **)(iVar15 + 0x1e0) = pvVar4;\n              *(undefined4 *)(iVar17 + 0x2c) = 0x35;\n              *(undefined4 *)(iVar17 + 0x30) = 0;\n              goto joined_r0x00056729;\n            }" ({ "{") (expression_statement "iVar15 = *(int *)(DAT_001d0414 + 0xa0);" (assignment_expression "iVar15 = *(int *)(DAT_001d0414 + 0xa0)" (identifier "iVar15") (= "=") (pointer_expression "*(int *)(DAT_001d0414 + 0xa0)" (* "*") (cast_expression "(int *)(DAT_001d0414 + 0xa0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_001d0414 + 0xa0)" (( "(") (binary_expression "DAT_001d0414 + 0xa0" (identifier "DAT_001d0414") (+ "+") (number_literal "0xa0")) () ")"))))) (; ";")) (expression_statement "*(code **)(iVar15 + 0x1dc) = FUN_00055c40;" (assignment_expression "*(code **)(iVar15 + 0x1dc) = FUN_00055c40" (pointer_expression "*(code **)(iVar15 + 0x1dc)" (* "*") (cast_expression "(code **)(iVar15 + 0x1dc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar15 + 0x1dc)" (( "(") (binary_expression "iVar15 + 0x1dc" (identifier "iVar15") (+ "+") (number_literal "0x1dc")) () ")")))) (= "=") (identifier "FUN_00055c40")) (; ";")) (expression_statement "pvVar4 = DAT_001cff9c;" (assignment_expression "pvVar4 = DAT_001cff9c" (identifier "pvVar4") (= "=") (identifier "DAT_001cff9c")) (; ";")) (expression_statement "iVar13 = *(int *)(iVar15 + 0x58);" (assignment_expression "iVar13 = *(int *)(iVar15 + 0x58)" (identifier "iVar13") (= "=") (pointer_expression "*(int *)(iVar15 + 0x58)" (* "*") (cast_expression "(int *)(iVar15 + 0x58)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar15 + 0x58)" (( "(") (binary_expression "iVar15 + 0x58" (identifier "iVar15") (+ "+") (number_literal "0x58")) () ")"))))) (; ";")) (expression_statement "*(int *)(iVar15 + 0x1e4) = iVar17;" (assignment_expression "*(int *)(iVar15 + 0x1e4) = iVar17" (pointer_expression "*(int *)(iVar15 + 0x1e4)" (* "*") (cast_expression "(int *)(iVar15 + 0x1e4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar15 + 0x1e4)" (( "(") (binary_expression "iVar15 + 0x1e4" (identifier "iVar15") (+ "+") (number_literal "0x1e4")) () ")")))) (= "=") (identifier "iVar17")) (; ";")) (expression_statement "*(void **)(iVar15 + 0x1e0) = pvVar4;" (assignment_expression "*(void **)(iVar15 + 0x1e0) = pvVar4" (pointer_expression "*(void **)(iVar15 + 0x1e0)" (* "*") (cast_expression "(void **)(iVar15 + 0x1e0)" (( "(") (type_descriptor "void **" (primitive_type "void") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar15 + 0x1e0)" (( "(") (binary_expression "iVar15 + 0x1e0" (identifier "iVar15") (+ "+") (number_literal "0x1e0")) () ")")))) (= "=") (identifier "pvVar4")) (; ";")) (expression_statement "*(undefined4 *)(iVar17 + 0x2c) = 0x35;" (assignment_expression "*(undefined4 *)(iVar17 + 0x2c) = 0x35" (pointer_expression "*(undefined4 *)(iVar17 + 0x2c)" (* "*") (cast_expression "(undefined4 *)(iVar17 + 0x2c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar17 + 0x2c)" (( "(") (binary_expression "iVar17 + 0x2c" (identifier "iVar17") (+ "+") (number_literal "0x2c")) () ")")))) (= "=") (number_literal "0x35")) (; ";")) (expression_statement "*(undefined4 *)(iVar17 + 0x30) = 0;" (assignment_expression "*(undefined4 *)(iVar17 + 0x30) = 0" (pointer_expression "*(undefined4 *)(iVar17 + 0x30)" (* "*") (cast_expression "(undefined4 *)(iVar17 + 0x30)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar17 + 0x30)" (( "(") (binary_expression "iVar17 + 0x30" (identifier "iVar17") (+ "+") (number_literal "0x30")) () ")")))) (= "=") (number_literal "0")) (; ";")) (goto_statement "goto joined_r0x00056729;" (goto "goto") (statement_identifier "joined_r0x00056729") (; ";")) (} "}"))) (expression_statement "pcVar12 = "%P: warning: cannot create .buildid section, --build-id ignored\n";" (assignment_expression "pcVar12 = "%P: warning: cannot create .buildid section, --build-id ignored\n"" (identifier "pcVar12") (= "=") (string_literal ""%P: warning: cannot create .buildid section, --build-id ignored\n"" (" """) (string_content "%P: warning: cannot create .buildid section, --build-id ignored") (escape_sequence "\n") (" """))) (; ";")) (} "}")))) (expression_statement "uVar11 = dcgettext(0,pcVar12,5);" (assignment_expression "uVar11 = dcgettext(0,pcVar12,5)" (identifier "uVar11") (= "=") (call_expression "dcgettext(0,pcVar12,5)" (identifier "dcgettext") (argument_list "(0,pcVar12,5)" (( "(") (number_literal "0") (, ",") (identifier "pcVar12") (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_00034d20(uVar11);" (call_expression "FUN_00034d20(uVar11)" (identifier "FUN_00034d20") (argument_list "(uVar11)" (( "(") (identifier "uVar11") () ")"))) (; ";")) (break_statement "break;" (break "break") (; ";")) (} "}"))) (} "}"))) (labeled_statement "LAB_00056a59:\n      free(DAT_001cff9c);" (statement_identifier "LAB_00056a59") (: ":") (expression_statement "free(DAT_001cff9c);" (call_expression "free(DAT_001cff9c)" (identifier "free") (argument_list "(DAT_001cff9c)" (( "(") (identifier "DAT_001cff9c") () ")"))) (; ";"))) (expression_statement "DAT_001cff9c = (void *)0x0;" (assignment_expression "DAT_001cff9c = (void *)0x0" (identifier "DAT_001cff9c") (= "=") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n    printf("%s()\n","gld_i386pe_after_open");\n    for (iVar6 = *(int *)(DAT_001d0400 + 0x1c); iVar6 != 0; iVar6 = *(int *)(iVar6 + 0x10)) {\n      printf("-%s\n",*(undefined4 *)(iVar6 + 4));\n    }\n    bfd_hash_traverse(DAT_001d0400,FUN_00055b20,0);\n    puVar7 = DAT_001d041c;\n    if (DAT_001d041c != (undefined4 *)0x0) {\n      do {\n        printf("*%s\n",*puVar7);\n        puVar18 = puVar7 + 0x27;\n        puVar7 = (undefined4 *)*puVar18;\n      } while ((undefined4 *)*puVar18 != (undefined4 *)0x0);\n      goto LAB_00056682;\n    }\n    if (DAT_001cff9c != (void *)0x0) goto LAB_00056a59;\n  }" (else "else") (compound_statement "{\n    printf("%s()\n","gld_i386pe_after_open");\n    for (iVar6 = *(int *)(DAT_001d0400 + 0x1c); iVar6 != 0; iVar6 = *(int *)(iVar6 + 0x10)) {\n      printf("-%s\n",*(undefined4 *)(iVar6 + 4));\n    }\n    bfd_hash_traverse(DAT_001d0400,FUN_00055b20,0);\n    puVar7 = DAT_001d041c;\n    if (DAT_001d041c != (undefined4 *)0x0) {\n      do {\n        printf("*%s\n",*puVar7);\n        puVar18 = puVar7 + 0x27;\n        puVar7 = (undefined4 *)*puVar18;\n      } while ((undefined4 *)*puVar18 != (undefined4 *)0x0);\n      goto LAB_00056682;\n    }\n    if (DAT_001cff9c != (void *)0x0) goto LAB_00056a59;\n  }" ({ "{") (expression_statement "printf("%s()\n","gld_i386pe_after_open");" (call_expression "printf("%s()\n","gld_i386pe_after_open")" (identifier "printf") (argument_list "("%s()\n","gld_i386pe_after_open")" (( "(") (string_literal ""%s()\n"" (" """) (string_content "%s()") (escape_sequence "\n") (" """)) (, ",") (string_literal ""gld_i386pe_after_open"" (" """) (string_content "gld_i386pe_after_open") (" """)) () ")"))) (; ";")) (for_statement "for (iVar6 = *(int *)(DAT_001d0400 + 0x1c); iVar6 != 0; iVar6 = *(int *)(iVar6 + 0x10)) {\n      printf("-%s\n",*(undefined4 *)(iVar6 + 4));\n    }" (for "for") (( "(") (assignment_expression "iVar6 = *(int *)(DAT_001d0400 + 0x1c)" (identifier "iVar6") (= "=") (pointer_expression "*(int *)(DAT_001d0400 + 0x1c)" (* "*") (cast_expression "(int *)(DAT_001d0400 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_001d0400 + 0x1c)" (( "(") (binary_expression "DAT_001d0400 + 0x1c" (identifier "DAT_001d0400") (+ "+") (number_literal "0x1c")) () ")"))))) (; ";") (binary_expression "iVar6 != 0" (identifier "iVar6") (!= "!=") (number_literal "0")) (; ";") (assignment_expression "iVar6 = *(int *)(iVar6 + 0x10)" (identifier "iVar6") (= "=") (pointer_expression "*(int *)(iVar6 + 0x10)" (* "*") (cast_expression "(int *)(iVar6 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x10)" (( "(") (binary_expression "iVar6 + 0x10" (identifier "iVar6") (+ "+") (number_literal "0x10")) () ")"))))) () ")") (compound_statement "{\n      printf("-%s\n",*(undefined4 *)(iVar6 + 4));\n    }" ({ "{") (expression_statement "printf("-%s\n",*(undefined4 *)(iVar6 + 4));" (call_expression "printf("-%s\n",*(undefined4 *)(iVar6 + 4))" (identifier "printf") (argument_list "("-%s\n",*(undefined4 *)(iVar6 + 4))" (( "(") (string_literal ""-%s\n"" (" """) (string_content "-%s") (escape_sequence "\n") (" """)) (, ",") (pointer_expression "*(undefined4 *)(iVar6 + 4)" (* "*") (cast_expression "(undefined4 *)(iVar6 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 4)" (( "(") (binary_expression "iVar6 + 4" (identifier "iVar6") (+ "+") (number_literal "4")) () ")")))) () ")"))) (; ";")) (} "}"))) (expression_statement "bfd_hash_traverse(DAT_001d0400,FUN_00055b20,0);" (call_expression "bfd_hash_traverse(DAT_001d0400,FUN_00055b20,0)" (identifier "bfd_hash_traverse") (argument_list "(DAT_001d0400,FUN_00055b20,0)" (( "(") (identifier "DAT_001d0400") (, ",") (identifier "FUN_00055b20") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "puVar7 = DAT_001d041c;" (assignment_expression "puVar7 = DAT_001d041c" (identifier "puVar7") (= "=") (identifier "DAT_001d041c")) (; ";")) (if_statement "if (DAT_001d041c != (undefined4 *)0x0) {\n      do {\n        printf("*%s\n",*puVar7);\n        puVar18 = puVar7 + 0x27;\n        puVar7 = (undefined4 *)*puVar18;\n      } while ((undefined4 *)*puVar18 != (undefined4 *)0x0);\n      goto LAB_00056682;\n    }" (if "if") (parenthesized_expression "(DAT_001d041c != (undefined4 *)0x0)" (( "(") (binary_expression "DAT_001d041c != (undefined4 *)0x0" (identifier "DAT_001d041c") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      do {\n        printf("*%s\n",*puVar7);\n        puVar18 = puVar7 + 0x27;\n        puVar7 = (undefined4 *)*puVar18;\n      } while ((undefined4 *)*puVar18 != (undefined4 *)0x0);\n      goto LAB_00056682;\n    }" ({ "{") (do_statement "do {\n        printf("*%s\n",*puVar7);\n        puVar18 = puVar7 + 0x27;\n        puVar7 = (undefined4 *)*puVar18;\n      } while ((undefined4 *)*puVar18 != (undefined4 *)0x0);" (do "do") (compound_statement "{\n        printf("*%s\n",*puVar7);\n        puVar18 = puVar7 + 0x27;\n        puVar7 = (undefined4 *)*puVar18;\n      }" ({ "{") (expression_statement "printf("*%s\n",*puVar7);" (call_expression "printf("*%s\n",*puVar7)" (identifier "printf") (argument_list "("*%s\n",*puVar7)" (( "(") (string_literal ""*%s\n"" (" """) (string_content "*%s") (escape_sequence "\n") (" """)) (, ",") (pointer_expression "*puVar7" (* "*") (identifier "puVar7")) () ")"))) (; ";")) (expression_statement "puVar18 = puVar7 + 0x27;" (assignment_expression "puVar18 = puVar7 + 0x27" (identifier "puVar18") (= "=") (binary_expression "puVar7 + 0x27" (identifier "puVar7") (+ "+") (number_literal "0x27"))) (; ";")) (expression_statement "puVar7 = (undefined4 *)*puVar18;" (assignment_expression "puVar7 = (undefined4 *)*puVar18" (identifier "puVar7") (= "=") (cast_expression "(undefined4 *)*puVar18" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar18" (* "*") (identifier "puVar18")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((undefined4 *)*puVar18 != (undefined4 *)0x0)" (( "(") (binary_expression "(undefined4 *)*puVar18 != (undefined4 *)0x0" (cast_expression "(undefined4 *)*puVar18" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar18" (* "*") (identifier "puVar18"))) (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (goto_statement "goto LAB_00056682;" (goto "goto") (statement_identifier "LAB_00056682") (; ";")) (} "}"))) (if_statement "if (DAT_001cff9c != (void *)0x0) goto LAB_00056a59;" (if "if") (parenthesized_expression "(DAT_001cff9c != (void *)0x0)" (( "(") (binary_expression "DAT_001cff9c != (void *)0x0" (identifier "DAT_001cff9c") (!= "!=") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00056a59;" (goto "goto") (statement_identifier "LAB_00056a59") (; ";"))) (} "}")))) (expression_statement "iVar6 = DAT_001d0414;" (assignment_expression "iVar6 = DAT_001d0414" (identifier "iVar6") (= "=") (identifier "DAT_001d0414")) (; ";")) (if_statement "if (*(int *)(DAT_001d0414 + 0xa0) != 0) {\n    iVar13 = *(int *)(*(int *)(DAT_001d0414 + 0xa0) + 0x58);\njoined_r0x00056729:\n    if (iVar13 != 0) goto LAB_00056730;\n  }" (if "if") (parenthesized_expression "(*(int *)(DAT_001d0414 + 0xa0) != 0)" (( "(") (binary_expression "*(int *)(DAT_001d0414 + 0xa0) != 0" (pointer_expression "*(int *)(DAT_001d0414 + 0xa0)" (* "*") (cast_expression "(int *)(DAT_001d0414 + 0xa0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_001d0414 + 0xa0)" (( "(") (binary_expression "DAT_001d0414 + 0xa0" (identifier "DAT_001d0414") (+ "+") (number_literal "0xa0")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    iVar13 = *(int *)(*(int *)(DAT_001d0414 + 0xa0) + 0x58);\njoined_r0x00056729:\n    if (iVar13 != 0) goto LAB_00056730;\n  }" ({ "{") (expression_statement "iVar13 = *(int *)(*(int *)(DAT_001d0414 + 0xa0) + 0x58);" (assignment_expression "iVar13 = *(int *)(*(int *)(DAT_001d0414 + 0xa0) + 0x58)" (identifier "iVar13") (= "=") (pointer_expression "*(int *)(*(int *)(DAT_001d0414 + 0xa0) + 0x58)" (* "*") (cast_expression "(int *)(*(int *)(DAT_001d0414 + 0xa0) + 0x58)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(DAT_001d0414 + 0xa0) + 0x58)" (( "(") (binary_expression "*(int *)(DAT_001d0414 + 0xa0) + 0x58" (pointer_expression "*(int *)(DAT_001d0414 + 0xa0)" (* "*") (cast_expression "(int *)(DAT_001d0414 + 0xa0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_001d0414 + 0xa0)" (( "(") (binary_expression "DAT_001d0414 + 0xa0" (identifier "DAT_001d0414") (+ "+") (number_literal "0xa0")) () ")")))) (+ "+") (number_literal "0x58")) () ")"))))) (; ";")) (labeled_statement "joined_r0x00056729:\n    if (iVar13 != 0) goto LAB_00056730;" (statement_identifier "joined_r0x00056729") (: ":") (if_statement "if (iVar13 != 0) goto LAB_00056730;" (if "if") (parenthesized_expression "(iVar13 != 0)" (( "(") (binary_expression "iVar13 != 0" (identifier "iVar13") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00056730;" (goto "goto") (statement_identifier "LAB_00056730") (; ";")))) (} "}"))) (expression_statement "uVar11 = dcgettext(0,"%F%P: cannot perform PE operations on non PE output file \'%pB\'\n",5);" (assignment_expression "uVar11 = dcgettext(0,"%F%P: cannot perform PE operations on non PE output file \'%pB\'\n",5)" (identifier "uVar11") (= "=") (call_expression "dcgettext(0,"%F%P: cannot perform PE operations on non PE output file \'%pB\'\n",5)" (identifier "dcgettext") (argument_list "(0,"%F%P: cannot perform PE operations on non PE output file \'%pB\'\n",5)" (( "(") (number_literal "0") (, ",") (string_literal ""%F%P: cannot perform PE operations on non PE output file \'%pB\'\n"" (" """) (string_content "%F%P: cannot perform PE operations on non PE output file ") (escape_sequence "\'") (string_content "%pB") (escape_sequence "\'") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_00034d20(uVar11,iVar6);" (call_expression "FUN_00034d20(uVar11,iVar6)" (identifier "FUN_00034d20") (argument_list "(uVar11,iVar6)" (( "(") (identifier "uVar11") (, ",") (identifier "iVar6") () ")"))) (; ";")) (labeled_statement "LAB_00056730:\n  iVar17 = DAT_001d0414;" (statement_identifier "LAB_00056730") (: ":") (expression_statement "iVar17 = DAT_001d0414;" (assignment_expression "iVar17 = DAT_001d0414" (identifier "iVar17") (= "=") (identifier "DAT_001d0414")) (; ";"))) (expression_statement "iVar6 = *(int *)(DAT_001d0414 + 0xa0);" (assignment_expression "iVar6 = *(int *)(DAT_001d0414 + 0xa0)" (identifier "iVar6") (= "=") (pointer_expression "*(int *)(DAT_001d0414 + 0xa0)" (* "*") (cast_expression "(int *)(DAT_001d0414 + 0xa0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_001d0414 + 0xa0)" (( "(") (binary_expression "DAT_001d0414 + 0xa0" (identifier "DAT_001d0414") (+ "+") (number_literal "0xa0")) () ")"))))) (; ";")) (expression_statement "puVar7 = &DAT_001cffc0;" (assignment_expression "puVar7 = &DAT_001cffc0" (identifier "puVar7") (= "=") (pointer_expression "&DAT_001cffc0" (& "&") (identifier "DAT_001cffc0"))) (; ";")) (expression_statement "puVar18 = (undefined4 *)(iVar6 + 0x7c);" (assignment_expression "puVar18 = (undefined4 *)(iVar6 + 0x7c)" (identifier "puVar18") (= "=") (cast_expression "(undefined4 *)(iVar6 + 0x7c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x7c)" (( "(") (binary_expression "iVar6 + 0x7c" (identifier "iVar6") (+ "+") (number_literal "0x7c")) () ")")))) (; ";")) (for_statement "for (iVar15 = 0x52; iVar15 != 0; iVar15 = iVar15 + -1) {\n    *puVar18 = *puVar7;\n    puVar7 = puVar7 + (uint)bVar25 * -2 + 1;\n    puVar18 = puVar18 + (uint)bVar25 * -2 + 1;\n  }" (for "for") (( "(") (assignment_expression "iVar15 = 0x52" (identifier "iVar15") (= "=") (number_literal "0x52")) (; ";") (binary_expression "iVar15 != 0" (identifier "iVar15") (!= "!=") (number_literal "0")) (; ";") (assignment_expression "iVar15 = iVar15 + -1" (identifier "iVar15") (= "=") (binary_expression "iVar15 + -1" (identifier "iVar15") (+ "+") (number_literal "-1"))) () ")") (compound_statement "{\n    *puVar18 = *puVar7;\n    puVar7 = puVar7 + (uint)bVar25 * -2 + 1;\n    puVar18 = puVar18 + (uint)bVar25 * -2 + 1;\n  }" ({ "{") (expression_statement "*puVar18 = *puVar7;" (assignment_expression "*puVar18 = *puVar7" (pointer_expression "*puVar18" (* "*") (identifier "puVar18")) (= "=") (pointer_expression "*puVar7" (* "*") (identifier "puVar7"))) (; ";")) (expression_statement "puVar7 = puVar7 + (uint)bVar25 * -2 + 1;" (assignment_expression "puVar7 = puVar7 + (uint)bVar25 * -2 + 1" (identifier "puVar7") (= "=") (binary_expression "puVar7 + (uint)bVar25 * -2 + 1" (binary_expression "puVar7 + (uint)bVar25 * -2" (identifier "puVar7") (+ "+") (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar25")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "puVar18 = puVar18 + (uint)bVar25 * -2 + 1;" (assignment_expression "puVar18 = puVar18 + (uint)bVar25 * -2 + 1" (identifier "puVar18") (= "=") (binary_expression "puVar18 + (uint)bVar25 * -2 + 1" (binary_expression "puVar18 + (uint)bVar25 * -2" (identifier "puVar18") (+ "+") (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar25")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "*(undefined4 *)(iVar6 + 0x1c4) = DAT_001cf040;" (assignment_expression "*(undefined4 *)(iVar6 + 0x1c4) = DAT_001cf040" (pointer_expression "*(undefined4 *)(iVar6 + 0x1c4)" (* "*") (cast_expression "(undefined4 *)(iVar6 + 0x1c4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x1c4)" (( "(") (binary_expression "iVar6 + 0x1c4" (identifier "iVar6") (+ "+") (number_literal "0x1c4")) () ")")))) (= "=") (identifier "DAT_001cf040")) (; ";")) (expression_statement "*(uint *)(iVar6 + 0x1d8) = *(uint *)(iVar6 + 0x1d8) | DAT_001cffa8;" (assignment_expression "*(uint *)(iVar6 + 0x1d8) = *(uint *)(iVar6 + 0x1d8) | DAT_001cffa8" (pointer_expression "*(uint *)(iVar6 + 0x1d8)" (* "*") (cast_expression "(uint *)(iVar6 + 0x1d8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x1d8)" (( "(") (binary_expression "iVar6 + 0x1d8" (identifier "iVar6") (+ "+") (number_literal "0x1d8")) () ")")))) (= "=") (binary_expression "*(uint *)(iVar6 + 0x1d8) | DAT_001cffa8" (pointer_expression "*(uint *)(iVar6 + 0x1d8)" (* "*") (cast_expression "(uint *)(iVar6 + 0x1d8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x1d8)" (( "(") (binary_expression "iVar6 + 0x1d8" (identifier "iVar6") (+ "+") (number_literal "0x1d8")) () ")")))) (| "|") (identifier "DAT_001cffa8"))) (; ";")) (expression_statement "*(undefined4 *)(iVar6 + 0x1d0) = DAT_001cef94;" (assignment_expression "*(undefined4 *)(iVar6 + 0x1d0) = DAT_001cef94" (pointer_expression "*(undefined4 *)(iVar6 + 0x1d0)" (* "*") (cast_expression "(undefined4 *)(iVar6 + 0x1d0)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x1d0)" (( "(") (binary_expression "iVar6 + 0x1d0" (identifier "iVar6") (+ "+") (number_literal "0x1d0")) () ")")))) (= "=") (identifier "DAT_001cef94")) (; ";")) (if_statement "if ((DAT_001cf388 < 0) && ((DAT_001d03e1 & 0x60) == 0)) {\n    if ((DAT_001d03e0 & 3) == 2) {\n      DAT_001cf388 = 1;\n    }\n    else if (DAT_001cf6bc != 0) {\n      iVar6 = DAT_001cf6bc;\n      do {\n        local_20[0] = 0;\n        bfd_map_over_sections(*(undefined4 *)(iVar6 + 0x10),FUN_000554f0,local_20);\n        iVar17 = DAT_001d0414;\n        if (local_20[0] != 0) {\n          DAT_001cf388 = 1;\n          break;\n        }\n        iVar6 = *(int *)(iVar6 + 0x18);\n      } while (iVar6 != 0);\n    }\n  }" (if "if") (parenthesized_expression "((DAT_001cf388 < 0) && ((DAT_001d03e1 & 0x60) == 0))" (( "(") (binary_expression "(DAT_001cf388 < 0) && ((DAT_001d03e1 & 0x60) == 0)" (parenthesized_expression "(DAT_001cf388 < 0)" (( "(") (binary_expression "DAT_001cf388 < 0" (identifier "DAT_001cf388") (< "<") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "((DAT_001d03e1 & 0x60) == 0)" (( "(") (binary_expression "(DAT_001d03e1 & 0x60) == 0" (parenthesized_expression "(DAT_001d03e1 & 0x60)" (( "(") (binary_expression "DAT_001d03e1 & 0x60" (identifier "DAT_001d03e1") (& "&") (number_literal "0x60")) () ")")) (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n    if ((DAT_001d03e0 & 3) == 2) {\n      DAT_001cf388 = 1;\n    }\n    else if (DAT_001cf6bc != 0) {\n      iVar6 = DAT_001cf6bc;\n      do {\n        local_20[0] = 0;\n        bfd_map_over_sections(*(undefined4 *)(iVar6 + 0x10),FUN_000554f0,local_20);\n        iVar17 = DAT_001d0414;\n        if (local_20[0] != 0) {\n          DAT_001cf388 = 1;\n          break;\n        }\n        iVar6 = *(int *)(iVar6 + 0x18);\n      } while (iVar6 != 0);\n    }\n  }" ({ "{") (if_statement "if ((DAT_001d03e0 & 3) == 2) {\n      DAT_001cf388 = 1;\n    }\n    else if (DAT_001cf6bc != 0) {\n      iVar6 = DAT_001cf6bc;\n      do {\n        local_20[0] = 0;\n        bfd_map_over_sections(*(undefined4 *)(iVar6 + 0x10),FUN_000554f0,local_20);\n        iVar17 = DAT_001d0414;\n        if (local_20[0] != 0) {\n          DAT_001cf388 = 1;\n          break;\n        }\n        iVar6 = *(int *)(iVar6 + 0x18);\n      } while (iVar6 != 0);\n    }" (if "if") (parenthesized_expression "((DAT_001d03e0 & 3) == 2)" (( "(") (binary_expression "(DAT_001d03e0 & 3) == 2" (parenthesized_expression "(DAT_001d03e0 & 3)" (( "(") (binary_expression "DAT_001d03e0 & 3" (identifier "DAT_001d03e0") (& "&") (number_literal "3")) () ")")) (== "==") (number_literal "2")) () ")")) (compound_statement "{\n      DAT_001cf388 = 1;\n    }" ({ "{") (expression_statement "DAT_001cf388 = 1;" (assignment_expression "DAT_001cf388 = 1" (identifier "DAT_001cf388") (= "=") (number_literal "1")) (; ";")) (} "}")) (else_clause "else if (DAT_001cf6bc != 0) {\n      iVar6 = DAT_001cf6bc;\n      do {\n        local_20[0] = 0;\n        bfd_map_over_sections(*(undefined4 *)(iVar6 + 0x10),FUN_000554f0,local_20);\n        iVar17 = DAT_001d0414;\n        if (local_20[0] != 0) {\n          DAT_001cf388 = 1;\n          break;\n        }\n        iVar6 = *(int *)(iVar6 + 0x18);\n      } while (iVar6 != 0);\n    }" (else "else") (if_statement "if (DAT_001cf6bc != 0) {\n      iVar6 = DAT_001cf6bc;\n      do {\n        local_20[0] = 0;\n        bfd_map_over_sections(*(undefined4 *)(iVar6 + 0x10),FUN_000554f0,local_20);\n        iVar17 = DAT_001d0414;\n        if (local_20[0] != 0) {\n          DAT_001cf388 = 1;\n          break;\n        }\n        iVar6 = *(int *)(iVar6 + 0x18);\n      } while (iVar6 != 0);\n    }" (if "if") (parenthesized_expression "(DAT_001cf6bc != 0)" (( "(") (binary_expression "DAT_001cf6bc != 0" (identifier "DAT_001cf6bc") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      iVar6 = DAT_001cf6bc;\n      do {\n        local_20[0] = 0;\n        bfd_map_over_sections(*(undefined4 *)(iVar6 + 0x10),FUN_000554f0,local_20);\n        iVar17 = DAT_001d0414;\n        if (local_20[0] != 0) {\n          DAT_001cf388 = 1;\n          break;\n        }\n        iVar6 = *(int *)(iVar6 + 0x18);\n      } while (iVar6 != 0);\n    }" ({ "{") (expression_statement "iVar6 = DAT_001cf6bc;" (assignment_expression "iVar6 = DAT_001cf6bc" (identifier "iVar6") (= "=") (identifier "DAT_001cf6bc")) (; ";")) (do_statement "do {\n        local_20[0] = 0;\n        bfd_map_over_sections(*(undefined4 *)(iVar6 + 0x10),FUN_000554f0,local_20);\n        iVar17 = DAT_001d0414;\n        if (local_20[0] != 0) {\n          DAT_001cf388 = 1;\n          break;\n        }\n        iVar6 = *(int *)(iVar6 + 0x18);\n      } while (iVar6 != 0);" (do "do") (compound_statement "{\n        local_20[0] = 0;\n        bfd_map_over_sections(*(undefined4 *)(iVar6 + 0x10),FUN_000554f0,local_20);\n        iVar17 = DAT_001d0414;\n        if (local_20[0] != 0) {\n          DAT_001cf388 = 1;\n          break;\n        }\n        iVar6 = *(int *)(iVar6 + 0x18);\n      }" ({ "{") (expression_statement "local_20[0] = 0;" (assignment_expression "local_20[0] = 0" (subscript_expression "local_20[0]" (identifier "local_20") ([ "[") (number_literal "0") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "bfd_map_over_sections(*(undefined4 *)(iVar6 + 0x10),FUN_000554f0,local_20);" (call_expression "bfd_map_over_sections(*(undefined4 *)(iVar6 + 0x10),FUN_000554f0,local_20)" (identifier "bfd_map_over_sections") (argument_list "(*(undefined4 *)(iVar6 + 0x10),FUN_000554f0,local_20)" (( "(") (pointer_expression "*(undefined4 *)(iVar6 + 0x10)" (* "*") (cast_expression "(undefined4 *)(iVar6 + 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x10)" (( "(") (binary_expression "iVar6 + 0x10" (identifier "iVar6") (+ "+") (number_literal "0x10")) () ")")))) (, ",") (identifier "FUN_000554f0") (, ",") (identifier "local_20") () ")"))) (; ";")) (expression_statement "iVar17 = DAT_001d0414;" (assignment_expression "iVar17 = DAT_001d0414" (identifier "iVar17") (= "=") (identifier "DAT_001d0414")) (; ";")) (if_statement "if (local_20[0] != 0) {\n          DAT_001cf388 = 1;\n          break;\n        }" (if "if") (parenthesized_expression "(local_20[0] != 0)" (( "(") (binary_expression "local_20[0] != 0" (subscript_expression "local_20[0]" (identifier "local_20") ([ "[") (number_literal "0") (] "]")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          DAT_001cf388 = 1;\n          break;\n        }" ({ "{") (expression_statement "DAT_001cf388 = 1;" (assignment_expression "DAT_001cf388 = 1" (identifier "DAT_001cf388") (= "=") (number_literal "1")) (; ";")) (break_statement "break;" (break "break") (; ";")) (} "}"))) (expression_statement "iVar6 = *(int *)(iVar6 + 0x18);" (assignment_expression "iVar6 = *(int *)(iVar6 + 0x18)" (identifier "iVar6") (= "=") (pointer_expression "*(int *)(iVar6 + 0x18)" (* "*") (cast_expression "(int *)(iVar6 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x18)" (( "(") (binary_expression "iVar6 + 0x18" (identifier "iVar6") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar6 != 0)" (( "(") (binary_expression "iVar6 != 0" (identifier "iVar6") (!= "!=") (number_literal "0")) () ")")) (; ";")) (} "}"))))) (} "}"))) (expression_statement "FUN_00066c30(iVar17);" (call_expression "FUN_00066c30(iVar17)" (identifier "FUN_00066c30") (argument_list "(iVar17)" (( "(") (identifier "iVar17") () ")"))) (; ";")) (expression_statement "FUN_000656c0(DAT_001d0414,&DAT_001d03e0);" (call_expression "FUN_000656c0(DAT_001d0414,&DAT_001d03e0)" (identifier "FUN_000656c0") (argument_list "(DAT_001d0414,&DAT_001d03e0)" (( "(") (identifier "DAT_001d0414") (, ",") (pointer_expression "&DAT_001d03e0" (& "&") (identifier "DAT_001d03e0")) () ")"))) (; ";")) (if_statement "if (DAT_001d0448 != 0) {\n    iVar6 = FUN_000561f0();\n    pcVar12 = "_head_";\n    if (iVar6 != 0) {\n      pcVar12 = "__head_";\n    }\n    FUN_00063bc0(pcVar12,FUN_00055b50);\n  }" (if "if") (parenthesized_expression "(DAT_001d0448 != 0)" (( "(") (binary_expression "DAT_001d0448 != 0" (identifier "DAT_001d0448") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    iVar6 = FUN_000561f0();\n    pcVar12 = "_head_";\n    if (iVar6 != 0) {\n      pcVar12 = "__head_";\n    }\n    FUN_00063bc0(pcVar12,FUN_00055b50);\n  }" ({ "{") (expression_statement "iVar6 = FUN_000561f0();" (assignment_expression "iVar6 = FUN_000561f0()" (identifier "iVar6") (= "=") (call_expression "FUN_000561f0()" (identifier "FUN_000561f0") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "pcVar12 = "_head_";" (assignment_expression "pcVar12 = "_head_"" (identifier "pcVar12") (= "=") (string_literal ""_head_"" (" """) (string_content "_head_") (" """))) (; ";")) (if_statement "if (iVar6 != 0) {\n      pcVar12 = "__head_";\n    }" (if "if") (parenthesized_expression "(iVar6 != 0)" (( "(") (binary_expression "iVar6 != 0" (identifier "iVar6") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      pcVar12 = "__head_";\n    }" ({ "{") (expression_statement "pcVar12 = "__head_";" (assignment_expression "pcVar12 = "__head_"" (identifier "pcVar12") (= "=") (string_literal ""__head_"" (" """) (string_content "__head_") (" """))) (; ";")) (} "}"))) (expression_statement "FUN_00063bc0(pcVar12,FUN_00055b50);" (call_expression "FUN_00063bc0(pcVar12,FUN_00055b50)" (identifier "FUN_00063bc0") (argument_list "(pcVar12,FUN_00055b50)" (( "(") (identifier "pcVar12") (, ",") (identifier "FUN_00055b50") () ")"))) (; ";")) (} "}"))) (if_statement "if (DAT_001cef90 != 0) {\n    if (DAT_001d01fc != 0) {\n      puts("pe_fixup_stdcalls");\n    }\n    for (iVar6 = *(int *)(DAT_001d0400 + 0x1c); iVar6 != 0; iVar6 = *(int *)(iVar6 + 0x10)) {\n      if (*(char *)(iVar6 + 0xc) == '\x01') {\n        pcVar12 = *(char **)(iVar6 + 4);\n        if (*pcVar12 == '@') {\n          pcVar10 = strchr(pcVar12 + 1,0x40);\n          pcVar12 = (char *)xstrdup(pcVar12);\n          *pcVar12 = '_';\n          if (pcVar10 != (char *)0x0) goto LAB_00057061;\n        }\n        else {\n          pcVar10 = strchr(pcVar12,0x40);\n          if (pcVar10 == (char *)0x0) {\n            DAT_001cff8c = 0;\n            bfd_link_hash_traverse(DAT_001d0400,FUN_00055530,pcVar12);\n            if (DAT_001cff8c != 0) {\n              FUN_00056030();\n            }\n            goto LAB_00056fa8;\n          }\n          pcVar12 = (char *)xstrdup(pcVar12);\nLAB_00057061:\n          pcVar10 = strchr(pcVar12,0x40);\n          *pcVar10 = '\0';\n        }\n        iVar17 = bfd_link_hash_lookup(DAT_001d0400,pcVar12,0,0,1);\n        if ((iVar17 != 0) && (*(char *)(iVar17 + 0xc) == '\x03')) {\n          FUN_00056030();\n        }\n      }\nLAB_00056fa8:\n    }\n  }" (if "if") (parenthesized_expression "(DAT_001cef90 != 0)" (( "(") (binary_expression "DAT_001cef90 != 0" (identifier "DAT_001cef90") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    if (DAT_001d01fc != 0) {\n      puts("pe_fixup_stdcalls");\n    }\n    for (iVar6 = *(int *)(DAT_001d0400 + 0x1c); iVar6 != 0; iVar6 = *(int *)(iVar6 + 0x10)) {\n      if (*(char *)(iVar6 + 0xc) == '\x01') {\n        pcVar12 = *(char **)(iVar6 + 4);\n        if (*pcVar12 == '@') {\n          pcVar10 = strchr(pcVar12 + 1,0x40);\n          pcVar12 = (char *)xstrdup(pcVar12);\n          *pcVar12 = '_';\n          if (pcVar10 != (char *)0x0) goto LAB_00057061;\n        }\n        else {\n          pcVar10 = strchr(pcVar12,0x40);\n          if (pcVar10 == (char *)0x0) {\n            DAT_001cff8c = 0;\n            bfd_link_hash_traverse(DAT_001d0400,FUN_00055530,pcVar12);\n            if (DAT_001cff8c != 0) {\n              FUN_00056030();\n            }\n            goto LAB_00056fa8;\n          }\n          pcVar12 = (char *)xstrdup(pcVar12);\nLAB_00057061:\n          pcVar10 = strchr(pcVar12,0x40);\n          *pcVar10 = '\0';\n        }\n        iVar17 = bfd_link_hash_lookup(DAT_001d0400,pcVar12,0,0,1);\n        if ((iVar17 != 0) && (*(char *)(iVar17 + 0xc) == '\x03')) {\n          FUN_00056030();\n        }\n      }\nLAB_00056fa8:\n    }\n  }" ({ "{") (if_statement "if (DAT_001d01fc != 0) {\n      puts("pe_fixup_stdcalls");\n    }" (if "if") (parenthesized_expression "(DAT_001d01fc != 0)" (( "(") (binary_expression "DAT_001d01fc != 0" (identifier "DAT_001d01fc") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      puts("pe_fixup_stdcalls");\n    }" ({ "{") (expression_statement "puts("pe_fixup_stdcalls");" (call_expression "puts("pe_fixup_stdcalls")" (identifier "puts") (argument_list "("pe_fixup_stdcalls")" (( "(") (string_literal ""pe_fixup_stdcalls"" (" """) (string_content "pe_fixup_stdcalls") (" """)) () ")"))) (; ";")) (} "}"))) (for_statement "for (iVar6 = *(int *)(DAT_001d0400 + 0x1c); iVar6 != 0; iVar6 = *(int *)(iVar6 + 0x10)) {\n      if (*(char *)(iVar6 + 0xc) == '\x01') {\n        pcVar12 = *(char **)(iVar6 + 4);\n        if (*pcVar12 == '@') {\n          pcVar10 = strchr(pcVar12 + 1,0x40);\n          pcVar12 = (char *)xstrdup(pcVar12);\n          *pcVar12 = '_';\n          if (pcVar10 != (char *)0x0) goto LAB_00057061;\n        }\n        else {\n          pcVar10 = strchr(pcVar12,0x40);\n          if (pcVar10 == (char *)0x0) {\n            DAT_001cff8c = 0;\n            bfd_link_hash_traverse(DAT_001d0400,FUN_00055530,pcVar12);\n            if (DAT_001cff8c != 0) {\n              FUN_00056030();\n            }\n            goto LAB_00056fa8;\n          }\n          pcVar12 = (char *)xstrdup(pcVar12);\nLAB_00057061:\n          pcVar10 = strchr(pcVar12,0x40);\n          *pcVar10 = '\0';\n        }\n        iVar17 = bfd_link_hash_lookup(DAT_001d0400,pcVar12,0,0,1);\n        if ((iVar17 != 0) && (*(char *)(iVar17 + 0xc) == '\x03')) {\n          FUN_00056030();\n        }\n      }\nLAB_00056fa8:\n    }" (for "for") (( "(") (assignment_expression "iVar6 = *(int *)(DAT_001d0400 + 0x1c)" (identifier "iVar6") (= "=") (pointer_expression "*(int *)(DAT_001d0400 + 0x1c)" (* "*") (cast_expression "(int *)(DAT_001d0400 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_001d0400 + 0x1c)" (( "(") (binary_expression "DAT_001d0400 + 0x1c" (identifier "DAT_001d0400") (+ "+") (number_literal "0x1c")) () ")"))))) (; ";") (binary_expression "iVar6 != 0" (identifier "iVar6") (!= "!=") (number_literal "0")) (; ";") (assignment_expression "iVar6 = *(int *)(iVar6 + 0x10)" (identifier "iVar6") (= "=") (pointer_expression "*(int *)(iVar6 + 0x10)" (* "*") (cast_expression "(int *)(iVar6 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x10)" (( "(") (binary_expression "iVar6 + 0x10" (identifier "iVar6") (+ "+") (number_literal "0x10")) () ")"))))) () ")") (compound_statement "{\n      if (*(char *)(iVar6 + 0xc) == '\x01') {\n        pcVar12 = *(char **)(iVar6 + 4);\n        if (*pcVar12 == '@') {\n          pcVar10 = strchr(pcVar12 + 1,0x40);\n          pcVar12 = (char *)xstrdup(pcVar12);\n          *pcVar12 = '_';\n          if (pcVar10 != (char *)0x0) goto LAB_00057061;\n        }\n        else {\n          pcVar10 = strchr(pcVar12,0x40);\n          if (pcVar10 == (char *)0x0) {\n            DAT_001cff8c = 0;\n            bfd_link_hash_traverse(DAT_001d0400,FUN_00055530,pcVar12);\n            if (DAT_001cff8c != 0) {\n              FUN_00056030();\n            }\n            goto LAB_00056fa8;\n          }\n          pcVar12 = (char *)xstrdup(pcVar12);\nLAB_00057061:\n          pcVar10 = strchr(pcVar12,0x40);\n          *pcVar10 = '\0';\n        }\n        iVar17 = bfd_link_hash_lookup(DAT_001d0400,pcVar12,0,0,1);\n        if ((iVar17 != 0) && (*(char *)(iVar17 + 0xc) == '\x03')) {\n          FUN_00056030();\n        }\n      }\nLAB_00056fa8:\n    }" ({ "{") (if_statement "if (*(char *)(iVar6 + 0xc) == '\x01') {\n        pcVar12 = *(char **)(iVar6 + 4);\n        if (*pcVar12 == '@') {\n          pcVar10 = strchr(pcVar12 + 1,0x40);\n          pcVar12 = (char *)xstrdup(pcVar12);\n          *pcVar12 = '_';\n          if (pcVar10 != (char *)0x0) goto LAB_00057061;\n        }\n        else {\n          pcVar10 = strchr(pcVar12,0x40);\n          if (pcVar10 == (char *)0x0) {\n            DAT_001cff8c = 0;\n            bfd_link_hash_traverse(DAT_001d0400,FUN_00055530,pcVar12);\n            if (DAT_001cff8c != 0) {\n              FUN_00056030();\n            }\n            goto LAB_00056fa8;\n          }\n          pcVar12 = (char *)xstrdup(pcVar12);\nLAB_00057061:\n          pcVar10 = strchr(pcVar12,0x40);\n          *pcVar10 = '\0';\n        }\n        iVar17 = bfd_link_hash_lookup(DAT_001d0400,pcVar12,0,0,1);\n        if ((iVar17 != 0) && (*(char *)(iVar17 + 0xc) == '\x03')) {\n          FUN_00056030();\n        }\n      }" (if "if") (parenthesized_expression "(*(char *)(iVar6 + 0xc) == '\x01')" (( "(") (binary_expression "*(char *)(iVar6 + 0xc) == '\x01'" (pointer_expression "*(char *)(iVar6 + 0xc)" (* "*") (cast_expression "(char *)(iVar6 + 0xc)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0xc)" (( "(") (binary_expression "iVar6 + 0xc" (identifier "iVar6") (+ "+") (number_literal "0xc")) () ")")))) (== "==") (char_literal "'\x01'" (' "'") (escape_sequence "\x01") (' "'"))) () ")")) (compound_statement "{\n        pcVar12 = *(char **)(iVar6 + 4);\n        if (*pcVar12 == '@') {\n          pcVar10 = strchr(pcVar12 + 1,0x40);\n          pcVar12 = (char *)xstrdup(pcVar12);\n          *pcVar12 = '_';\n          if (pcVar10 != (char *)0x0) goto LAB_00057061;\n        }\n        else {\n          pcVar10 = strchr(pcVar12,0x40);\n          if (pcVar10 == (char *)0x0) {\n            DAT_001cff8c = 0;\n            bfd_link_hash_traverse(DAT_001d0400,FUN_00055530,pcVar12);\n            if (DAT_001cff8c != 0) {\n              FUN_00056030();\n            }\n            goto LAB_00056fa8;\n          }\n          pcVar12 = (char *)xstrdup(pcVar12);\nLAB_00057061:\n          pcVar10 = strchr(pcVar12,0x40);\n          *pcVar10 = '\0';\n        }\n        iVar17 = bfd_link_hash_lookup(DAT_001d0400,pcVar12,0,0,1);\n        if ((iVar17 != 0) && (*(char *)(iVar17 + 0xc) == '\x03')) {\n          FUN_00056030();\n        }\n      }" ({ "{") (expression_statement "pcVar12 = *(char **)(iVar6 + 4);" (assignment_expression "pcVar12 = *(char **)(iVar6 + 4)" (identifier "pcVar12") (= "=") (pointer_expression "*(char **)(iVar6 + 4)" (* "*") (cast_expression "(char **)(iVar6 + 4)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar6 + 4)" (( "(") (binary_expression "iVar6 + 4" (identifier "iVar6") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (if_statement "if (*pcVar12 == '@') {\n          pcVar10 = strchr(pcVar12 + 1,0x40);\n          pcVar12 = (char *)xstrdup(pcVar12);\n          *pcVar12 = '_';\n          if (pcVar10 != (char *)0x0) goto LAB_00057061;\n        }\n        else {\n          pcVar10 = strchr(pcVar12,0x40);\n          if (pcVar10 == (char *)0x0) {\n            DAT_001cff8c = 0;\n            bfd_link_hash_traverse(DAT_001d0400,FUN_00055530,pcVar12);\n            if (DAT_001cff8c != 0) {\n              FUN_00056030();\n            }\n            goto LAB_00056fa8;\n          }\n          pcVar12 = (char *)xstrdup(pcVar12);\nLAB_00057061:\n          pcVar10 = strchr(pcVar12,0x40);\n          *pcVar10 = '\0';\n        }" (if "if") (parenthesized_expression "(*pcVar12 == '@')" (( "(") (binary_expression "*pcVar12 == '@'" (pointer_expression "*pcVar12" (* "*") (identifier "pcVar12")) (== "==") (char_literal "'@'" (' "'") (character "@") (' "'"))) () ")")) (compound_statement "{\n          pcVar10 = strchr(pcVar12 + 1,0x40);\n          pcVar12 = (char *)xstrdup(pcVar12);\n          *pcVar12 = '_';\n          if (pcVar10 != (char *)0x0) goto LAB_00057061;\n        }" ({ "{") (expression_statement "pcVar10 = strchr(pcVar12 + 1,0x40);" (assignment_expression "pcVar10 = strchr(pcVar12 + 1,0x40)" (identifier "pcVar10") (= "=") (call_expression "strchr(pcVar12 + 1,0x40)" (identifier "strchr") (argument_list "(pcVar12 + 1,0x40)" (( "(") (binary_expression "pcVar12 + 1" (identifier "pcVar12") (+ "+") (number_literal "1")) (, ",") (number_literal "0x40") () ")")))) (; ";")) (expression_statement "pcVar12 = (char *)xstrdup(pcVar12);" (assignment_expression "pcVar12 = (char *)xstrdup(pcVar12)" (identifier "pcVar12") (= "=") (cast_expression "(char *)xstrdup(pcVar12)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "xstrdup(pcVar12)" (identifier "xstrdup") (argument_list "(pcVar12)" (( "(") (identifier "pcVar12") () ")"))))) (; ";")) (expression_statement "*pcVar12 = '_';" (assignment_expression "*pcVar12 = '_'" (pointer_expression "*pcVar12" (* "*") (identifier "pcVar12")) (= "=") (char_literal "'_'" (' "'") (character "_") (' "'"))) (; ";")) (if_statement "if (pcVar10 != (char *)0x0) goto LAB_00057061;" (if "if") (parenthesized_expression "(pcVar10 != (char *)0x0)" (( "(") (binary_expression "pcVar10 != (char *)0x0" (identifier "pcVar10") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00057061;" (goto "goto") (statement_identifier "LAB_00057061") (; ";"))) (} "}")) (else_clause "else {\n          pcVar10 = strchr(pcVar12,0x40);\n          if (pcVar10 == (char *)0x0) {\n            DAT_001cff8c = 0;\n            bfd_link_hash_traverse(DAT_001d0400,FUN_00055530,pcVar12);\n            if (DAT_001cff8c != 0) {\n              FUN_00056030();\n            }\n            goto LAB_00056fa8;\n          }\n          pcVar12 = (char *)xstrdup(pcVar12);\nLAB_00057061:\n          pcVar10 = strchr(pcVar12,0x40);\n          *pcVar10 = '\0';\n        }" (else "else") (compound_statement "{\n          pcVar10 = strchr(pcVar12,0x40);\n          if (pcVar10 == (char *)0x0) {\n            DAT_001cff8c = 0;\n            bfd_link_hash_traverse(DAT_001d0400,FUN_00055530,pcVar12);\n            if (DAT_001cff8c != 0) {\n              FUN_00056030();\n            }\n            goto LAB_00056fa8;\n          }\n          pcVar12 = (char *)xstrdup(pcVar12);\nLAB_00057061:\n          pcVar10 = strchr(pcVar12,0x40);\n          *pcVar10 = '\0';\n        }" ({ "{") (expression_statement "pcVar10 = strchr(pcVar12,0x40);" (assignment_expression "pcVar10 = strchr(pcVar12,0x40)" (identifier "pcVar10") (= "=") (call_expression "strchr(pcVar12,0x40)" (identifier "strchr") (argument_list "(pcVar12,0x40)" (( "(") (identifier "pcVar12") (, ",") (number_literal "0x40") () ")")))) (; ";")) (if_statement "if (pcVar10 == (char *)0x0) {\n            DAT_001cff8c = 0;\n            bfd_link_hash_traverse(DAT_001d0400,FUN_00055530,pcVar12);\n            if (DAT_001cff8c != 0) {\n              FUN_00056030();\n            }\n            goto LAB_00056fa8;\n          }" (if "if") (parenthesized_expression "(pcVar10 == (char *)0x0)" (( "(") (binary_expression "pcVar10 == (char *)0x0" (identifier "pcVar10") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            DAT_001cff8c = 0;\n            bfd_link_hash_traverse(DAT_001d0400,FUN_00055530,pcVar12);\n            if (DAT_001cff8c != 0) {\n              FUN_00056030();\n            }\n            goto LAB_00056fa8;\n          }" ({ "{") (expression_statement "DAT_001cff8c = 0;" (assignment_expression "DAT_001cff8c = 0" (identifier "DAT_001cff8c") (= "=") (number_literal "0")) (; ";")) (expression_statement "bfd_link_hash_traverse(DAT_001d0400,FUN_00055530,pcVar12);" (call_expression "bfd_link_hash_traverse(DAT_001d0400,FUN_00055530,pcVar12)" (identifier "bfd_link_hash_traverse") (argument_list "(DAT_001d0400,FUN_00055530,pcVar12)" (( "(") (identifier "DAT_001d0400") (, ",") (identifier "FUN_00055530") (, ",") (identifier "pcVar12") () ")"))) (; ";")) (if_statement "if (DAT_001cff8c != 0) {\n              FUN_00056030();\n            }" (if "if") (parenthesized_expression "(DAT_001cff8c != 0)" (( "(") (binary_expression "DAT_001cff8c != 0" (identifier "DAT_001cff8c") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              FUN_00056030();\n            }" ({ "{") (expression_statement "FUN_00056030();" (call_expression "FUN_00056030()" (identifier "FUN_00056030") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (goto_statement "goto LAB_00056fa8;" (goto "goto") (statement_identifier "LAB_00056fa8") (; ";")) (} "}"))) (expression_statement "pcVar12 = (char *)xstrdup(pcVar12);" (assignment_expression "pcVar12 = (char *)xstrdup(pcVar12)" (identifier "pcVar12") (= "=") (cast_expression "(char *)xstrdup(pcVar12)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "xstrdup(pcVar12)" (identifier "xstrdup") (argument_list "(pcVar12)" (( "(") (identifier "pcVar12") () ")"))))) (; ";")) (labeled_statement "LAB_00057061:\n          pcVar10 = strchr(pcVar12,0x40);" (statement_identifier "LAB_00057061") (: ":") (expression_statement "pcVar10 = strchr(pcVar12,0x40);" (assignment_expression "pcVar10 = strchr(pcVar12,0x40)" (identifier "pcVar10") (= "=") (call_expression "strchr(pcVar12,0x40)" (identifier "strchr") (argument_list "(pcVar12,0x40)" (( "(") (identifier "pcVar12") (, ",") (number_literal "0x40") () ")")))) (; ";"))) (expression_statement "*pcVar10 = '\0';" (assignment_expression "*pcVar10 = '\0'" (pointer_expression "*pcVar10" (* "*") (identifier "pcVar10")) (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (} "}")))) (expression_statement "iVar17 = bfd_link_hash_lookup(DAT_001d0400,pcVar12,0,0,1);" (assignment_expression "iVar17 = bfd_link_hash_lookup(DAT_001d0400,pcVar12,0,0,1)" (identifier "iVar17") (= "=") (call_expression "bfd_link_hash_lookup(DAT_001d0400,pcVar12,0,0,1)" (identifier "bfd_link_hash_lookup") (argument_list "(DAT_001d0400,pcVar12,0,0,1)" (( "(") (identifier "DAT_001d0400") (, ",") (identifier "pcVar12") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "1") () ")")))) (; ";")) (if_statement "if ((iVar17 != 0) && (*(char *)(iVar17 + 0xc) == '\x03')) {\n          FUN_00056030();\n        }" (if "if") (parenthesized_expression "((iVar17 != 0) && (*(char *)(iVar17 + 0xc) == '\x03'))" (( "(") (binary_expression "(iVar17 != 0) && (*(char *)(iVar17 + 0xc) == '\x03')" (parenthesized_expression "(iVar17 != 0)" (( "(") (binary_expression "iVar17 != 0" (identifier "iVar17") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(*(char *)(iVar17 + 0xc) == '\x03')" (( "(") (binary_expression "*(char *)(iVar17 + 0xc) == '\x03'" (pointer_expression "*(char *)(iVar17 + 0xc)" (* "*") (cast_expression "(char *)(iVar17 + 0xc)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar17 + 0xc)" (( "(") (binary_expression "iVar17 + 0xc" (identifier "iVar17") (+ "+") (number_literal "0xc")) () ")")))) (== "==") (char_literal "'\x03'" (' "'") (escape_sequence "\x03") (' "'"))) () ")"))) () ")")) (compound_statement "{\n          FUN_00056030();\n        }" ({ "{") (expression_statement "FUN_00056030();" (call_expression "FUN_00056030()" (identifier "FUN_00056030") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (} "}"))) (labeled_statement "LAB_00056fa8:" (statement_identifier "LAB_00056fa8") (: ":") (expression_statement "" (; ""))) (} "}"))) (} "}"))) (if_statement "if ((DAT_001d03e0 & 3) != 2) {\n    FUN_00066ca0(DAT_001d0414,&DAT_001d03e0);\n  }" (if "if") (parenthesized_expression "((DAT_001d03e0 & 3) != 2)" (( "(") (binary_expression "(DAT_001d03e0 & 3) != 2" (parenthesized_expression "(DAT_001d03e0 & 3)" (( "(") (binary_expression "DAT_001d03e0 & 3" (identifier "DAT_001d03e0") (& "&") (number_literal "3")) () ")")) (!= "!=") (number_literal "2")) () ")")) (compound_statement "{\n    FUN_00066ca0(DAT_001d0414,&DAT_001d03e0);\n  }" ({ "{") (expression_statement "FUN_00066ca0(DAT_001d0414,&DAT_001d03e0);" (call_expression "FUN_00066ca0(DAT_001d0414,&DAT_001d03e0)" (identifier "FUN_00066ca0") (argument_list "(DAT_001d0414,&DAT_001d03e0)" (( "(") (identifier "DAT_001d0414") (, ",") (pointer_expression "&DAT_001d03e0" (& "&") (identifier "DAT_001d03e0")) () ")"))) (; ";")) (} "}"))) (expression_statement "local_40 = DAT_001cf6bc;" (assignment_expression "local_40 = DAT_001cf6bc" (identifier "local_40") (= "=") (identifier "DAT_001cf6bc")) (; ";")) (if_statement "if (DAT_001cf6bc != 0) {\n    do {\n      iVar6 = *(int *)(local_40 + 0x10);\n      if ((*(int *)(iVar6 + 0x8c) != 0) &&\n         (local_38 = *(undefined4 **)(iVar6 + 0x60), local_38 != (undefined4 *)0x0)) {\n        iVar17 = 0;\n        bVar24 = true;\n        puVar7 = local_38;\n        bVar3 = 0;\n        bVar16 = false;\n        do {\n          bVar22 = false;\n          iVar15 = 9;\n          pbVar19 = (byte *)*puVar7;\n          pbVar21 = (byte *)".idata$2";\n          do {\n            if (iVar15 == 0) break;\n            iVar15 = iVar15 + -1;\n            bVar22 = *pbVar19 < *pbVar21;\n            bVar24 = *pbVar19 == *pbVar21;\n            pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n            pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n          } while (bVar24);\n          bVar23 = false;\n          bVar24 = (!bVar22 && !bVar24) == bVar22;\n          bVar22 = true;\n          if (!bVar24) {\n            bVar22 = bVar16;\n          }\n          iVar15 = 7;\n          pbVar19 = (byte *)*puVar7;\n          pbVar21 = (byte *)".idata$";\n          do {\n            if (iVar15 == 0) break;\n            iVar15 = iVar15 + -1;\n            bVar23 = *pbVar19 < *pbVar21;\n            bVar24 = *pbVar19 == *pbVar21;\n            pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n            pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n          } while (bVar24);\n          bVar5 = 1;\n          if ((!bVar23 && !bVar24) != bVar23) {\n            bVar5 = bVar3;\n          }\n          iVar17 = iVar17 + puVar7[0x19];\n          puVar7 = (undefined4 *)puVar7[3];\n          bVar24 = puVar7 == (undefined4 *)0x0;\n          bVar3 = bVar5;\n          bVar16 = bVar22;\n        } while (!bVar24);\n        if (((bool)(bVar5 & iVar17 != 0)) && (!bVar22)) {\n          while (iVar6 = bfd_get_reloc_upper_bound(iVar6,local_38), 0 < iVar6) {\n            iVar17 = bfd_generic_link_read_symbols(*(undefined4 *)(local_40 + 0x10));\n            local_4c = local_40;\n            if (iVar17 == 0) goto LAB_000570af;\n            uVar11 = *(undefined4 *)(*(int *)(local_40 + 0x10) + 0x78);\n            puVar7 = (undefined4 *)xmalloc(iVar6);\n            iVar6 = bfd_canonicalize_reloc(*(undefined4 *)(local_40 + 0x10),local_38,puVar7,uVar11);\n            if (iVar6 < 0) {\n              free(puVar7);\n              uVar11 = dcgettext(0,"%X%P: unable to process relocs: %E\n",5);\n              FUN_00034d20(uVar11);\n              return;\n            }\n            puVar18 = puVar7;\n            if (iVar6 != 0) {\n              do {\n                if ((((*(byte *)(**(int **)*puVar18 + 0x10) & 1) == 0) &&\n                    (iVar17 = bfd_link_hash_lookup\n                                        (DAT_001d0400,*(undefined4 *)(**(int **)*puVar18 + 4),0,0,1)\n                    , iVar17 != 0)) && (*(char *)(iVar17 + 0xc) == '\x03')) {\n                  puVar2 = *(undefined4 **)(*(int *)(iVar17 + 0x14) + 0xac);\n                  puVar8 = (undefined4 *)puVar2[0x23];\n                  if (puVar8 == (undefined4 *)0x0) {\n                    puVar8 = puVar2;\n                  }\n                  pcVar12 = (char *)*puVar8;\n                  iVar17 = filename_cmp(**(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c),pcVar12)\n                  ;\n                  if (iVar17 != 0) {\n                    sVar9 = strlen(pcVar12);\n                    pcVar10 = (char *)xmalloc(sVar9 + 1);\n                    strcpy(pcVar10,pcVar12);\n                    **(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c) = pcVar10;\n                  }\n                }\n                puVar18 = puVar18 + 1;\n              } while (puVar7 + iVar6 != puVar18);\n            }\n            free(puVar7);\n            local_38 = (undefined4 *)local_38[3];\n            if (local_38 == (undefined4 *)0x0) break;\n            iVar6 = *(int *)(local_40 + 0x10);\n          }\n        }\n      }\n      local_40 = *(int *)(local_40 + 0x18);\n    } while (local_40 != 0);\n    local_50 = DAT_001cf6bc;\n    if (DAT_001cf6bc != 0) {\n      bVar16 = false;\n      local_40 = 0;\n      do {\n        iVar6 = (*(undefined4 **)(local_50 + 0x10))[0x23];\n        if (iVar6 != 0) {\n          pcVar12 = strrchr((char *)**(undefined4 **)(local_50 + 0x10),0x2e);\n          iVar17 = local_50;\n          if (iVar6 == local_40) {\n            if (!bVar16) goto LAB_00056b08;\n          }\n          else {\n            while ((iVar15 = local_50, local_40 = iVar6, pcVar12 == (char *)0x0 ||\n                   (iVar13 = filename_cmp(pcVar12,".dll"), iVar13 != 0))) {\n              iVar17 = *(int *)(iVar17 + 0x18);\n              if (iVar17 == 0) {\n                local_50 = *(int *)(local_50 + 0x18);\n                bVar16 = false;\n                goto joined_r0x00056b15;\n              }\n              if (iVar6 != (*(undefined4 **)(iVar17 + 0x10))[0x23]) break;\n              pcVar12 = strrchr((char *)**(undefined4 **)(iVar17 + 0x10),0x2e);\n            }\n            do {\n              if (iVar6 != (*(undefined4 **)(iVar15 + 0x10))[0x23]) break;\n              pcVar12 = (char *)**(undefined4 **)(iVar15 + 0x10);\n              pcVar10 = strrchr(pcVar12,0x2e);\n              if (pcVar10 == (char *)0x0) {\nLAB_00056d20:\n                iVar13 = filename_cmp(**(undefined4 **)(iVar17 + 0x10),pcVar12);\n                if (iVar13 != 0) {\n                  bVar16 = false;\n                  goto LAB_00056b08;\n                }\n              }\n              else {\n                iVar13 = filename_cmp(pcVar10,&DAT_00192ed1);\n                if (iVar13 != 0) {\n                  pcVar12 = (char *)**(undefined4 **)(iVar15 + 0x10);\n                  goto LAB_00056d20;\n                }\n              }\n              piVar20 = (int *)(iVar15 + 0x18);\n              iVar15 = *piVar20;\n            } while (*piVar20 != 0);\n            pcVar12 = strrchr((char *)**(undefined4 **)(local_50 + 0x10),0x2e);\n          }\n          bVar16 = true;\n          iVar6 = filename_cmp(pcVar12,".dll");\n          if (iVar6 == 0) {\n            puVar7 = (undefined4 *)(*(undefined4 **)(local_50 + 0x10))[0x18];\n            if (puVar7 == (undefined4 *)0x0) {\n              iVar6 = 99;\n            }\n            else {\n              iVar17 = 0;\n              bVar24 = true;\n              bVar16 = false;\n              do {\n                bVar22 = false;\n                iVar6 = 9;\n                pbVar19 = (byte *)*puVar7;\n                pbVar21 = (byte *)".idata$2";\n                do {\n                  if (iVar6 == 0) break;\n                  iVar6 = iVar6 + -1;\n                  bVar22 = *pbVar19 < *pbVar21;\n                  bVar24 = *pbVar19 == *pbVar21;\n                  pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n                  pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n                } while (bVar24);\n                if ((!bVar22 && !bVar24) == bVar22) {\n                  bVar16 = true;\n                }\n                iVar17 = iVar17 + puVar7[0x19];\n                puVar7 = (undefined4 *)puVar7[3];\n                bVar24 = puVar7 == (undefined4 *)0x0;\n              } while (!bVar24);\n              iVar6 = 0x61;\n              if (!bVar16) {\n                iVar6 = (iVar17 < 1) + 0x62;\n              }\n            }\n            sVar9 = strlen((char *)**(undefined4 **)(local_50 + 0x10));\n            pcVar12 = (char *)xmalloc(sVar9 + 3);\n            sprintf(pcVar12,"%s.%c",**(undefined4 **)(local_50 + 0x10),iVar6);\n            **(undefined4 **)(local_50 + 0x10) = pcVar12;\n            sVar9 = strlen(*(char **)(local_50 + 8));\n            pcVar12 = (char *)xmalloc(sVar9 + 3);\n            sprintf(pcVar12,"%s.%c",*(undefined4 *)(local_50 + 8),iVar6);\n            *(char **)(local_50 + 8) = pcVar12;\n            bVar16 = true;\n          }\n        }\nLAB_00056b08:\n        local_50 = *(int *)(local_50 + 0x18);\njoined_r0x00056b15:\n      } while (local_50 != 0);\n      local_4c = DAT_001cf6bc;\n      if (DAT_001cf6bc != 0) {\n        do {\n          iVar6 = *(int *)(local_4c + 0x10);\n          if ((*(int *)(iVar6 + 0x8c) != 0) &&\n             (puVar7 = *(undefined4 **)(iVar6 + 0x60), puVar7 != (undefined4 *)0x0)) {\n            puVar18 = (undefined4 *)0x0;\n            bVar16 = false;\n            bVar24 = true;\n            do {\n              bVar22 = false;\n              iVar17 = 7;\n              pbVar19 = (byte *)*puVar7;\n              pbVar21 = (byte *)".idata$";\n              do {\n                if (iVar17 == 0) break;\n                iVar17 = iVar17 + -1;\n                bVar22 = *pbVar19 < *pbVar21;\n                bVar24 = *pbVar19 == *pbVar21;\n                pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n                pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n              } while (bVar24);\n              if ((!bVar22 && !bVar24) == bVar22) {\n                bVar16 = true;\n              }\n              if (((*(byte *)(puVar7 + 5) & 0x10) != 0) && (puVar7[0x19] != 0)) {\n                puVar18 = puVar7;\n              }\n              puVar7 = (undefined4 *)puVar7[3];\n              bVar24 = puVar7 == (undefined4 *)0x0;\n            } while (!bVar24);\n            if ((puVar18 != (undefined4 *)0x0) && (bVar16)) {\n              iVar6 = bfd_generic_link_read_symbols(iVar6);\n              if (iVar6 == 0) {\nLAB_000570af:\n                uVar11 = *(undefined4 *)(local_4c + 0x10);\n                uVar14 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n                FUN_00034d20(uVar14,uVar11);\n                return;\n              }\n              piVar20 = *(int **)(*(int *)(local_4c + 0x10) + 0x78);\n              iVar6 = *(int *)(*(int *)(local_4c + 0x10) + 0x7c);\n              if (0 < iVar6) {\n                piVar1 = piVar20 + iVar6;\n                do {\n                  if ((((*(int *)(*(int *)(*piVar20 + 0x14) + 4) == puVar18[1]) &&\n                       (iVar6 = bfd_link_hash_lookup\n                                          (DAT_001d0400,*(undefined4 *)(*piVar20 + 4),0,0,1),\n                       iVar6 != 0)) && (*(char *)(iVar6 + 0xc) == '\x03')) &&\n                     ((*(int *)(iVar6 + 0x10) == 0 && (*(int *)(DAT_001d0400 + 0x20) != iVar6)))) {\n                    puVar18[5] = puVar18[5] | 0x8000;\n                  }\n                  piVar20 = piVar20 + 1;\n                } while (piVar1 != piVar20);\n              }\n            }\n          }\n          local_4c = *(int *)(local_4c + 0x18);\n        } while (local_4c != 0);\n      }\n    }\n  }\n  return;\n}" (if "if") (parenthesized_expression "(DAT_001cf6bc != 0)" (( "(") (binary_expression "DAT_001cf6bc != 0" (identifier "DAT_001cf6bc") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    do {\n      iVar6 = *(int *)(local_40 + 0x10);\n      if ((*(int *)(iVar6 + 0x8c) != 0) &&\n         (local_38 = *(undefined4 **)(iVar6 + 0x60), local_38 != (undefined4 *)0x0)) {\n        iVar17 = 0;\n        bVar24 = true;\n        puVar7 = local_38;\n        bVar3 = 0;\n        bVar16 = false;\n        do {\n          bVar22 = false;\n          iVar15 = 9;\n          pbVar19 = (byte *)*puVar7;\n          pbVar21 = (byte *)".idata$2";\n          do {\n            if (iVar15 == 0) break;\n            iVar15 = iVar15 + -1;\n            bVar22 = *pbVar19 < *pbVar21;\n            bVar24 = *pbVar19 == *pbVar21;\n            pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n            pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n          } while (bVar24);\n          bVar23 = false;\n          bVar24 = (!bVar22 && !bVar24) == bVar22;\n          bVar22 = true;\n          if (!bVar24) {\n            bVar22 = bVar16;\n          }\n          iVar15 = 7;\n          pbVar19 = (byte *)*puVar7;\n          pbVar21 = (byte *)".idata$";\n          do {\n            if (iVar15 == 0) break;\n            iVar15 = iVar15 + -1;\n            bVar23 = *pbVar19 < *pbVar21;\n            bVar24 = *pbVar19 == *pbVar21;\n            pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n            pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n          } while (bVar24);\n          bVar5 = 1;\n          if ((!bVar23 && !bVar24) != bVar23) {\n            bVar5 = bVar3;\n          }\n          iVar17 = iVar17 + puVar7[0x19];\n          puVar7 = (undefined4 *)puVar7[3];\n          bVar24 = puVar7 == (undefined4 *)0x0;\n          bVar3 = bVar5;\n          bVar16 = bVar22;\n        } while (!bVar24);\n        if (((bool)(bVar5 & iVar17 != 0)) && (!bVar22)) {\n          while (iVar6 = bfd_get_reloc_upper_bound(iVar6,local_38), 0 < iVar6) {\n            iVar17 = bfd_generic_link_read_symbols(*(undefined4 *)(local_40 + 0x10));\n            local_4c = local_40;\n            if (iVar17 == 0) goto LAB_000570af;\n            uVar11 = *(undefined4 *)(*(int *)(local_40 + 0x10) + 0x78);\n            puVar7 = (undefined4 *)xmalloc(iVar6);\n            iVar6 = bfd_canonicalize_reloc(*(undefined4 *)(local_40 + 0x10),local_38,puVar7,uVar11);\n            if (iVar6 < 0) {\n              free(puVar7);\n              uVar11 = dcgettext(0,"%X%P: unable to process relocs: %E\n",5);\n              FUN_00034d20(uVar11);\n              return;\n            }\n            puVar18 = puVar7;\n            if (iVar6 != 0) {\n              do {\n                if ((((*(byte *)(**(int **)*puVar18 + 0x10) & 1) == 0) &&\n                    (iVar17 = bfd_link_hash_lookup\n                                        (DAT_001d0400,*(undefined4 *)(**(int **)*puVar18 + 4),0,0,1)\n                    , iVar17 != 0)) && (*(char *)(iVar17 + 0xc) == '\x03')) {\n                  puVar2 = *(undefined4 **)(*(int *)(iVar17 + 0x14) + 0xac);\n                  puVar8 = (undefined4 *)puVar2[0x23];\n                  if (puVar8 == (undefined4 *)0x0) {\n                    puVar8 = puVar2;\n                  }\n                  pcVar12 = (char *)*puVar8;\n                  iVar17 = filename_cmp(**(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c),pcVar12)\n                  ;\n                  if (iVar17 != 0) {\n                    sVar9 = strlen(pcVar12);\n                    pcVar10 = (char *)xmalloc(sVar9 + 1);\n                    strcpy(pcVar10,pcVar12);\n                    **(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c) = pcVar10;\n                  }\n                }\n                puVar18 = puVar18 + 1;\n              } while (puVar7 + iVar6 != puVar18);\n            }\n            free(puVar7);\n            local_38 = (undefined4 *)local_38[3];\n            if (local_38 == (undefined4 *)0x0) break;\n            iVar6 = *(int *)(local_40 + 0x10);\n          }\n        }\n      }\n      local_40 = *(int *)(local_40 + 0x18);\n    } while (local_40 != 0);\n    local_50 = DAT_001cf6bc;\n    if (DAT_001cf6bc != 0) {\n      bVar16 = false;\n      local_40 = 0;\n      do {\n        iVar6 = (*(undefined4 **)(local_50 + 0x10))[0x23];\n        if (iVar6 != 0) {\n          pcVar12 = strrchr((char *)**(undefined4 **)(local_50 + 0x10),0x2e);\n          iVar17 = local_50;\n          if (iVar6 == local_40) {\n            if (!bVar16) goto LAB_00056b08;\n          }\n          else {\n            while ((iVar15 = local_50, local_40 = iVar6, pcVar12 == (char *)0x0 ||\n                   (iVar13 = filename_cmp(pcVar12,".dll"), iVar13 != 0))) {\n              iVar17 = *(int *)(iVar17 + 0x18);\n              if (iVar17 == 0) {\n                local_50 = *(int *)(local_50 + 0x18);\n                bVar16 = false;\n                goto joined_r0x00056b15;\n              }\n              if (iVar6 != (*(undefined4 **)(iVar17 + 0x10))[0x23]) break;\n              pcVar12 = strrchr((char *)**(undefined4 **)(iVar17 + 0x10),0x2e);\n            }\n            do {\n              if (iVar6 != (*(undefined4 **)(iVar15 + 0x10))[0x23]) break;\n              pcVar12 = (char *)**(undefined4 **)(iVar15 + 0x10);\n              pcVar10 = strrchr(pcVar12,0x2e);\n              if (pcVar10 == (char *)0x0) {\nLAB_00056d20:\n                iVar13 = filename_cmp(**(undefined4 **)(iVar17 + 0x10),pcVar12);\n                if (iVar13 != 0) {\n                  bVar16 = false;\n                  goto LAB_00056b08;\n                }\n              }\n              else {\n                iVar13 = filename_cmp(pcVar10,&DAT_00192ed1);\n                if (iVar13 != 0) {\n                  pcVar12 = (char *)**(undefined4 **)(iVar15 + 0x10);\n                  goto LAB_00056d20;\n                }\n              }\n              piVar20 = (int *)(iVar15 + 0x18);\n              iVar15 = *piVar20;\n            } while (*piVar20 != 0);\n            pcVar12 = strrchr((char *)**(undefined4 **)(local_50 + 0x10),0x2e);\n          }\n          bVar16 = true;\n          iVar6 = filename_cmp(pcVar12,".dll");\n          if (iVar6 == 0) {\n            puVar7 = (undefined4 *)(*(undefined4 **)(local_50 + 0x10))[0x18];\n            if (puVar7 == (undefined4 *)0x0) {\n              iVar6 = 99;\n            }\n            else {\n              iVar17 = 0;\n              bVar24 = true;\n              bVar16 = false;\n              do {\n                bVar22 = false;\n                iVar6 = 9;\n                pbVar19 = (byte *)*puVar7;\n                pbVar21 = (byte *)".idata$2";\n                do {\n                  if (iVar6 == 0) break;\n                  iVar6 = iVar6 + -1;\n                  bVar22 = *pbVar19 < *pbVar21;\n                  bVar24 = *pbVar19 == *pbVar21;\n                  pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n                  pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n                } while (bVar24);\n                if ((!bVar22 && !bVar24) == bVar22) {\n                  bVar16 = true;\n                }\n                iVar17 = iVar17 + puVar7[0x19];\n                puVar7 = (undefined4 *)puVar7[3];\n                bVar24 = puVar7 == (undefined4 *)0x0;\n              } while (!bVar24);\n              iVar6 = 0x61;\n              if (!bVar16) {\n                iVar6 = (iVar17 < 1) + 0x62;\n              }\n            }\n            sVar9 = strlen((char *)**(undefined4 **)(local_50 + 0x10));\n            pcVar12 = (char *)xmalloc(sVar9 + 3);\n            sprintf(pcVar12,"%s.%c",**(undefined4 **)(local_50 + 0x10),iVar6);\n            **(undefined4 **)(local_50 + 0x10) = pcVar12;\n            sVar9 = strlen(*(char **)(local_50 + 8));\n            pcVar12 = (char *)xmalloc(sVar9 + 3);\n            sprintf(pcVar12,"%s.%c",*(undefined4 *)(local_50 + 8),iVar6);\n            *(char **)(local_50 + 8) = pcVar12;\n            bVar16 = true;\n          }\n        }\nLAB_00056b08:\n        local_50 = *(int *)(local_50 + 0x18);\njoined_r0x00056b15:\n      } while (local_50 != 0);\n      local_4c = DAT_001cf6bc;\n      if (DAT_001cf6bc != 0) {\n        do {\n          iVar6 = *(int *)(local_4c + 0x10);\n          if ((*(int *)(iVar6 + 0x8c) != 0) &&\n             (puVar7 = *(undefined4 **)(iVar6 + 0x60), puVar7 != (undefined4 *)0x0)) {\n            puVar18 = (undefined4 *)0x0;\n            bVar16 = false;\n            bVar24 = true;\n            do {\n              bVar22 = false;\n              iVar17 = 7;\n              pbVar19 = (byte *)*puVar7;\n              pbVar21 = (byte *)".idata$";\n              do {\n                if (iVar17 == 0) break;\n                iVar17 = iVar17 + -1;\n                bVar22 = *pbVar19 < *pbVar21;\n                bVar24 = *pbVar19 == *pbVar21;\n                pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n                pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n              } while (bVar24);\n              if ((!bVar22 && !bVar24) == bVar22) {\n                bVar16 = true;\n              }\n              if (((*(byte *)(puVar7 + 5) & 0x10) != 0) && (puVar7[0x19] != 0)) {\n                puVar18 = puVar7;\n              }\n              puVar7 = (undefined4 *)puVar7[3];\n              bVar24 = puVar7 == (undefined4 *)0x0;\n            } while (!bVar24);\n            if ((puVar18 != (undefined4 *)0x0) && (bVar16)) {\n              iVar6 = bfd_generic_link_read_symbols(iVar6);\n              if (iVar6 == 0) {\nLAB_000570af:\n                uVar11 = *(undefined4 *)(local_4c + 0x10);\n                uVar14 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n                FUN_00034d20(uVar14,uVar11);\n                return;\n              }\n              piVar20 = *(int **)(*(int *)(local_4c + 0x10) + 0x78);\n              iVar6 = *(int *)(*(int *)(local_4c + 0x10) + 0x7c);\n              if (0 < iVar6) {\n                piVar1 = piVar20 + iVar6;\n                do {\n                  if ((((*(int *)(*(int *)(*piVar20 + 0x14) + 4) == puVar18[1]) &&\n                       (iVar6 = bfd_link_hash_lookup\n                                          (DAT_001d0400,*(undefined4 *)(*piVar20 + 4),0,0,1),\n                       iVar6 != 0)) && (*(char *)(iVar6 + 0xc) == '\x03')) &&\n                     ((*(int *)(iVar6 + 0x10) == 0 && (*(int *)(DAT_001d0400 + 0x20) != iVar6)))) {\n                    puVar18[5] = puVar18[5] | 0x8000;\n                  }\n                  piVar20 = piVar20 + 1;\n                } while (piVar1 != piVar20);\n              }\n            }\n          }\n          local_4c = *(int *)(local_4c + 0x18);\n        } while (local_4c != 0);\n      }\n    }\n  }\n  return;\n}" ({ "{") (do_statement "do {\n      iVar6 = *(int *)(local_40 + 0x10);\n      if ((*(int *)(iVar6 + 0x8c) != 0) &&\n         (local_38 = *(undefined4 **)(iVar6 + 0x60), local_38 != (undefined4 *)0x0)) {\n        iVar17 = 0;\n        bVar24 = true;\n        puVar7 = local_38;\n        bVar3 = 0;\n        bVar16 = false;\n        do {\n          bVar22 = false;\n          iVar15 = 9;\n          pbVar19 = (byte *)*puVar7;\n          pbVar21 = (byte *)".idata$2";\n          do {\n            if (iVar15 == 0) break;\n            iVar15 = iVar15 + -1;\n            bVar22 = *pbVar19 < *pbVar21;\n            bVar24 = *pbVar19 == *pbVar21;\n            pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n            pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n          } while (bVar24);\n          bVar23 = false;\n          bVar24 = (!bVar22 && !bVar24) == bVar22;\n          bVar22 = true;\n          if (!bVar24) {\n            bVar22 = bVar16;\n          }\n          iVar15 = 7;\n          pbVar19 = (byte *)*puVar7;\n          pbVar21 = (byte *)".idata$";\n          do {\n            if (iVar15 == 0) break;\n            iVar15 = iVar15 + -1;\n            bVar23 = *pbVar19 < *pbVar21;\n            bVar24 = *pbVar19 == *pbVar21;\n            pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n            pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n          } while (bVar24);\n          bVar5 = 1;\n          if ((!bVar23 && !bVar24) != bVar23) {\n            bVar5 = bVar3;\n          }\n          iVar17 = iVar17 + puVar7[0x19];\n          puVar7 = (undefined4 *)puVar7[3];\n          bVar24 = puVar7 == (undefined4 *)0x0;\n          bVar3 = bVar5;\n          bVar16 = bVar22;\n        } while (!bVar24);\n        if (((bool)(bVar5 & iVar17 != 0)) && (!bVar22)) {\n          while (iVar6 = bfd_get_reloc_upper_bound(iVar6,local_38), 0 < iVar6) {\n            iVar17 = bfd_generic_link_read_symbols(*(undefined4 *)(local_40 + 0x10));\n            local_4c = local_40;\n            if (iVar17 == 0) goto LAB_000570af;\n            uVar11 = *(undefined4 *)(*(int *)(local_40 + 0x10) + 0x78);\n            puVar7 = (undefined4 *)xmalloc(iVar6);\n            iVar6 = bfd_canonicalize_reloc(*(undefined4 *)(local_40 + 0x10),local_38,puVar7,uVar11);\n            if (iVar6 < 0) {\n              free(puVar7);\n              uVar11 = dcgettext(0,"%X%P: unable to process relocs: %E\n",5);\n              FUN_00034d20(uVar11);\n              return;\n            }\n            puVar18 = puVar7;\n            if (iVar6 != 0) {\n              do {\n                if ((((*(byte *)(**(int **)*puVar18 + 0x10) & 1) == 0) &&\n                    (iVar17 = bfd_link_hash_lookup\n                                        (DAT_001d0400,*(undefined4 *)(**(int **)*puVar18 + 4),0,0,1)\n                    , iVar17 != 0)) && (*(char *)(iVar17 + 0xc) == '\x03')) {\n                  puVar2 = *(undefined4 **)(*(int *)(iVar17 + 0x14) + 0xac);\n                  puVar8 = (undefined4 *)puVar2[0x23];\n                  if (puVar8 == (undefined4 *)0x0) {\n                    puVar8 = puVar2;\n                  }\n                  pcVar12 = (char *)*puVar8;\n                  iVar17 = filename_cmp(**(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c),pcVar12)\n                  ;\n                  if (iVar17 != 0) {\n                    sVar9 = strlen(pcVar12);\n                    pcVar10 = (char *)xmalloc(sVar9 + 1);\n                    strcpy(pcVar10,pcVar12);\n                    **(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c) = pcVar10;\n                  }\n                }\n                puVar18 = puVar18 + 1;\n              } while (puVar7 + iVar6 != puVar18);\n            }\n            free(puVar7);\n            local_38 = (undefined4 *)local_38[3];\n            if (local_38 == (undefined4 *)0x0) break;\n            iVar6 = *(int *)(local_40 + 0x10);\n          }\n        }\n      }\n      local_40 = *(int *)(local_40 + 0x18);\n    } while (local_40 != 0);" (do "do") (compound_statement "{\n      iVar6 = *(int *)(local_40 + 0x10);\n      if ((*(int *)(iVar6 + 0x8c) != 0) &&\n         (local_38 = *(undefined4 **)(iVar6 + 0x60), local_38 != (undefined4 *)0x0)) {\n        iVar17 = 0;\n        bVar24 = true;\n        puVar7 = local_38;\n        bVar3 = 0;\n        bVar16 = false;\n        do {\n          bVar22 = false;\n          iVar15 = 9;\n          pbVar19 = (byte *)*puVar7;\n          pbVar21 = (byte *)".idata$2";\n          do {\n            if (iVar15 == 0) break;\n            iVar15 = iVar15 + -1;\n            bVar22 = *pbVar19 < *pbVar21;\n            bVar24 = *pbVar19 == *pbVar21;\n            pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n            pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n          } while (bVar24);\n          bVar23 = false;\n          bVar24 = (!bVar22 && !bVar24) == bVar22;\n          bVar22 = true;\n          if (!bVar24) {\n            bVar22 = bVar16;\n          }\n          iVar15 = 7;\n          pbVar19 = (byte *)*puVar7;\n          pbVar21 = (byte *)".idata$";\n          do {\n            if (iVar15 == 0) break;\n            iVar15 = iVar15 + -1;\n            bVar23 = *pbVar19 < *pbVar21;\n            bVar24 = *pbVar19 == *pbVar21;\n            pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n            pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n          } while (bVar24);\n          bVar5 = 1;\n          if ((!bVar23 && !bVar24) != bVar23) {\n            bVar5 = bVar3;\n          }\n          iVar17 = iVar17 + puVar7[0x19];\n          puVar7 = (undefined4 *)puVar7[3];\n          bVar24 = puVar7 == (undefined4 *)0x0;\n          bVar3 = bVar5;\n          bVar16 = bVar22;\n        } while (!bVar24);\n        if (((bool)(bVar5 & iVar17 != 0)) && (!bVar22)) {\n          while (iVar6 = bfd_get_reloc_upper_bound(iVar6,local_38), 0 < iVar6) {\n            iVar17 = bfd_generic_link_read_symbols(*(undefined4 *)(local_40 + 0x10));\n            local_4c = local_40;\n            if (iVar17 == 0) goto LAB_000570af;\n            uVar11 = *(undefined4 *)(*(int *)(local_40 + 0x10) + 0x78);\n            puVar7 = (undefined4 *)xmalloc(iVar6);\n            iVar6 = bfd_canonicalize_reloc(*(undefined4 *)(local_40 + 0x10),local_38,puVar7,uVar11);\n            if (iVar6 < 0) {\n              free(puVar7);\n              uVar11 = dcgettext(0,"%X%P: unable to process relocs: %E\n",5);\n              FUN_00034d20(uVar11);\n              return;\n            }\n            puVar18 = puVar7;\n            if (iVar6 != 0) {\n              do {\n                if ((((*(byte *)(**(int **)*puVar18 + 0x10) & 1) == 0) &&\n                    (iVar17 = bfd_link_hash_lookup\n                                        (DAT_001d0400,*(undefined4 *)(**(int **)*puVar18 + 4),0,0,1)\n                    , iVar17 != 0)) && (*(char *)(iVar17 + 0xc) == '\x03')) {\n                  puVar2 = *(undefined4 **)(*(int *)(iVar17 + 0x14) + 0xac);\n                  puVar8 = (undefined4 *)puVar2[0x23];\n                  if (puVar8 == (undefined4 *)0x0) {\n                    puVar8 = puVar2;\n                  }\n                  pcVar12 = (char *)*puVar8;\n                  iVar17 = filename_cmp(**(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c),pcVar12)\n                  ;\n                  if (iVar17 != 0) {\n                    sVar9 = strlen(pcVar12);\n                    pcVar10 = (char *)xmalloc(sVar9 + 1);\n                    strcpy(pcVar10,pcVar12);\n                    **(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c) = pcVar10;\n                  }\n                }\n                puVar18 = puVar18 + 1;\n              } while (puVar7 + iVar6 != puVar18);\n            }\n            free(puVar7);\n            local_38 = (undefined4 *)local_38[3];\n            if (local_38 == (undefined4 *)0x0) break;\n            iVar6 = *(int *)(local_40 + 0x10);\n          }\n        }\n      }\n      local_40 = *(int *)(local_40 + 0x18);\n    }" ({ "{") (expression_statement "iVar6 = *(int *)(local_40 + 0x10);" (assignment_expression "iVar6 = *(int *)(local_40 + 0x10)" (identifier "iVar6") (= "=") (pointer_expression "*(int *)(local_40 + 0x10)" (* "*") (cast_expression "(int *)(local_40 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_40 + 0x10)" (( "(") (binary_expression "local_40 + 0x10" (identifier "local_40") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (if_statement "if ((*(int *)(iVar6 + 0x8c) != 0) &&\n         (local_38 = *(undefined4 **)(iVar6 + 0x60), local_38 != (undefined4 *)0x0)) {\n        iVar17 = 0;\n        bVar24 = true;\n        puVar7 = local_38;\n        bVar3 = 0;\n        bVar16 = false;\n        do {\n          bVar22 = false;\n          iVar15 = 9;\n          pbVar19 = (byte *)*puVar7;\n          pbVar21 = (byte *)".idata$2";\n          do {\n            if (iVar15 == 0) break;\n            iVar15 = iVar15 + -1;\n            bVar22 = *pbVar19 < *pbVar21;\n            bVar24 = *pbVar19 == *pbVar21;\n            pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n            pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n          } while (bVar24);\n          bVar23 = false;\n          bVar24 = (!bVar22 && !bVar24) == bVar22;\n          bVar22 = true;\n          if (!bVar24) {\n            bVar22 = bVar16;\n          }\n          iVar15 = 7;\n          pbVar19 = (byte *)*puVar7;\n          pbVar21 = (byte *)".idata$";\n          do {\n            if (iVar15 == 0) break;\n            iVar15 = iVar15 + -1;\n            bVar23 = *pbVar19 < *pbVar21;\n            bVar24 = *pbVar19 == *pbVar21;\n            pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n            pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n          } while (bVar24);\n          bVar5 = 1;\n          if ((!bVar23 && !bVar24) != bVar23) {\n            bVar5 = bVar3;\n          }\n          iVar17 = iVar17 + puVar7[0x19];\n          puVar7 = (undefined4 *)puVar7[3];\n          bVar24 = puVar7 == (undefined4 *)0x0;\n          bVar3 = bVar5;\n          bVar16 = bVar22;\n        } while (!bVar24);\n        if (((bool)(bVar5 & iVar17 != 0)) && (!bVar22)) {\n          while (iVar6 = bfd_get_reloc_upper_bound(iVar6,local_38), 0 < iVar6) {\n            iVar17 = bfd_generic_link_read_symbols(*(undefined4 *)(local_40 + 0x10));\n            local_4c = local_40;\n            if (iVar17 == 0) goto LAB_000570af;\n            uVar11 = *(undefined4 *)(*(int *)(local_40 + 0x10) + 0x78);\n            puVar7 = (undefined4 *)xmalloc(iVar6);\n            iVar6 = bfd_canonicalize_reloc(*(undefined4 *)(local_40 + 0x10),local_38,puVar7,uVar11);\n            if (iVar6 < 0) {\n              free(puVar7);\n              uVar11 = dcgettext(0,"%X%P: unable to process relocs: %E\n",5);\n              FUN_00034d20(uVar11);\n              return;\n            }\n            puVar18 = puVar7;\n            if (iVar6 != 0) {\n              do {\n                if ((((*(byte *)(**(int **)*puVar18 + 0x10) & 1) == 0) &&\n                    (iVar17 = bfd_link_hash_lookup\n                                        (DAT_001d0400,*(undefined4 *)(**(int **)*puVar18 + 4),0,0,1)\n                    , iVar17 != 0)) && (*(char *)(iVar17 + 0xc) == '\x03')) {\n                  puVar2 = *(undefined4 **)(*(int *)(iVar17 + 0x14) + 0xac);\n                  puVar8 = (undefined4 *)puVar2[0x23];\n                  if (puVar8 == (undefined4 *)0x0) {\n                    puVar8 = puVar2;\n                  }\n                  pcVar12 = (char *)*puVar8;\n                  iVar17 = filename_cmp(**(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c),pcVar12)\n                  ;\n                  if (iVar17 != 0) {\n                    sVar9 = strlen(pcVar12);\n                    pcVar10 = (char *)xmalloc(sVar9 + 1);\n                    strcpy(pcVar10,pcVar12);\n                    **(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c) = pcVar10;\n                  }\n                }\n                puVar18 = puVar18 + 1;\n              } while (puVar7 + iVar6 != puVar18);\n            }\n            free(puVar7);\n            local_38 = (undefined4 *)local_38[3];\n            if (local_38 == (undefined4 *)0x0) break;\n            iVar6 = *(int *)(local_40 + 0x10);\n          }\n        }\n      }" (if "if") (parenthesized_expression "((*(int *)(iVar6 + 0x8c) != 0) &&\n         (local_38 = *(undefined4 **)(iVar6 + 0x60), local_38 != (undefined4 *)0x0))" (( "(") (binary_expression "(*(int *)(iVar6 + 0x8c) != 0) &&\n         (local_38 = *(undefined4 **)(iVar6 + 0x60), local_38 != (undefined4 *)0x0)" (parenthesized_expression "(*(int *)(iVar6 + 0x8c) != 0)" (( "(") (binary_expression "*(int *)(iVar6 + 0x8c) != 0" (pointer_expression "*(int *)(iVar6 + 0x8c)" (* "*") (cast_expression "(int *)(iVar6 + 0x8c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x8c)" (( "(") (binary_expression "iVar6 + 0x8c" (identifier "iVar6") (+ "+") (number_literal "0x8c")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(local_38 = *(undefined4 **)(iVar6 + 0x60), local_38 != (undefined4 *)0x0)" (( "(") (comma_expression "local_38 = *(undefined4 **)(iVar6 + 0x60), local_38 != (undefined4 *)0x0" (assignment_expression "local_38 = *(undefined4 **)(iVar6 + 0x60)" (identifier "local_38") (= "=") (pointer_expression "*(undefined4 **)(iVar6 + 0x60)" (* "*") (cast_expression "(undefined4 **)(iVar6 + 0x60)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar6 + 0x60)" (( "(") (binary_expression "iVar6 + 0x60" (identifier "iVar6") (+ "+") (number_literal "0x60")) () ")"))))) (, ",") (binary_expression "local_38 != (undefined4 *)0x0" (identifier "local_38") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")"))) () ")")) (compound_statement "{\n        iVar17 = 0;\n        bVar24 = true;\n        puVar7 = local_38;\n        bVar3 = 0;\n        bVar16 = false;\n        do {\n          bVar22 = false;\n          iVar15 = 9;\n          pbVar19 = (byte *)*puVar7;\n          pbVar21 = (byte *)".idata$2";\n          do {\n            if (iVar15 == 0) break;\n            iVar15 = iVar15 + -1;\n            bVar22 = *pbVar19 < *pbVar21;\n            bVar24 = *pbVar19 == *pbVar21;\n            pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n            pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n          } while (bVar24);\n          bVar23 = false;\n          bVar24 = (!bVar22 && !bVar24) == bVar22;\n          bVar22 = true;\n          if (!bVar24) {\n            bVar22 = bVar16;\n          }\n          iVar15 = 7;\n          pbVar19 = (byte *)*puVar7;\n          pbVar21 = (byte *)".idata$";\n          do {\n            if (iVar15 == 0) break;\n            iVar15 = iVar15 + -1;\n            bVar23 = *pbVar19 < *pbVar21;\n            bVar24 = *pbVar19 == *pbVar21;\n            pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n            pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n          } while (bVar24);\n          bVar5 = 1;\n          if ((!bVar23 && !bVar24) != bVar23) {\n            bVar5 = bVar3;\n          }\n          iVar17 = iVar17 + puVar7[0x19];\n          puVar7 = (undefined4 *)puVar7[3];\n          bVar24 = puVar7 == (undefined4 *)0x0;\n          bVar3 = bVar5;\n          bVar16 = bVar22;\n        } while (!bVar24);\n        if (((bool)(bVar5 & iVar17 != 0)) && (!bVar22)) {\n          while (iVar6 = bfd_get_reloc_upper_bound(iVar6,local_38), 0 < iVar6) {\n            iVar17 = bfd_generic_link_read_symbols(*(undefined4 *)(local_40 + 0x10));\n            local_4c = local_40;\n            if (iVar17 == 0) goto LAB_000570af;\n            uVar11 = *(undefined4 *)(*(int *)(local_40 + 0x10) + 0x78);\n            puVar7 = (undefined4 *)xmalloc(iVar6);\n            iVar6 = bfd_canonicalize_reloc(*(undefined4 *)(local_40 + 0x10),local_38,puVar7,uVar11);\n            if (iVar6 < 0) {\n              free(puVar7);\n              uVar11 = dcgettext(0,"%X%P: unable to process relocs: %E\n",5);\n              FUN_00034d20(uVar11);\n              return;\n            }\n            puVar18 = puVar7;\n            if (iVar6 != 0) {\n              do {\n                if ((((*(byte *)(**(int **)*puVar18 + 0x10) & 1) == 0) &&\n                    (iVar17 = bfd_link_hash_lookup\n                                        (DAT_001d0400,*(undefined4 *)(**(int **)*puVar18 + 4),0,0,1)\n                    , iVar17 != 0)) && (*(char *)(iVar17 + 0xc) == '\x03')) {\n                  puVar2 = *(undefined4 **)(*(int *)(iVar17 + 0x14) + 0xac);\n                  puVar8 = (undefined4 *)puVar2[0x23];\n                  if (puVar8 == (undefined4 *)0x0) {\n                    puVar8 = puVar2;\n                  }\n                  pcVar12 = (char *)*puVar8;\n                  iVar17 = filename_cmp(**(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c),pcVar12)\n                  ;\n                  if (iVar17 != 0) {\n                    sVar9 = strlen(pcVar12);\n                    pcVar10 = (char *)xmalloc(sVar9 + 1);\n                    strcpy(pcVar10,pcVar12);\n                    **(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c) = pcVar10;\n                  }\n                }\n                puVar18 = puVar18 + 1;\n              } while (puVar7 + iVar6 != puVar18);\n            }\n            free(puVar7);\n            local_38 = (undefined4 *)local_38[3];\n            if (local_38 == (undefined4 *)0x0) break;\n            iVar6 = *(int *)(local_40 + 0x10);\n          }\n        }\n      }" ({ "{") (expression_statement "iVar17 = 0;" (assignment_expression "iVar17 = 0" (identifier "iVar17") (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar24 = true;" (assignment_expression "bVar24 = true" (identifier "bVar24") (= "=") (true "true")) (; ";")) (expression_statement "puVar7 = local_38;" (assignment_expression "puVar7 = local_38" (identifier "puVar7") (= "=") (identifier "local_38")) (; ";")) (expression_statement "bVar3 = 0;" (assignment_expression "bVar3 = 0" (identifier "bVar3") (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar16 = false;" (assignment_expression "bVar16 = false" (identifier "bVar16") (= "=") (false "false")) (; ";")) (do_statement "do {\n          bVar22 = false;\n          iVar15 = 9;\n          pbVar19 = (byte *)*puVar7;\n          pbVar21 = (byte *)".idata$2";\n          do {\n            if (iVar15 == 0) break;\n            iVar15 = iVar15 + -1;\n            bVar22 = *pbVar19 < *pbVar21;\n            bVar24 = *pbVar19 == *pbVar21;\n            pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n            pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n          } while (bVar24);\n          bVar23 = false;\n          bVar24 = (!bVar22 && !bVar24) == bVar22;\n          bVar22 = true;\n          if (!bVar24) {\n            bVar22 = bVar16;\n          }\n          iVar15 = 7;\n          pbVar19 = (byte *)*puVar7;\n          pbVar21 = (byte *)".idata$";\n          do {\n            if (iVar15 == 0) break;\n            iVar15 = iVar15 + -1;\n            bVar23 = *pbVar19 < *pbVar21;\n            bVar24 = *pbVar19 == *pbVar21;\n            pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n            pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n          } while (bVar24);\n          bVar5 = 1;\n          if ((!bVar23 && !bVar24) != bVar23) {\n            bVar5 = bVar3;\n          }\n          iVar17 = iVar17 + puVar7[0x19];\n          puVar7 = (undefined4 *)puVar7[3];\n          bVar24 = puVar7 == (undefined4 *)0x0;\n          bVar3 = bVar5;\n          bVar16 = bVar22;\n        } while (!bVar24);" (do "do") (compound_statement "{\n          bVar22 = false;\n          iVar15 = 9;\n          pbVar19 = (byte *)*puVar7;\n          pbVar21 = (byte *)".idata$2";\n          do {\n            if (iVar15 == 0) break;\n            iVar15 = iVar15 + -1;\n            bVar22 = *pbVar19 < *pbVar21;\n            bVar24 = *pbVar19 == *pbVar21;\n            pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n            pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n          } while (bVar24);\n          bVar23 = false;\n          bVar24 = (!bVar22 && !bVar24) == bVar22;\n          bVar22 = true;\n          if (!bVar24) {\n            bVar22 = bVar16;\n          }\n          iVar15 = 7;\n          pbVar19 = (byte *)*puVar7;\n          pbVar21 = (byte *)".idata$";\n          do {\n            if (iVar15 == 0) break;\n            iVar15 = iVar15 + -1;\n            bVar23 = *pbVar19 < *pbVar21;\n            bVar24 = *pbVar19 == *pbVar21;\n            pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n            pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n          } while (bVar24);\n          bVar5 = 1;\n          if ((!bVar23 && !bVar24) != bVar23) {\n            bVar5 = bVar3;\n          }\n          iVar17 = iVar17 + puVar7[0x19];\n          puVar7 = (undefined4 *)puVar7[3];\n          bVar24 = puVar7 == (undefined4 *)0x0;\n          bVar3 = bVar5;\n          bVar16 = bVar22;\n        }" ({ "{") (expression_statement "bVar22 = false;" (assignment_expression "bVar22 = false" (identifier "bVar22") (= "=") (false "false")) (; ";")) (expression_statement "iVar15 = 9;" (assignment_expression "iVar15 = 9" (identifier "iVar15") (= "=") (number_literal "9")) (; ";")) (expression_statement "pbVar19 = (byte *)*puVar7;" (assignment_expression "pbVar19 = (byte *)*puVar7" (identifier "pbVar19") (= "=") (cast_expression "(byte *)*puVar7" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar7" (* "*") (identifier "puVar7")))) (; ";")) (expression_statement "pbVar21 = (byte *)".idata$2";" (assignment_expression "pbVar21 = (byte *)".idata$2"" (identifier "pbVar21") (= "=") (cast_expression "(byte *)".idata$2"" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal "".idata$2"" (" """) (string_content ".idata$2") (" """)))) (; ";")) (do_statement "do {\n            if (iVar15 == 0) break;\n            iVar15 = iVar15 + -1;\n            bVar22 = *pbVar19 < *pbVar21;\n            bVar24 = *pbVar19 == *pbVar21;\n            pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n            pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n          } while (bVar24);" (do "do") (compound_statement "{\n            if (iVar15 == 0) break;\n            iVar15 = iVar15 + -1;\n            bVar22 = *pbVar19 < *pbVar21;\n            bVar24 = *pbVar19 == *pbVar21;\n            pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n            pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n          }" ({ "{") (if_statement "if (iVar15 == 0) break;" (if "if") (parenthesized_expression "(iVar15 == 0)" (( "(") (binary_expression "iVar15 == 0" (identifier "iVar15") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar15 = iVar15 + -1;" (assignment_expression "iVar15 = iVar15 + -1" (identifier "iVar15") (= "=") (binary_expression "iVar15 + -1" (identifier "iVar15") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar22 = *pbVar19 < *pbVar21;" (assignment_expression "bVar22 = *pbVar19 < *pbVar21" (identifier "bVar22") (= "=") (binary_expression "*pbVar19 < *pbVar21" (pointer_expression "*pbVar19" (* "*") (identifier "pbVar19")) (< "<") (pointer_expression "*pbVar21" (* "*") (identifier "pbVar21")))) (; ";")) (expression_statement "bVar24 = *pbVar19 == *pbVar21;" (assignment_expression "bVar24 = *pbVar19 == *pbVar21" (identifier "bVar24") (= "=") (binary_expression "*pbVar19 == *pbVar21" (pointer_expression "*pbVar19" (* "*") (identifier "pbVar19")) (== "==") (pointer_expression "*pbVar21" (* "*") (identifier "pbVar21")))) (; ";")) (expression_statement "pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1" (identifier "pbVar19") (= "=") (binary_expression "pbVar19 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar19 + (uint)bVar25 * -2" (identifier "pbVar19") (+ "+") (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar25")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1" (identifier "pbVar21") (= "=") (binary_expression "pbVar21 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar21 + (uint)bVar25 * -2" (identifier "pbVar21") (+ "+") (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar25")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar24)" (( "(") (identifier "bVar24") () ")")) (; ";")) (expression_statement "bVar23 = false;" (assignment_expression "bVar23 = false" (identifier "bVar23") (= "=") (false "false")) (; ";")) (expression_statement "bVar24 = (!bVar22 && !bVar24) == bVar22;" (assignment_expression "bVar24 = (!bVar22 && !bVar24) == bVar22" (identifier "bVar24") (= "=") (binary_expression "(!bVar22 && !bVar24) == bVar22" (parenthesized_expression "(!bVar22 && !bVar24)" (( "(") (binary_expression "!bVar22 && !bVar24" (unary_expression "!bVar22" (! "!") (identifier "bVar22")) (&& "&&") (unary_expression "!bVar24" (! "!") (identifier "bVar24"))) () ")")) (== "==") (identifier "bVar22"))) (; ";")) (expression_statement "bVar22 = true;" (assignment_expression "bVar22 = true" (identifier "bVar22") (= "=") (true "true")) (; ";")) (if_statement "if (!bVar24) {\n            bVar22 = bVar16;\n          }" (if "if") (parenthesized_expression "(!bVar24)" (( "(") (unary_expression "!bVar24" (! "!") (identifier "bVar24")) () ")")) (compound_statement "{\n            bVar22 = bVar16;\n          }" ({ "{") (expression_statement "bVar22 = bVar16;" (assignment_expression "bVar22 = bVar16" (identifier "bVar22") (= "=") (identifier "bVar16")) (; ";")) (} "}"))) (expression_statement "iVar15 = 7;" (assignment_expression "iVar15 = 7" (identifier "iVar15") (= "=") (number_literal "7")) (; ";")) (expression_statement "pbVar19 = (byte *)*puVar7;" (assignment_expression "pbVar19 = (byte *)*puVar7" (identifier "pbVar19") (= "=") (cast_expression "(byte *)*puVar7" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar7" (* "*") (identifier "puVar7")))) (; ";")) (expression_statement "pbVar21 = (byte *)".idata$";" (assignment_expression "pbVar21 = (byte *)".idata$"" (identifier "pbVar21") (= "=") (cast_expression "(byte *)".idata$"" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal "".idata$"" (" """) (string_content ".idata$") (" """)))) (; ";")) (do_statement "do {\n            if (iVar15 == 0) break;\n            iVar15 = iVar15 + -1;\n            bVar23 = *pbVar19 < *pbVar21;\n            bVar24 = *pbVar19 == *pbVar21;\n            pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n            pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n          } while (bVar24);" (do "do") (compound_statement "{\n            if (iVar15 == 0) break;\n            iVar15 = iVar15 + -1;\n            bVar23 = *pbVar19 < *pbVar21;\n            bVar24 = *pbVar19 == *pbVar21;\n            pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n            pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n          }" ({ "{") (if_statement "if (iVar15 == 0) break;" (if "if") (parenthesized_expression "(iVar15 == 0)" (( "(") (binary_expression "iVar15 == 0" (identifier "iVar15") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar15 = iVar15 + -1;" (assignment_expression "iVar15 = iVar15 + -1" (identifier "iVar15") (= "=") (binary_expression "iVar15 + -1" (identifier "iVar15") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar23 = *pbVar19 < *pbVar21;" (assignment_expression "bVar23 = *pbVar19 < *pbVar21" (identifier "bVar23") (= "=") (binary_expression "*pbVar19 < *pbVar21" (pointer_expression "*pbVar19" (* "*") (identifier "pbVar19")) (< "<") (pointer_expression "*pbVar21" (* "*") (identifier "pbVar21")))) (; ";")) (expression_statement "bVar24 = *pbVar19 == *pbVar21;" (assignment_expression "bVar24 = *pbVar19 == *pbVar21" (identifier "bVar24") (= "=") (binary_expression "*pbVar19 == *pbVar21" (pointer_expression "*pbVar19" (* "*") (identifier "pbVar19")) (== "==") (pointer_expression "*pbVar21" (* "*") (identifier "pbVar21")))) (; ";")) (expression_statement "pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1" (identifier "pbVar19") (= "=") (binary_expression "pbVar19 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar19 + (uint)bVar25 * -2" (identifier "pbVar19") (+ "+") (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar25")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1" (identifier "pbVar21") (= "=") (binary_expression "pbVar21 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar21 + (uint)bVar25 * -2" (identifier "pbVar21") (+ "+") (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar25")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar24)" (( "(") (identifier "bVar24") () ")")) (; ";")) (expression_statement "bVar5 = 1;" (assignment_expression "bVar5 = 1" (identifier "bVar5") (= "=") (number_literal "1")) (; ";")) (if_statement "if ((!bVar23 && !bVar24) != bVar23) {\n            bVar5 = bVar3;\n          }" (if "if") (parenthesized_expression "((!bVar23 && !bVar24) != bVar23)" (( "(") (binary_expression "(!bVar23 && !bVar24) != bVar23" (parenthesized_expression "(!bVar23 && !bVar24)" (( "(") (binary_expression "!bVar23 && !bVar24" (unary_expression "!bVar23" (! "!") (identifier "bVar23")) (&& "&&") (unary_expression "!bVar24" (! "!") (identifier "bVar24"))) () ")")) (!= "!=") (identifier "bVar23")) () ")")) (compound_statement "{\n            bVar5 = bVar3;\n          }" ({ "{") (expression_statement "bVar5 = bVar3;" (assignment_expression "bVar5 = bVar3" (identifier "bVar5") (= "=") (identifier "bVar3")) (; ";")) (} "}"))) (expression_statement "iVar17 = iVar17 + puVar7[0x19];" (assignment_expression "iVar17 = iVar17 + puVar7[0x19]" (identifier "iVar17") (= "=") (binary_expression "iVar17 + puVar7[0x19]" (identifier "iVar17") (+ "+") (subscript_expression "puVar7[0x19]" (identifier "puVar7") ([ "[") (number_literal "0x19") (] "]")))) (; ";")) (expression_statement "puVar7 = (undefined4 *)puVar7[3];" (assignment_expression "puVar7 = (undefined4 *)puVar7[3]" (identifier "puVar7") (= "=") (cast_expression "(undefined4 *)puVar7[3]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar7[3]" (identifier "puVar7") ([ "[") (number_literal "3") (] "]")))) (; ";")) (expression_statement "bVar24 = puVar7 == (undefined4 *)0x0;" (assignment_expression "bVar24 = puVar7 == (undefined4 *)0x0" (identifier "bVar24") (= "=") (binary_expression "puVar7 == (undefined4 *)0x0" (identifier "puVar7") (== "==") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) (; ";")) (expression_statement "bVar3 = bVar5;" (assignment_expression "bVar3 = bVar5" (identifier "bVar3") (= "=") (identifier "bVar5")) (; ";")) (expression_statement "bVar16 = bVar22;" (assignment_expression "bVar16 = bVar22" (identifier "bVar16") (= "=") (identifier "bVar22")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(!bVar24)" (( "(") (unary_expression "!bVar24" (! "!") (identifier "bVar24")) () ")")) (; ";")) (if_statement "if (((bool)(bVar5 & iVar17 != 0)) && (!bVar22)) {\n          while (iVar6 = bfd_get_reloc_upper_bound(iVar6,local_38), 0 < iVar6) {\n            iVar17 = bfd_generic_link_read_symbols(*(undefined4 *)(local_40 + 0x10));\n            local_4c = local_40;\n            if (iVar17 == 0) goto LAB_000570af;\n            uVar11 = *(undefined4 *)(*(int *)(local_40 + 0x10) + 0x78);\n            puVar7 = (undefined4 *)xmalloc(iVar6);\n            iVar6 = bfd_canonicalize_reloc(*(undefined4 *)(local_40 + 0x10),local_38,puVar7,uVar11);\n            if (iVar6 < 0) {\n              free(puVar7);\n              uVar11 = dcgettext(0,"%X%P: unable to process relocs: %E\n",5);\n              FUN_00034d20(uVar11);\n              return;\n            }\n            puVar18 = puVar7;\n            if (iVar6 != 0) {\n              do {\n                if ((((*(byte *)(**(int **)*puVar18 + 0x10) & 1) == 0) &&\n                    (iVar17 = bfd_link_hash_lookup\n                                        (DAT_001d0400,*(undefined4 *)(**(int **)*puVar18 + 4),0,0,1)\n                    , iVar17 != 0)) && (*(char *)(iVar17 + 0xc) == '\x03')) {\n                  puVar2 = *(undefined4 **)(*(int *)(iVar17 + 0x14) + 0xac);\n                  puVar8 = (undefined4 *)puVar2[0x23];\n                  if (puVar8 == (undefined4 *)0x0) {\n                    puVar8 = puVar2;\n                  }\n                  pcVar12 = (char *)*puVar8;\n                  iVar17 = filename_cmp(**(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c),pcVar12)\n                  ;\n                  if (iVar17 != 0) {\n                    sVar9 = strlen(pcVar12);\n                    pcVar10 = (char *)xmalloc(sVar9 + 1);\n                    strcpy(pcVar10,pcVar12);\n                    **(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c) = pcVar10;\n                  }\n                }\n                puVar18 = puVar18 + 1;\n              } while (puVar7 + iVar6 != puVar18);\n            }\n            free(puVar7);\n            local_38 = (undefined4 *)local_38[3];\n            if (local_38 == (undefined4 *)0x0) break;\n            iVar6 = *(int *)(local_40 + 0x10);\n          }\n        }" (if "if") (parenthesized_expression "(((bool)(bVar5 & iVar17 != 0)) && (!bVar22))" (( "(") (binary_expression "((bool)(bVar5 & iVar17 != 0)) && (!bVar22)" (parenthesized_expression "((bool)(bVar5 & iVar17 != 0))" (( "(") (cast_expression "(bool)(bVar5 & iVar17 != 0)" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (parenthesized_expression "(bVar5 & iVar17 != 0)" (( "(") (binary_expression "bVar5 & iVar17 != 0" (identifier "bVar5") (& "&") (binary_expression "iVar17 != 0" (identifier "iVar17") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(!bVar22)" (( "(") (unary_expression "!bVar22" (! "!") (identifier "bVar22")) () ")"))) () ")")) (compound_statement "{\n          while (iVar6 = bfd_get_reloc_upper_bound(iVar6,local_38), 0 < iVar6) {\n            iVar17 = bfd_generic_link_read_symbols(*(undefined4 *)(local_40 + 0x10));\n            local_4c = local_40;\n            if (iVar17 == 0) goto LAB_000570af;\n            uVar11 = *(undefined4 *)(*(int *)(local_40 + 0x10) + 0x78);\n            puVar7 = (undefined4 *)xmalloc(iVar6);\n            iVar6 = bfd_canonicalize_reloc(*(undefined4 *)(local_40 + 0x10),local_38,puVar7,uVar11);\n            if (iVar6 < 0) {\n              free(puVar7);\n              uVar11 = dcgettext(0,"%X%P: unable to process relocs: %E\n",5);\n              FUN_00034d20(uVar11);\n              return;\n            }\n            puVar18 = puVar7;\n            if (iVar6 != 0) {\n              do {\n                if ((((*(byte *)(**(int **)*puVar18 + 0x10) & 1) == 0) &&\n                    (iVar17 = bfd_link_hash_lookup\n                                        (DAT_001d0400,*(undefined4 *)(**(int **)*puVar18 + 4),0,0,1)\n                    , iVar17 != 0)) && (*(char *)(iVar17 + 0xc) == '\x03')) {\n                  puVar2 = *(undefined4 **)(*(int *)(iVar17 + 0x14) + 0xac);\n                  puVar8 = (undefined4 *)puVar2[0x23];\n                  if (puVar8 == (undefined4 *)0x0) {\n                    puVar8 = puVar2;\n                  }\n                  pcVar12 = (char *)*puVar8;\n                  iVar17 = filename_cmp(**(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c),pcVar12)\n                  ;\n                  if (iVar17 != 0) {\n                    sVar9 = strlen(pcVar12);\n                    pcVar10 = (char *)xmalloc(sVar9 + 1);\n                    strcpy(pcVar10,pcVar12);\n                    **(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c) = pcVar10;\n                  }\n                }\n                puVar18 = puVar18 + 1;\n              } while (puVar7 + iVar6 != puVar18);\n            }\n            free(puVar7);\n            local_38 = (undefined4 *)local_38[3];\n            if (local_38 == (undefined4 *)0x0) break;\n            iVar6 = *(int *)(local_40 + 0x10);\n          }\n        }" ({ "{") (while_statement "while (iVar6 = bfd_get_reloc_upper_bound(iVar6,local_38), 0 < iVar6) {\n            iVar17 = bfd_generic_link_read_symbols(*(undefined4 *)(local_40 + 0x10));\n            local_4c = local_40;\n            if (iVar17 == 0) goto LAB_000570af;\n            uVar11 = *(undefined4 *)(*(int *)(local_40 + 0x10) + 0x78);\n            puVar7 = (undefined4 *)xmalloc(iVar6);\n            iVar6 = bfd_canonicalize_reloc(*(undefined4 *)(local_40 + 0x10),local_38,puVar7,uVar11);\n            if (iVar6 < 0) {\n              free(puVar7);\n              uVar11 = dcgettext(0,"%X%P: unable to process relocs: %E\n",5);\n              FUN_00034d20(uVar11);\n              return;\n            }\n            puVar18 = puVar7;\n            if (iVar6 != 0) {\n              do {\n                if ((((*(byte *)(**(int **)*puVar18 + 0x10) & 1) == 0) &&\n                    (iVar17 = bfd_link_hash_lookup\n                                        (DAT_001d0400,*(undefined4 *)(**(int **)*puVar18 + 4),0,0,1)\n                    , iVar17 != 0)) && (*(char *)(iVar17 + 0xc) == '\x03')) {\n                  puVar2 = *(undefined4 **)(*(int *)(iVar17 + 0x14) + 0xac);\n                  puVar8 = (undefined4 *)puVar2[0x23];\n                  if (puVar8 == (undefined4 *)0x0) {\n                    puVar8 = puVar2;\n                  }\n                  pcVar12 = (char *)*puVar8;\n                  iVar17 = filename_cmp(**(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c),pcVar12)\n                  ;\n                  if (iVar17 != 0) {\n                    sVar9 = strlen(pcVar12);\n                    pcVar10 = (char *)xmalloc(sVar9 + 1);\n                    strcpy(pcVar10,pcVar12);\n                    **(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c) = pcVar10;\n                  }\n                }\n                puVar18 = puVar18 + 1;\n              } while (puVar7 + iVar6 != puVar18);\n            }\n            free(puVar7);\n            local_38 = (undefined4 *)local_38[3];\n            if (local_38 == (undefined4 *)0x0) break;\n            iVar6 = *(int *)(local_40 + 0x10);\n          }" (while "while") (parenthesized_expression "(iVar6 = bfd_get_reloc_upper_bound(iVar6,local_38), 0 < iVar6)" (( "(") (comma_expression "iVar6 = bfd_get_reloc_upper_bound(iVar6,local_38), 0 < iVar6" (assignment_expression "iVar6 = bfd_get_reloc_upper_bound(iVar6,local_38)" (identifier "iVar6") (= "=") (call_expression "bfd_get_reloc_upper_bound(iVar6,local_38)" (identifier "bfd_get_reloc_upper_bound") (argument_list "(iVar6,local_38)" (( "(") (identifier "iVar6") (, ",") (identifier "local_38") () ")")))) (, ",") (binary_expression "0 < iVar6" (number_literal "0") (< "<") (identifier "iVar6"))) () ")")) (compound_statement "{\n            iVar17 = bfd_generic_link_read_symbols(*(undefined4 *)(local_40 + 0x10));\n            local_4c = local_40;\n            if (iVar17 == 0) goto LAB_000570af;\n            uVar11 = *(undefined4 *)(*(int *)(local_40 + 0x10) + 0x78);\n            puVar7 = (undefined4 *)xmalloc(iVar6);\n            iVar6 = bfd_canonicalize_reloc(*(undefined4 *)(local_40 + 0x10),local_38,puVar7,uVar11);\n            if (iVar6 < 0) {\n              free(puVar7);\n              uVar11 = dcgettext(0,"%X%P: unable to process relocs: %E\n",5);\n              FUN_00034d20(uVar11);\n              return;\n            }\n            puVar18 = puVar7;\n            if (iVar6 != 0) {\n              do {\n                if ((((*(byte *)(**(int **)*puVar18 + 0x10) & 1) == 0) &&\n                    (iVar17 = bfd_link_hash_lookup\n                                        (DAT_001d0400,*(undefined4 *)(**(int **)*puVar18 + 4),0,0,1)\n                    , iVar17 != 0)) && (*(char *)(iVar17 + 0xc) == '\x03')) {\n                  puVar2 = *(undefined4 **)(*(int *)(iVar17 + 0x14) + 0xac);\n                  puVar8 = (undefined4 *)puVar2[0x23];\n                  if (puVar8 == (undefined4 *)0x0) {\n                    puVar8 = puVar2;\n                  }\n                  pcVar12 = (char *)*puVar8;\n                  iVar17 = filename_cmp(**(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c),pcVar12)\n                  ;\n                  if (iVar17 != 0) {\n                    sVar9 = strlen(pcVar12);\n                    pcVar10 = (char *)xmalloc(sVar9 + 1);\n                    strcpy(pcVar10,pcVar12);\n                    **(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c) = pcVar10;\n                  }\n                }\n                puVar18 = puVar18 + 1;\n              } while (puVar7 + iVar6 != puVar18);\n            }\n            free(puVar7);\n            local_38 = (undefined4 *)local_38[3];\n            if (local_38 == (undefined4 *)0x0) break;\n            iVar6 = *(int *)(local_40 + 0x10);\n          }" ({ "{") (expression_statement "iVar17 = bfd_generic_link_read_symbols(*(undefined4 *)(local_40 + 0x10));" (assignment_expression "iVar17 = bfd_generic_link_read_symbols(*(undefined4 *)(local_40 + 0x10))" (identifier "iVar17") (= "=") (call_expression "bfd_generic_link_read_symbols(*(undefined4 *)(local_40 + 0x10))" (identifier "bfd_generic_link_read_symbols") (argument_list "(*(undefined4 *)(local_40 + 0x10))" (( "(") (pointer_expression "*(undefined4 *)(local_40 + 0x10)" (* "*") (cast_expression "(undefined4 *)(local_40 + 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_40 + 0x10)" (( "(") (binary_expression "local_40 + 0x10" (identifier "local_40") (+ "+") (number_literal "0x10")) () ")")))) () ")")))) (; ";")) (expression_statement "local_4c = local_40;" (assignment_expression "local_4c = local_40" (identifier "local_4c") (= "=") (identifier "local_40")) (; ";")) (if_statement "if (iVar17 == 0) goto LAB_000570af;" (if "if") (parenthesized_expression "(iVar17 == 0)" (( "(") (binary_expression "iVar17 == 0" (identifier "iVar17") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_000570af;" (goto "goto") (statement_identifier "LAB_000570af") (; ";"))) (expression_statement "uVar11 = *(undefined4 *)(*(int *)(local_40 + 0x10) + 0x78);" (assignment_expression "uVar11 = *(undefined4 *)(*(int *)(local_40 + 0x10) + 0x78)" (identifier "uVar11") (= "=") (pointer_expression "*(undefined4 *)(*(int *)(local_40 + 0x10) + 0x78)" (* "*") (cast_expression "(undefined4 *)(*(int *)(local_40 + 0x10) + 0x78)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(local_40 + 0x10) + 0x78)" (( "(") (binary_expression "*(int *)(local_40 + 0x10) + 0x78" (pointer_expression "*(int *)(local_40 + 0x10)" (* "*") (cast_expression "(int *)(local_40 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_40 + 0x10)" (( "(") (binary_expression "local_40 + 0x10" (identifier "local_40") (+ "+") (number_literal "0x10")) () ")")))) (+ "+") (number_literal "0x78")) () ")"))))) (; ";")) (expression_statement "puVar7 = (undefined4 *)xmalloc(iVar6);" (assignment_expression "puVar7 = (undefined4 *)xmalloc(iVar6)" (identifier "puVar7") (= "=") (cast_expression "(undefined4 *)xmalloc(iVar6)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "xmalloc(iVar6)" (identifier "xmalloc") (argument_list "(iVar6)" (( "(") (identifier "iVar6") () ")"))))) (; ";")) (expression_statement "iVar6 = bfd_canonicalize_reloc(*(undefined4 *)(local_40 + 0x10),local_38,puVar7,uVar11);" (assignment_expression "iVar6 = bfd_canonicalize_reloc(*(undefined4 *)(local_40 + 0x10),local_38,puVar7,uVar11)" (identifier "iVar6") (= "=") (call_expression "bfd_canonicalize_reloc(*(undefined4 *)(local_40 + 0x10),local_38,puVar7,uVar11)" (identifier "bfd_canonicalize_reloc") (argument_list "(*(undefined4 *)(local_40 + 0x10),local_38,puVar7,uVar11)" (( "(") (pointer_expression "*(undefined4 *)(local_40 + 0x10)" (* "*") (cast_expression "(undefined4 *)(local_40 + 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_40 + 0x10)" (( "(") (binary_expression "local_40 + 0x10" (identifier "local_40") (+ "+") (number_literal "0x10")) () ")")))) (, ",") (identifier "local_38") (, ",") (identifier "puVar7") (, ",") (identifier "uVar11") () ")")))) (; ";")) (if_statement "if (iVar6 < 0) {\n              free(puVar7);\n              uVar11 = dcgettext(0,"%X%P: unable to process relocs: %E\n",5);\n              FUN_00034d20(uVar11);\n              return;\n            }" (if "if") (parenthesized_expression "(iVar6 < 0)" (( "(") (binary_expression "iVar6 < 0" (identifier "iVar6") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n              free(puVar7);\n              uVar11 = dcgettext(0,"%X%P: unable to process relocs: %E\n",5);\n              FUN_00034d20(uVar11);\n              return;\n            }" ({ "{") (expression_statement "free(puVar7);" (call_expression "free(puVar7)" (identifier "free") (argument_list "(puVar7)" (( "(") (identifier "puVar7") () ")"))) (; ";")) (expression_statement "uVar11 = dcgettext(0,"%X%P: unable to process relocs: %E\n",5);" (assignment_expression "uVar11 = dcgettext(0,"%X%P: unable to process relocs: %E\n",5)" (identifier "uVar11") (= "=") (call_expression "dcgettext(0,"%X%P: unable to process relocs: %E\n",5)" (identifier "dcgettext") (argument_list "(0,"%X%P: unable to process relocs: %E\n",5)" (( "(") (number_literal "0") (, ",") (string_literal ""%X%P: unable to process relocs: %E\n"" (" """) (string_content "%X%P: unable to process relocs: %E") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_00034d20(uVar11);" (call_expression "FUN_00034d20(uVar11)" (identifier "FUN_00034d20") (argument_list "(uVar11)" (( "(") (identifier "uVar11") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "puVar18 = puVar7;" (assignment_expression "puVar18 = puVar7" (identifier "puVar18") (= "=") (identifier "puVar7")) (; ";")) (if_statement "if (iVar6 != 0) {\n              do {\n                if ((((*(byte *)(**(int **)*puVar18 + 0x10) & 1) == 0) &&\n                    (iVar17 = bfd_link_hash_lookup\n                                        (DAT_001d0400,*(undefined4 *)(**(int **)*puVar18 + 4),0,0,1)\n                    , iVar17 != 0)) && (*(char *)(iVar17 + 0xc) == '\x03')) {\n                  puVar2 = *(undefined4 **)(*(int *)(iVar17 + 0x14) + 0xac);\n                  puVar8 = (undefined4 *)puVar2[0x23];\n                  if (puVar8 == (undefined4 *)0x0) {\n                    puVar8 = puVar2;\n                  }\n                  pcVar12 = (char *)*puVar8;\n                  iVar17 = filename_cmp(**(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c),pcVar12)\n                  ;\n                  if (iVar17 != 0) {\n                    sVar9 = strlen(pcVar12);\n                    pcVar10 = (char *)xmalloc(sVar9 + 1);\n                    strcpy(pcVar10,pcVar12);\n                    **(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c) = pcVar10;\n                  }\n                }\n                puVar18 = puVar18 + 1;\n              } while (puVar7 + iVar6 != puVar18);\n            }" (if "if") (parenthesized_expression "(iVar6 != 0)" (( "(") (binary_expression "iVar6 != 0" (identifier "iVar6") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              do {\n                if ((((*(byte *)(**(int **)*puVar18 + 0x10) & 1) == 0) &&\n                    (iVar17 = bfd_link_hash_lookup\n                                        (DAT_001d0400,*(undefined4 *)(**(int **)*puVar18 + 4),0,0,1)\n                    , iVar17 != 0)) && (*(char *)(iVar17 + 0xc) == '\x03')) {\n                  puVar2 = *(undefined4 **)(*(int *)(iVar17 + 0x14) + 0xac);\n                  puVar8 = (undefined4 *)puVar2[0x23];\n                  if (puVar8 == (undefined4 *)0x0) {\n                    puVar8 = puVar2;\n                  }\n                  pcVar12 = (char *)*puVar8;\n                  iVar17 = filename_cmp(**(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c),pcVar12)\n                  ;\n                  if (iVar17 != 0) {\n                    sVar9 = strlen(pcVar12);\n                    pcVar10 = (char *)xmalloc(sVar9 + 1);\n                    strcpy(pcVar10,pcVar12);\n                    **(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c) = pcVar10;\n                  }\n                }\n                puVar18 = puVar18 + 1;\n              } while (puVar7 + iVar6 != puVar18);\n            }" ({ "{") (do_statement "do {\n                if ((((*(byte *)(**(int **)*puVar18 + 0x10) & 1) == 0) &&\n                    (iVar17 = bfd_link_hash_lookup\n                                        (DAT_001d0400,*(undefined4 *)(**(int **)*puVar18 + 4),0,0,1)\n                    , iVar17 != 0)) && (*(char *)(iVar17 + 0xc) == '\x03')) {\n                  puVar2 = *(undefined4 **)(*(int *)(iVar17 + 0x14) + 0xac);\n                  puVar8 = (undefined4 *)puVar2[0x23];\n                  if (puVar8 == (undefined4 *)0x0) {\n                    puVar8 = puVar2;\n                  }\n                  pcVar12 = (char *)*puVar8;\n                  iVar17 = filename_cmp(**(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c),pcVar12)\n                  ;\n                  if (iVar17 != 0) {\n                    sVar9 = strlen(pcVar12);\n                    pcVar10 = (char *)xmalloc(sVar9 + 1);\n                    strcpy(pcVar10,pcVar12);\n                    **(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c) = pcVar10;\n                  }\n                }\n                puVar18 = puVar18 + 1;\n              } while (puVar7 + iVar6 != puVar18);" (do "do") (compound_statement "{\n                if ((((*(byte *)(**(int **)*puVar18 + 0x10) & 1) == 0) &&\n                    (iVar17 = bfd_link_hash_lookup\n                                        (DAT_001d0400,*(undefined4 *)(**(int **)*puVar18 + 4),0,0,1)\n                    , iVar17 != 0)) && (*(char *)(iVar17 + 0xc) == '\x03')) {\n                  puVar2 = *(undefined4 **)(*(int *)(iVar17 + 0x14) + 0xac);\n                  puVar8 = (undefined4 *)puVar2[0x23];\n                  if (puVar8 == (undefined4 *)0x0) {\n                    puVar8 = puVar2;\n                  }\n                  pcVar12 = (char *)*puVar8;\n                  iVar17 = filename_cmp(**(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c),pcVar12)\n                  ;\n                  if (iVar17 != 0) {\n                    sVar9 = strlen(pcVar12);\n                    pcVar10 = (char *)xmalloc(sVar9 + 1);\n                    strcpy(pcVar10,pcVar12);\n                    **(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c) = pcVar10;\n                  }\n                }\n                puVar18 = puVar18 + 1;\n              }" ({ "{") (if_statement "if ((((*(byte *)(**(int **)*puVar18 + 0x10) & 1) == 0) &&\n                    (iVar17 = bfd_link_hash_lookup\n                                        (DAT_001d0400,*(undefined4 *)(**(int **)*puVar18 + 4),0,0,1)\n                    , iVar17 != 0)) && (*(char *)(iVar17 + 0xc) == '\x03')) {\n                  puVar2 = *(undefined4 **)(*(int *)(iVar17 + 0x14) + 0xac);\n                  puVar8 = (undefined4 *)puVar2[0x23];\n                  if (puVar8 == (undefined4 *)0x0) {\n                    puVar8 = puVar2;\n                  }\n                  pcVar12 = (char *)*puVar8;\n                  iVar17 = filename_cmp(**(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c),pcVar12)\n                  ;\n                  if (iVar17 != 0) {\n                    sVar9 = strlen(pcVar12);\n                    pcVar10 = (char *)xmalloc(sVar9 + 1);\n                    strcpy(pcVar10,pcVar12);\n                    **(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c) = pcVar10;\n                  }\n                }" (if "if") (parenthesized_expression "((((*(byte *)(**(int **)*puVar18 + 0x10) & 1) == 0) &&\n                    (iVar17 = bfd_link_hash_lookup\n                                        (DAT_001d0400,*(undefined4 *)(**(int **)*puVar18 + 4),0,0,1)\n                    , iVar17 != 0)) && (*(char *)(iVar17 + 0xc) == '\x03'))" (( "(") (binary_expression "(((*(byte *)(**(int **)*puVar18 + 0x10) & 1) == 0) &&\n                    (iVar17 = bfd_link_hash_lookup\n                                        (DAT_001d0400,*(undefined4 *)(**(int **)*puVar18 + 4),0,0,1)\n                    , iVar17 != 0)) && (*(char *)(iVar17 + 0xc) == '\x03')" (parenthesized_expression "(((*(byte *)(**(int **)*puVar18 + 0x10) & 1) == 0) &&\n                    (iVar17 = bfd_link_hash_lookup\n                                        (DAT_001d0400,*(undefined4 *)(**(int **)*puVar18 + 4),0,0,1)\n                    , iVar17 != 0))" (( "(") (binary_expression "((*(byte *)(**(int **)*puVar18 + 0x10) & 1) == 0) &&\n                    (iVar17 = bfd_link_hash_lookup\n                                        (DAT_001d0400,*(undefined4 *)(**(int **)*puVar18 + 4),0,0,1)\n                    , iVar17 != 0)" (parenthesized_expression "((*(byte *)(**(int **)*puVar18 + 0x10) & 1) == 0)" (( "(") (binary_expression "(*(byte *)(**(int **)*puVar18 + 0x10) & 1) == 0" (parenthesized_expression "(*(byte *)(**(int **)*puVar18 + 0x10) & 1)" (( "(") (binary_expression "*(byte *)(**(int **)*puVar18 + 0x10) & 1" (pointer_expression "*(byte *)(**(int **)*puVar18 + 0x10)" (* "*") (cast_expression "(byte *)(**(int **)*puVar18 + 0x10)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(**(int **)*puVar18 + 0x10)" (( "(") (binary_expression "**(int **)*puVar18 + 0x10" (pointer_expression "**(int **)*puVar18" (* "*") (pointer_expression "*(int **)*puVar18" (* "*") (cast_expression "(int **)*puVar18" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (pointer_expression "*puVar18" (* "*") (identifier "puVar18"))))) (+ "+") (number_literal "0x10")) () ")")))) (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(iVar17 = bfd_link_hash_lookup\n                                        (DAT_001d0400,*(undefined4 *)(**(int **)*puVar18 + 4),0,0,1)\n                    , iVar17 != 0)" (( "(") (comma_expression "iVar17 = bfd_link_hash_lookup\n                                        (DAT_001d0400,*(undefined4 *)(**(int **)*puVar18 + 4),0,0,1)\n                    , iVar17 != 0" (assignment_expression "iVar17 = bfd_link_hash_lookup\n                                        (DAT_001d0400,*(undefined4 *)(**(int **)*puVar18 + 4),0,0,1)" (identifier "iVar17") (= "=") (call_expression "bfd_link_hash_lookup\n                                        (DAT_001d0400,*(undefined4 *)(**(int **)*puVar18 + 4),0,0,1)" (identifier "bfd_link_hash_lookup") (argument_list "(DAT_001d0400,*(undefined4 *)(**(int **)*puVar18 + 4),0,0,1)" (( "(") (identifier "DAT_001d0400") (, ",") (pointer_expression "*(undefined4 *)(**(int **)*puVar18 + 4)" (* "*") (cast_expression "(undefined4 *)(**(int **)*puVar18 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(**(int **)*puVar18 + 4)" (( "(") (binary_expression "**(int **)*puVar18 + 4" (pointer_expression "**(int **)*puVar18" (* "*") (pointer_expression "*(int **)*puVar18" (* "*") (cast_expression "(int **)*puVar18" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (pointer_expression "*puVar18" (* "*") (identifier "puVar18"))))) (+ "+") (number_literal "4")) () ")")))) (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "1") () ")")))) (, ",") (binary_expression "iVar17 != 0" (identifier "iVar17") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(*(char *)(iVar17 + 0xc) == '\x03')" (( "(") (binary_expression "*(char *)(iVar17 + 0xc) == '\x03'" (pointer_expression "*(char *)(iVar17 + 0xc)" (* "*") (cast_expression "(char *)(iVar17 + 0xc)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar17 + 0xc)" (( "(") (binary_expression "iVar17 + 0xc" (identifier "iVar17") (+ "+") (number_literal "0xc")) () ")")))) (== "==") (char_literal "'\x03'" (' "'") (escape_sequence "\x03") (' "'"))) () ")"))) () ")")) (compound_statement "{\n                  puVar2 = *(undefined4 **)(*(int *)(iVar17 + 0x14) + 0xac);\n                  puVar8 = (undefined4 *)puVar2[0x23];\n                  if (puVar8 == (undefined4 *)0x0) {\n                    puVar8 = puVar2;\n                  }\n                  pcVar12 = (char *)*puVar8;\n                  iVar17 = filename_cmp(**(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c),pcVar12)\n                  ;\n                  if (iVar17 != 0) {\n                    sVar9 = strlen(pcVar12);\n                    pcVar10 = (char *)xmalloc(sVar9 + 1);\n                    strcpy(pcVar10,pcVar12);\n                    **(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c) = pcVar10;\n                  }\n                }" ({ "{") (expression_statement "puVar2 = *(undefined4 **)(*(int *)(iVar17 + 0x14) + 0xac);" (assignment_expression "puVar2 = *(undefined4 **)(*(int *)(iVar17 + 0x14) + 0xac)" (identifier "puVar2") (= "=") (pointer_expression "*(undefined4 **)(*(int *)(iVar17 + 0x14) + 0xac)" (* "*") (cast_expression "(undefined4 **)(*(int *)(iVar17 + 0x14) + 0xac)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(iVar17 + 0x14) + 0xac)" (( "(") (binary_expression "*(int *)(iVar17 + 0x14) + 0xac" (pointer_expression "*(int *)(iVar17 + 0x14)" (* "*") (cast_expression "(int *)(iVar17 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar17 + 0x14)" (( "(") (binary_expression "iVar17 + 0x14" (identifier "iVar17") (+ "+") (number_literal "0x14")) () ")")))) (+ "+") (number_literal "0xac")) () ")"))))) (; ";")) (expression_statement "puVar8 = (undefined4 *)puVar2[0x23];" (assignment_expression "puVar8 = (undefined4 *)puVar2[0x23]" (identifier "puVar8") (= "=") (cast_expression "(undefined4 *)puVar2[0x23]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar2[0x23]" (identifier "puVar2") ([ "[") (number_literal "0x23") (] "]")))) (; ";")) (if_statement "if (puVar8 == (undefined4 *)0x0) {\n                    puVar8 = puVar2;\n                  }" (if "if") (parenthesized_expression "(puVar8 == (undefined4 *)0x0)" (( "(") (binary_expression "puVar8 == (undefined4 *)0x0" (identifier "puVar8") (== "==") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                    puVar8 = puVar2;\n                  }" ({ "{") (expression_statement "puVar8 = puVar2;" (assignment_expression "puVar8 = puVar2" (identifier "puVar8") (= "=") (identifier "puVar2")) (; ";")) (} "}"))) (expression_statement "pcVar12 = (char *)*puVar8;" (assignment_expression "pcVar12 = (char *)*puVar8" (identifier "pcVar12") (= "=") (cast_expression "(char *)*puVar8" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar8" (* "*") (identifier "puVar8")))) (; ";")) (expression_statement "iVar17 = filename_cmp(**(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c),pcVar12)\n                  ;" (assignment_expression "iVar17 = filename_cmp(**(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c),pcVar12)" (identifier "iVar17") (= "=") (call_expression "filename_cmp(**(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c),pcVar12)" (identifier "filename_cmp") (argument_list "(**(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c),pcVar12)" (( "(") (pointer_expression "**(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c)" (* "*") (pointer_expression "*(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c)" (* "*") (cast_expression "(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(local_40 + 0x10) + 0x8c)" (( "(") (binary_expression "*(int *)(local_40 + 0x10) + 0x8c" (pointer_expression "*(int *)(local_40 + 0x10)" (* "*") (cast_expression "(int *)(local_40 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_40 + 0x10)" (( "(") (binary_expression "local_40 + 0x10" (identifier "local_40") (+ "+") (number_literal "0x10")) () ")")))) (+ "+") (number_literal "0x8c")) () ")"))))) (, ",") (identifier "pcVar12") () ")")))) (; ";")) (if_statement "if (iVar17 != 0) {\n                    sVar9 = strlen(pcVar12);\n                    pcVar10 = (char *)xmalloc(sVar9 + 1);\n                    strcpy(pcVar10,pcVar12);\n                    **(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c) = pcVar10;\n                  }" (if "if") (parenthesized_expression "(iVar17 != 0)" (( "(") (binary_expression "iVar17 != 0" (identifier "iVar17") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                    sVar9 = strlen(pcVar12);\n                    pcVar10 = (char *)xmalloc(sVar9 + 1);\n                    strcpy(pcVar10,pcVar12);\n                    **(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c) = pcVar10;\n                  }" ({ "{") (expression_statement "sVar9 = strlen(pcVar12);" (assignment_expression "sVar9 = strlen(pcVar12)" (identifier "sVar9") (= "=") (call_expression "strlen(pcVar12)" (identifier "strlen") (argument_list "(pcVar12)" (( "(") (identifier "pcVar12") () ")")))) (; ";")) (expression_statement "pcVar10 = (char *)xmalloc(sVar9 + 1);" (assignment_expression "pcVar10 = (char *)xmalloc(sVar9 + 1)" (identifier "pcVar10") (= "=") (cast_expression "(char *)xmalloc(sVar9 + 1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "xmalloc(sVar9 + 1)" (identifier "xmalloc") (argument_list "(sVar9 + 1)" (( "(") (binary_expression "sVar9 + 1" (identifier "sVar9") (+ "+") (number_literal "1")) () ")"))))) (; ";")) (expression_statement "strcpy(pcVar10,pcVar12);" (call_expression "strcpy(pcVar10,pcVar12)" (identifier "strcpy") (argument_list "(pcVar10,pcVar12)" (( "(") (identifier "pcVar10") (, ",") (identifier "pcVar12") () ")"))) (; ";")) (expression_statement "**(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c) = pcVar10;" (assignment_expression "**(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c) = pcVar10" (pointer_expression "**(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c)" (* "*") (pointer_expression "*(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c)" (* "*") (cast_expression "(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(local_40 + 0x10) + 0x8c)" (( "(") (binary_expression "*(int *)(local_40 + 0x10) + 0x8c" (pointer_expression "*(int *)(local_40 + 0x10)" (* "*") (cast_expression "(int *)(local_40 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_40 + 0x10)" (( "(") (binary_expression "local_40 + 0x10" (identifier "local_40") (+ "+") (number_literal "0x10")) () ")")))) (+ "+") (number_literal "0x8c")) () ")"))))) (= "=") (identifier "pcVar10")) (; ";")) (} "}"))) (} "}"))) (expression_statement "puVar18 = puVar18 + 1;" (assignment_expression "puVar18 = puVar18 + 1" (identifier "puVar18") (= "=") (binary_expression "puVar18 + 1" (identifier "puVar18") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar7 + iVar6 != puVar18)" (( "(") (binary_expression "puVar7 + iVar6 != puVar18" (binary_expression "puVar7 + iVar6" (identifier "puVar7") (+ "+") (identifier "iVar6")) (!= "!=") (identifier "puVar18")) () ")")) (; ";")) (} "}"))) (expression_statement "free(puVar7);" (call_expression "free(puVar7)" (identifier "free") (argument_list "(puVar7)" (( "(") (identifier "puVar7") () ")"))) (; ";")) (expression_statement "local_38 = (undefined4 *)local_38[3];" (assignment_expression "local_38 = (undefined4 *)local_38[3]" (identifier "local_38") (= "=") (cast_expression "(undefined4 *)local_38[3]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "local_38[3]" (identifier "local_38") ([ "[") (number_literal "3") (] "]")))) (; ";")) (if_statement "if (local_38 == (undefined4 *)0x0) break;" (if "if") (parenthesized_expression "(local_38 == (undefined4 *)0x0)" (( "(") (binary_expression "local_38 == (undefined4 *)0x0" (identifier "local_38") (== "==") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar6 = *(int *)(local_40 + 0x10);" (assignment_expression "iVar6 = *(int *)(local_40 + 0x10)" (identifier "iVar6") (= "=") (pointer_expression "*(int *)(local_40 + 0x10)" (* "*") (cast_expression "(int *)(local_40 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_40 + 0x10)" (( "(") (binary_expression "local_40 + 0x10" (identifier "local_40") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (} "}"))) (} "}"))) (} "}"))) (expression_statement "local_40 = *(int *)(local_40 + 0x18);" (assignment_expression "local_40 = *(int *)(local_40 + 0x18)" (identifier "local_40") (= "=") (pointer_expression "*(int *)(local_40 + 0x18)" (* "*") (cast_expression "(int *)(local_40 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_40 + 0x18)" (( "(") (binary_expression "local_40 + 0x18" (identifier "local_40") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(local_40 != 0)" (( "(") (binary_expression "local_40 != 0" (identifier "local_40") (!= "!=") (number_literal "0")) () ")")) (; ";")) (expression_statement "local_50 = DAT_001cf6bc;" (assignment_expression "local_50 = DAT_001cf6bc" (identifier "local_50") (= "=") (identifier "DAT_001cf6bc")) (; ";")) (if_statement "if (DAT_001cf6bc != 0) {\n      bVar16 = false;\n      local_40 = 0;\n      do {\n        iVar6 = (*(undefined4 **)(local_50 + 0x10))[0x23];\n        if (iVar6 != 0) {\n          pcVar12 = strrchr((char *)**(undefined4 **)(local_50 + 0x10),0x2e);\n          iVar17 = local_50;\n          if (iVar6 == local_40) {\n            if (!bVar16) goto LAB_00056b08;\n          }\n          else {\n            while ((iVar15 = local_50, local_40 = iVar6, pcVar12 == (char *)0x0 ||\n                   (iVar13 = filename_cmp(pcVar12,".dll"), iVar13 != 0))) {\n              iVar17 = *(int *)(iVar17 + 0x18);\n              if (iVar17 == 0) {\n                local_50 = *(int *)(local_50 + 0x18);\n                bVar16 = false;\n                goto joined_r0x00056b15;\n              }\n              if (iVar6 != (*(undefined4 **)(iVar17 + 0x10))[0x23]) break;\n              pcVar12 = strrchr((char *)**(undefined4 **)(iVar17 + 0x10),0x2e);\n            }\n            do {\n              if (iVar6 != (*(undefined4 **)(iVar15 + 0x10))[0x23]) break;\n              pcVar12 = (char *)**(undefined4 **)(iVar15 + 0x10);\n              pcVar10 = strrchr(pcVar12,0x2e);\n              if (pcVar10 == (char *)0x0) {\nLAB_00056d20:\n                iVar13 = filename_cmp(**(undefined4 **)(iVar17 + 0x10),pcVar12);\n                if (iVar13 != 0) {\n                  bVar16 = false;\n                  goto LAB_00056b08;\n                }\n              }\n              else {\n                iVar13 = filename_cmp(pcVar10,&DAT_00192ed1);\n                if (iVar13 != 0) {\n                  pcVar12 = (char *)**(undefined4 **)(iVar15 + 0x10);\n                  goto LAB_00056d20;\n                }\n              }\n              piVar20 = (int *)(iVar15 + 0x18);\n              iVar15 = *piVar20;\n            } while (*piVar20 != 0);\n            pcVar12 = strrchr((char *)**(undefined4 **)(local_50 + 0x10),0x2e);\n          }\n          bVar16 = true;\n          iVar6 = filename_cmp(pcVar12,".dll");\n          if (iVar6 == 0) {\n            puVar7 = (undefined4 *)(*(undefined4 **)(local_50 + 0x10))[0x18];\n            if (puVar7 == (undefined4 *)0x0) {\n              iVar6 = 99;\n            }\n            else {\n              iVar17 = 0;\n              bVar24 = true;\n              bVar16 = false;\n              do {\n                bVar22 = false;\n                iVar6 = 9;\n                pbVar19 = (byte *)*puVar7;\n                pbVar21 = (byte *)".idata$2";\n                do {\n                  if (iVar6 == 0) break;\n                  iVar6 = iVar6 + -1;\n                  bVar22 = *pbVar19 < *pbVar21;\n                  bVar24 = *pbVar19 == *pbVar21;\n                  pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n                  pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n                } while (bVar24);\n                if ((!bVar22 && !bVar24) == bVar22) {\n                  bVar16 = true;\n                }\n                iVar17 = iVar17 + puVar7[0x19];\n                puVar7 = (undefined4 *)puVar7[3];\n                bVar24 = puVar7 == (undefined4 *)0x0;\n              } while (!bVar24);\n              iVar6 = 0x61;\n              if (!bVar16) {\n                iVar6 = (iVar17 < 1) + 0x62;\n              }\n            }\n            sVar9 = strlen((char *)**(undefined4 **)(local_50 + 0x10));\n            pcVar12 = (char *)xmalloc(sVar9 + 3);\n            sprintf(pcVar12,"%s.%c",**(undefined4 **)(local_50 + 0x10),iVar6);\n            **(undefined4 **)(local_50 + 0x10) = pcVar12;\n            sVar9 = strlen(*(char **)(local_50 + 8));\n            pcVar12 = (char *)xmalloc(sVar9 + 3);\n            sprintf(pcVar12,"%s.%c",*(undefined4 *)(local_50 + 8),iVar6);\n            *(char **)(local_50 + 8) = pcVar12;\n            bVar16 = true;\n          }\n        }\nLAB_00056b08:\n        local_50 = *(int *)(local_50 + 0x18);\njoined_r0x00056b15:\n      } while (local_50 != 0);\n      local_4c = DAT_001cf6bc;\n      if (DAT_001cf6bc != 0) {\n        do {\n          iVar6 = *(int *)(local_4c + 0x10);\n          if ((*(int *)(iVar6 + 0x8c) != 0) &&\n             (puVar7 = *(undefined4 **)(iVar6 + 0x60), puVar7 != (undefined4 *)0x0)) {\n            puVar18 = (undefined4 *)0x0;\n            bVar16 = false;\n            bVar24 = true;\n            do {\n              bVar22 = false;\n              iVar17 = 7;\n              pbVar19 = (byte *)*puVar7;\n              pbVar21 = (byte *)".idata$";\n              do {\n                if (iVar17 == 0) break;\n                iVar17 = iVar17 + -1;\n                bVar22 = *pbVar19 < *pbVar21;\n                bVar24 = *pbVar19 == *pbVar21;\n                pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n                pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n              } while (bVar24);\n              if ((!bVar22 && !bVar24) == bVar22) {\n                bVar16 = true;\n              }\n              if (((*(byte *)(puVar7 + 5) & 0x10) != 0) && (puVar7[0x19] != 0)) {\n                puVar18 = puVar7;\n              }\n              puVar7 = (undefined4 *)puVar7[3];\n              bVar24 = puVar7 == (undefined4 *)0x0;\n            } while (!bVar24);\n            if ((puVar18 != (undefined4 *)0x0) && (bVar16)) {\n              iVar6 = bfd_generic_link_read_symbols(iVar6);\n              if (iVar6 == 0) {\nLAB_000570af:\n                uVar11 = *(undefined4 *)(local_4c + 0x10);\n                uVar14 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n                FUN_00034d20(uVar14,uVar11);\n                return;\n              }\n              piVar20 = *(int **)(*(int *)(local_4c + 0x10) + 0x78);\n              iVar6 = *(int *)(*(int *)(local_4c + 0x10) + 0x7c);\n              if (0 < iVar6) {\n                piVar1 = piVar20 + iVar6;\n                do {\n                  if ((((*(int *)(*(int *)(*piVar20 + 0x14) + 4) == puVar18[1]) &&\n                       (iVar6 = bfd_link_hash_lookup\n                                          (DAT_001d0400,*(undefined4 *)(*piVar20 + 4),0,0,1),\n                       iVar6 != 0)) && (*(char *)(iVar6 + 0xc) == '\x03')) &&\n                     ((*(int *)(iVar6 + 0x10) == 0 && (*(int *)(DAT_001d0400 + 0x20) != iVar6)))) {\n                    puVar18[5] = puVar18[5] | 0x8000;\n                  }\n                  piVar20 = piVar20 + 1;\n                } while (piVar1 != piVar20);\n              }\n            }\n          }\n          local_4c = *(int *)(local_4c + 0x18);\n        } while (local_4c != 0);\n      }\n    }\n  }" (if "if") (parenthesized_expression "(DAT_001cf6bc != 0)" (( "(") (binary_expression "DAT_001cf6bc != 0" (identifier "DAT_001cf6bc") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      bVar16 = false;\n      local_40 = 0;\n      do {\n        iVar6 = (*(undefined4 **)(local_50 + 0x10))[0x23];\n        if (iVar6 != 0) {\n          pcVar12 = strrchr((char *)**(undefined4 **)(local_50 + 0x10),0x2e);\n          iVar17 = local_50;\n          if (iVar6 == local_40) {\n            if (!bVar16) goto LAB_00056b08;\n          }\n          else {\n            while ((iVar15 = local_50, local_40 = iVar6, pcVar12 == (char *)0x0 ||\n                   (iVar13 = filename_cmp(pcVar12,".dll"), iVar13 != 0))) {\n              iVar17 = *(int *)(iVar17 + 0x18);\n              if (iVar17 == 0) {\n                local_50 = *(int *)(local_50 + 0x18);\n                bVar16 = false;\n                goto joined_r0x00056b15;\n              }\n              if (iVar6 != (*(undefined4 **)(iVar17 + 0x10))[0x23]) break;\n              pcVar12 = strrchr((char *)**(undefined4 **)(iVar17 + 0x10),0x2e);\n            }\n            do {\n              if (iVar6 != (*(undefined4 **)(iVar15 + 0x10))[0x23]) break;\n              pcVar12 = (char *)**(undefined4 **)(iVar15 + 0x10);\n              pcVar10 = strrchr(pcVar12,0x2e);\n              if (pcVar10 == (char *)0x0) {\nLAB_00056d20:\n                iVar13 = filename_cmp(**(undefined4 **)(iVar17 + 0x10),pcVar12);\n                if (iVar13 != 0) {\n                  bVar16 = false;\n                  goto LAB_00056b08;\n                }\n              }\n              else {\n                iVar13 = filename_cmp(pcVar10,&DAT_00192ed1);\n                if (iVar13 != 0) {\n                  pcVar12 = (char *)**(undefined4 **)(iVar15 + 0x10);\n                  goto LAB_00056d20;\n                }\n              }\n              piVar20 = (int *)(iVar15 + 0x18);\n              iVar15 = *piVar20;\n            } while (*piVar20 != 0);\n            pcVar12 = strrchr((char *)**(undefined4 **)(local_50 + 0x10),0x2e);\n          }\n          bVar16 = true;\n          iVar6 = filename_cmp(pcVar12,".dll");\n          if (iVar6 == 0) {\n            puVar7 = (undefined4 *)(*(undefined4 **)(local_50 + 0x10))[0x18];\n            if (puVar7 == (undefined4 *)0x0) {\n              iVar6 = 99;\n            }\n            else {\n              iVar17 = 0;\n              bVar24 = true;\n              bVar16 = false;\n              do {\n                bVar22 = false;\n                iVar6 = 9;\n                pbVar19 = (byte *)*puVar7;\n                pbVar21 = (byte *)".idata$2";\n                do {\n                  if (iVar6 == 0) break;\n                  iVar6 = iVar6 + -1;\n                  bVar22 = *pbVar19 < *pbVar21;\n                  bVar24 = *pbVar19 == *pbVar21;\n                  pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n                  pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n                } while (bVar24);\n                if ((!bVar22 && !bVar24) == bVar22) {\n                  bVar16 = true;\n                }\n                iVar17 = iVar17 + puVar7[0x19];\n                puVar7 = (undefined4 *)puVar7[3];\n                bVar24 = puVar7 == (undefined4 *)0x0;\n              } while (!bVar24);\n              iVar6 = 0x61;\n              if (!bVar16) {\n                iVar6 = (iVar17 < 1) + 0x62;\n              }\n            }\n            sVar9 = strlen((char *)**(undefined4 **)(local_50 + 0x10));\n            pcVar12 = (char *)xmalloc(sVar9 + 3);\n            sprintf(pcVar12,"%s.%c",**(undefined4 **)(local_50 + 0x10),iVar6);\n            **(undefined4 **)(local_50 + 0x10) = pcVar12;\n            sVar9 = strlen(*(char **)(local_50 + 8));\n            pcVar12 = (char *)xmalloc(sVar9 + 3);\n            sprintf(pcVar12,"%s.%c",*(undefined4 *)(local_50 + 8),iVar6);\n            *(char **)(local_50 + 8) = pcVar12;\n            bVar16 = true;\n          }\n        }\nLAB_00056b08:\n        local_50 = *(int *)(local_50 + 0x18);\njoined_r0x00056b15:\n      } while (local_50 != 0);\n      local_4c = DAT_001cf6bc;\n      if (DAT_001cf6bc != 0) {\n        do {\n          iVar6 = *(int *)(local_4c + 0x10);\n          if ((*(int *)(iVar6 + 0x8c) != 0) &&\n             (puVar7 = *(undefined4 **)(iVar6 + 0x60), puVar7 != (undefined4 *)0x0)) {\n            puVar18 = (undefined4 *)0x0;\n            bVar16 = false;\n            bVar24 = true;\n            do {\n              bVar22 = false;\n              iVar17 = 7;\n              pbVar19 = (byte *)*puVar7;\n              pbVar21 = (byte *)".idata$";\n              do {\n                if (iVar17 == 0) break;\n                iVar17 = iVar17 + -1;\n                bVar22 = *pbVar19 < *pbVar21;\n                bVar24 = *pbVar19 == *pbVar21;\n                pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n                pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n              } while (bVar24);\n              if ((!bVar22 && !bVar24) == bVar22) {\n                bVar16 = true;\n              }\n              if (((*(byte *)(puVar7 + 5) & 0x10) != 0) && (puVar7[0x19] != 0)) {\n                puVar18 = puVar7;\n              }\n              puVar7 = (undefined4 *)puVar7[3];\n              bVar24 = puVar7 == (undefined4 *)0x0;\n            } while (!bVar24);\n            if ((puVar18 != (undefined4 *)0x0) && (bVar16)) {\n              iVar6 = bfd_generic_link_read_symbols(iVar6);\n              if (iVar6 == 0) {\nLAB_000570af:\n                uVar11 = *(undefined4 *)(local_4c + 0x10);\n                uVar14 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n                FUN_00034d20(uVar14,uVar11);\n                return;\n              }\n              piVar20 = *(int **)(*(int *)(local_4c + 0x10) + 0x78);\n              iVar6 = *(int *)(*(int *)(local_4c + 0x10) + 0x7c);\n              if (0 < iVar6) {\n                piVar1 = piVar20 + iVar6;\n                do {\n                  if ((((*(int *)(*(int *)(*piVar20 + 0x14) + 4) == puVar18[1]) &&\n                       (iVar6 = bfd_link_hash_lookup\n                                          (DAT_001d0400,*(undefined4 *)(*piVar20 + 4),0,0,1),\n                       iVar6 != 0)) && (*(char *)(iVar6 + 0xc) == '\x03')) &&\n                     ((*(int *)(iVar6 + 0x10) == 0 && (*(int *)(DAT_001d0400 + 0x20) != iVar6)))) {\n                    puVar18[5] = puVar18[5] | 0x8000;\n                  }\n                  piVar20 = piVar20 + 1;\n                } while (piVar1 != piVar20);\n              }\n            }\n          }\n          local_4c = *(int *)(local_4c + 0x18);\n        } while (local_4c != 0);\n      }\n    }\n  }" ({ "{") (expression_statement "bVar16 = false;" (assignment_expression "bVar16 = false" (identifier "bVar16") (= "=") (false "false")) (; ";")) (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" (identifier "local_40") (= "=") (number_literal "0")) (; ";")) (ERROR "do {\n        iVar6 = (*(undefined4 **)(local_50 + 0x10))[0x23];\n        if (iVar6 != 0) {\n          pcVar12 = strrchr((char *)**(undefined4 **)(local_50 + 0x10),0x2e);\n          iVar17 = local_50;\n          if (iVar6 == local_40) {\n            if (!bVar16) goto LAB_00056b08;\n          }\n          else {\n            while ((iVar15 = local_50, local_40 = iVar6, pcVar12 == (char *)0x0 ||\n                   (iVar13 = filename_cmp(pcVar12,".dll"), iVar13 != 0))) {\n              iVar17 = *(int *)(iVar17 + 0x18);\n              if (iVar17 == 0) {\n                local_50 = *(int *)(local_50 + 0x18);\n                bVar16 = false;\n                goto joined_r0x00056b15;\n              }\n              if (iVar6 != (*(undefined4 **)(iVar17 + 0x10))[0x23]) break;\n              pcVar12 = strrchr((char *)**(undefined4 **)(iVar17 + 0x10),0x2e);\n            }\n            do {\n              if (iVar6 != (*(undefined4 **)(iVar15 + 0x10))[0x23]) break;\n              pcVar12 = (char *)**(undefined4 **)(iVar15 + 0x10);\n              pcVar10 = strrchr(pcVar12,0x2e);\n              if (pcVar10 == (char *)0x0) {\nLAB_00056d20:\n                iVar13 = filename_cmp(**(undefined4 **)(iVar17 + 0x10),pcVar12);\n                if (iVar13 != 0) {\n                  bVar16 = false;\n                  goto LAB_00056b08;\n                }\n              }\n              else {\n                iVar13 = filename_cmp(pcVar10,&DAT_00192ed1);\n                if (iVar13 != 0) {\n                  pcVar12 = (char *)**(undefined4 **)(iVar15 + 0x10);\n                  goto LAB_00056d20;\n                }\n              }\n              piVar20 = (int *)(iVar15 + 0x18);\n              iVar15 = *piVar20;\n            } while (*piVar20 != 0);\n            pcVar12 = strrchr((char *)**(undefined4 **)(local_50 + 0x10),0x2e);\n          }\n          bVar16 = true;\n          iVar6 = filename_cmp(pcVar12,".dll");\n          if (iVar6 == 0) {\n            puVar7 = (undefined4 *)(*(undefined4 **)(local_50 + 0x10))[0x18];\n            if (puVar7 == (undefined4 *)0x0) {\n              iVar6 = 99;\n            }\n            else {\n              iVar17 = 0;\n              bVar24 = true;\n              bVar16 = false;\n              do {\n                bVar22 = false;\n                iVar6 = 9;\n                pbVar19 = (byte *)*puVar7;\n                pbVar21 = (byte *)".idata$2";\n                do {\n                  if (iVar6 == 0) break;\n                  iVar6 = iVar6 + -1;\n                  bVar22 = *pbVar19 < *pbVar21;\n                  bVar24 = *pbVar19 == *pbVar21;\n                  pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n                  pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n                } while (bVar24);\n                if ((!bVar22 && !bVar24) == bVar22) {\n                  bVar16 = true;\n                }\n                iVar17 = iVar17 + puVar7[0x19];\n                puVar7 = (undefined4 *)puVar7[3];\n                bVar24 = puVar7 == (undefined4 *)0x0;\n              } while (!bVar24);\n              iVar6 = 0x61;\n              if (!bVar16) {\n                iVar6 = (iVar17 < 1) + 0x62;\n              }\n            }\n            sVar9 = strlen((char *)**(undefined4 **)(local_50 + 0x10));\n            pcVar12 = (char *)xmalloc(sVar9 + 3);\n            sprintf(pcVar12,"%s.%c",**(undefined4 **)(local_50 + 0x10),iVar6);\n            **(undefined4 **)(local_50 + 0x10) = pcVar12;\n            sVar9 = strlen(*(char **)(local_50 + 8));\n            pcVar12 = (char *)xmalloc(sVar9 + 3);\n            sprintf(pcVar12,"%s.%c",*(undefined4 *)(local_50 + 8),iVar6);\n            *(char **)(local_50 + 8) = pcVar12;\n            bVar16 = true;\n          }\n        }\nLAB_00056b08:\n        local_50 = *(int *)(local_50 + 0x18);\njoined_r0x00056b15:\n      } while (local_50 != 0);\n      local_4c = DAT_001cf6bc;\n      if (DAT_001cf6bc != 0) {\n        do {\n          iVar6 = *(int *)(local_4c + 0x10);\n          if ((*(int *)(iVar6 + 0x8c) != 0) &&\n             (puVar7 = *(undefined4 **)(iVar6 + 0x60), puVar7 != (undefined4 *)0x0)) {\n            puVar18 = (undefined4 *)0x0;\n            bVar16 = false;\n            bVar24 = true;\n            do {\n              bVar22 = false;\n              iVar17 = 7;\n              pbVar19 = (byte *)*puVar7;\n              pbVar21 = (byte *)".idata$";\n              do {\n                if (iVar17 == 0) break;\n                iVar17 = iVar17 + -1;\n                bVar22 = *pbVar19 < *pbVar21;\n                bVar24 = *pbVar19 == *pbVar21;\n                pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n                pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n              } while (bVar24);\n              if ((!bVar22 && !bVar24) == bVar22) {\n                bVar16 = true;\n              }\n              if (((*(byte *)(puVar7 + 5) & 0x10) != 0) && (puVar7[0x19] != 0)) {\n                puVar18 = puVar7;\n              }\n              puVar7 = (undefined4 *)puVar7[3];\n              bVar24 = puVar7 == (undefined4 *)0x0;\n            } while (!bVar24);\n            if ((puVar18 != (undefined4 *)0x0) && (bVar16)) {\n              iVar6 = bfd_generic_link_read_symbols(iVar6);\n              if (iVar6 == 0) {\nLAB_000570af:\n                uVar11 = *(undefined4 *)(local_4c + 0x10);\n                uVar14 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n                FUN_00034d20(uVar14,uVar11);\n                return;\n              }\n              piVar20 = *(int **)(*(int *)(local_4c + 0x10) + 0x78);\n              iVar6 = *(int *)(*(int *)(local_4c + 0x10) + 0x7c);\n              if (0 < iVar6) {\n                piVar1 = piVar20 + iVar6;\n                do {\n                  if ((((*(int *)(*(int *)(*piVar20 + 0x14) + 4) == puVar18[1]) &&\n                       (iVar6 = bfd_link_hash_lookup\n                                          (DAT_001d0400,*(undefined4 *)(*piVar20 + 4),0,0,1),\n                       iVar6 != 0)) && (*(char *)(iVar6 + 0xc) == '\x03')) &&\n                     ((*(int *)(iVar6 + 0x10) == 0 && (*(int *)(DAT_001d0400 + 0x20) != iVar6)))) {\n                    puVar18[5] = puVar18[5] | 0x8000;\n                  }\n                  piVar20 = piVar20 + 1;\n                } while (piVar1 != piVar20);\n              }\n            }\n          }\n          local_4c = *(int *)(local_4c + 0x18);\n        } while (local_4c != 0);\n      }\n    }" (do "do") (compound_statement "{\n        iVar6 = (*(undefined4 **)(local_50 + 0x10))[0x23];\n        if (iVar6 != 0) {\n          pcVar12 = strrchr((char *)**(undefined4 **)(local_50 + 0x10),0x2e);\n          iVar17 = local_50;\n          if (iVar6 == local_40) {\n            if (!bVar16) goto LAB_00056b08;\n          }\n          else {\n            while ((iVar15 = local_50, local_40 = iVar6, pcVar12 == (char *)0x0 ||\n                   (iVar13 = filename_cmp(pcVar12,".dll"), iVar13 != 0))) {\n              iVar17 = *(int *)(iVar17 + 0x18);\n              if (iVar17 == 0) {\n                local_50 = *(int *)(local_50 + 0x18);\n                bVar16 = false;\n                goto joined_r0x00056b15;\n              }\n              if (iVar6 != (*(undefined4 **)(iVar17 + 0x10))[0x23]) break;\n              pcVar12 = strrchr((char *)**(undefined4 **)(iVar17 + 0x10),0x2e);\n            }\n            do {\n              if (iVar6 != (*(undefined4 **)(iVar15 + 0x10))[0x23]) break;\n              pcVar12 = (char *)**(undefined4 **)(iVar15 + 0x10);\n              pcVar10 = strrchr(pcVar12,0x2e);\n              if (pcVar10 == (char *)0x0) {\nLAB_00056d20:\n                iVar13 = filename_cmp(**(undefined4 **)(iVar17 + 0x10),pcVar12);\n                if (iVar13 != 0) {\n                  bVar16 = false;\n                  goto LAB_00056b08;\n                }\n              }\n              else {\n                iVar13 = filename_cmp(pcVar10,&DAT_00192ed1);\n                if (iVar13 != 0) {\n                  pcVar12 = (char *)**(undefined4 **)(iVar15 + 0x10);\n                  goto LAB_00056d20;\n                }\n              }\n              piVar20 = (int *)(iVar15 + 0x18);\n              iVar15 = *piVar20;\n            } while (*piVar20 != 0);\n            pcVar12 = strrchr((char *)**(undefined4 **)(local_50 + 0x10),0x2e);\n          }\n          bVar16 = true;\n          iVar6 = filename_cmp(pcVar12,".dll");\n          if (iVar6 == 0) {\n            puVar7 = (undefined4 *)(*(undefined4 **)(local_50 + 0x10))[0x18];\n            if (puVar7 == (undefined4 *)0x0) {\n              iVar6 = 99;\n            }\n            else {\n              iVar17 = 0;\n              bVar24 = true;\n              bVar16 = false;\n              do {\n                bVar22 = false;\n                iVar6 = 9;\n                pbVar19 = (byte *)*puVar7;\n                pbVar21 = (byte *)".idata$2";\n                do {\n                  if (iVar6 == 0) break;\n                  iVar6 = iVar6 + -1;\n                  bVar22 = *pbVar19 < *pbVar21;\n                  bVar24 = *pbVar19 == *pbVar21;\n                  pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n                  pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n                } while (bVar24);\n                if ((!bVar22 && !bVar24) == bVar22) {\n                  bVar16 = true;\n                }\n                iVar17 = iVar17 + puVar7[0x19];\n                puVar7 = (undefined4 *)puVar7[3];\n                bVar24 = puVar7 == (undefined4 *)0x0;\n              } while (!bVar24);\n              iVar6 = 0x61;\n              if (!bVar16) {\n                iVar6 = (iVar17 < 1) + 0x62;\n              }\n            }\n            sVar9 = strlen((char *)**(undefined4 **)(local_50 + 0x10));\n            pcVar12 = (char *)xmalloc(sVar9 + 3);\n            sprintf(pcVar12,"%s.%c",**(undefined4 **)(local_50 + 0x10),iVar6);\n            **(undefined4 **)(local_50 + 0x10) = pcVar12;\n            sVar9 = strlen(*(char **)(local_50 + 8));\n            pcVar12 = (char *)xmalloc(sVar9 + 3);\n            sprintf(pcVar12,"%s.%c",*(undefined4 *)(local_50 + 8),iVar6);\n            *(char **)(local_50 + 8) = pcVar12;\n            bVar16 = true;\n          }\n        }\nLAB_00056b08:\n        local_50 = *(int *)(local_50 + 0x18);\njoined_r0x00056b15:\n      } while (local_50 != 0);\n      local_4c = DAT_001cf6bc;\n      if (DAT_001cf6bc != 0) {\n        do {\n          iVar6 = *(int *)(local_4c + 0x10);\n          if ((*(int *)(iVar6 + 0x8c) != 0) &&\n             (puVar7 = *(undefined4 **)(iVar6 + 0x60), puVar7 != (undefined4 *)0x0)) {\n            puVar18 = (undefined4 *)0x0;\n            bVar16 = false;\n            bVar24 = true;\n            do {\n              bVar22 = false;\n              iVar17 = 7;\n              pbVar19 = (byte *)*puVar7;\n              pbVar21 = (byte *)".idata$";\n              do {\n                if (iVar17 == 0) break;\n                iVar17 = iVar17 + -1;\n                bVar22 = *pbVar19 < *pbVar21;\n                bVar24 = *pbVar19 == *pbVar21;\n                pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n                pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n              } while (bVar24);\n              if ((!bVar22 && !bVar24) == bVar22) {\n                bVar16 = true;\n              }\n              if (((*(byte *)(puVar7 + 5) & 0x10) != 0) && (puVar7[0x19] != 0)) {\n                puVar18 = puVar7;\n              }\n              puVar7 = (undefined4 *)puVar7[3];\n              bVar24 = puVar7 == (undefined4 *)0x0;\n            } while (!bVar24);\n            if ((puVar18 != (undefined4 *)0x0) && (bVar16)) {\n              iVar6 = bfd_generic_link_read_symbols(iVar6);\n              if (iVar6 == 0) {\nLAB_000570af:\n                uVar11 = *(undefined4 *)(local_4c + 0x10);\n                uVar14 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n                FUN_00034d20(uVar14,uVar11);\n                return;\n              }\n              piVar20 = *(int **)(*(int *)(local_4c + 0x10) + 0x78);\n              iVar6 = *(int *)(*(int *)(local_4c + 0x10) + 0x7c);\n              if (0 < iVar6) {\n                piVar1 = piVar20 + iVar6;\n                do {\n                  if ((((*(int *)(*(int *)(*piVar20 + 0x14) + 4) == puVar18[1]) &&\n                       (iVar6 = bfd_link_hash_lookup\n                                          (DAT_001d0400,*(undefined4 *)(*piVar20 + 4),0,0,1),\n                       iVar6 != 0)) && (*(char *)(iVar6 + 0xc) == '\x03')) &&\n                     ((*(int *)(iVar6 + 0x10) == 0 && (*(int *)(DAT_001d0400 + 0x20) != iVar6)))) {\n                    puVar18[5] = puVar18[5] | 0x8000;\n                  }\n                  piVar20 = piVar20 + 1;\n                } while (piVar1 != piVar20);\n              }\n            }\n          }\n          local_4c = *(int *)(local_4c + 0x18);\n        } while (local_4c != 0);\n      }\n    }" ({ "{") (expression_statement "iVar6 = (*(undefined4 **)(local_50 + 0x10))[0x23];" (assignment_expression "iVar6 = (*(undefined4 **)(local_50 + 0x10))[0x23]" (identifier "iVar6") (= "=") (subscript_expression "(*(undefined4 **)(local_50 + 0x10))[0x23]" (parenthesized_expression "(*(undefined4 **)(local_50 + 0x10))" (( "(") (pointer_expression "*(undefined4 **)(local_50 + 0x10)" (* "*") (cast_expression "(undefined4 **)(local_50 + 0x10)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_50 + 0x10)" (( "(") (binary_expression "local_50 + 0x10" (identifier "local_50") (+ "+") (number_literal "0x10")) () ")")))) () ")")) ([ "[") (number_literal "0x23") (] "]"))) (; ";")) (if_statement "if (iVar6 != 0) {\n          pcVar12 = strrchr((char *)**(undefined4 **)(local_50 + 0x10),0x2e);\n          iVar17 = local_50;\n          if (iVar6 == local_40) {\n            if (!bVar16) goto LAB_00056b08;\n          }\n          else {\n            while ((iVar15 = local_50, local_40 = iVar6, pcVar12 == (char *)0x0 ||\n                   (iVar13 = filename_cmp(pcVar12,".dll"), iVar13 != 0))) {\n              iVar17 = *(int *)(iVar17 + 0x18);\n              if (iVar17 == 0) {\n                local_50 = *(int *)(local_50 + 0x18);\n                bVar16 = false;\n                goto joined_r0x00056b15;\n              }\n              if (iVar6 != (*(undefined4 **)(iVar17 + 0x10))[0x23]) break;\n              pcVar12 = strrchr((char *)**(undefined4 **)(iVar17 + 0x10),0x2e);\n            }\n            do {\n              if (iVar6 != (*(undefined4 **)(iVar15 + 0x10))[0x23]) break;\n              pcVar12 = (char *)**(undefined4 **)(iVar15 + 0x10);\n              pcVar10 = strrchr(pcVar12,0x2e);\n              if (pcVar10 == (char *)0x0) {\nLAB_00056d20:\n                iVar13 = filename_cmp(**(undefined4 **)(iVar17 + 0x10),pcVar12);\n                if (iVar13 != 0) {\n                  bVar16 = false;\n                  goto LAB_00056b08;\n                }\n              }\n              else {\n                iVar13 = filename_cmp(pcVar10,&DAT_00192ed1);\n                if (iVar13 != 0) {\n                  pcVar12 = (char *)**(undefined4 **)(iVar15 + 0x10);\n                  goto LAB_00056d20;\n                }\n              }\n              piVar20 = (int *)(iVar15 + 0x18);\n              iVar15 = *piVar20;\n            } while (*piVar20 != 0);\n            pcVar12 = strrchr((char *)**(undefined4 **)(local_50 + 0x10),0x2e);\n          }\n          bVar16 = true;\n          iVar6 = filename_cmp(pcVar12,".dll");\n          if (iVar6 == 0) {\n            puVar7 = (undefined4 *)(*(undefined4 **)(local_50 + 0x10))[0x18];\n            if (puVar7 == (undefined4 *)0x0) {\n              iVar6 = 99;\n            }\n            else {\n              iVar17 = 0;\n              bVar24 = true;\n              bVar16 = false;\n              do {\n                bVar22 = false;\n                iVar6 = 9;\n                pbVar19 = (byte *)*puVar7;\n                pbVar21 = (byte *)".idata$2";\n                do {\n                  if (iVar6 == 0) break;\n                  iVar6 = iVar6 + -1;\n                  bVar22 = *pbVar19 < *pbVar21;\n                  bVar24 = *pbVar19 == *pbVar21;\n                  pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n                  pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n                } while (bVar24);\n                if ((!bVar22 && !bVar24) == bVar22) {\n                  bVar16 = true;\n                }\n                iVar17 = iVar17 + puVar7[0x19];\n                puVar7 = (undefined4 *)puVar7[3];\n                bVar24 = puVar7 == (undefined4 *)0x0;\n              } while (!bVar24);\n              iVar6 = 0x61;\n              if (!bVar16) {\n                iVar6 = (iVar17 < 1) + 0x62;\n              }\n            }\n            sVar9 = strlen((char *)**(undefined4 **)(local_50 + 0x10));\n            pcVar12 = (char *)xmalloc(sVar9 + 3);\n            sprintf(pcVar12,"%s.%c",**(undefined4 **)(local_50 + 0x10),iVar6);\n            **(undefined4 **)(local_50 + 0x10) = pcVar12;\n            sVar9 = strlen(*(char **)(local_50 + 8));\n            pcVar12 = (char *)xmalloc(sVar9 + 3);\n            sprintf(pcVar12,"%s.%c",*(undefined4 *)(local_50 + 8),iVar6);\n            *(char **)(local_50 + 8) = pcVar12;\n            bVar16 = true;\n          }\n        }" (if "if") (parenthesized_expression "(iVar6 != 0)" (( "(") (binary_expression "iVar6 != 0" (identifier "iVar6") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          pcVar12 = strrchr((char *)**(undefined4 **)(local_50 + 0x10),0x2e);\n          iVar17 = local_50;\n          if (iVar6 == local_40) {\n            if (!bVar16) goto LAB_00056b08;\n          }\n          else {\n            while ((iVar15 = local_50, local_40 = iVar6, pcVar12 == (char *)0x0 ||\n                   (iVar13 = filename_cmp(pcVar12,".dll"), iVar13 != 0))) {\n              iVar17 = *(int *)(iVar17 + 0x18);\n              if (iVar17 == 0) {\n                local_50 = *(int *)(local_50 + 0x18);\n                bVar16 = false;\n                goto joined_r0x00056b15;\n              }\n              if (iVar6 != (*(undefined4 **)(iVar17 + 0x10))[0x23]) break;\n              pcVar12 = strrchr((char *)**(undefined4 **)(iVar17 + 0x10),0x2e);\n            }\n            do {\n              if (iVar6 != (*(undefined4 **)(iVar15 + 0x10))[0x23]) break;\n              pcVar12 = (char *)**(undefined4 **)(iVar15 + 0x10);\n              pcVar10 = strrchr(pcVar12,0x2e);\n              if (pcVar10 == (char *)0x0) {\nLAB_00056d20:\n                iVar13 = filename_cmp(**(undefined4 **)(iVar17 + 0x10),pcVar12);\n                if (iVar13 != 0) {\n                  bVar16 = false;\n                  goto LAB_00056b08;\n                }\n              }\n              else {\n                iVar13 = filename_cmp(pcVar10,&DAT_00192ed1);\n                if (iVar13 != 0) {\n                  pcVar12 = (char *)**(undefined4 **)(iVar15 + 0x10);\n                  goto LAB_00056d20;\n                }\n              }\n              piVar20 = (int *)(iVar15 + 0x18);\n              iVar15 = *piVar20;\n            } while (*piVar20 != 0);\n            pcVar12 = strrchr((char *)**(undefined4 **)(local_50 + 0x10),0x2e);\n          }\n          bVar16 = true;\n          iVar6 = filename_cmp(pcVar12,".dll");\n          if (iVar6 == 0) {\n            puVar7 = (undefined4 *)(*(undefined4 **)(local_50 + 0x10))[0x18];\n            if (puVar7 == (undefined4 *)0x0) {\n              iVar6 = 99;\n            }\n            else {\n              iVar17 = 0;\n              bVar24 = true;\n              bVar16 = false;\n              do {\n                bVar22 = false;\n                iVar6 = 9;\n                pbVar19 = (byte *)*puVar7;\n                pbVar21 = (byte *)".idata$2";\n                do {\n                  if (iVar6 == 0) break;\n                  iVar6 = iVar6 + -1;\n                  bVar22 = *pbVar19 < *pbVar21;\n                  bVar24 = *pbVar19 == *pbVar21;\n                  pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n                  pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n                } while (bVar24);\n                if ((!bVar22 && !bVar24) == bVar22) {\n                  bVar16 = true;\n                }\n                iVar17 = iVar17 + puVar7[0x19];\n                puVar7 = (undefined4 *)puVar7[3];\n                bVar24 = puVar7 == (undefined4 *)0x0;\n              } while (!bVar24);\n              iVar6 = 0x61;\n              if (!bVar16) {\n                iVar6 = (iVar17 < 1) + 0x62;\n              }\n            }\n            sVar9 = strlen((char *)**(undefined4 **)(local_50 + 0x10));\n            pcVar12 = (char *)xmalloc(sVar9 + 3);\n            sprintf(pcVar12,"%s.%c",**(undefined4 **)(local_50 + 0x10),iVar6);\n            **(undefined4 **)(local_50 + 0x10) = pcVar12;\n            sVar9 = strlen(*(char **)(local_50 + 8));\n            pcVar12 = (char *)xmalloc(sVar9 + 3);\n            sprintf(pcVar12,"%s.%c",*(undefined4 *)(local_50 + 8),iVar6);\n            *(char **)(local_50 + 8) = pcVar12;\n            bVar16 = true;\n          }\n        }" ({ "{") (expression_statement "pcVar12 = strrchr((char *)**(undefined4 **)(local_50 + 0x10),0x2e);" (assignment_expression "pcVar12 = strrchr((char *)**(undefined4 **)(local_50 + 0x10),0x2e)" (identifier "pcVar12") (= "=") (call_expression "strrchr((char *)**(undefined4 **)(local_50 + 0x10),0x2e)" (identifier "strrchr") (argument_list "((char *)**(undefined4 **)(local_50 + 0x10),0x2e)" (( "(") (cast_expression "(char *)**(undefined4 **)(local_50 + 0x10)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "**(undefined4 **)(local_50 + 0x10)" (* "*") (pointer_expression "*(undefined4 **)(local_50 + 0x10)" (* "*") (cast_expression "(undefined4 **)(local_50 + 0x10)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_50 + 0x10)" (( "(") (binary_expression "local_50 + 0x10" (identifier "local_50") (+ "+") (number_literal "0x10")) () ")")))))) (, ",") (number_literal "0x2e") () ")")))) (; ";")) (expression_statement "iVar17 = local_50;" (assignment_expression "iVar17 = local_50" (identifier "iVar17") (= "=") (identifier "local_50")) (; ";")) (if_statement "if (iVar6 == local_40) {\n            if (!bVar16) goto LAB_00056b08;\n          }\n          else {\n            while ((iVar15 = local_50, local_40 = iVar6, pcVar12 == (char *)0x0 ||\n                   (iVar13 = filename_cmp(pcVar12,".dll"), iVar13 != 0))) {\n              iVar17 = *(int *)(iVar17 + 0x18);\n              if (iVar17 == 0) {\n                local_50 = *(int *)(local_50 + 0x18);\n                bVar16 = false;\n                goto joined_r0x00056b15;\n              }\n              if (iVar6 != (*(undefined4 **)(iVar17 + 0x10))[0x23]) break;\n              pcVar12 = strrchr((char *)**(undefined4 **)(iVar17 + 0x10),0x2e);\n            }\n            do {\n              if (iVar6 != (*(undefined4 **)(iVar15 + 0x10))[0x23]) break;\n              pcVar12 = (char *)**(undefined4 **)(iVar15 + 0x10);\n              pcVar10 = strrchr(pcVar12,0x2e);\n              if (pcVar10 == (char *)0x0) {\nLAB_00056d20:\n                iVar13 = filename_cmp(**(undefined4 **)(iVar17 + 0x10),pcVar12);\n                if (iVar13 != 0) {\n                  bVar16 = false;\n                  goto LAB_00056b08;\n                }\n              }\n              else {\n                iVar13 = filename_cmp(pcVar10,&DAT_00192ed1);\n                if (iVar13 != 0) {\n                  pcVar12 = (char *)**(undefined4 **)(iVar15 + 0x10);\n                  goto LAB_00056d20;\n                }\n              }\n              piVar20 = (int *)(iVar15 + 0x18);\n              iVar15 = *piVar20;\n            } while (*piVar20 != 0);\n            pcVar12 = strrchr((char *)**(undefined4 **)(local_50 + 0x10),0x2e);\n          }" (if "if") (parenthesized_expression "(iVar6 == local_40)" (( "(") (binary_expression "iVar6 == local_40" (identifier "iVar6") (== "==") (identifier "local_40")) () ")")) (compound_statement "{\n            if (!bVar16) goto LAB_00056b08;\n          }" ({ "{") (if_statement "if (!bVar16) goto LAB_00056b08;" (if "if") (parenthesized_expression "(!bVar16)" (( "(") (unary_expression "!bVar16" (! "!") (identifier "bVar16")) () ")")) (goto_statement "goto LAB_00056b08;" (goto "goto") (statement_identifier "LAB_00056b08") (; ";"))) (} "}")) (else_clause "else {\n            while ((iVar15 = local_50, local_40 = iVar6, pcVar12 == (char *)0x0 ||\n                   (iVar13 = filename_cmp(pcVar12,".dll"), iVar13 != 0))) {\n              iVar17 = *(int *)(iVar17 + 0x18);\n              if (iVar17 == 0) {\n                local_50 = *(int *)(local_50 + 0x18);\n                bVar16 = false;\n                goto joined_r0x00056b15;\n              }\n              if (iVar6 != (*(undefined4 **)(iVar17 + 0x10))[0x23]) break;\n              pcVar12 = strrchr((char *)**(undefined4 **)(iVar17 + 0x10),0x2e);\n            }\n            do {\n              if (iVar6 != (*(undefined4 **)(iVar15 + 0x10))[0x23]) break;\n              pcVar12 = (char *)**(undefined4 **)(iVar15 + 0x10);\n              pcVar10 = strrchr(pcVar12,0x2e);\n              if (pcVar10 == (char *)0x0) {\nLAB_00056d20:\n                iVar13 = filename_cmp(**(undefined4 **)(iVar17 + 0x10),pcVar12);\n                if (iVar13 != 0) {\n                  bVar16 = false;\n                  goto LAB_00056b08;\n                }\n              }\n              else {\n                iVar13 = filename_cmp(pcVar10,&DAT_00192ed1);\n                if (iVar13 != 0) {\n                  pcVar12 = (char *)**(undefined4 **)(iVar15 + 0x10);\n                  goto LAB_00056d20;\n                }\n              }\n              piVar20 = (int *)(iVar15 + 0x18);\n              iVar15 = *piVar20;\n            } while (*piVar20 != 0);\n            pcVar12 = strrchr((char *)**(undefined4 **)(local_50 + 0x10),0x2e);\n          }" (else "else") (compound_statement "{\n            while ((iVar15 = local_50, local_40 = iVar6, pcVar12 == (char *)0x0 ||\n                   (iVar13 = filename_cmp(pcVar12,".dll"), iVar13 != 0))) {\n              iVar17 = *(int *)(iVar17 + 0x18);\n              if (iVar17 == 0) {\n                local_50 = *(int *)(local_50 + 0x18);\n                bVar16 = false;\n                goto joined_r0x00056b15;\n              }\n              if (iVar6 != (*(undefined4 **)(iVar17 + 0x10))[0x23]) break;\n              pcVar12 = strrchr((char *)**(undefined4 **)(iVar17 + 0x10),0x2e);\n            }\n            do {\n              if (iVar6 != (*(undefined4 **)(iVar15 + 0x10))[0x23]) break;\n              pcVar12 = (char *)**(undefined4 **)(iVar15 + 0x10);\n              pcVar10 = strrchr(pcVar12,0x2e);\n              if (pcVar10 == (char *)0x0) {\nLAB_00056d20:\n                iVar13 = filename_cmp(**(undefined4 **)(iVar17 + 0x10),pcVar12);\n                if (iVar13 != 0) {\n                  bVar16 = false;\n                  goto LAB_00056b08;\n                }\n              }\n              else {\n                iVar13 = filename_cmp(pcVar10,&DAT_00192ed1);\n                if (iVar13 != 0) {\n                  pcVar12 = (char *)**(undefined4 **)(iVar15 + 0x10);\n                  goto LAB_00056d20;\n                }\n              }\n              piVar20 = (int *)(iVar15 + 0x18);\n              iVar15 = *piVar20;\n            } while (*piVar20 != 0);\n            pcVar12 = strrchr((char *)**(undefined4 **)(local_50 + 0x10),0x2e);\n          }" ({ "{") (while_statement "while ((iVar15 = local_50, local_40 = iVar6, pcVar12 == (char *)0x0 ||\n                   (iVar13 = filename_cmp(pcVar12,".dll"), iVar13 != 0))) {\n              iVar17 = *(int *)(iVar17 + 0x18);\n              if (iVar17 == 0) {\n                local_50 = *(int *)(local_50 + 0x18);\n                bVar16 = false;\n                goto joined_r0x00056b15;\n              }\n              if (iVar6 != (*(undefined4 **)(iVar17 + 0x10))[0x23]) break;\n              pcVar12 = strrchr((char *)**(undefined4 **)(iVar17 + 0x10),0x2e);\n            }" (while "while") (parenthesized_expression "((iVar15 = local_50, local_40 = iVar6, pcVar12 == (char *)0x0 ||\n                   (iVar13 = filename_cmp(pcVar12,".dll"), iVar13 != 0)))" (( "(") (parenthesized_expression "(iVar15 = local_50, local_40 = iVar6, pcVar12 == (char *)0x0 ||\n                   (iVar13 = filename_cmp(pcVar12,".dll"), iVar13 != 0))" (( "(") (comma_expression "iVar15 = local_50, local_40 = iVar6, pcVar12 == (char *)0x0 ||\n                   (iVar13 = filename_cmp(pcVar12,".dll"), iVar13 != 0)" (assignment_expression "iVar15 = local_50" (identifier "iVar15") (= "=") (identifier "local_50")) (, ",") (comma_expression "local_40 = iVar6, pcVar12 == (char *)0x0 ||\n                   (iVar13 = filename_cmp(pcVar12,".dll"), iVar13 != 0)" (assignment_expression "local_40 = iVar6" (identifier "local_40") (= "=") (identifier "iVar6")) (, ",") (binary_expression "pcVar12 == (char *)0x0 ||\n                   (iVar13 = filename_cmp(pcVar12,".dll"), iVar13 != 0)" (binary_expression "pcVar12 == (char *)0x0" (identifier "pcVar12") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (|| "||") (parenthesized_expression "(iVar13 = filename_cmp(pcVar12,".dll"), iVar13 != 0)" (( "(") (comma_expression "iVar13 = filename_cmp(pcVar12,".dll"), iVar13 != 0" (assignment_expression "iVar13 = filename_cmp(pcVar12,".dll")" (identifier "iVar13") (= "=") (call_expression "filename_cmp(pcVar12,".dll")" (identifier "filename_cmp") (argument_list "(pcVar12,".dll")" (( "(") (identifier "pcVar12") (, ",") (string_literal "".dll"" (" """) (string_content ".dll") (" """)) () ")")))) (, ",") (binary_expression "iVar13 != 0" (identifier "iVar13") (!= "!=") (number_literal "0"))) () ")"))))) () ")")) () ")")) (compound_statement "{\n              iVar17 = *(int *)(iVar17 + 0x18);\n              if (iVar17 == 0) {\n                local_50 = *(int *)(local_50 + 0x18);\n                bVar16 = false;\n                goto joined_r0x00056b15;\n              }\n              if (iVar6 != (*(undefined4 **)(iVar17 + 0x10))[0x23]) break;\n              pcVar12 = strrchr((char *)**(undefined4 **)(iVar17 + 0x10),0x2e);\n            }" ({ "{") (expression_statement "iVar17 = *(int *)(iVar17 + 0x18);" (assignment_expression "iVar17 = *(int *)(iVar17 + 0x18)" (identifier "iVar17") (= "=") (pointer_expression "*(int *)(iVar17 + 0x18)" (* "*") (cast_expression "(int *)(iVar17 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar17 + 0x18)" (( "(") (binary_expression "iVar17 + 0x18" (identifier "iVar17") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (if_statement "if (iVar17 == 0) {\n                local_50 = *(int *)(local_50 + 0x18);\n                bVar16 = false;\n                goto joined_r0x00056b15;\n              }" (if "if") (parenthesized_expression "(iVar17 == 0)" (( "(") (binary_expression "iVar17 == 0" (identifier "iVar17") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                local_50 = *(int *)(local_50 + 0x18);\n                bVar16 = false;\n                goto joined_r0x00056b15;\n              }" ({ "{") (expression_statement "local_50 = *(int *)(local_50 + 0x18);" (assignment_expression "local_50 = *(int *)(local_50 + 0x18)" (identifier "local_50") (= "=") (pointer_expression "*(int *)(local_50 + 0x18)" (* "*") (cast_expression "(int *)(local_50 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_50 + 0x18)" (( "(") (binary_expression "local_50 + 0x18" (identifier "local_50") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (expression_statement "bVar16 = false;" (assignment_expression "bVar16 = false" (identifier "bVar16") (= "=") (false "false")) (; ";")) (goto_statement "goto joined_r0x00056b15;" (goto "goto") (statement_identifier "joined_r0x00056b15") (; ";")) (} "}"))) (if_statement "if (iVar6 != (*(undefined4 **)(iVar17 + 0x10))[0x23]) break;" (if "if") (parenthesized_expression "(iVar6 != (*(undefined4 **)(iVar17 + 0x10))[0x23])" (( "(") (binary_expression "iVar6 != (*(undefined4 **)(iVar17 + 0x10))[0x23]" (identifier "iVar6") (!= "!=") (subscript_expression "(*(undefined4 **)(iVar17 + 0x10))[0x23]" (parenthesized_expression "(*(undefined4 **)(iVar17 + 0x10))" (( "(") (pointer_expression "*(undefined4 **)(iVar17 + 0x10)" (* "*") (cast_expression "(undefined4 **)(iVar17 + 0x10)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar17 + 0x10)" (( "(") (binary_expression "iVar17 + 0x10" (identifier "iVar17") (+ "+") (number_literal "0x10")) () ")")))) () ")")) ([ "[") (number_literal "0x23") (] "]"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "pcVar12 = strrchr((char *)**(undefined4 **)(iVar17 + 0x10),0x2e);" (assignment_expression "pcVar12 = strrchr((char *)**(undefined4 **)(iVar17 + 0x10),0x2e)" (identifier "pcVar12") (= "=") (call_expression "strrchr((char *)**(undefined4 **)(iVar17 + 0x10),0x2e)" (identifier "strrchr") (argument_list "((char *)**(undefined4 **)(iVar17 + 0x10),0x2e)" (( "(") (cast_expression "(char *)**(undefined4 **)(iVar17 + 0x10)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "**(undefined4 **)(iVar17 + 0x10)" (* "*") (pointer_expression "*(undefined4 **)(iVar17 + 0x10)" (* "*") (cast_expression "(undefined4 **)(iVar17 + 0x10)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar17 + 0x10)" (( "(") (binary_expression "iVar17 + 0x10" (identifier "iVar17") (+ "+") (number_literal "0x10")) () ")")))))) (, ",") (number_literal "0x2e") () ")")))) (; ";")) (} "}"))) (do_statement "do {\n              if (iVar6 != (*(undefined4 **)(iVar15 + 0x10))[0x23]) break;\n              pcVar12 = (char *)**(undefined4 **)(iVar15 + 0x10);\n              pcVar10 = strrchr(pcVar12,0x2e);\n              if (pcVar10 == (char *)0x0) {\nLAB_00056d20:\n                iVar13 = filename_cmp(**(undefined4 **)(iVar17 + 0x10),pcVar12);\n                if (iVar13 != 0) {\n                  bVar16 = false;\n                  goto LAB_00056b08;\n                }\n              }\n              else {\n                iVar13 = filename_cmp(pcVar10,&DAT_00192ed1);\n                if (iVar13 != 0) {\n                  pcVar12 = (char *)**(undefined4 **)(iVar15 + 0x10);\n                  goto LAB_00056d20;\n                }\n              }\n              piVar20 = (int *)(iVar15 + 0x18);\n              iVar15 = *piVar20;\n            } while (*piVar20 != 0);" (do "do") (compound_statement "{\n              if (iVar6 != (*(undefined4 **)(iVar15 + 0x10))[0x23]) break;\n              pcVar12 = (char *)**(undefined4 **)(iVar15 + 0x10);\n              pcVar10 = strrchr(pcVar12,0x2e);\n              if (pcVar10 == (char *)0x0) {\nLAB_00056d20:\n                iVar13 = filename_cmp(**(undefined4 **)(iVar17 + 0x10),pcVar12);\n                if (iVar13 != 0) {\n                  bVar16 = false;\n                  goto LAB_00056b08;\n                }\n              }\n              else {\n                iVar13 = filename_cmp(pcVar10,&DAT_00192ed1);\n                if (iVar13 != 0) {\n                  pcVar12 = (char *)**(undefined4 **)(iVar15 + 0x10);\n                  goto LAB_00056d20;\n                }\n              }\n              piVar20 = (int *)(iVar15 + 0x18);\n              iVar15 = *piVar20;\n            }" ({ "{") (if_statement "if (iVar6 != (*(undefined4 **)(iVar15 + 0x10))[0x23]) break;" (if "if") (parenthesized_expression "(iVar6 != (*(undefined4 **)(iVar15 + 0x10))[0x23])" (( "(") (binary_expression "iVar6 != (*(undefined4 **)(iVar15 + 0x10))[0x23]" (identifier "iVar6") (!= "!=") (subscript_expression "(*(undefined4 **)(iVar15 + 0x10))[0x23]" (parenthesized_expression "(*(undefined4 **)(iVar15 + 0x10))" (( "(") (pointer_expression "*(undefined4 **)(iVar15 + 0x10)" (* "*") (cast_expression "(undefined4 **)(iVar15 + 0x10)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar15 + 0x10)" (( "(") (binary_expression "iVar15 + 0x10" (identifier "iVar15") (+ "+") (number_literal "0x10")) () ")")))) () ")")) ([ "[") (number_literal "0x23") (] "]"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "pcVar12 = (char *)**(undefined4 **)(iVar15 + 0x10);" (assignment_expression "pcVar12 = (char *)**(undefined4 **)(iVar15 + 0x10)" (identifier "pcVar12") (= "=") (cast_expression "(char *)**(undefined4 **)(iVar15 + 0x10)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "**(undefined4 **)(iVar15 + 0x10)" (* "*") (pointer_expression "*(undefined4 **)(iVar15 + 0x10)" (* "*") (cast_expression "(undefined4 **)(iVar15 + 0x10)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar15 + 0x10)" (( "(") (binary_expression "iVar15 + 0x10" (identifier "iVar15") (+ "+") (number_literal "0x10")) () ")"))))))) (; ";")) (expression_statement "pcVar10 = strrchr(pcVar12,0x2e);" (assignment_expression "pcVar10 = strrchr(pcVar12,0x2e)" (identifier "pcVar10") (= "=") (call_expression "strrchr(pcVar12,0x2e)" (identifier "strrchr") (argument_list "(pcVar12,0x2e)" (( "(") (identifier "pcVar12") (, ",") (number_literal "0x2e") () ")")))) (; ";")) (if_statement "if (pcVar10 == (char *)0x0) {\nLAB_00056d20:\n                iVar13 = filename_cmp(**(undefined4 **)(iVar17 + 0x10),pcVar12);\n                if (iVar13 != 0) {\n                  bVar16 = false;\n                  goto LAB_00056b08;\n                }\n              }\n              else {\n                iVar13 = filename_cmp(pcVar10,&DAT_00192ed1);\n                if (iVar13 != 0) {\n                  pcVar12 = (char *)**(undefined4 **)(iVar15 + 0x10);\n                  goto LAB_00056d20;\n                }\n              }" (if "if") (parenthesized_expression "(pcVar10 == (char *)0x0)" (( "(") (binary_expression "pcVar10 == (char *)0x0" (identifier "pcVar10") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\nLAB_00056d20:\n                iVar13 = filename_cmp(**(undefined4 **)(iVar17 + 0x10),pcVar12);\n                if (iVar13 != 0) {\n                  bVar16 = false;\n                  goto LAB_00056b08;\n                }\n              }" ({ "{") (labeled_statement "LAB_00056d20:\n                iVar13 = filename_cmp(**(undefined4 **)(iVar17 + 0x10),pcVar12);" (statement_identifier "LAB_00056d20") (: ":") (expression_statement "iVar13 = filename_cmp(**(undefined4 **)(iVar17 + 0x10),pcVar12);" (assignment_expression "iVar13 = filename_cmp(**(undefined4 **)(iVar17 + 0x10),pcVar12)" (identifier "iVar13") (= "=") (call_expression "filename_cmp(**(undefined4 **)(iVar17 + 0x10),pcVar12)" (identifier "filename_cmp") (argument_list "(**(undefined4 **)(iVar17 + 0x10),pcVar12)" (( "(") (pointer_expression "**(undefined4 **)(iVar17 + 0x10)" (* "*") (pointer_expression "*(undefined4 **)(iVar17 + 0x10)" (* "*") (cast_expression "(undefined4 **)(iVar17 + 0x10)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar17 + 0x10)" (( "(") (binary_expression "iVar17 + 0x10" (identifier "iVar17") (+ "+") (number_literal "0x10")) () ")"))))) (, ",") (identifier "pcVar12") () ")")))) (; ";"))) (if_statement "if (iVar13 != 0) {\n                  bVar16 = false;\n                  goto LAB_00056b08;\n                }" (if "if") (parenthesized_expression "(iVar13 != 0)" (( "(") (binary_expression "iVar13 != 0" (identifier "iVar13") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                  bVar16 = false;\n                  goto LAB_00056b08;\n                }" ({ "{") (expression_statement "bVar16 = false;" (assignment_expression "bVar16 = false" (identifier "bVar16") (= "=") (false "false")) (; ";")) (goto_statement "goto LAB_00056b08;" (goto "goto") (statement_identifier "LAB_00056b08") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n                iVar13 = filename_cmp(pcVar10,&DAT_00192ed1);\n                if (iVar13 != 0) {\n                  pcVar12 = (char *)**(undefined4 **)(iVar15 + 0x10);\n                  goto LAB_00056d20;\n                }\n              }" (else "else") (compound_statement "{\n                iVar13 = filename_cmp(pcVar10,&DAT_00192ed1);\n                if (iVar13 != 0) {\n                  pcVar12 = (char *)**(undefined4 **)(iVar15 + 0x10);\n                  goto LAB_00056d20;\n                }\n              }" ({ "{") (expression_statement "iVar13 = filename_cmp(pcVar10,&DAT_00192ed1);" (assignment_expression "iVar13 = filename_cmp(pcVar10,&DAT_00192ed1)" (identifier "iVar13") (= "=") (call_expression "filename_cmp(pcVar10,&DAT_00192ed1)" (identifier "filename_cmp") (argument_list "(pcVar10,&DAT_00192ed1)" (( "(") (identifier "pcVar10") (, ",") (pointer_expression "&DAT_00192ed1" (& "&") (identifier "DAT_00192ed1")) () ")")))) (; ";")) (if_statement "if (iVar13 != 0) {\n                  pcVar12 = (char *)**(undefined4 **)(iVar15 + 0x10);\n                  goto LAB_00056d20;\n                }" (if "if") (parenthesized_expression "(iVar13 != 0)" (( "(") (binary_expression "iVar13 != 0" (identifier "iVar13") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                  pcVar12 = (char *)**(undefined4 **)(iVar15 + 0x10);\n                  goto LAB_00056d20;\n                }" ({ "{") (expression_statement "pcVar12 = (char *)**(undefined4 **)(iVar15 + 0x10);" (assignment_expression "pcVar12 = (char *)**(undefined4 **)(iVar15 + 0x10)" (identifier "pcVar12") (= "=") (cast_expression "(char *)**(undefined4 **)(iVar15 + 0x10)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "**(undefined4 **)(iVar15 + 0x10)" (* "*") (pointer_expression "*(undefined4 **)(iVar15 + 0x10)" (* "*") (cast_expression "(undefined4 **)(iVar15 + 0x10)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar15 + 0x10)" (( "(") (binary_expression "iVar15 + 0x10" (identifier "iVar15") (+ "+") (number_literal "0x10")) () ")"))))))) (; ";")) (goto_statement "goto LAB_00056d20;" (goto "goto") (statement_identifier "LAB_00056d20") (; ";")) (} "}"))) (} "}")))) (expression_statement "piVar20 = (int *)(iVar15 + 0x18);" (assignment_expression "piVar20 = (int *)(iVar15 + 0x18)" (identifier "piVar20") (= "=") (cast_expression "(int *)(iVar15 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar15 + 0x18)" (( "(") (binary_expression "iVar15 + 0x18" (identifier "iVar15") (+ "+") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "iVar15 = *piVar20;" (assignment_expression "iVar15 = *piVar20" (identifier "iVar15") (= "=") (pointer_expression "*piVar20" (* "*") (identifier "piVar20"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(*piVar20 != 0)" (( "(") (binary_expression "*piVar20 != 0" (pointer_expression "*piVar20" (* "*") (identifier "piVar20")) (!= "!=") (number_literal "0")) () ")")) (; ";")) (expression_statement "pcVar12 = strrchr((char *)**(undefined4 **)(local_50 + 0x10),0x2e);" (assignment_expression "pcVar12 = strrchr((char *)**(undefined4 **)(local_50 + 0x10),0x2e)" (identifier "pcVar12") (= "=") (call_expression "strrchr((char *)**(undefined4 **)(local_50 + 0x10),0x2e)" (identifier "strrchr") (argument_list "((char *)**(undefined4 **)(local_50 + 0x10),0x2e)" (( "(") (cast_expression "(char *)**(undefined4 **)(local_50 + 0x10)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "**(undefined4 **)(local_50 + 0x10)" (* "*") (pointer_expression "*(undefined4 **)(local_50 + 0x10)" (* "*") (cast_expression "(undefined4 **)(local_50 + 0x10)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_50 + 0x10)" (( "(") (binary_expression "local_50 + 0x10" (identifier "local_50") (+ "+") (number_literal "0x10")) () ")")))))) (, ",") (number_literal "0x2e") () ")")))) (; ";")) (} "}")))) (expression_statement "bVar16 = true;" (assignment_expression "bVar16 = true" (identifier "bVar16") (= "=") (true "true")) (; ";")) (expression_statement "iVar6 = filename_cmp(pcVar12,".dll");" (assignment_expression "iVar6 = filename_cmp(pcVar12,".dll")" (identifier "iVar6") (= "=") (call_expression "filename_cmp(pcVar12,".dll")" (identifier "filename_cmp") (argument_list "(pcVar12,".dll")" (( "(") (identifier "pcVar12") (, ",") (string_literal "".dll"" (" """) (string_content ".dll") (" """)) () ")")))) (; ";")) (if_statement "if (iVar6 == 0) {\n            puVar7 = (undefined4 *)(*(undefined4 **)(local_50 + 0x10))[0x18];\n            if (puVar7 == (undefined4 *)0x0) {\n              iVar6 = 99;\n            }\n            else {\n              iVar17 = 0;\n              bVar24 = true;\n              bVar16 = false;\n              do {\n                bVar22 = false;\n                iVar6 = 9;\n                pbVar19 = (byte *)*puVar7;\n                pbVar21 = (byte *)".idata$2";\n                do {\n                  if (iVar6 == 0) break;\n                  iVar6 = iVar6 + -1;\n                  bVar22 = *pbVar19 < *pbVar21;\n                  bVar24 = *pbVar19 == *pbVar21;\n                  pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n                  pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n                } while (bVar24);\n                if ((!bVar22 && !bVar24) == bVar22) {\n                  bVar16 = true;\n                }\n                iVar17 = iVar17 + puVar7[0x19];\n                puVar7 = (undefined4 *)puVar7[3];\n                bVar24 = puVar7 == (undefined4 *)0x0;\n              } while (!bVar24);\n              iVar6 = 0x61;\n              if (!bVar16) {\n                iVar6 = (iVar17 < 1) + 0x62;\n              }\n            }\n            sVar9 = strlen((char *)**(undefined4 **)(local_50 + 0x10));\n            pcVar12 = (char *)xmalloc(sVar9 + 3);\n            sprintf(pcVar12,"%s.%c",**(undefined4 **)(local_50 + 0x10),iVar6);\n            **(undefined4 **)(local_50 + 0x10) = pcVar12;\n            sVar9 = strlen(*(char **)(local_50 + 8));\n            pcVar12 = (char *)xmalloc(sVar9 + 3);\n            sprintf(pcVar12,"%s.%c",*(undefined4 *)(local_50 + 8),iVar6);\n            *(char **)(local_50 + 8) = pcVar12;\n            bVar16 = true;\n          }" (if "if") (parenthesized_expression "(iVar6 == 0)" (( "(") (binary_expression "iVar6 == 0" (identifier "iVar6") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            puVar7 = (undefined4 *)(*(undefined4 **)(local_50 + 0x10))[0x18];\n            if (puVar7 == (undefined4 *)0x0) {\n              iVar6 = 99;\n            }\n            else {\n              iVar17 = 0;\n              bVar24 = true;\n              bVar16 = false;\n              do {\n                bVar22 = false;\n                iVar6 = 9;\n                pbVar19 = (byte *)*puVar7;\n                pbVar21 = (byte *)".idata$2";\n                do {\n                  if (iVar6 == 0) break;\n                  iVar6 = iVar6 + -1;\n                  bVar22 = *pbVar19 < *pbVar21;\n                  bVar24 = *pbVar19 == *pbVar21;\n                  pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n                  pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n                } while (bVar24);\n                if ((!bVar22 && !bVar24) == bVar22) {\n                  bVar16 = true;\n                }\n                iVar17 = iVar17 + puVar7[0x19];\n                puVar7 = (undefined4 *)puVar7[3];\n                bVar24 = puVar7 == (undefined4 *)0x0;\n              } while (!bVar24);\n              iVar6 = 0x61;\n              if (!bVar16) {\n                iVar6 = (iVar17 < 1) + 0x62;\n              }\n            }\n            sVar9 = strlen((char *)**(undefined4 **)(local_50 + 0x10));\n            pcVar12 = (char *)xmalloc(sVar9 + 3);\n            sprintf(pcVar12,"%s.%c",**(undefined4 **)(local_50 + 0x10),iVar6);\n            **(undefined4 **)(local_50 + 0x10) = pcVar12;\n            sVar9 = strlen(*(char **)(local_50 + 8));\n            pcVar12 = (char *)xmalloc(sVar9 + 3);\n            sprintf(pcVar12,"%s.%c",*(undefined4 *)(local_50 + 8),iVar6);\n            *(char **)(local_50 + 8) = pcVar12;\n            bVar16 = true;\n          }" ({ "{") (expression_statement "puVar7 = (undefined4 *)(*(undefined4 **)(local_50 + 0x10))[0x18];" (assignment_expression "puVar7 = (undefined4 *)(*(undefined4 **)(local_50 + 0x10))[0x18]" (identifier "puVar7") (= "=") (cast_expression "(undefined4 *)(*(undefined4 **)(local_50 + 0x10))[0x18]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "(*(undefined4 **)(local_50 + 0x10))[0x18]" (parenthesized_expression "(*(undefined4 **)(local_50 + 0x10))" (( "(") (pointer_expression "*(undefined4 **)(local_50 + 0x10)" (* "*") (cast_expression "(undefined4 **)(local_50 + 0x10)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_50 + 0x10)" (( "(") (binary_expression "local_50 + 0x10" (identifier "local_50") (+ "+") (number_literal "0x10")) () ")")))) () ")")) ([ "[") (number_literal "0x18") (] "]")))) (; ";")) (if_statement "if (puVar7 == (undefined4 *)0x0) {\n              iVar6 = 99;\n            }\n            else {\n              iVar17 = 0;\n              bVar24 = true;\n              bVar16 = false;\n              do {\n                bVar22 = false;\n                iVar6 = 9;\n                pbVar19 = (byte *)*puVar7;\n                pbVar21 = (byte *)".idata$2";\n                do {\n                  if (iVar6 == 0) break;\n                  iVar6 = iVar6 + -1;\n                  bVar22 = *pbVar19 < *pbVar21;\n                  bVar24 = *pbVar19 == *pbVar21;\n                  pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n                  pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n                } while (bVar24);\n                if ((!bVar22 && !bVar24) == bVar22) {\n                  bVar16 = true;\n                }\n                iVar17 = iVar17 + puVar7[0x19];\n                puVar7 = (undefined4 *)puVar7[3];\n                bVar24 = puVar7 == (undefined4 *)0x0;\n              } while (!bVar24);\n              iVar6 = 0x61;\n              if (!bVar16) {\n                iVar6 = (iVar17 < 1) + 0x62;\n              }\n            }" (if "if") (parenthesized_expression "(puVar7 == (undefined4 *)0x0)" (( "(") (binary_expression "puVar7 == (undefined4 *)0x0" (identifier "puVar7") (== "==") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n              iVar6 = 99;\n            }" ({ "{") (expression_statement "iVar6 = 99;" (assignment_expression "iVar6 = 99" (identifier "iVar6") (= "=") (number_literal "99")) (; ";")) (} "}")) (else_clause "else {\n              iVar17 = 0;\n              bVar24 = true;\n              bVar16 = false;\n              do {\n                bVar22 = false;\n                iVar6 = 9;\n                pbVar19 = (byte *)*puVar7;\n                pbVar21 = (byte *)".idata$2";\n                do {\n                  if (iVar6 == 0) break;\n                  iVar6 = iVar6 + -1;\n                  bVar22 = *pbVar19 < *pbVar21;\n                  bVar24 = *pbVar19 == *pbVar21;\n                  pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n                  pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n                } while (bVar24);\n                if ((!bVar22 && !bVar24) == bVar22) {\n                  bVar16 = true;\n                }\n                iVar17 = iVar17 + puVar7[0x19];\n                puVar7 = (undefined4 *)puVar7[3];\n                bVar24 = puVar7 == (undefined4 *)0x0;\n              } while (!bVar24);\n              iVar6 = 0x61;\n              if (!bVar16) {\n                iVar6 = (iVar17 < 1) + 0x62;\n              }\n            }" (else "else") (compound_statement "{\n              iVar17 = 0;\n              bVar24 = true;\n              bVar16 = false;\n              do {\n                bVar22 = false;\n                iVar6 = 9;\n                pbVar19 = (byte *)*puVar7;\n                pbVar21 = (byte *)".idata$2";\n                do {\n                  if (iVar6 == 0) break;\n                  iVar6 = iVar6 + -1;\n                  bVar22 = *pbVar19 < *pbVar21;\n                  bVar24 = *pbVar19 == *pbVar21;\n                  pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n                  pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n                } while (bVar24);\n                if ((!bVar22 && !bVar24) == bVar22) {\n                  bVar16 = true;\n                }\n                iVar17 = iVar17 + puVar7[0x19];\n                puVar7 = (undefined4 *)puVar7[3];\n                bVar24 = puVar7 == (undefined4 *)0x0;\n              } while (!bVar24);\n              iVar6 = 0x61;\n              if (!bVar16) {\n                iVar6 = (iVar17 < 1) + 0x62;\n              }\n            }" ({ "{") (expression_statement "iVar17 = 0;" (assignment_expression "iVar17 = 0" (identifier "iVar17") (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar24 = true;" (assignment_expression "bVar24 = true" (identifier "bVar24") (= "=") (true "true")) (; ";")) (expression_statement "bVar16 = false;" (assignment_expression "bVar16 = false" (identifier "bVar16") (= "=") (false "false")) (; ";")) (do_statement "do {\n                bVar22 = false;\n                iVar6 = 9;\n                pbVar19 = (byte *)*puVar7;\n                pbVar21 = (byte *)".idata$2";\n                do {\n                  if (iVar6 == 0) break;\n                  iVar6 = iVar6 + -1;\n                  bVar22 = *pbVar19 < *pbVar21;\n                  bVar24 = *pbVar19 == *pbVar21;\n                  pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n                  pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n                } while (bVar24);\n                if ((!bVar22 && !bVar24) == bVar22) {\n                  bVar16 = true;\n                }\n                iVar17 = iVar17 + puVar7[0x19];\n                puVar7 = (undefined4 *)puVar7[3];\n                bVar24 = puVar7 == (undefined4 *)0x0;\n              } while (!bVar24);" (do "do") (compound_statement "{\n                bVar22 = false;\n                iVar6 = 9;\n                pbVar19 = (byte *)*puVar7;\n                pbVar21 = (byte *)".idata$2";\n                do {\n                  if (iVar6 == 0) break;\n                  iVar6 = iVar6 + -1;\n                  bVar22 = *pbVar19 < *pbVar21;\n                  bVar24 = *pbVar19 == *pbVar21;\n                  pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n                  pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n                } while (bVar24);\n                if ((!bVar22 && !bVar24) == bVar22) {\n                  bVar16 = true;\n                }\n                iVar17 = iVar17 + puVar7[0x19];\n                puVar7 = (undefined4 *)puVar7[3];\n                bVar24 = puVar7 == (undefined4 *)0x0;\n              }" ({ "{") (expression_statement "bVar22 = false;" (assignment_expression "bVar22 = false" (identifier "bVar22") (= "=") (false "false")) (; ";")) (expression_statement "iVar6 = 9;" (assignment_expression "iVar6 = 9" (identifier "iVar6") (= "=") (number_literal "9")) (; ";")) (expression_statement "pbVar19 = (byte *)*puVar7;" (assignment_expression "pbVar19 = (byte *)*puVar7" (identifier "pbVar19") (= "=") (cast_expression "(byte *)*puVar7" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar7" (* "*") (identifier "puVar7")))) (; ";")) (expression_statement "pbVar21 = (byte *)".idata$2";" (assignment_expression "pbVar21 = (byte *)".idata$2"" (identifier "pbVar21") (= "=") (cast_expression "(byte *)".idata$2"" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal "".idata$2"" (" """) (string_content ".idata$2") (" """)))) (; ";")) (do_statement "do {\n                  if (iVar6 == 0) break;\n                  iVar6 = iVar6 + -1;\n                  bVar22 = *pbVar19 < *pbVar21;\n                  bVar24 = *pbVar19 == *pbVar21;\n                  pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n                  pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n                } while (bVar24);" (do "do") (compound_statement "{\n                  if (iVar6 == 0) break;\n                  iVar6 = iVar6 + -1;\n                  bVar22 = *pbVar19 < *pbVar21;\n                  bVar24 = *pbVar19 == *pbVar21;\n                  pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n                  pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n                }" ({ "{") (if_statement "if (iVar6 == 0) break;" (if "if") (parenthesized_expression "(iVar6 == 0)" (( "(") (binary_expression "iVar6 == 0" (identifier "iVar6") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar6 = iVar6 + -1;" (assignment_expression "iVar6 = iVar6 + -1" (identifier "iVar6") (= "=") (binary_expression "iVar6 + -1" (identifier "iVar6") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar22 = *pbVar19 < *pbVar21;" (assignment_expression "bVar22 = *pbVar19 < *pbVar21" (identifier "bVar22") (= "=") (binary_expression "*pbVar19 < *pbVar21" (pointer_expression "*pbVar19" (* "*") (identifier "pbVar19")) (< "<") (pointer_expression "*pbVar21" (* "*") (identifier "pbVar21")))) (; ";")) (expression_statement "bVar24 = *pbVar19 == *pbVar21;" (assignment_expression "bVar24 = *pbVar19 == *pbVar21" (identifier "bVar24") (= "=") (binary_expression "*pbVar19 == *pbVar21" (pointer_expression "*pbVar19" (* "*") (identifier "pbVar19")) (== "==") (pointer_expression "*pbVar21" (* "*") (identifier "pbVar21")))) (; ";")) (expression_statement "pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1" (identifier "pbVar19") (= "=") (binary_expression "pbVar19 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar19 + (uint)bVar25 * -2" (identifier "pbVar19") (+ "+") (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar25")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1" (identifier "pbVar21") (= "=") (binary_expression "pbVar21 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar21 + (uint)bVar25 * -2" (identifier "pbVar21") (+ "+") (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar25")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar24)" (( "(") (identifier "bVar24") () ")")) (; ";")) (if_statement "if ((!bVar22 && !bVar24) == bVar22) {\n                  bVar16 = true;\n                }" (if "if") (parenthesized_expression "((!bVar22 && !bVar24) == bVar22)" (( "(") (binary_expression "(!bVar22 && !bVar24) == bVar22" (parenthesized_expression "(!bVar22 && !bVar24)" (( "(") (binary_expression "!bVar22 && !bVar24" (unary_expression "!bVar22" (! "!") (identifier "bVar22")) (&& "&&") (unary_expression "!bVar24" (! "!") (identifier "bVar24"))) () ")")) (== "==") (identifier "bVar22")) () ")")) (compound_statement "{\n                  bVar16 = true;\n                }" ({ "{") (expression_statement "bVar16 = true;" (assignment_expression "bVar16 = true" (identifier "bVar16") (= "=") (true "true")) (; ";")) (} "}"))) (expression_statement "iVar17 = iVar17 + puVar7[0x19];" (assignment_expression "iVar17 = iVar17 + puVar7[0x19]" (identifier "iVar17") (= "=") (binary_expression "iVar17 + puVar7[0x19]" (identifier "iVar17") (+ "+") (subscript_expression "puVar7[0x19]" (identifier "puVar7") ([ "[") (number_literal "0x19") (] "]")))) (; ";")) (expression_statement "puVar7 = (undefined4 *)puVar7[3];" (assignment_expression "puVar7 = (undefined4 *)puVar7[3]" (identifier "puVar7") (= "=") (cast_expression "(undefined4 *)puVar7[3]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar7[3]" (identifier "puVar7") ([ "[") (number_literal "3") (] "]")))) (; ";")) (expression_statement "bVar24 = puVar7 == (undefined4 *)0x0;" (assignment_expression "bVar24 = puVar7 == (undefined4 *)0x0" (identifier "bVar24") (= "=") (binary_expression "puVar7 == (undefined4 *)0x0" (identifier "puVar7") (== "==") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(!bVar24)" (( "(") (unary_expression "!bVar24" (! "!") (identifier "bVar24")) () ")")) (; ";")) (expression_statement "iVar6 = 0x61;" (assignment_expression "iVar6 = 0x61" (identifier "iVar6") (= "=") (number_literal "0x61")) (; ";")) (if_statement "if (!bVar16) {\n                iVar6 = (iVar17 < 1) + 0x62;\n              }" (if "if") (parenthesized_expression "(!bVar16)" (( "(") (unary_expression "!bVar16" (! "!") (identifier "bVar16")) () ")")) (compound_statement "{\n                iVar6 = (iVar17 < 1) + 0x62;\n              }" ({ "{") (expression_statement "iVar6 = (iVar17 < 1) + 0x62;" (assignment_expression "iVar6 = (iVar17 < 1) + 0x62" (identifier "iVar6") (= "=") (binary_expression "(iVar17 < 1) + 0x62" (parenthesized_expression "(iVar17 < 1)" (( "(") (binary_expression "iVar17 < 1" (identifier "iVar17") (< "<") (number_literal "1")) () ")")) (+ "+") (number_literal "0x62"))) (; ";")) (} "}"))) (} "}")))) (expression_statement "sVar9 = strlen((char *)**(undefined4 **)(local_50 + 0x10));" (assignment_expression "sVar9 = strlen((char *)**(undefined4 **)(local_50 + 0x10))" (identifier "sVar9") (= "=") (call_expression "strlen((char *)**(undefined4 **)(local_50 + 0x10))" (identifier "strlen") (argument_list "((char *)**(undefined4 **)(local_50 + 0x10))" (( "(") (cast_expression "(char *)**(undefined4 **)(local_50 + 0x10)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "**(undefined4 **)(local_50 + 0x10)" (* "*") (pointer_expression "*(undefined4 **)(local_50 + 0x10)" (* "*") (cast_expression "(undefined4 **)(local_50 + 0x10)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_50 + 0x10)" (( "(") (binary_expression "local_50 + 0x10" (identifier "local_50") (+ "+") (number_literal "0x10")) () ")")))))) () ")")))) (; ";")) (expression_statement "pcVar12 = (char *)xmalloc(sVar9 + 3);" (assignment_expression "pcVar12 = (char *)xmalloc(sVar9 + 3)" (identifier "pcVar12") (= "=") (cast_expression "(char *)xmalloc(sVar9 + 3)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "xmalloc(sVar9 + 3)" (identifier "xmalloc") (argument_list "(sVar9 + 3)" (( "(") (binary_expression "sVar9 + 3" (identifier "sVar9") (+ "+") (number_literal "3")) () ")"))))) (; ";")) (expression_statement "sprintf(pcVar12,"%s.%c",**(undefined4 **)(local_50 + 0x10),iVar6);" (call_expression "sprintf(pcVar12,"%s.%c",**(undefined4 **)(local_50 + 0x10),iVar6)" (identifier "sprintf") (argument_list "(pcVar12,"%s.%c",**(undefined4 **)(local_50 + 0x10),iVar6)" (( "(") (identifier "pcVar12") (, ",") (string_literal ""%s.%c"" (" """) (string_content "%s.%c") (" """)) (, ",") (pointer_expression "**(undefined4 **)(local_50 + 0x10)" (* "*") (pointer_expression "*(undefined4 **)(local_50 + 0x10)" (* "*") (cast_expression "(undefined4 **)(local_50 + 0x10)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_50 + 0x10)" (( "(") (binary_expression "local_50 + 0x10" (identifier "local_50") (+ "+") (number_literal "0x10")) () ")"))))) (, ",") (identifier "iVar6") () ")"))) (; ";")) (expression_statement "**(undefined4 **)(local_50 + 0x10) = pcVar12;" (assignment_expression "**(undefined4 **)(local_50 + 0x10) = pcVar12" (pointer_expression "**(undefined4 **)(local_50 + 0x10)" (* "*") (pointer_expression "*(undefined4 **)(local_50 + 0x10)" (* "*") (cast_expression "(undefined4 **)(local_50 + 0x10)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_50 + 0x10)" (( "(") (binary_expression "local_50 + 0x10" (identifier "local_50") (+ "+") (number_literal "0x10")) () ")"))))) (= "=") (identifier "pcVar12")) (; ";")) (expression_statement "sVar9 = strlen(*(char **)(local_50 + 8));" (assignment_expression "sVar9 = strlen(*(char **)(local_50 + 8))" (identifier "sVar9") (= "=") (call_expression "strlen(*(char **)(local_50 + 8))" (identifier "strlen") (argument_list "(*(char **)(local_50 + 8))" (( "(") (pointer_expression "*(char **)(local_50 + 8)" (* "*") (cast_expression "(char **)(local_50 + 8)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_50 + 8)" (( "(") (binary_expression "local_50 + 8" (identifier "local_50") (+ "+") (number_literal "8")) () ")")))) () ")")))) (; ";")) (expression_statement "pcVar12 = (char *)xmalloc(sVar9 + 3);" (assignment_expression "pcVar12 = (char *)xmalloc(sVar9 + 3)" (identifier "pcVar12") (= "=") (cast_expression "(char *)xmalloc(sVar9 + 3)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "xmalloc(sVar9 + 3)" (identifier "xmalloc") (argument_list "(sVar9 + 3)" (( "(") (binary_expression "sVar9 + 3" (identifier "sVar9") (+ "+") (number_literal "3")) () ")"))))) (; ";")) (expression_statement "sprintf(pcVar12,"%s.%c",*(undefined4 *)(local_50 + 8),iVar6);" (call_expression "sprintf(pcVar12,"%s.%c",*(undefined4 *)(local_50 + 8),iVar6)" (identifier "sprintf") (argument_list "(pcVar12,"%s.%c",*(undefined4 *)(local_50 + 8),iVar6)" (( "(") (identifier "pcVar12") (, ",") (string_literal ""%s.%c"" (" """) (string_content "%s.%c") (" """)) (, ",") (pointer_expression "*(undefined4 *)(local_50 + 8)" (* "*") (cast_expression "(undefined4 *)(local_50 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_50 + 8)" (( "(") (binary_expression "local_50 + 8" (identifier "local_50") (+ "+") (number_literal "8")) () ")")))) (, ",") (identifier "iVar6") () ")"))) (; ";")) (expression_statement "*(char **)(local_50 + 8) = pcVar12;" (assignment_expression "*(char **)(local_50 + 8) = pcVar12" (pointer_expression "*(char **)(local_50 + 8)" (* "*") (cast_expression "(char **)(local_50 + 8)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_50 + 8)" (( "(") (binary_expression "local_50 + 8" (identifier "local_50") (+ "+") (number_literal "8")) () ")")))) (= "=") (identifier "pcVar12")) (; ";")) (expression_statement "bVar16 = true;" (assignment_expression "bVar16 = true" (identifier "bVar16") (= "=") (true "true")) (; ";")) (} "}"))) (} "}"))) (labeled_statement "LAB_00056b08:\n        local_50 = *(int *)(local_50 + 0x18);" (statement_identifier "LAB_00056b08") (: ":") (expression_statement "local_50 = *(int *)(local_50 + 0x18);" (assignment_expression "local_50 = *(int *)(local_50 + 0x18)" (identifier "local_50") (= "=") (pointer_expression "*(int *)(local_50 + 0x18)" (* "*") (cast_expression "(int *)(local_50 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_50 + 0x18)" (( "(") (binary_expression "local_50 + 0x18" (identifier "local_50") (+ "+") (number_literal "0x18")) () ")"))))) (; ";"))) (labeled_statement "joined_r0x00056b15:\n      } while (local_50 != 0);" (statement_identifier "joined_r0x00056b15") (: ":") (ERROR "}" (} "}")) (while_statement "while (local_50 != 0);" (while "while") (parenthesized_expression "(local_50 != 0)" (( "(") (binary_expression "local_50 != 0" (identifier "local_50") (!= "!=") (number_literal "0")) () ")")) (expression_statement ";" (; ";")))) (expression_statement "local_4c = DAT_001cf6bc;" (assignment_expression "local_4c = DAT_001cf6bc" (identifier "local_4c") (= "=") (identifier "DAT_001cf6bc")) (; ";")) (if_statement "if (DAT_001cf6bc != 0) {\n        do {\n          iVar6 = *(int *)(local_4c + 0x10);\n          if ((*(int *)(iVar6 + 0x8c) != 0) &&\n             (puVar7 = *(undefined4 **)(iVar6 + 0x60), puVar7 != (undefined4 *)0x0)) {\n            puVar18 = (undefined4 *)0x0;\n            bVar16 = false;\n            bVar24 = true;\n            do {\n              bVar22 = false;\n              iVar17 = 7;\n              pbVar19 = (byte *)*puVar7;\n              pbVar21 = (byte *)".idata$";\n              do {\n                if (iVar17 == 0) break;\n                iVar17 = iVar17 + -1;\n                bVar22 = *pbVar19 < *pbVar21;\n                bVar24 = *pbVar19 == *pbVar21;\n                pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n                pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n              } while (bVar24);\n              if ((!bVar22 && !bVar24) == bVar22) {\n                bVar16 = true;\n              }\n              if (((*(byte *)(puVar7 + 5) & 0x10) != 0) && (puVar7[0x19] != 0)) {\n                puVar18 = puVar7;\n              }\n              puVar7 = (undefined4 *)puVar7[3];\n              bVar24 = puVar7 == (undefined4 *)0x0;\n            } while (!bVar24);\n            if ((puVar18 != (undefined4 *)0x0) && (bVar16)) {\n              iVar6 = bfd_generic_link_read_symbols(iVar6);\n              if (iVar6 == 0) {\nLAB_000570af:\n                uVar11 = *(undefined4 *)(local_4c + 0x10);\n                uVar14 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n                FUN_00034d20(uVar14,uVar11);\n                return;\n              }\n              piVar20 = *(int **)(*(int *)(local_4c + 0x10) + 0x78);\n              iVar6 = *(int *)(*(int *)(local_4c + 0x10) + 0x7c);\n              if (0 < iVar6) {\n                piVar1 = piVar20 + iVar6;\n                do {\n                  if ((((*(int *)(*(int *)(*piVar20 + 0x14) + 4) == puVar18[1]) &&\n                       (iVar6 = bfd_link_hash_lookup\n                                          (DAT_001d0400,*(undefined4 *)(*piVar20 + 4),0,0,1),\n                       iVar6 != 0)) && (*(char *)(iVar6 + 0xc) == '\x03')) &&\n                     ((*(int *)(iVar6 + 0x10) == 0 && (*(int *)(DAT_001d0400 + 0x20) != iVar6)))) {\n                    puVar18[5] = puVar18[5] | 0x8000;\n                  }\n                  piVar20 = piVar20 + 1;\n                } while (piVar1 != piVar20);\n              }\n            }\n          }\n          local_4c = *(int *)(local_4c + 0x18);\n        } while (local_4c != 0);\n      }" (if "if") (parenthesized_expression "(DAT_001cf6bc != 0)" (( "(") (binary_expression "DAT_001cf6bc != 0" (identifier "DAT_001cf6bc") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        do {\n          iVar6 = *(int *)(local_4c + 0x10);\n          if ((*(int *)(iVar6 + 0x8c) != 0) &&\n             (puVar7 = *(undefined4 **)(iVar6 + 0x60), puVar7 != (undefined4 *)0x0)) {\n            puVar18 = (undefined4 *)0x0;\n            bVar16 = false;\n            bVar24 = true;\n            do {\n              bVar22 = false;\n              iVar17 = 7;\n              pbVar19 = (byte *)*puVar7;\n              pbVar21 = (byte *)".idata$";\n              do {\n                if (iVar17 == 0) break;\n                iVar17 = iVar17 + -1;\n                bVar22 = *pbVar19 < *pbVar21;\n                bVar24 = *pbVar19 == *pbVar21;\n                pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n                pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n              } while (bVar24);\n              if ((!bVar22 && !bVar24) == bVar22) {\n                bVar16 = true;\n              }\n              if (((*(byte *)(puVar7 + 5) & 0x10) != 0) && (puVar7[0x19] != 0)) {\n                puVar18 = puVar7;\n              }\n              puVar7 = (undefined4 *)puVar7[3];\n              bVar24 = puVar7 == (undefined4 *)0x0;\n            } while (!bVar24);\n            if ((puVar18 != (undefined4 *)0x0) && (bVar16)) {\n              iVar6 = bfd_generic_link_read_symbols(iVar6);\n              if (iVar6 == 0) {\nLAB_000570af:\n                uVar11 = *(undefined4 *)(local_4c + 0x10);\n                uVar14 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n                FUN_00034d20(uVar14,uVar11);\n                return;\n              }\n              piVar20 = *(int **)(*(int *)(local_4c + 0x10) + 0x78);\n              iVar6 = *(int *)(*(int *)(local_4c + 0x10) + 0x7c);\n              if (0 < iVar6) {\n                piVar1 = piVar20 + iVar6;\n                do {\n                  if ((((*(int *)(*(int *)(*piVar20 + 0x14) + 4) == puVar18[1]) &&\n                       (iVar6 = bfd_link_hash_lookup\n                                          (DAT_001d0400,*(undefined4 *)(*piVar20 + 4),0,0,1),\n                       iVar6 != 0)) && (*(char *)(iVar6 + 0xc) == '\x03')) &&\n                     ((*(int *)(iVar6 + 0x10) == 0 && (*(int *)(DAT_001d0400 + 0x20) != iVar6)))) {\n                    puVar18[5] = puVar18[5] | 0x8000;\n                  }\n                  piVar20 = piVar20 + 1;\n                } while (piVar1 != piVar20);\n              }\n            }\n          }\n          local_4c = *(int *)(local_4c + 0x18);\n        } while (local_4c != 0);\n      }" ({ "{") (do_statement "do {\n          iVar6 = *(int *)(local_4c + 0x10);\n          if ((*(int *)(iVar6 + 0x8c) != 0) &&\n             (puVar7 = *(undefined4 **)(iVar6 + 0x60), puVar7 != (undefined4 *)0x0)) {\n            puVar18 = (undefined4 *)0x0;\n            bVar16 = false;\n            bVar24 = true;\n            do {\n              bVar22 = false;\n              iVar17 = 7;\n              pbVar19 = (byte *)*puVar7;\n              pbVar21 = (byte *)".idata$";\n              do {\n                if (iVar17 == 0) break;\n                iVar17 = iVar17 + -1;\n                bVar22 = *pbVar19 < *pbVar21;\n                bVar24 = *pbVar19 == *pbVar21;\n                pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n                pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n              } while (bVar24);\n              if ((!bVar22 && !bVar24) == bVar22) {\n                bVar16 = true;\n              }\n              if (((*(byte *)(puVar7 + 5) & 0x10) != 0) && (puVar7[0x19] != 0)) {\n                puVar18 = puVar7;\n              }\n              puVar7 = (undefined4 *)puVar7[3];\n              bVar24 = puVar7 == (undefined4 *)0x0;\n            } while (!bVar24);\n            if ((puVar18 != (undefined4 *)0x0) && (bVar16)) {\n              iVar6 = bfd_generic_link_read_symbols(iVar6);\n              if (iVar6 == 0) {\nLAB_000570af:\n                uVar11 = *(undefined4 *)(local_4c + 0x10);\n                uVar14 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n                FUN_00034d20(uVar14,uVar11);\n                return;\n              }\n              piVar20 = *(int **)(*(int *)(local_4c + 0x10) + 0x78);\n              iVar6 = *(int *)(*(int *)(local_4c + 0x10) + 0x7c);\n              if (0 < iVar6) {\n                piVar1 = piVar20 + iVar6;\n                do {\n                  if ((((*(int *)(*(int *)(*piVar20 + 0x14) + 4) == puVar18[1]) &&\n                       (iVar6 = bfd_link_hash_lookup\n                                          (DAT_001d0400,*(undefined4 *)(*piVar20 + 4),0,0,1),\n                       iVar6 != 0)) && (*(char *)(iVar6 + 0xc) == '\x03')) &&\n                     ((*(int *)(iVar6 + 0x10) == 0 && (*(int *)(DAT_001d0400 + 0x20) != iVar6)))) {\n                    puVar18[5] = puVar18[5] | 0x8000;\n                  }\n                  piVar20 = piVar20 + 1;\n                } while (piVar1 != piVar20);\n              }\n            }\n          }\n          local_4c = *(int *)(local_4c + 0x18);\n        } while (local_4c != 0);" (do "do") (compound_statement "{\n          iVar6 = *(int *)(local_4c + 0x10);\n          if ((*(int *)(iVar6 + 0x8c) != 0) &&\n             (puVar7 = *(undefined4 **)(iVar6 + 0x60), puVar7 != (undefined4 *)0x0)) {\n            puVar18 = (undefined4 *)0x0;\n            bVar16 = false;\n            bVar24 = true;\n            do {\n              bVar22 = false;\n              iVar17 = 7;\n              pbVar19 = (byte *)*puVar7;\n              pbVar21 = (byte *)".idata$";\n              do {\n                if (iVar17 == 0) break;\n                iVar17 = iVar17 + -1;\n                bVar22 = *pbVar19 < *pbVar21;\n                bVar24 = *pbVar19 == *pbVar21;\n                pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n                pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n              } while (bVar24);\n              if ((!bVar22 && !bVar24) == bVar22) {\n                bVar16 = true;\n              }\n              if (((*(byte *)(puVar7 + 5) & 0x10) != 0) && (puVar7[0x19] != 0)) {\n                puVar18 = puVar7;\n              }\n              puVar7 = (undefined4 *)puVar7[3];\n              bVar24 = puVar7 == (undefined4 *)0x0;\n            } while (!bVar24);\n            if ((puVar18 != (undefined4 *)0x0) && (bVar16)) {\n              iVar6 = bfd_generic_link_read_symbols(iVar6);\n              if (iVar6 == 0) {\nLAB_000570af:\n                uVar11 = *(undefined4 *)(local_4c + 0x10);\n                uVar14 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n                FUN_00034d20(uVar14,uVar11);\n                return;\n              }\n              piVar20 = *(int **)(*(int *)(local_4c + 0x10) + 0x78);\n              iVar6 = *(int *)(*(int *)(local_4c + 0x10) + 0x7c);\n              if (0 < iVar6) {\n                piVar1 = piVar20 + iVar6;\n                do {\n                  if ((((*(int *)(*(int *)(*piVar20 + 0x14) + 4) == puVar18[1]) &&\n                       (iVar6 = bfd_link_hash_lookup\n                                          (DAT_001d0400,*(undefined4 *)(*piVar20 + 4),0,0,1),\n                       iVar6 != 0)) && (*(char *)(iVar6 + 0xc) == '\x03')) &&\n                     ((*(int *)(iVar6 + 0x10) == 0 && (*(int *)(DAT_001d0400 + 0x20) != iVar6)))) {\n                    puVar18[5] = puVar18[5] | 0x8000;\n                  }\n                  piVar20 = piVar20 + 1;\n                } while (piVar1 != piVar20);\n              }\n            }\n          }\n          local_4c = *(int *)(local_4c + 0x18);\n        }" ({ "{") (expression_statement "iVar6 = *(int *)(local_4c + 0x10);" (assignment_expression "iVar6 = *(int *)(local_4c + 0x10)" (identifier "iVar6") (= "=") (pointer_expression "*(int *)(local_4c + 0x10)" (* "*") (cast_expression "(int *)(local_4c + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_4c + 0x10)" (( "(") (binary_expression "local_4c + 0x10" (identifier "local_4c") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (if_statement "if ((*(int *)(iVar6 + 0x8c) != 0) &&\n             (puVar7 = *(undefined4 **)(iVar6 + 0x60), puVar7 != (undefined4 *)0x0)) {\n            puVar18 = (undefined4 *)0x0;\n            bVar16 = false;\n            bVar24 = true;\n            do {\n              bVar22 = false;\n              iVar17 = 7;\n              pbVar19 = (byte *)*puVar7;\n              pbVar21 = (byte *)".idata$";\n              do {\n                if (iVar17 == 0) break;\n                iVar17 = iVar17 + -1;\n                bVar22 = *pbVar19 < *pbVar21;\n                bVar24 = *pbVar19 == *pbVar21;\n                pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n                pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n              } while (bVar24);\n              if ((!bVar22 && !bVar24) == bVar22) {\n                bVar16 = true;\n              }\n              if (((*(byte *)(puVar7 + 5) & 0x10) != 0) && (puVar7[0x19] != 0)) {\n                puVar18 = puVar7;\n              }\n              puVar7 = (undefined4 *)puVar7[3];\n              bVar24 = puVar7 == (undefined4 *)0x0;\n            } while (!bVar24);\n            if ((puVar18 != (undefined4 *)0x0) && (bVar16)) {\n              iVar6 = bfd_generic_link_read_symbols(iVar6);\n              if (iVar6 == 0) {\nLAB_000570af:\n                uVar11 = *(undefined4 *)(local_4c + 0x10);\n                uVar14 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n                FUN_00034d20(uVar14,uVar11);\n                return;\n              }\n              piVar20 = *(int **)(*(int *)(local_4c + 0x10) + 0x78);\n              iVar6 = *(int *)(*(int *)(local_4c + 0x10) + 0x7c);\n              if (0 < iVar6) {\n                piVar1 = piVar20 + iVar6;\n                do {\n                  if ((((*(int *)(*(int *)(*piVar20 + 0x14) + 4) == puVar18[1]) &&\n                       (iVar6 = bfd_link_hash_lookup\n                                          (DAT_001d0400,*(undefined4 *)(*piVar20 + 4),0,0,1),\n                       iVar6 != 0)) && (*(char *)(iVar6 + 0xc) == '\x03')) &&\n                     ((*(int *)(iVar6 + 0x10) == 0 && (*(int *)(DAT_001d0400 + 0x20) != iVar6)))) {\n                    puVar18[5] = puVar18[5] | 0x8000;\n                  }\n                  piVar20 = piVar20 + 1;\n                } while (piVar1 != piVar20);\n              }\n            }\n          }" (if "if") (parenthesized_expression "((*(int *)(iVar6 + 0x8c) != 0) &&\n             (puVar7 = *(undefined4 **)(iVar6 + 0x60), puVar7 != (undefined4 *)0x0))" (( "(") (binary_expression "(*(int *)(iVar6 + 0x8c) != 0) &&\n             (puVar7 = *(undefined4 **)(iVar6 + 0x60), puVar7 != (undefined4 *)0x0)" (parenthesized_expression "(*(int *)(iVar6 + 0x8c) != 0)" (( "(") (binary_expression "*(int *)(iVar6 + 0x8c) != 0" (pointer_expression "*(int *)(iVar6 + 0x8c)" (* "*") (cast_expression "(int *)(iVar6 + 0x8c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x8c)" (( "(") (binary_expression "iVar6 + 0x8c" (identifier "iVar6") (+ "+") (number_literal "0x8c")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(puVar7 = *(undefined4 **)(iVar6 + 0x60), puVar7 != (undefined4 *)0x0)" (( "(") (comma_expression "puVar7 = *(undefined4 **)(iVar6 + 0x60), puVar7 != (undefined4 *)0x0" (assignment_expression "puVar7 = *(undefined4 **)(iVar6 + 0x60)" (identifier "puVar7") (= "=") (pointer_expression "*(undefined4 **)(iVar6 + 0x60)" (* "*") (cast_expression "(undefined4 **)(iVar6 + 0x60)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar6 + 0x60)" (( "(") (binary_expression "iVar6 + 0x60" (identifier "iVar6") (+ "+") (number_literal "0x60")) () ")"))))) (, ",") (binary_expression "puVar7 != (undefined4 *)0x0" (identifier "puVar7") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")"))) () ")")) (compound_statement "{\n            puVar18 = (undefined4 *)0x0;\n            bVar16 = false;\n            bVar24 = true;\n            do {\n              bVar22 = false;\n              iVar17 = 7;\n              pbVar19 = (byte *)*puVar7;\n              pbVar21 = (byte *)".idata$";\n              do {\n                if (iVar17 == 0) break;\n                iVar17 = iVar17 + -1;\n                bVar22 = *pbVar19 < *pbVar21;\n                bVar24 = *pbVar19 == *pbVar21;\n                pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n                pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n              } while (bVar24);\n              if ((!bVar22 && !bVar24) == bVar22) {\n                bVar16 = true;\n              }\n              if (((*(byte *)(puVar7 + 5) & 0x10) != 0) && (puVar7[0x19] != 0)) {\n                puVar18 = puVar7;\n              }\n              puVar7 = (undefined4 *)puVar7[3];\n              bVar24 = puVar7 == (undefined4 *)0x0;\n            } while (!bVar24);\n            if ((puVar18 != (undefined4 *)0x0) && (bVar16)) {\n              iVar6 = bfd_generic_link_read_symbols(iVar6);\n              if (iVar6 == 0) {\nLAB_000570af:\n                uVar11 = *(undefined4 *)(local_4c + 0x10);\n                uVar14 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n                FUN_00034d20(uVar14,uVar11);\n                return;\n              }\n              piVar20 = *(int **)(*(int *)(local_4c + 0x10) + 0x78);\n              iVar6 = *(int *)(*(int *)(local_4c + 0x10) + 0x7c);\n              if (0 < iVar6) {\n                piVar1 = piVar20 + iVar6;\n                do {\n                  if ((((*(int *)(*(int *)(*piVar20 + 0x14) + 4) == puVar18[1]) &&\n                       (iVar6 = bfd_link_hash_lookup\n                                          (DAT_001d0400,*(undefined4 *)(*piVar20 + 4),0,0,1),\n                       iVar6 != 0)) && (*(char *)(iVar6 + 0xc) == '\x03')) &&\n                     ((*(int *)(iVar6 + 0x10) == 0 && (*(int *)(DAT_001d0400 + 0x20) != iVar6)))) {\n                    puVar18[5] = puVar18[5] | 0x8000;\n                  }\n                  piVar20 = piVar20 + 1;\n                } while (piVar1 != piVar20);\n              }\n            }\n          }" ({ "{") (expression_statement "puVar18 = (undefined4 *)0x0;" (assignment_expression "puVar18 = (undefined4 *)0x0" (identifier "puVar18") (= "=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "bVar16 = false;" (assignment_expression "bVar16 = false" (identifier "bVar16") (= "=") (false "false")) (; ";")) (expression_statement "bVar24 = true;" (assignment_expression "bVar24 = true" (identifier "bVar24") (= "=") (true "true")) (; ";")) (do_statement "do {\n              bVar22 = false;\n              iVar17 = 7;\n              pbVar19 = (byte *)*puVar7;\n              pbVar21 = (byte *)".idata$";\n              do {\n                if (iVar17 == 0) break;\n                iVar17 = iVar17 + -1;\n                bVar22 = *pbVar19 < *pbVar21;\n                bVar24 = *pbVar19 == *pbVar21;\n                pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n                pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n              } while (bVar24);\n              if ((!bVar22 && !bVar24) == bVar22) {\n                bVar16 = true;\n              }\n              if (((*(byte *)(puVar7 + 5) & 0x10) != 0) && (puVar7[0x19] != 0)) {\n                puVar18 = puVar7;\n              }\n              puVar7 = (undefined4 *)puVar7[3];\n              bVar24 = puVar7 == (undefined4 *)0x0;\n            } while (!bVar24);" (do "do") (compound_statement "{\n              bVar22 = false;\n              iVar17 = 7;\n              pbVar19 = (byte *)*puVar7;\n              pbVar21 = (byte *)".idata$";\n              do {\n                if (iVar17 == 0) break;\n                iVar17 = iVar17 + -1;\n                bVar22 = *pbVar19 < *pbVar21;\n                bVar24 = *pbVar19 == *pbVar21;\n                pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n                pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n              } while (bVar24);\n              if ((!bVar22 && !bVar24) == bVar22) {\n                bVar16 = true;\n              }\n              if (((*(byte *)(puVar7 + 5) & 0x10) != 0) && (puVar7[0x19] != 0)) {\n                puVar18 = puVar7;\n              }\n              puVar7 = (undefined4 *)puVar7[3];\n              bVar24 = puVar7 == (undefined4 *)0x0;\n            }" ({ "{") (expression_statement "bVar22 = false;" (assignment_expression "bVar22 = false" (identifier "bVar22") (= "=") (false "false")) (; ";")) (expression_statement "iVar17 = 7;" (assignment_expression "iVar17 = 7" (identifier "iVar17") (= "=") (number_literal "7")) (; ";")) (expression_statement "pbVar19 = (byte *)*puVar7;" (assignment_expression "pbVar19 = (byte *)*puVar7" (identifier "pbVar19") (= "=") (cast_expression "(byte *)*puVar7" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar7" (* "*") (identifier "puVar7")))) (; ";")) (expression_statement "pbVar21 = (byte *)".idata$";" (assignment_expression "pbVar21 = (byte *)".idata$"" (identifier "pbVar21") (= "=") (cast_expression "(byte *)".idata$"" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal "".idata$"" (" """) (string_content ".idata$") (" """)))) (; ";")) (do_statement "do {\n                if (iVar17 == 0) break;\n                iVar17 = iVar17 + -1;\n                bVar22 = *pbVar19 < *pbVar21;\n                bVar24 = *pbVar19 == *pbVar21;\n                pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n                pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n              } while (bVar24);" (do "do") (compound_statement "{\n                if (iVar17 == 0) break;\n                iVar17 = iVar17 + -1;\n                bVar22 = *pbVar19 < *pbVar21;\n                bVar24 = *pbVar19 == *pbVar21;\n                pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n                pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;\n              }" ({ "{") (if_statement "if (iVar17 == 0) break;" (if "if") (parenthesized_expression "(iVar17 == 0)" (( "(") (binary_expression "iVar17 == 0" (identifier "iVar17") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar17 = iVar17 + -1;" (assignment_expression "iVar17 = iVar17 + -1" (identifier "iVar17") (= "=") (binary_expression "iVar17 + -1" (identifier "iVar17") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar22 = *pbVar19 < *pbVar21;" (assignment_expression "bVar22 = *pbVar19 < *pbVar21" (identifier "bVar22") (= "=") (binary_expression "*pbVar19 < *pbVar21" (pointer_expression "*pbVar19" (* "*") (identifier "pbVar19")) (< "<") (pointer_expression "*pbVar21" (* "*") (identifier "pbVar21")))) (; ";")) (expression_statement "bVar24 = *pbVar19 == *pbVar21;" (assignment_expression "bVar24 = *pbVar19 == *pbVar21" (identifier "bVar24") (= "=") (binary_expression "*pbVar19 == *pbVar21" (pointer_expression "*pbVar19" (* "*") (identifier "pbVar19")) (== "==") (pointer_expression "*pbVar21" (* "*") (identifier "pbVar21")))) (; ";")) (expression_statement "pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1" (identifier "pbVar19") (= "=") (binary_expression "pbVar19 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar19 + (uint)bVar25 * -2" (identifier "pbVar19") (+ "+") (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar25")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1" (identifier "pbVar21") (= "=") (binary_expression "pbVar21 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar21 + (uint)bVar25 * -2" (identifier "pbVar21") (+ "+") (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar25")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar24)" (( "(") (identifier "bVar24") () ")")) (; ";")) (if_statement "if ((!bVar22 && !bVar24) == bVar22) {\n                bVar16 = true;\n              }" (if "if") (parenthesized_expression "((!bVar22 && !bVar24) == bVar22)" (( "(") (binary_expression "(!bVar22 && !bVar24) == bVar22" (parenthesized_expression "(!bVar22 && !bVar24)" (( "(") (binary_expression "!bVar22 && !bVar24" (unary_expression "!bVar22" (! "!") (identifier "bVar22")) (&& "&&") (unary_expression "!bVar24" (! "!") (identifier "bVar24"))) () ")")) (== "==") (identifier "bVar22")) () ")")) (compound_statement "{\n                bVar16 = true;\n              }" ({ "{") (expression_statement "bVar16 = true;" (assignment_expression "bVar16 = true" (identifier "bVar16") (= "=") (true "true")) (; ";")) (} "}"))) (if_statement "if (((*(byte *)(puVar7 + 5) & 0x10) != 0) && (puVar7[0x19] != 0)) {\n                puVar18 = puVar7;\n              }" (if "if") (parenthesized_expression "(((*(byte *)(puVar7 + 5) & 0x10) != 0) && (puVar7[0x19] != 0))" (( "(") (binary_expression "((*(byte *)(puVar7 + 5) & 0x10) != 0) && (puVar7[0x19] != 0)" (parenthesized_expression "((*(byte *)(puVar7 + 5) & 0x10) != 0)" (( "(") (binary_expression "(*(byte *)(puVar7 + 5) & 0x10) != 0" (parenthesized_expression "(*(byte *)(puVar7 + 5) & 0x10)" (( "(") (binary_expression "*(byte *)(puVar7 + 5) & 0x10" (pointer_expression "*(byte *)(puVar7 + 5)" (* "*") (cast_expression "(byte *)(puVar7 + 5)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + 5)" (( "(") (binary_expression "puVar7 + 5" (identifier "puVar7") (+ "+") (number_literal "5")) () ")")))) (& "&") (number_literal "0x10")) () ")")) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(puVar7[0x19] != 0)" (( "(") (binary_expression "puVar7[0x19] != 0" (subscript_expression "puVar7[0x19]" (identifier "puVar7") ([ "[") (number_literal "0x19") (] "]")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n                puVar18 = puVar7;\n              }" ({ "{") (expression_statement "puVar18 = puVar7;" (assignment_expression "puVar18 = puVar7" (identifier "puVar18") (= "=") (identifier "puVar7")) (; ";")) (} "}"))) (expression_statement "puVar7 = (undefined4 *)puVar7[3];" (assignment_expression "puVar7 = (undefined4 *)puVar7[3]" (identifier "puVar7") (= "=") (cast_expression "(undefined4 *)puVar7[3]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar7[3]" (identifier "puVar7") ([ "[") (number_literal "3") (] "]")))) (; ";")) (expression_statement "bVar24 = puVar7 == (undefined4 *)0x0;" (assignment_expression "bVar24 = puVar7 == (undefined4 *)0x0" (identifier "bVar24") (= "=") (binary_expression "puVar7 == (undefined4 *)0x0" (identifier "puVar7") (== "==") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(!bVar24)" (( "(") (unary_expression "!bVar24" (! "!") (identifier "bVar24")) () ")")) (; ";")) (if_statement "if ((puVar18 != (undefined4 *)0x0) && (bVar16)) {\n              iVar6 = bfd_generic_link_read_symbols(iVar6);\n              if (iVar6 == 0) {\nLAB_000570af:\n                uVar11 = *(undefined4 *)(local_4c + 0x10);\n                uVar14 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n                FUN_00034d20(uVar14,uVar11);\n                return;\n              }\n              piVar20 = *(int **)(*(int *)(local_4c + 0x10) + 0x78);\n              iVar6 = *(int *)(*(int *)(local_4c + 0x10) + 0x7c);\n              if (0 < iVar6) {\n                piVar1 = piVar20 + iVar6;\n                do {\n                  if ((((*(int *)(*(int *)(*piVar20 + 0x14) + 4) == puVar18[1]) &&\n                       (iVar6 = bfd_link_hash_lookup\n                                          (DAT_001d0400,*(undefined4 *)(*piVar20 + 4),0,0,1),\n                       iVar6 != 0)) && (*(char *)(iVar6 + 0xc) == '\x03')) &&\n                     ((*(int *)(iVar6 + 0x10) == 0 && (*(int *)(DAT_001d0400 + 0x20) != iVar6)))) {\n                    puVar18[5] = puVar18[5] | 0x8000;\n                  }\n                  piVar20 = piVar20 + 1;\n                } while (piVar1 != piVar20);\n              }\n            }" (if "if") (parenthesized_expression "((puVar18 != (undefined4 *)0x0) && (bVar16))" (( "(") (binary_expression "(puVar18 != (undefined4 *)0x0) && (bVar16)" (parenthesized_expression "(puVar18 != (undefined4 *)0x0)" (( "(") (binary_expression "puVar18 != (undefined4 *)0x0" (identifier "puVar18") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(bVar16)" (( "(") (identifier "bVar16") () ")"))) () ")")) (compound_statement "{\n              iVar6 = bfd_generic_link_read_symbols(iVar6);\n              if (iVar6 == 0) {\nLAB_000570af:\n                uVar11 = *(undefined4 *)(local_4c + 0x10);\n                uVar14 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n                FUN_00034d20(uVar14,uVar11);\n                return;\n              }\n              piVar20 = *(int **)(*(int *)(local_4c + 0x10) + 0x78);\n              iVar6 = *(int *)(*(int *)(local_4c + 0x10) + 0x7c);\n              if (0 < iVar6) {\n                piVar1 = piVar20 + iVar6;\n                do {\n                  if ((((*(int *)(*(int *)(*piVar20 + 0x14) + 4) == puVar18[1]) &&\n                       (iVar6 = bfd_link_hash_lookup\n                                          (DAT_001d0400,*(undefined4 *)(*piVar20 + 4),0,0,1),\n                       iVar6 != 0)) && (*(char *)(iVar6 + 0xc) == '\x03')) &&\n                     ((*(int *)(iVar6 + 0x10) == 0 && (*(int *)(DAT_001d0400 + 0x20) != iVar6)))) {\n                    puVar18[5] = puVar18[5] | 0x8000;\n                  }\n                  piVar20 = piVar20 + 1;\n                } while (piVar1 != piVar20);\n              }\n            }" ({ "{") (expression_statement "iVar6 = bfd_generic_link_read_symbols(iVar6);" (assignment_expression "iVar6 = bfd_generic_link_read_symbols(iVar6)" (identifier "iVar6") (= "=") (call_expression "bfd_generic_link_read_symbols(iVar6)" (identifier "bfd_generic_link_read_symbols") (argument_list "(iVar6)" (( "(") (identifier "iVar6") () ")")))) (; ";")) (if_statement "if (iVar6 == 0) {\nLAB_000570af:\n                uVar11 = *(undefined4 *)(local_4c + 0x10);\n                uVar14 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n                FUN_00034d20(uVar14,uVar11);\n                return;\n              }" (if "if") (parenthesized_expression "(iVar6 == 0)" (( "(") (binary_expression "iVar6 == 0" (identifier "iVar6") (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_000570af:\n                uVar11 = *(undefined4 *)(local_4c + 0x10);\n                uVar14 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n                FUN_00034d20(uVar14,uVar11);\n                return;\n              }" ({ "{") (labeled_statement "LAB_000570af:\n                uVar11 = *(undefined4 *)(local_4c + 0x10);" (statement_identifier "LAB_000570af") (: ":") (expression_statement "uVar11 = *(undefined4 *)(local_4c + 0x10);" (assignment_expression "uVar11 = *(undefined4 *)(local_4c + 0x10)" (identifier "uVar11") (= "=") (pointer_expression "*(undefined4 *)(local_4c + 0x10)" (* "*") (cast_expression "(undefined4 *)(local_4c + 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_4c + 0x10)" (( "(") (binary_expression "local_4c + 0x10" (identifier "local_4c") (+ "+") (number_literal "0x10")) () ")"))))) (; ";"))) (expression_statement "uVar14 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);" (assignment_expression "uVar14 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5)" (identifier "uVar14") (= "=") (call_expression "dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5)" (identifier "dcgettext") (argument_list "(0,"%F%P: %pB: could not read symbols: %E\n",5)" (( "(") (number_literal "0") (, ",") (string_literal ""%F%P: %pB: could not read symbols: %E\n"" (" """) (string_content "%F%P: %pB: could not read symbols: %E") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_00034d20(uVar14,uVar11);" (call_expression "FUN_00034d20(uVar14,uVar11)" (identifier "FUN_00034d20") (argument_list "(uVar14,uVar11)" (( "(") (identifier "uVar14") (, ",") (identifier "uVar11") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "piVar20 = *(int **)(*(int *)(local_4c + 0x10) + 0x78);" (assignment_expression "piVar20 = *(int **)(*(int *)(local_4c + 0x10) + 0x78)" (identifier "piVar20") (= "=") (pointer_expression "*(int **)(*(int *)(local_4c + 0x10) + 0x78)" (* "*") (cast_expression "(int **)(*(int *)(local_4c + 0x10) + 0x78)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(local_4c + 0x10) + 0x78)" (( "(") (binary_expression "*(int *)(local_4c + 0x10) + 0x78" (pointer_expression "*(int *)(local_4c + 0x10)" (* "*") (cast_expression "(int *)(local_4c + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_4c + 0x10)" (( "(") (binary_expression "local_4c + 0x10" (identifier "local_4c") (+ "+") (number_literal "0x10")) () ")")))) (+ "+") (number_literal "0x78")) () ")"))))) (; ";")) (expression_statement "iVar6 = *(int *)(*(int *)(local_4c + 0x10) + 0x7c);" (assignment_expression "iVar6 = *(int *)(*(int *)(local_4c + 0x10) + 0x7c)" (identifier "iVar6") (= "=") (pointer_expression "*(int *)(*(int *)(local_4c + 0x10) + 0x7c)" (* "*") (cast_expression "(int *)(*(int *)(local_4c + 0x10) + 0x7c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(local_4c + 0x10) + 0x7c)" (( "(") (binary_expression "*(int *)(local_4c + 0x10) + 0x7c" (pointer_expression "*(int *)(local_4c + 0x10)" (* "*") (cast_expression "(int *)(local_4c + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_4c + 0x10)" (( "(") (binary_expression "local_4c + 0x10" (identifier "local_4c") (+ "+") (number_literal "0x10")) () ")")))) (+ "+") (number_literal "0x7c")) () ")"))))) (; ";")) (if_statement "if (0 < iVar6) {\n                piVar1 = piVar20 + iVar6;\n                do {\n                  if ((((*(int *)(*(int *)(*piVar20 + 0x14) + 4) == puVar18[1]) &&\n                       (iVar6 = bfd_link_hash_lookup\n                                          (DAT_001d0400,*(undefined4 *)(*piVar20 + 4),0,0,1),\n                       iVar6 != 0)) && (*(char *)(iVar6 + 0xc) == '\x03')) &&\n                     ((*(int *)(iVar6 + 0x10) == 0 && (*(int *)(DAT_001d0400 + 0x20) != iVar6)))) {\n                    puVar18[5] = puVar18[5] | 0x8000;\n                  }\n                  piVar20 = piVar20 + 1;\n                } while (piVar1 != piVar20);\n              }" (if "if") (parenthesized_expression "(0 < iVar6)" (( "(") (binary_expression "0 < iVar6" (number_literal "0") (< "<") (identifier "iVar6")) () ")")) (compound_statement "{\n                piVar1 = piVar20 + iVar6;\n                do {\n                  if ((((*(int *)(*(int *)(*piVar20 + 0x14) + 4) == puVar18[1]) &&\n                       (iVar6 = bfd_link_hash_lookup\n                                          (DAT_001d0400,*(undefined4 *)(*piVar20 + 4),0,0,1),\n                       iVar6 != 0)) && (*(char *)(iVar6 + 0xc) == '\x03')) &&\n                     ((*(int *)(iVar6 + 0x10) == 0 && (*(int *)(DAT_001d0400 + 0x20) != iVar6)))) {\n                    puVar18[5] = puVar18[5] | 0x8000;\n                  }\n                  piVar20 = piVar20 + 1;\n                } while (piVar1 != piVar20);\n              }" ({ "{") (expression_statement "piVar1 = piVar20 + iVar6;" (assignment_expression "piVar1 = piVar20 + iVar6" (identifier "piVar1") (= "=") (binary_expression "piVar20 + iVar6" (identifier "piVar20") (+ "+") (identifier "iVar6"))) (; ";")) (do_statement "do {\n                  if ((((*(int *)(*(int *)(*piVar20 + 0x14) + 4) == puVar18[1]) &&\n                       (iVar6 = bfd_link_hash_lookup\n                                          (DAT_001d0400,*(undefined4 *)(*piVar20 + 4),0,0,1),\n                       iVar6 != 0)) && (*(char *)(iVar6 + 0xc) == '\x03')) &&\n                     ((*(int *)(iVar6 + 0x10) == 0 && (*(int *)(DAT_001d0400 + 0x20) != iVar6)))) {\n                    puVar18[5] = puVar18[5] | 0x8000;\n                  }\n                  piVar20 = piVar20 + 1;\n                } while (piVar1 != piVar20);" (do "do") (compound_statement "{\n                  if ((((*(int *)(*(int *)(*piVar20 + 0x14) + 4) == puVar18[1]) &&\n                       (iVar6 = bfd_link_hash_lookup\n                                          (DAT_001d0400,*(undefined4 *)(*piVar20 + 4),0,0,1),\n                       iVar6 != 0)) && (*(char *)(iVar6 + 0xc) == '\x03')) &&\n                     ((*(int *)(iVar6 + 0x10) == 0 && (*(int *)(DAT_001d0400 + 0x20) != iVar6)))) {\n                    puVar18[5] = puVar18[5] | 0x8000;\n                  }\n                  piVar20 = piVar20 + 1;\n                }" ({ "{") (if_statement "if ((((*(int *)(*(int *)(*piVar20 + 0x14) + 4) == puVar18[1]) &&\n                       (iVar6 = bfd_link_hash_lookup\n                                          (DAT_001d0400,*(undefined4 *)(*piVar20 + 4),0,0,1),\n                       iVar6 != 0)) && (*(char *)(iVar6 + 0xc) == '\x03')) &&\n                     ((*(int *)(iVar6 + 0x10) == 0 && (*(int *)(DAT_001d0400 + 0x20) != iVar6)))) {\n                    puVar18[5] = puVar18[5] | 0x8000;\n                  }" (if "if") (parenthesized_expression "((((*(int *)(*(int *)(*piVar20 + 0x14) + 4) == puVar18[1]) &&\n                       (iVar6 = bfd_link_hash_lookup\n                                          (DAT_001d0400,*(undefined4 *)(*piVar20 + 4),0,0,1),\n                       iVar6 != 0)) && (*(char *)(iVar6 + 0xc) == '\x03')) &&\n                     ((*(int *)(iVar6 + 0x10) == 0 && (*(int *)(DAT_001d0400 + 0x20) != iVar6))))" (( "(") (binary_expression "(((*(int *)(*(int *)(*piVar20 + 0x14) + 4) == puVar18[1]) &&\n                       (iVar6 = bfd_link_hash_lookup\n                                          (DAT_001d0400,*(undefined4 *)(*piVar20 + 4),0,0,1),\n                       iVar6 != 0)) && (*(char *)(iVar6 + 0xc) == '\x03')) &&\n                     ((*(int *)(iVar6 + 0x10) == 0 && (*(int *)(DAT_001d0400 + 0x20) != iVar6)))" (parenthesized_expression "(((*(int *)(*(int *)(*piVar20 + 0x14) + 4) == puVar18[1]) &&\n                       (iVar6 = bfd_link_hash_lookup\n                                          (DAT_001d0400,*(undefined4 *)(*piVar20 + 4),0,0,1),\n                       iVar6 != 0)) && (*(char *)(iVar6 + 0xc) == '\x03'))" (( "(") (binary_expression "((*(int *)(*(int *)(*piVar20 + 0x14) + 4) == puVar18[1]) &&\n                       (iVar6 = bfd_link_hash_lookup\n                                          (DAT_001d0400,*(undefined4 *)(*piVar20 + 4),0,0,1),\n                       iVar6 != 0)) && (*(char *)(iVar6 + 0xc) == '\x03')" (parenthesized_expression "((*(int *)(*(int *)(*piVar20 + 0x14) + 4) == puVar18[1]) &&\n                       (iVar6 = bfd_link_hash_lookup\n                                          (DAT_001d0400,*(undefined4 *)(*piVar20 + 4),0,0,1),\n                       iVar6 != 0))" (( "(") (binary_expression "(*(int *)(*(int *)(*piVar20 + 0x14) + 4) == puVar18[1]) &&\n                       (iVar6 = bfd_link_hash_lookup\n                                          (DAT_001d0400,*(undefined4 *)(*piVar20 + 4),0,0,1),\n                       iVar6 != 0)" (parenthesized_expression "(*(int *)(*(int *)(*piVar20 + 0x14) + 4) == puVar18[1])" (( "(") (binary_expression "*(int *)(*(int *)(*piVar20 + 0x14) + 4) == puVar18[1]" (pointer_expression "*(int *)(*(int *)(*piVar20 + 0x14) + 4)" (* "*") (cast_expression "(int *)(*(int *)(*piVar20 + 0x14) + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(*piVar20 + 0x14) + 4)" (( "(") (binary_expression "*(int *)(*piVar20 + 0x14) + 4" (pointer_expression "*(int *)(*piVar20 + 0x14)" (* "*") (cast_expression "(int *)(*piVar20 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*piVar20 + 0x14)" (( "(") (binary_expression "*piVar20 + 0x14" (pointer_expression "*piVar20" (* "*") (identifier "piVar20")) (+ "+") (number_literal "0x14")) () ")")))) (+ "+") (number_literal "4")) () ")")))) (== "==") (subscript_expression "puVar18[1]" (identifier "puVar18") ([ "[") (number_literal "1") (] "]"))) () ")")) (&& "&&") (parenthesized_expression "(iVar6 = bfd_link_hash_lookup\n                                          (DAT_001d0400,*(undefined4 *)(*piVar20 + 4),0,0,1),\n                       iVar6 != 0)" (( "(") (comma_expression "iVar6 = bfd_link_hash_lookup\n                                          (DAT_001d0400,*(undefined4 *)(*piVar20 + 4),0,0,1),\n                       iVar6 != 0" (assignment_expression "iVar6 = bfd_link_hash_lookup\n                                          (DAT_001d0400,*(undefined4 *)(*piVar20 + 4),0,0,1)" (identifier "iVar6") (= "=") (call_expression "bfd_link_hash_lookup\n                                          (DAT_001d0400,*(undefined4 *)(*piVar20 + 4),0,0,1)" (identifier "bfd_link_hash_lookup") (argument_list "(DAT_001d0400,*(undefined4 *)(*piVar20 + 4),0,0,1)" (( "(") (identifier "DAT_001d0400") (, ",") (pointer_expression "*(undefined4 *)(*piVar20 + 4)" (* "*") (cast_expression "(undefined4 *)(*piVar20 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*piVar20 + 4)" (( "(") (binary_expression "*piVar20 + 4" (pointer_expression "*piVar20" (* "*") (identifier "piVar20")) (+ "+") (number_literal "4")) () ")")))) (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "1") () ")")))) (, ",") (binary_expression "iVar6 != 0" (identifier "iVar6") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(*(char *)(iVar6 + 0xc) == '\x03')" (( "(") (binary_expression "*(char *)(iVar6 + 0xc) == '\x03'" (pointer_expression "*(char *)(iVar6 + 0xc)" (* "*") (cast_expression "(char *)(iVar6 + 0xc)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0xc)" (( "(") (binary_expression "iVar6 + 0xc" (identifier "iVar6") (+ "+") (number_literal "0xc")) () ")")))) (== "==") (char_literal "'\x03'" (' "'") (escape_sequence "\x03") (' "'"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "((*(int *)(iVar6 + 0x10) == 0 && (*(int *)(DAT_001d0400 + 0x20) != iVar6)))" (( "(") (parenthesized_expression "(*(int *)(iVar6 + 0x10) == 0 && (*(int *)(DAT_001d0400 + 0x20) != iVar6))" (( "(") (binary_expression "*(int *)(iVar6 + 0x10) == 0 && (*(int *)(DAT_001d0400 + 0x20) != iVar6)" (binary_expression "*(int *)(iVar6 + 0x10) == 0" (pointer_expression "*(int *)(iVar6 + 0x10)" (* "*") (cast_expression "(int *)(iVar6 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x10)" (( "(") (binary_expression "iVar6 + 0x10" (identifier "iVar6") (+ "+") (number_literal "0x10")) () ")")))) (== "==") (number_literal "0")) (&& "&&") (parenthesized_expression "(*(int *)(DAT_001d0400 + 0x20) != iVar6)" (( "(") (binary_expression "*(int *)(DAT_001d0400 + 0x20) != iVar6" (pointer_expression "*(int *)(DAT_001d0400 + 0x20)" (* "*") (cast_expression "(int *)(DAT_001d0400 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_001d0400 + 0x20)" (( "(") (binary_expression "DAT_001d0400 + 0x20" (identifier "DAT_001d0400") (+ "+") (number_literal "0x20")) () ")")))) (!= "!=") (identifier "iVar6")) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n                    puVar18[5] = puVar18[5] | 0x8000;\n                  }" ({ "{") (expression_statement "puVar18[5] = puVar18[5] | 0x8000;" (assignment_expression "puVar18[5] = puVar18[5] | 0x8000" (subscript_expression "puVar18[5]" (identifier "puVar18") ([ "[") (number_literal "5") (] "]")) (= "=") (binary_expression "puVar18[5] | 0x8000" (subscript_expression "puVar18[5]" (identifier "puVar18") ([ "[") (number_literal "5") (] "]")) (| "|") (number_literal "0x8000"))) (; ";")) (} "}"))) (expression_statement "piVar20 = piVar20 + 1;" (assignment_expression "piVar20 = piVar20 + 1" (identifier "piVar20") (= "=") (binary_expression "piVar20 + 1" (identifier "piVar20") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(piVar1 != piVar20)" (( "(") (binary_expression "piVar1 != piVar20" (identifier "piVar1") (!= "!=") (identifier "piVar20")) () ")")) (; ";")) (} "}"))) (} "}"))) (} "}"))) (expression_statement "local_4c = *(int *)(local_4c + 0x18);" (assignment_expression "local_4c = *(int *)(local_4c + 0x18)" (identifier "local_4c") (= "=") (pointer_expression "*(int *)(local_4c + 0x18)" (* "*") (cast_expression "(int *)(local_4c + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_4c + 0x18)" (( "(") (binary_expression "local_4c + 0x18" (identifier "local_4c") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(local_4c != 0)" (( "(") (binary_expression "local_4c != 0" (identifier "local_4c") (!= "!=") (number_literal "0")) () ")")) (; ";")) (} "}"))) (} "}"))) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}"))) (} "")))

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

void function_1(void)

{
  type_1 *paVar1;
  type_2 **ppbVar2;
  type_3 *ppVar3;
  type_4 *puVar4;
  type_5 uVar5;
  type_6 bVar6;
  char cVar7;
  char cVar8;
  type_6 var_45;
  type_7 var_7;
  type_8 *var_9;
  type_9 *var_4;
  type_4 *var_56;
  type_4 *var_50;
  size_t var_53;
  char *var_31;
  char *var_29;
  type_10 *var_44;
  type_11 *var_14;
  type_11 *var_36;
  int var_16;
  int var_39;
  bool bVar21;
  type_10 *pbVar22;
  type_12 *plVar23;
  type_13 *piVar24;
  type_4 *var_55;
  type_12 *var_21;
  type_6 *var_40;
  type_2 **ppbVar28;
  type_13 *piVar29;
  type_6 *var_41;
  type_14 *pwVar31;
  bool var_42;
  bool var_43;
  bool bVar34;
  type_6 bVar35;
  type_12 *local_50;
  type_12 *local_4c;
  type_12 *var_57;
  type_10 *var_38;
  int var_20;
  type_4 uStack_14;
  
  bVar35 = 0;
  uStack_14 = 0x56659;
  var_1();
  if (var_2 == 0) {
LAB_00056682:
    var_4 = link_info.input_bfds;
    if (var_3 != (char *)0x0) {
      for (; var_4 != (type_9 *)0x0; var_4 = (var_4->link).next) {
        if (var_4->xvec->flavour == var_5) {
          var_7 = var_6(var_3);
          if (var_7 == 0) {
            var_29 = "%P: warning: unrecognized --build-id style ignored\n";
          }
          else {
            var_9 = (type_8 *)
                      var_8
                                (var_4,".buildid",
                                 "*/\n  .debug_aranges  0 : { *(.debug_aranges) }\n  .debug_pubnames 0 : { *(.debug_pubnames) }\n  /* DWARF 2 */\n  .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }\n  .debug_abbrev   0 : { *(.debug_abbrev) }\n  .debug_line     0 : { *(.debug_line .debug_line.* .debug_line_end ) }\n  .debug_frame    0 : { *(.debug_frame) }\n  .debug_str      0 : { *(.debug_str) }\n  .debug_loc      0 : { *(.debug_loc) }\n  .debug_macinfo  0 : { *(.debug_macinfo) }\n  /* SGI/MIPS DWARF 2 extensions */\n  .debug_weaknames 0 : { *(.debug_weaknames) }\n  .debug_funcnames 0 : { *(.debug_funcnames) }\n  .debug_typenames 0 : { *(.debug_typenames) }\n  .debug_varnames  0 : { *(.debug_varnames) }\n  /* DWARF 3 */\n  .debug_pubtypes 0 : { *(.debug_pubtypes) }\n  .debug_ranges   0 : { *(.debug_ranges) }\n  /* DWARF Extension.  */\n  .debug_macro    0 : { *(.debug_macro) }\n  .debug_addr     0 : { *(.debug_addr) }\n  .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) }\n  /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) }\n}\n\n"
                                );
            var_4 = link_info.output_bfd;
            if (var_9 != (type_8 *)0x0) {
              ppVar3 = ((link_info.output_bfd)->tdata).pe_obj_data;
              (ppVar3->build_id).after_write_object_contents = write_build_id;
              var_29 = var_3;
              var_16 = (ppVar3->coff).pe;
              (ppVar3->build_id).sec = var_9;
              (ppVar3->build_id).style = var_29;
              *(type_4 *)&var_9->size = 0x35;
              *(type_4 *)((int)&var_9->size + 4) = 0;
              goto joined_r0x00056729;
            }
            var_29 = "%P: warning: cannot create .buildid section, --build-id ignored\n";
          }
          var_29 = (char *)var_10(0,var_29,5);
          var_11(var_29);
          break;
        }
      }
LAB_00056a59:
      var_12(var_3);
      var_3 = (char *)0x0;
    }
  }
  else {
    var_13("%s()\n","gld_i386pe_after_open");
    for (var_14 = (link_info.hash)->undefs; var_14 != (type_11 *)0x0;
        var_14 = (var_14->u).undef.next) {
      var_13("-%s\n",(var_14->root).string);
    }
    var_15(link_info.hash,pr_sym,0);
    var_4 = link_info.input_bfds;
    if (link_info.input_bfds != (type_9 *)0x0) {
      do {
        var_13("*%s\n",var_4->filename);
        paVar1 = &var_4->link;
        var_4 = paVar1->next;
      } while (paVar1->next != (type_9 *)0x0);
      goto LAB_00056682;
    }
    if (var_3 != (char *)0x0) goto LAB_00056a59;
  }
  var_4 = link_info.output_bfd;
  if (((link_info.output_bfd)->tdata).coff_obj_data != (type_15 *)0x0) {
    var_16 = (((link_info.output_bfd)->tdata).coff_obj_data)->pe;
joined_r0x00056729:
    if (var_16 != 0) goto LAB_00056730;
  }
  var_29 = (char *)var_10(0,"%F%P: cannot perform PE operations on non PE output file \'%pB\'\n"
                              ,5);
  var_11(var_29,var_4);
LAB_00056730:
  var_4 = link_info.output_bfd;
  ppVar3 = ((link_info.output_bfd)->tdata).pe_obj_data;
  piVar24 = &pe;
  piVar29 = &ppVar3->pe_opthdr;
  for (var_16 = 0x52; var_16 != 0; var_16 = var_16 + -1) {
    cVar7 = piVar24->MajorLinkerVersion;
    cVar8 = piVar24->MinorLinkerVersion;
    piVar29->Magic = piVar24->Magic;
    piVar29->MajorLinkerVersion = cVar7;
    piVar29->MinorLinkerVersion = cVar8;
    piVar24 = (type_13 *)((int)piVar24 + ((type_5)bVar35 * -2 + 1) * 4);
    piVar29 = (type_13 *)((int)piVar29 + (type_5)bVar35 * -8 + 4);
  }
  ppVar3->dll = init[1].value;
  ppVar3->var_17 = ppVar3->var_17 | var_17;
  ppVar3->insert_timestamp = insert_timestamp;
  if ((var_18 < 0) && ((link_info._1_1_ & 0x60) == 0)) {
    if ((link_info._0_1_ & 3) == 2) {
      var_18 = 1;
    }
    else if (file_chain.head != (type_12 *)0x0) {
      var_21 = file_chain.head;
      do {
        var_20 = 0;
        var_19((var_21->wild_statement).section_list,debug_section_p,&var_20);
        var_4 = link_info.output_bfd;
        if (var_20 != 0) {
          var_18 = 1;
          break;
        }
        var_21 = (var_21->wild_statement).children.head;
      } while (var_21 != (type_12 *)0x0);
    }
  }
  var_22(var_4);
  var_23(link_info.output_bfd,&link_info);
  if (link_info.pei386_auto_import != 0) {
    var_16 = var_24();
    var_29 = "_head_";
    if (var_16 != 0) {
      var_29 = "__head_";
    }
    var_25(var_29,make_import_fixup);
  }
  if (var_26 != 0) {
    if (var_2 != 0) {
      var_27("pe_fixup_stdcalls");
    }
    for (var_14 = (link_info.hash)->undefs; var_14 != (type_11 *)0x0;
        var_14 = (var_14->u).undef.next) {
      if (var_14->field_0xc == '\x01') {
        var_29 = (var_14->root).string;
        if (*var_29 == '@') {
          var_31 = var_28(var_29 + 1,0x40);
          var_29 = (char *)var_30(var_29);
          *var_29 = '_';
          if (var_31 != (char *)0x0) goto LAB_00057061;
        }
        else {
          var_31 = var_28(var_29,0x40);
          if (var_31 == (char *)0x0) {
            var_33 = (type_11 *)0x0;
            var_32(link_info.hash,pe_undef_cdecl_match,var_29);
            if (var_33 != (type_11 *)0x0) {
              var_34(var_14,var_33);
            }
            goto LAB_00056fa8;
          }
          var_29 = (char *)var_30(var_29);
LAB_00057061:
          var_31 = var_28(var_29,0x40);
          *var_31 = '\0';
        }
        var_36 = (type_11 *)var_35(link_info.hash,var_29,0,0,1);
        if ((var_36 != (type_11 *)0x0) && (var_36->field_0xc == '\x03')) {
          var_34(var_14,var_36);
        }
      }
LAB_00056fa8:
    }
  }
  if ((link_info._0_1_ & 3) != 2) {
    var_37(link_info.output_bfd,&link_info);
  }
  var_57 = file_chain.head;
  if (file_chain.head != (type_12 *)0x0) {
    do {
      var_4 = (var_57->input_statement).the_bfd;
      if ((var_4->my_archive != (type_9 *)0x0) &&
         (var_38 = var_4->sections, var_38 != (type_10 *)0x0)) {
        var_16 = 0;
        bVar34 = true;
        var_44 = var_38;
        bVar6 = 0;
        bVar21 = false;
        do {
          var_42 = false;
          var_39 = 9;
          var_40 = (type_6 *)var_44->name;
          var_41 = (type_6 *)".idata$2";
          do {
            if (var_39 == 0) break;
            var_39 = var_39 + -1;
            var_42 = *var_40 < *var_41;
            bVar34 = *var_40 == *var_41;
            var_40 = var_40 + (type_5)bVar35 * -2 + 1;
            var_41 = var_41 + (type_5)bVar35 * -2 + 1;
          } while (bVar34);
          var_43 = false;
          bVar34 = (!var_42 && !bVar34) == var_42;
          var_42 = true;
          if (!bVar34) {
            var_42 = bVar21;
          }
          var_39 = 7;
          var_40 = (type_6 *)var_44->name;
          var_41 = (type_6 *)".idata$";
          do {
            if (var_39 == 0) break;
            var_39 = var_39 + -1;
            var_43 = *var_40 < *var_41;
            bVar34 = *var_40 == *var_41;
            var_40 = var_40 + (type_5)bVar35 * -2 + 1;
            var_41 = var_41 + (type_5)bVar35 * -2 + 1;
          } while (bVar34);
          var_45 = 1;
          if ((!var_43 && !bVar34) != var_43) {
            var_45 = bVar6;
          }
          var_16 = var_16 + var_44->reloc_count;
          var_44 = var_44->next;
          bVar34 = var_44 == (type_10 *)0x0;
          bVar6 = var_45;
          bVar21 = var_42;
        } while (!bVar34);
        if (((bool)(var_45 & var_16 != 0)) && (!var_42)) {
          while (var_16 = var_46(var_4,var_38), 0 < var_16) {
            var_39 = var_47((var_57->wild_statement).section_list);
            local_4c = var_57;
            if (var_39 == 0) goto LAB_000570af;
            ppbVar28 = ((var_57->input_statement).the_bfd)->outsymbols;
            var_56 = (type_4 *)var_48(var_16);
            var_16 = var_49
                               ((var_57->wild_statement).section_list,var_38,var_56,ppbVar28);
            if (var_16 < 0) {
              var_12(var_56);
              var_29 = (char *)var_10(0,"%X%P: unable to process relocs: %E\n",5);
              var_11(var_29);
              return;
            }
            var_55 = var_56;
            if (var_16 != 0) {
              do {
                if ((((*(type_6 *)(**(int **)*var_55 + 0x10) & 1) == 0) &&
                    (var_39 = var_35
                                        (link_info.hash,*(type_4 *)(**(int **)*var_55 + 4),0,0,
                                         1), var_39 != 0)) && (*(char *)(var_39 + 0xc) == '\x03')) {
                  puVar4 = *(type_4 **)(*(int *)(var_39 + 0x14) + 0xac);
                  var_50 = (type_4 *)puVar4[0x23];
                  if (var_50 == (type_4 *)0x0) {
                    var_50 = puVar4;
                  }
                  var_29 = (char *)*var_50;
                  var_39 = var_51(((var_57->input_statement).the_bfd)->my_archive->filename,
                                        var_29);
                  if (var_39 != 0) {
                    var_53 = var_52(var_29);
                    var_31 = (char *)var_48(var_53 + 1);
                    var_54(var_31,var_29);
                    ((var_57->input_statement).the_bfd)->my_archive->filename = var_31;
                  }
                }
                var_55 = var_55 + 1;
              } while (var_56 + var_16 != var_55);
            }
            var_12(var_56);
            var_38 = var_38->next;
            if (var_38 == (type_10 *)0x0) break;
            var_4 = (type_9 *)(var_57->wild_statement).section_list;
          }
        }
      }
      var_57 = (var_57->wild_statement).children.head;
    } while (var_57 != (type_12 *)0x0);
    local_50 = file_chain.head;
    if (file_chain.head != (type_12 *)0x0) {
      bVar21 = false;
      var_57 = (type_12 *)0x0;
      do {
        uVar5 = ((local_50->reloc_statement).section)->lineno_count;
        if (uVar5 != 0) {
          var_29 = strrchr(((local_50->reloc_statement).section)->name,0x2e);
          var_21 = local_50;
          if ((type_12 *)uVar5 == var_57) {
            if (!bVar21) goto LAB_00056b08;
          }
          else {
            while ((plVar23 = local_50, var_57 = (type_12 *)uVar5,
                   var_29 == (char *)0x0 || (var_16 = var_51(var_29,".dll"), var_16 != 0)))
            {
              var_21 = (type_12 *)(var_21->data_statement).output_section;
              if (var_21 == (type_12 *)0x0) {
                local_50 = (local_50->wild_statement).children.head;
                bVar21 = false;
                goto joined_r0x00056b15;
              }
              if (uVar5 != ((var_21->reloc_statement).section)->lineno_count) break;
              var_29 = strrchr(((var_21->reloc_statement).section)->name,0x2e);
            }
            do {
              if (uVar5 != ((plVar23->reloc_statement).section)->lineno_count) break;
              pwVar31 = (type_14 *)((plVar23->reloc_statement).section)->name;
              var_29 = strrchr((char *)pwVar31,0x2e);
              if (var_29 == (char *)0x0) {
LAB_00056d20:
                var_16 = var_51(((var_21->wild_statement).section_list)->next,pwVar31);
                if (var_16 != 0) {
                  bVar21 = false;
                  goto LAB_00056b08;
                }
              }
              else {
                var_16 = var_51(var_29,&DAT_00192ed1);
                if (var_16 != 0) {
                  pwVar31 = ((plVar23->wild_statement).section_list)->next;
                  goto LAB_00056d20;
                }
              }
              plVar23 = (plVar23->wild_statement).children.head;
            } while (plVar23 != (type_12 *)0x0);
            var_29 = strrchr(((local_50->reloc_statement).section)->name,0x2e);
          }
          bVar21 = true;
          var_16 = var_51(var_29,".dll");
          if (var_16 == 0) {
            var_44 = ((local_50->input_statement).the_bfd)->sections;
            if (var_44 == (type_10 *)0x0) {
              var_16 = 99;
            }
            else {
              var_39 = 0;
              bVar34 = true;
              bVar21 = false;
              do {
                var_42 = false;
                var_16 = 9;
                var_40 = (type_6 *)var_44->name;
                var_41 = (type_6 *)".idata$2";
                do {
                  if (var_16 == 0) break;
                  var_16 = var_16 + -1;
                  var_42 = *var_40 < *var_41;
                  bVar34 = *var_40 == *var_41;
                  var_40 = var_40 + (type_5)bVar35 * -2 + 1;
                  var_41 = var_41 + (type_5)bVar35 * -2 + 1;
                } while (bVar34);
                if ((!var_42 && !bVar34) == var_42) {
                  bVar21 = true;
                }
                var_39 = var_39 + var_44->reloc_count;
                var_44 = var_44->next;
                bVar34 = var_44 == (type_10 *)0x0;
              } while (!bVar34);
              var_16 = 0x61;
              if (!bVar21) {
                var_16 = (var_39 < 1) + 0x62;
              }
            }
            var_53 = var_52(((local_50->input_statement).the_bfd)->filename);
            var_29 = (char *)var_48(var_53 + 3);
            sprintf(var_29,"%s.%c",((local_50->wild_statement).section_list)->next,var_16);
            ((local_50->reloc_statement).section)->name = var_29;
            var_53 = var_52((local_50->wild_statement).filename);
            var_29 = (char *)var_48(var_53 + 3);
            sprintf(var_29,"%s.%c",(local_50->wild_statement).filename,var_16);
            (local_50->wild_statement).filename = var_29;
            bVar21 = true;
          }
        }
LAB_00056b08:
        local_50 = (local_50->wild_statement).children.head;
joined_r0x00056b15:
      } while (local_50 != (type_12 *)0x0);
      local_4c = file_chain.head;
      if (file_chain.head != (type_12 *)0x0) {
        do {
          var_4 = (local_4c->input_statement).the_bfd;
          if ((var_4->my_archive != (type_9 *)0x0) &&
             (var_44 = var_4->sections, var_44 != (type_10 *)0x0)) {
            pbVar22 = (type_10 *)0x0;
            bVar21 = false;
            bVar34 = true;
            do {
              var_42 = false;
              var_16 = 7;
              var_40 = (type_6 *)var_44->name;
              var_41 = (type_6 *)".idata$";
              do {
                if (var_16 == 0) break;
                var_16 = var_16 + -1;
                var_42 = *var_40 < *var_41;
                bVar34 = *var_40 == *var_41;
                var_40 = var_40 + (type_5)bVar35 * -2 + 1;
                var_41 = var_41 + (type_5)bVar35 * -2 + 1;
              } while (bVar34);
              if ((!var_42 && !bVar34) == var_42) {
                bVar21 = true;
              }
              if (((var_44->flags & 0x10) != 0) && (var_44->reloc_count != 0)) {
                pbVar22 = var_44;
              }
              var_44 = var_44->next;
              bVar34 = var_44 == (type_10 *)0x0;
            } while (!bVar34);
            if ((pbVar22 != (type_10 *)0x0) && (bVar21)) {
              var_16 = var_47(var_4);
              if (var_16 == 0) {
LAB_000570af:
                pwVar31 = (local_4c->wild_statement).section_list;
                var_29 = (char *)var_10(0,"%F%P: %pB: could not read symbols: %E\n",5);
                var_11(var_29,pwVar31);
                return;
              }
              ppbVar28 = ((local_4c->input_statement).the_bfd)->outsymbols;
              uVar5 = ((local_4c->input_statement).the_bfd)->symcount;
              if (0 < (int)uVar5) {
                ppbVar2 = ppbVar28 + uVar5;
                do {
                  if (((((*ppbVar28)->section->id == pbVar22->id) &&
                       (var_14 = (type_11 *)
                                  var_35(link_info.hash,(*ppbVar28)->name,0,0,1),
                       var_14 != (type_11 *)0x0)) && (var_14->field_0xc == '\x03')) &&
                     (((var_14->u).undef.next == (type_11 *)0x0 &&
                      ((link_info.hash)->undefs_tail != var_14)))) {
                    pbVar22->flags = pbVar22->flags | 0x8000;
                  }
                  ppbVar28 = ppbVar28 + 1;
                } while (ppbVar2 != ppbVar28);
              }
            }
          }
          local_4c = (local_4c->wild_statement).children.head;
        } while (local_4c != (type_12 *)0x0);
      }
    }
  }
  return;
}


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

/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

void MASKED(void)

{
  int *piVar1;
  undefined4 *puVar2;
  byte bVar3;
  void *pvVar4;
  byte bVar5;
  int iVar6;
  undefined4 *puVar7;
  undefined4 *puVar8;
  size_t sVar9;
  char *pcVar10;
  undefined4 uVar11;
  char *pcVar12;
  int iVar13;
  undefined4 uVar14;
  int iVar15;
  bool bVar16;
  int iVar17;
  undefined4 *puVar18;
  byte *pbVar19;
  int *piVar20;
  byte *pbVar21;
  bool bVar22;
  bool bVar23;
  bool bVar24;
  byte bVar25;
  int local_50;
  int local_4c;
  int local_40;
  undefined4 *local_38;
  int local_20 [3];
  undefined4 uStack_14;
  
  bVar25 = 0;
  uStack_14 = 0x56659;
  FUN_00033940();
  if (DAT_001d01fc == 0) {
LAB_00056682:
    puVar7 = DAT_001d041c;
    if (DAT_001cff9c != (void *)0x0) {
      for (; puVar7 != (undefined4 *)0x0; puVar7 = (undefined4 *)puVar7[0x27]) {
        if (*(int *)(puVar7[1] + 4) == 2) {
          iVar6 = FUN_00038960(DAT_001cff9c);
          if (iVar6 == 0) {
            pcVar12 = "%P: warning: unrecognized --build-id style ignored\n";
          }
          else {
            iVar17 = bfd_make_section_anyway_with_flags
                               (puVar7,".buildid",
                                "*/\n  .debug_aranges  0 : { *(.debug_aranges) }\n  .debug_pubnames 0 : { *(.debug_pubnames) }\n  /* DWARF 2 */\n  .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }\n  .debug_abbrev   0 : { *(.debug_abbrev) }\n  .debug_line     0 : { *(.debug_line .debug_line.* .debug_line_end ) }\n  .debug_frame    0 : { *(.debug_frame) }\n  .debug_str      0 : { *(.debug_str) }\n  .debug_loc      0 : { *(.debug_loc) }\n  .debug_macinfo  0 : { *(.debug_macinfo) }\n  /* SGI/MIPS DWARF 2 extensions */\n  .debug_weaknames 0 : { *(.debug_weaknames) }\n  .debug_funcnames 0 : { *(.debug_funcnames) }\n  .debug_typenames 0 : { *(.debug_typenames) }\n  .debug_varnames  0 : { *(.debug_varnames) }\n  /* DWARF 3 */\n  .debug_pubtypes 0 : { *(.debug_pubtypes) }\n  .debug_ranges   0 : { *(.debug_ranges) }\n  /* DWARF Extension.  */\n  .debug_macro    0 : { *(.debug_macro) }\n  .debug_addr     0 : { *(.debug_addr) }\n  .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) }\n  /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) }\n}\n\n"
                               );
            iVar6 = DAT_001d0414;
            if (iVar17 != 0) {
              iVar15 = *(int *)(DAT_001d0414 + 0xa0);
              *(code **)(iVar15 + 0x1dc) = FUN_00055c40;
              pvVar4 = DAT_001cff9c;
              iVar13 = *(int *)(iVar15 + 0x58);
              *(int *)(iVar15 + 0x1e4) = iVar17;
              *(void **)(iVar15 + 0x1e0) = pvVar4;
              *(undefined4 *)(iVar17 + 0x2c) = 0x35;
              *(undefined4 *)(iVar17 + 0x30) = 0;
              goto joined_r0x00056729;
            }
            pcVar12 = "%P: warning: cannot create .buildid section, --build-id ignored\n";
          }
          uVar11 = dcgettext(0,pcVar12,5);
          FUN_00034d20(uVar11);
          break;
        }
      }
LAB_00056a59:
      free(DAT_001cff9c);
      DAT_001cff9c = (void *)0x0;
    }
  }
  else {
    printf("%s()\n","gld_i386pe_after_open");
    for (iVar6 = *(int *)(DAT_001d0400 + 0x1c); iVar6 != 0; iVar6 = *(int *)(iVar6 + 0x10)) {
      printf("-%s\n",*(undefined4 *)(iVar6 + 4));
    }
    bfd_hash_traverse(DAT_001d0400,FUN_00055b20,0);
    puVar7 = DAT_001d041c;
    if (DAT_001d041c != (undefined4 *)0x0) {
      do {
        printf("*%s\n",*puVar7);
        puVar18 = puVar7 + 0x27;
        puVar7 = (undefined4 *)*puVar18;
      } while ((undefined4 *)*puVar18 != (undefined4 *)0x0);
      goto LAB_00056682;
    }
    if (DAT_001cff9c != (void *)0x0) goto LAB_00056a59;
  }
  iVar6 = DAT_001d0414;
  if (*(int *)(DAT_001d0414 + 0xa0) != 0) {
    iVar13 = *(int *)(*(int *)(DAT_001d0414 + 0xa0) + 0x58);
joined_r0x00056729:
    if (iVar13 != 0) goto LAB_00056730;
  }
  uVar11 = dcgettext(0,"%F%P: cannot perform PE operations on non PE output file \'%pB\'\n",5);
  FUN_00034d20(uVar11,iVar6);
LAB_00056730:
  iVar17 = DAT_001d0414;
  iVar6 = *(int *)(DAT_001d0414 + 0xa0);
  puVar7 = &DAT_001cffc0;
  puVar18 = (undefined4 *)(iVar6 + 0x7c);
  for (iVar15 = 0x52; iVar15 != 0; iVar15 = iVar15 + -1) {
    *puVar18 = *puVar7;
    puVar7 = puVar7 + (uint)bVar25 * -2 + 1;
    puVar18 = puVar18 + (uint)bVar25 * -2 + 1;
  }
  *(undefined4 *)(iVar6 + 0x1c4) = DAT_001cf040;
  *(uint *)(iVar6 + 0x1d8) = *(uint *)(iVar6 + 0x1d8) | DAT_001cffa8;
  *(undefined4 *)(iVar6 + 0x1d0) = DAT_001cef94;
  if ((DAT_001cf388 < 0) && ((DAT_001d03e1 & 0x60) == 0)) {
    if ((DAT_001d03e0 & 3) == 2) {
      DAT_001cf388 = 1;
    }
    else if (DAT_001cf6bc != 0) {
      iVar6 = DAT_001cf6bc;
      do {
        local_20[0] = 0;
        bfd_map_over_sections(*(undefined4 *)(iVar6 + 0x10),FUN_000554f0,local_20);
        iVar17 = DAT_001d0414;
        if (local_20[0] != 0) {
          DAT_001cf388 = 1;
          break;
        }
        iVar6 = *(int *)(iVar6 + 0x18);
      } while (iVar6 != 0);
    }
  }
  FUN_00066c30(iVar17);
  FUN_000656c0(DAT_001d0414,&DAT_001d03e0);
  if (DAT_001d0448 != 0) {
    iVar6 = FUN_000561f0();
    pcVar12 = "_head_";
    if (iVar6 != 0) {
      pcVar12 = "__head_";
    }
    FUN_00063bc0(pcVar12,FUN_00055b50);
  }
  if (DAT_001cef90 != 0) {
    if (DAT_001d01fc != 0) {
      puts("pe_fixup_stdcalls");
    }
    for (iVar6 = *(int *)(DAT_001d0400 + 0x1c); iVar6 != 0; iVar6 = *(int *)(iVar6 + 0x10)) {
      if (*(char *)(iVar6 + 0xc) == '\x01') {
        pcVar12 = *(char **)(iVar6 + 4);
        if (*pcVar12 == '@') {
          pcVar10 = strchr(pcVar12 + 1,0x40);
          pcVar12 = (char *)xstrdup(pcVar12);
          *pcVar12 = '_';
          if (pcVar10 != (char *)0x0) goto LAB_00057061;
        }
        else {
          pcVar10 = strchr(pcVar12,0x40);
          if (pcVar10 == (char *)0x0) {
            DAT_001cff8c = 0;
            bfd_link_hash_traverse(DAT_001d0400,FUN_00055530,pcVar12);
            if (DAT_001cff8c != 0) {
              FUN_00056030();
            }
            goto LAB_00056fa8;
          }
          pcVar12 = (char *)xstrdup(pcVar12);
LAB_00057061:
          pcVar10 = strchr(pcVar12,0x40);
          *pcVar10 = '\0';
        }
        iVar17 = bfd_link_hash_lookup(DAT_001d0400,pcVar12,0,0,1);
        if ((iVar17 != 0) && (*(char *)(iVar17 + 0xc) == '\x03')) {
          FUN_00056030();
        }
      }
LAB_00056fa8:
    }
  }
  if ((DAT_001d03e0 & 3) != 2) {
    FUN_00066ca0(DAT_001d0414,&DAT_001d03e0);
  }
  local_40 = DAT_001cf6bc;
  if (DAT_001cf6bc != 0) {
    do {
      iVar6 = *(int *)(local_40 + 0x10);
      if ((*(int *)(iVar6 + 0x8c) != 0) &&
         (local_38 = *(undefined4 **)(iVar6 + 0x60), local_38 != (undefined4 *)0x0)) {
        iVar17 = 0;
        bVar24 = true;
        puVar7 = local_38;
        bVar3 = 0;
        bVar16 = false;
        do {
          bVar22 = false;
          iVar15 = 9;
          pbVar19 = (byte *)*puVar7;
          pbVar21 = (byte *)".idata$2";
          do {
            if (iVar15 == 0) break;
            iVar15 = iVar15 + -1;
            bVar22 = *pbVar19 < *pbVar21;
            bVar24 = *pbVar19 == *pbVar21;
            pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;
            pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;
          } while (bVar24);
          bVar23 = false;
          bVar24 = (!bVar22 && !bVar24) == bVar22;
          bVar22 = true;
          if (!bVar24) {
            bVar22 = bVar16;
          }
          iVar15 = 7;
          pbVar19 = (byte *)*puVar7;
          pbVar21 = (byte *)".idata$";
          do {
            if (iVar15 == 0) break;
            iVar15 = iVar15 + -1;
            bVar23 = *pbVar19 < *pbVar21;
            bVar24 = *pbVar19 == *pbVar21;
            pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;
            pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;
          } while (bVar24);
          bVar5 = 1;
          if ((!bVar23 && !bVar24) != bVar23) {
            bVar5 = bVar3;
          }
          iVar17 = iVar17 + puVar7[0x19];
          puVar7 = (undefined4 *)puVar7[3];
          bVar24 = puVar7 == (undefined4 *)0x0;
          bVar3 = bVar5;
          bVar16 = bVar22;
        } while (!bVar24);
        if (((bool)(bVar5 & iVar17 != 0)) && (!bVar22)) {
          while (iVar6 = bfd_get_reloc_upper_bound(iVar6,local_38), 0 < iVar6) {
            iVar17 = bfd_generic_link_read_symbols(*(undefined4 *)(local_40 + 0x10));
            local_4c = local_40;
            if (iVar17 == 0) goto LAB_000570af;
            uVar11 = *(undefined4 *)(*(int *)(local_40 + 0x10) + 0x78);
            puVar7 = (undefined4 *)xmalloc(iVar6);
            iVar6 = bfd_canonicalize_reloc(*(undefined4 *)(local_40 + 0x10),local_38,puVar7,uVar11);
            if (iVar6 < 0) {
              free(puVar7);
              uVar11 = dcgettext(0,"%X%P: unable to process relocs: %E\n",5);
              FUN_00034d20(uVar11);
              return;
            }
            puVar18 = puVar7;
            if (iVar6 != 0) {
              do {
                if ((((*(byte *)(**(int **)*puVar18 + 0x10) & 1) == 0) &&
                    (iVar17 = bfd_link_hash_lookup
                                        (DAT_001d0400,*(undefined4 *)(**(int **)*puVar18 + 4),0,0,1)
                    , iVar17 != 0)) && (*(char *)(iVar17 + 0xc) == '\x03')) {
                  puVar2 = *(undefined4 **)(*(int *)(iVar17 + 0x14) + 0xac);
                  puVar8 = (undefined4 *)puVar2[0x23];
                  if (puVar8 == (undefined4 *)0x0) {
                    puVar8 = puVar2;
                  }
                  pcVar12 = (char *)*puVar8;
                  iVar17 = filename_cmp(**(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c),pcVar12)
                  ;
                  if (iVar17 != 0) {
                    sVar9 = strlen(pcVar12);
                    pcVar10 = (char *)xmalloc(sVar9 + 1);
                    strcpy(pcVar10,pcVar12);
                    **(undefined4 **)(*(int *)(local_40 + 0x10) + 0x8c) = pcVar10;
                  }
                }
                puVar18 = puVar18 + 1;
              } while (puVar7 + iVar6 != puVar18);
            }
            free(puVar7);
            local_38 = (undefined4 *)local_38[3];
            if (local_38 == (undefined4 *)0x0) break;
            iVar6 = *(int *)(local_40 + 0x10);
          }
        }
      }
      local_40 = *(int *)(local_40 + 0x18);
    } while (local_40 != 0);
    local_50 = DAT_001cf6bc;
    if (DAT_001cf6bc != 0) {
      bVar16 = false;
      local_40 = 0;
      do {
        iVar6 = (*(undefined4 **)(local_50 + 0x10))[0x23];
        if (iVar6 != 0) {
          pcVar12 = strrchr((char *)**(undefined4 **)(local_50 + 0x10),0x2e);
          iVar17 = local_50;
          if (iVar6 == local_40) {
            if (!bVar16) goto LAB_00056b08;
          }
          else {
            while ((iVar15 = local_50, local_40 = iVar6, pcVar12 == (char *)0x0 ||
                   (iVar13 = filename_cmp(pcVar12,".dll"), iVar13 != 0))) {
              iVar17 = *(int *)(iVar17 + 0x18);
              if (iVar17 == 0) {
                local_50 = *(int *)(local_50 + 0x18);
                bVar16 = false;
                goto joined_r0x00056b15;
              }
              if (iVar6 != (*(undefined4 **)(iVar17 + 0x10))[0x23]) break;
              pcVar12 = strrchr((char *)**(undefined4 **)(iVar17 + 0x10),0x2e);
            }
            do {
              if (iVar6 != (*(undefined4 **)(iVar15 + 0x10))[0x23]) break;
              pcVar12 = (char *)**(undefined4 **)(iVar15 + 0x10);
              pcVar10 = strrchr(pcVar12,0x2e);
              if (pcVar10 == (char *)0x0) {
LAB_00056d20:
                iVar13 = filename_cmp(**(undefined4 **)(iVar17 + 0x10),pcVar12);
                if (iVar13 != 0) {
                  bVar16 = false;
                  goto LAB_00056b08;
                }
              }
              else {
                iVar13 = filename_cmp(pcVar10,&DAT_00192ed1);
                if (iVar13 != 0) {
                  pcVar12 = (char *)**(undefined4 **)(iVar15 + 0x10);
                  goto LAB_00056d20;
                }
              }
              piVar20 = (int *)(iVar15 + 0x18);
              iVar15 = *piVar20;
            } while (*piVar20 != 0);
            pcVar12 = strrchr((char *)**(undefined4 **)(local_50 + 0x10),0x2e);
          }
          bVar16 = true;
          iVar6 = filename_cmp(pcVar12,".dll");
          if (iVar6 == 0) {
            puVar7 = (undefined4 *)(*(undefined4 **)(local_50 + 0x10))[0x18];
            if (puVar7 == (undefined4 *)0x0) {
              iVar6 = 99;
            }
            else {
              iVar17 = 0;
              bVar24 = true;
              bVar16 = false;
              do {
                bVar22 = false;
                iVar6 = 9;
                pbVar19 = (byte *)*puVar7;
                pbVar21 = (byte *)".idata$2";
                do {
                  if (iVar6 == 0) break;
                  iVar6 = iVar6 + -1;
                  bVar22 = *pbVar19 < *pbVar21;
                  bVar24 = *pbVar19 == *pbVar21;
                  pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;
                  pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;
                } while (bVar24);
                if ((!bVar22 && !bVar24) == bVar22) {
                  bVar16 = true;
                }
                iVar17 = iVar17 + puVar7[0x19];
                puVar7 = (undefined4 *)puVar7[3];
                bVar24 = puVar7 == (undefined4 *)0x0;
              } while (!bVar24);
              iVar6 = 0x61;
              if (!bVar16) {
                iVar6 = (iVar17 < 1) + 0x62;
              }
            }
            sVar9 = strlen((char *)**(undefined4 **)(local_50 + 0x10));
            pcVar12 = (char *)xmalloc(sVar9 + 3);
            sprintf(pcVar12,"%s.%c",**(undefined4 **)(local_50 + 0x10),iVar6);
            **(undefined4 **)(local_50 + 0x10) = pcVar12;
            sVar9 = strlen(*(char **)(local_50 + 8));
            pcVar12 = (char *)xmalloc(sVar9 + 3);
            sprintf(pcVar12,"%s.%c",*(undefined4 *)(local_50 + 8),iVar6);
            *(char **)(local_50 + 8) = pcVar12;
            bVar16 = true;
          }
        }
LAB_00056b08:
        local_50 = *(int *)(local_50 + 0x18);
joined_r0x00056b15:
      } while (local_50 != 0);
      local_4c = DAT_001cf6bc;
      if (DAT_001cf6bc != 0) {
        do {
          iVar6 = *(int *)(local_4c + 0x10);
          if ((*(int *)(iVar6 + 0x8c) != 0) &&
             (puVar7 = *(undefined4 **)(iVar6 + 0x60), puVar7 != (undefined4 *)0x0)) {
            puVar18 = (undefined4 *)0x0;
            bVar16 = false;
            bVar24 = true;
            do {
              bVar22 = false;
              iVar17 = 7;
              pbVar19 = (byte *)*puVar7;
              pbVar21 = (byte *)".idata$";
              do {
                if (iVar17 == 0) break;
                iVar17 = iVar17 + -1;
                bVar22 = *pbVar19 < *pbVar21;
                bVar24 = *pbVar19 == *pbVar21;
                pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;
                pbVar21 = pbVar21 + (uint)bVar25 * -2 + 1;
              } while (bVar24);
              if ((!bVar22 && !bVar24) == bVar22) {
                bVar16 = true;
              }
              if (((*(byte *)(puVar7 + 5) & 0x10) != 0) && (puVar7[0x19] != 0)) {
                puVar18 = puVar7;
              }
              puVar7 = (undefined4 *)puVar7[3];
              bVar24 = puVar7 == (undefined4 *)0x0;
            } while (!bVar24);
            if ((puVar18 != (undefined4 *)0x0) && (bVar16)) {
              iVar6 = bfd_generic_link_read_symbols(iVar6);
              if (iVar6 == 0) {
LAB_000570af:
                uVar11 = *(undefined4 *)(local_4c + 0x10);
                uVar14 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);
                FUN_00034d20(uVar14,uVar11);
                return;
              }
              piVar20 = *(int **)(*(int *)(local_4c + 0x10) + 0x78);
              iVar6 = *(int *)(*(int *)(local_4c + 0x10) + 0x7c);
              if (0 < iVar6) {
                piVar1 = piVar20 + iVar6;
                do {
                  if ((((*(int *)(*(int *)(*piVar20 + 0x14) + 4) == puVar18[1]) &&
                       (iVar6 = bfd_link_hash_lookup
                                          (DAT_001d0400,*(undefined4 *)(*piVar20 + 4),0,0,1),
                       iVar6 != 0)) && (*(char *)(iVar6 + 0xc) == '\x03')) &&
                     ((*(int *)(iVar6 + 0x10) == 0 && (*(int *)(DAT_001d0400 + 0x20) != iVar6)))) {
                    puVar18[5] = puVar18[5] | 0x8000;
                  }
                  piVar20 = piVar20 + 1;
                } while (piVar1 != piVar20);
              }
            }
          }
          local_4c = *(int *)(local_4c + 0x18);
        } while (local_4c != 0);
      }
    }
  }
  return;
}

